Sfoglia il codice sorgente

Override renderer function

https://youtrack.weseek.co.jp/issue/GW-7856
- Create renderer rules for ordered list
Mudana-Grune 3 anni fa
parent
commit
c29d91edb3

+ 2 - 0
packages/app/src/services/renderer/growi-renderer.ts

@@ -17,6 +17,7 @@ import HeaderConfigurer from './markdown-it/header';
 import HeaderLineNumberConfigurer from './markdown-it/header-line-number';
 import HeaderWithEditLinkConfigurer from './markdown-it/header-with-edit-link';
 import LinkerByRelativePathConfigurer from './markdown-it/link-by-relative-path';
+import OrderedListConfigurer from './markdown-it/list';
 import MathJaxConfigurer from './markdown-it/mathjax';
 import PlantUMLConfigurer from './markdown-it/plantuml';
 import TableConfigurer from './markdown-it/table';
@@ -102,6 +103,7 @@ export default class GrowiRenderer {
       new DrawioViewerConfigurer(),
       new PlantUMLConfigurer(this.growiRendererConfig),
       new BlockdiagConfigurer(this.growiRendererConfig),
+      new OrderedListConfigurer(),
     ];
 
     if (this.pagePath != null) {

+ 27 - 0
packages/app/src/services/renderer/markdown-it/list.ts

@@ -0,0 +1,27 @@
+export default class OrderedListConfigurer {
+
+
+  configure(md): void {
+
+
+    md.renderer.rules.ordered_list_open = function(tokens, idx, options, env, self) {
+
+      const contents = tokens[idx + 3].content;
+      const splittedContent = contents.split('\n');
+      let newList;
+      if (splittedContent.length > 1) {
+        newList += '<ol>';
+        splittedContent.forEach((content) => {
+          newList += `<li> ${content} </li>`;
+        });
+        newList += '</ol>';
+        return newList;
+      }
+
+      return self.renderToken(tokens, idx, options);
+
+    };
+
+  }
+
+}