Interpolation
Markdown code is compiled to HTML first and then compiled to Vue render functions, for example:
Hello **Saber**!
compiles to:
function render() {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
return _c('p', [
_vm._v('Hello '),
_c('strong', [_vm._v('Saber')]),
_vm._v('!')
])
}
This means you can use Vue-style interpolation in Markdown like this:
This result of 1 + 1 is: {{ 1 + 1 }}
It renders:
This result of 1 + 1 is: 2
If you want to disable Vue-style interpolation for a part of your Markdown page, you can wrap it inside code fence, inline code or using the v-pre
attribute as follows:
```js
const foo = `{{ safe, this won't be interpolated! }}`
```
And `{{ bar }}` is safe too! <span v-pre>{{ yeah }}</span>
It renders:
const foo = `{{ safe, this won't be interpolated! }}`
And {{ bar }}
is safe too! {{ yeah }}
<script>
block
<script>
tag in a Markdown page is not the normal HTML <script>
element, it's treated as Vue SFC <script>
block instead.
**This is an example:**
<button @click="count++">{{ count }}</button>
<script>
export default {
data() {
return {
count: 0
}
}
}
</script>
It renders:
This is an example:
Like a regular Vue single-file component, your Markdown page can have at most one script block.
<style>
block
<style>
tags in Markdown page are not HTML <style>
elements either, they are Vue SFC <style>
blocks.