Просмотр исходного кода

Merge pull request #769 from yaodingyd/master

add systax for showing line number
Yuki Takei 7 лет назад
Родитель
Сommit
2e78e3fe3e
1 измененных файлов с 9 добавлено и 4 удалено
  1. 9 4
      src/client/js/util/GrowiRenderer.js

+ 9 - 4
src/client/js/util/GrowiRenderer.js

@@ -168,15 +168,20 @@ export default class GrowiRenderer {
 
 
     if (langExt) {
     if (langExt) {
       const langAndFn = langExt.split(':');
       const langAndFn = langExt.split(':');
-      const lang = langAndFn[0];
+      let lang = langAndFn[0];
       const langFn = langAndFn[1] || null;
       const langFn = langAndFn[1] || null;
 
 
       const citeTag = (langFn) ? `<cite>${langFn}</cite>` : '';
       const citeTag = (langFn) ? `<cite>${langFn}</cite>` : '';
+
+      const showLinenumbers = /=$|=\d+$|=\+$/.exec(lang)
+      if (showLinenumbers) {
+        lang = lang.substring(0, showLinenumbers.index);
+      }
+
       if (hljs.getLanguage(lang)) {
       if (hljs.getLanguage(lang)) {
         try {
         try {
-          //// TODO activate `hljs.lineNumbersValue` when https://github.com/weseek/growi/issues/457 is fixed
-          // return `<pre class="hljs ${noborder}">${citeTag}<code class="language-${lang}">${hljs.lineNumbersValue(hljs.highlight(lang, code, true).value)}</code></pre>`;
-          return `<pre class="hljs ${noborder}">${citeTag}<code class="language-${lang}">${hljs.highlight(lang, code, true).value}</code></pre>`;
+          const highlightCode = showLinenumbers ? hljs.lineNumbersValue(hljs.highlight(lang, code, true).value) : hljs.highlight(lang, code, true).value;
+          return `<pre class="hljs ${noborder}">${citeTag}<code class="language-${lang}">${highlightCode}</code></pre>`;
         }
         }
         catch (__) {
         catch (__) {
           return `<pre class="hljs ${noborder}">${citeTag}<code class="language-${lang}">${code}}</code></pre>`;
           return `<pre class="hljs ${noborder}">${citeTag}<code class="language-${lang}">${code}}</code></pre>`;