Ver Fonte

Merge pull request #80 from eleme/feat/code-markdown

Update markdown rule
FuryBean há 9 anos atrás
pai
commit
810c282799
2 ficheiros alterados com 23 adições e 1 exclusões
  1. 2 1
      package.json
  2. 21 0
      scripts/cooking.demo.js

+ 2 - 1
package.json

@@ -39,13 +39,14 @@
     "highlight.js": "^9.3.0",
     "json-templater": "^1.0.4",
     "lerna": "2.0.0-beta.18",
+    "markdown-it-container": "^2.0.0",
     "markdown-it-toc-and-anchor": "^4.1.1",
     "oui-dom-events": "^0.2.1",
     "postcss": "^5.0.21",
     "purecss": "^0.6.0",
     "uppercamelcase": "^1.1.0",
-    "vue-loader": "^9.3.2",
     "vue": "^2.0.0-rc.2",
+    "vue-loader": "^9.3.2",
     "vue-markdown-loader": "^0.4.0",
     "vue-popup": "^0.2.2",
     "vue-router": "^2.0.0-beta.2"

+ 21 - 0
scripts/cooking.demo.js

@@ -1,5 +1,6 @@
 var cooking = require('cooking');
 var path = require('path');
+var md = require('markdown-it')();
 var Components = require('../components.json');
 
 cooking.set({
@@ -51,6 +52,26 @@ cooking.add('vueMarkdown', {
     [require('markdown-it-toc-and-anchor').default, {
       anchorLinkSymbol: '',
       anchorClassName: 'anchor'
+    }],
+    [require('markdown-it-container'), 'code', {
+      validate: function(params) {
+        return params.trim().match(/^code\s+(.*)$/);
+      },
+
+      render: function (tokens, idx) {
+        var m = tokens[idx].info.trim().match(/^code\s+(.*)$/);
+
+        if (tokens[idx].nesting === 1) {
+          // opening tag
+          return '<div class="details">' +
+                    `<div class="summary">${md.utils.escapeHtml(m[1])}</div>` +
+                  '<div class="code">';
+
+        } else {
+          // closing tag
+          return '</div></div>\n';
+        }
+      }
     }]
   ],
   preprocess: function (MarkdownIt, source) {