Przeglądaj źródła

Use Regex to devide 'fileName' and 'showLinenumbers'

Yuki Takei 7 lat temu
rodzic
commit
5f588539c8
1 zmienionych plików z 6 dodań i 8 usunięć
  1. 6 8
      src/client/js/util/GrowiRenderer.js

+ 6 - 8
src/client/js/util/GrowiRenderer.js

@@ -167,16 +167,14 @@ export default class GrowiRenderer {
     const noborder = (!config.highlightJsStyleBorder) ? 'hljs-no-border' : '';
 
     if (langExt) {
-      const langAndFn = langExt.split(':');
-      let lang = langAndFn[0];
-      const langFn = langAndFn[1] || null;
+      // https://regex101.com/r/qGs7eZ/1
+      const match = langExt.match(/^([^:=\n]+)(=([^:=\n]*))?(:([^:=\n]+))?(=([^:=\n]*))?$/);
 
-      const citeTag = (langFn) ? `<cite>${langFn}</cite>` : '';
+      const lang = match[1];
+      const fileName = match[5] || null;
+      const showLinenumbers = (match[2] != null) || (match[6] != null);
 
-      const showLinenumbers = /=$|=\d+$|=\+$/.exec(lang)
-      if (showLinenumbers) {
-        lang = lang.substring(0, showLinenumbers.index);
-      }
+      const citeTag = (fileName) ? `<cite>${fileName}</cite>` : '';
 
       if (hljs.getLanguage(lang)) {
         try {