aboutsummaryrefslogtreecommitdiff
path: root/node_modules/vuepress/lib/markdown/containers.js
diff options
context:
space:
mode:
Diffstat (limited to 'node_modules/vuepress/lib/markdown/containers.js')
-rw-r--r--node_modules/vuepress/lib/markdown/containers.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/node_modules/vuepress/lib/markdown/containers.js b/node_modules/vuepress/lib/markdown/containers.js
new file mode 100644
index 00000000..215c4534
--- /dev/null
+++ b/node_modules/vuepress/lib/markdown/containers.js
@@ -0,0 +1,28 @@
+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`
+ })
+}
+
+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`
+ }
+ }
+ }]
+}