mirror of
https://github.com/wahyd4/vuepress.git
synced 2026-08-12 06:46:24 +10:00
34 lines
981 B
JavaScript
34 lines
981 B
JavaScript
const container = require('markdown-it-container')
|
|
|
|
module.exports = md => {
|
|
md
|
|
.use(...createContainer('tip', 'TIP'))
|
|
.use(...createContainer('warning', 'WARNING'))
|
|
.use(...createContainer('danger', 'WARNING'))
|
|
// explicitly escape Vue syntax
|
|
.use(container, 'v-pre', {
|
|
render: (tokens, idx) => tokens[idx].nesting === 1
|
|
? `<div v-pre>\n`
|
|
: `</div>\n`
|
|
})
|
|
.use(container, 'vue', {
|
|
render: (tokens, idx) => tokens[idx].nesting === 1
|
|
? `<pre class="vue-container"><code>`
|
|
: `</code></pre>`
|
|
})
|
|
}
|
|
|
|
function createContainer (klass, defaultTitle) {
|
|
return [container, klass, {
|
|
render (tokens, idx) {
|
|
const token = tokens[idx]
|
|
const info = token.info.trim().slice(klass.length).trim()
|
|
if (token.nesting === 1) {
|
|
return `<div class="${klass} custom-block"><p class="custom-block-title">${info || defaultTitle}</p>\n`
|
|
} else {
|
|
return `</div>\n`
|
|
}
|
|
}
|
|
}]
|
|
}
|