Kaynağa Gözat

Enable to write footnotes and task lists

Yuki Takei 8 yıl önce
ebeveyn
işleme
0e957fe8c1

+ 2 - 0
package.json

@@ -94,8 +94,10 @@
     "jquery.cookie": "~1.4.1",
     "markdown-it": "^8.4.0",
     "markdown-it-emoji": "^1.4.0",
+    "markdown-it-footnote": "^3.0.1",
     "markdown-it-mathjax": "^2.0.0",
     "markdown-it-plantuml": "^0.3.1",
+    "markdown-it-task-lists": "^2.1.0",
     "md5": "^2.2.1",
     "method-override": "^2.3.10",
     "mkdirp": "~0.5.1",

+ 14 - 0
resource/css/_wiki.scss

@@ -169,6 +169,20 @@ div.body {
     }
   }
 
+  // borrowed from https://www.npmjs.com/package/github-markdown-css
+  .contains-task-list {
+    .task-list-item {
+      list-style-type: none;
+    }
+    .task-list-item+.task-list-item {
+      margin-top: 3px;
+    }
+    .task-list-item input {
+      margin: 0 0.2em 0.25em -1.6em;
+      vertical-align: middle;
+    }
+  }
+
   pre.hljs {
     position: relative;
 

+ 2 - 0
resource/js/util/GrowiRenderer.js

@@ -7,6 +7,7 @@ import XssFilter     from './PreProcessor/XssFilter';
 
 import Template from './LangProcessor/Template';
 
+import CommonPluginsConfigurer from './markdown-it/common-plugins';
 import EmojiConfigurer from './markdown-it/emoji';
 import MathJaxConfigurer from './markdown-it/mathjax';
 import PlantUMLConfigurer from './markdown-it/plantuml';
@@ -26,6 +27,7 @@ export default class GrowiRenderer {
     this.postProcessors = [
     ];
     this.markdownItConfigurers = [
+      new CommonPluginsConfigurer(crowi),
       new EmojiConfigurer(crowi),
       new MathJaxConfigurer(crowi),
       new PlantUMLConfigurer(crowi),

+ 15 - 0
resource/js/util/markdown-it/common-plugins.js

@@ -0,0 +1,15 @@
+export default class CommonPluginsConfigurer {
+
+  constructor(crowi) {
+    this.crowi = crowi;
+  }
+
+  configure(md) {
+    md.use(require('markdown-it-footnote'))
+      .use(require('markdown-it-task-lists'), {
+        enabled: true,
+      })
+      ;
+  }
+
+}

+ 8 - 0
yarn.lock

@@ -3671,6 +3671,10 @@ markdown-it-emoji@^1.4.0:
   version "1.4.0"
   resolved "https://registry.yarnpkg.com/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz#9bee0e9a990a963ba96df6980c4fddb05dfb4dcc"
 
+markdown-it-footnote@^3.0.1:
+  version "3.0.1"
+  resolved "https://registry.yarnpkg.com/markdown-it-footnote/-/markdown-it-footnote-3.0.1.tgz#7f3730747cacc86e2fe0bf8a17a710f34791517a"
+
 markdown-it-mathjax@^2.0.0:
   version "2.0.0"
   resolved "https://registry.yarnpkg.com/markdown-it-mathjax/-/markdown-it-mathjax-2.0.0.tgz#ae2b4f4c5c719a03f9e475c664f7b2685231d9e9"
@@ -3679,6 +3683,10 @@ markdown-it-plantuml@^0.3.1:
   version "0.3.1"
   resolved "https://registry.yarnpkg.com/markdown-it-plantuml/-/markdown-it-plantuml-0.3.1.tgz#f338df4d691a5561364e65809b6812bcb3d8b047"
 
+markdown-it-task-lists@^2.1.0:
+  version "2.1.0"
+  resolved "https://registry.yarnpkg.com/markdown-it-task-lists/-/markdown-it-task-lists-2.1.0.tgz#4594f750f70df053d1dad68024388007c1d20783"
+
 markdown-it@^8.4.0:
   version "8.4.0"
   resolved "https://registry.yarnpkg.com/markdown-it/-/markdown-it-8.4.0.tgz#e2400881bf171f7018ed1bd9da441dac8af6306d"