サンプル
今回紹介するコードを使用しているのがこちら。
デモページ: github-markdown-editor
github: kou-pg-0131/github-markdown-editor
使用するモジュール
marked
,@types/marked
markdownをHTMLにパースhighlight.js
,@types/highlight.js
コードのシンタックスハイライト部分をパースhighlightjs
モジュールも存在しますが、別物なので間違えないように注意
npm i marked @types/marked highlight.js @types/highlight.js
サンプルコード
importmarkedfrom'marked';importhighlightjsfrom'highlight.js';marked.setOptions({highlight:function(code,lang){returnhighlightjs.highlightAuto(code,[lang]).value;},// シンタックスハイライトに使用する関数の設定pedantic:false,// trueの場合はmarkdown.plに準拠する gfmを使用する場合はfalseで大丈夫gfm:true,// GitHub Flavored Markdownを使用breaks:true,// falseにすると改行入力は末尾の半角スペース2つになるsanitize:true,// trueにすると特殊文字をエスケープするsilent:false// trueにするとパースに失敗してもExceptionを投げなくなる});constmarkdown:string=`
# Hello World
\`\`\`ruby
puts 'Hello World'
\`\`\`
<h1>Hello World</h1>
`consthtml:string=marked(markdown)console.log(html);/* =>
* <h1 id="hello-world">Hello World</h1>
* <pre><code class="language-ruby">puts <span class="hljs-string">'Hello World'</span></code></pre>
* <p><h1>Hello World</h1>
* </p>
*/