<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                文件路徑:/src/service/marked.js ~~~ const marked = require("marked"); const markToc = require("markdown-toc"); const highlight = require("highlight.js"); /** * Markdown文檔轉換相關的服務 */ export default class extends think.Service { /** * generate toc name * @param {String} name [] * @return {String} [] */ generateTocName(name) { name = name .trim() .replace(/\s+/g, "") .replace(/\)/g, "") .replace(/[(,]/g, "-") .toLowerCase(); if (/^[\w-]+$/.test(name)) { return name; } return `toc-${think.md5(name).slice(0, 3)}`; } generateToc(content) { const tocContent = marked(markToc(content).content).replace( /<a\s+href="#([^"]+)">([^<>]+)<\/a>/g, (a, b, c) => { return `<a href="#${this.generateTocName(c)}">${c}</a>`; } ); return tocContent; } /** * markdown to html * @return {} [] */ markdownToHtml(content, hasToc = false, tocClass = "toc") { const renderer = new marked.Renderer(); let markedContent = marked(content, { // breaks: true, // headerIds: true, highlight(code) { return highlight.highlightAuto(code).value; }, renderer: renderer, }).replace(/<h(\d)[^<>]*>(.*?)<\/h\1>/g, (a, b, c) => { if (b | (0 === 2)) { return `<h${b} id="${this.generateTocName(c)}">${c}</h${b}>`; } return `<h${b} id="${this.generateTocName( c )}"><a class="anchor" href="#${this.generateTocName( c )}"></a>${c}</h${b}>`; }); if (hasToc) { const tocContent = this.generateToc(content); markedContent = markedContent.replace( /<h(\d)[^<>]*>([^<>]+)<\/h\1>/, (a, b, c) => { return `${a}<div class="${tocClass}">${tocContent}</div>`; } ); } return markedContent; //Highlight HTML content } } ~~~ ### 代碼說明 1、記住要安裝模塊 ~~~ cnpm i marked --save cnpm i markdown-toc --save cnpm i highlight.js --save ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看