markdown-它不能转义与号字符

markdown-it can not escape ampersand character

提问人:dudung 提问时间:11/10/2022 更新时间:11/10/2022 访问量:270

问:

我尝试使用 Markdown-it 解析 HTML 内容,并在 head 部分中使用以下行

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/styles/default.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.6.0/highlight.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/markdown-it/11.0.1/markdown-it.min.js "></script>

<script>
window.onload = function() {
  var mdit = window.markdownit();
 
  mdit.set({
    highlight: function (str, lang) {
      if (lang && hljs.getLanguage(lang)) {
        try {
          var code = '<pre class="hljs"><code>'
            + hljs.highlight(lang, str, true).value
            + '</code></pre>';
          return code;
        } catch (__) {}
      }
    }
  });
  
  var div = document.getElementsByClassName('markdown');
  for(var i = 0; i < div.length; i++) {
    var content = div[i].innerHTML;
    var code = document.getElementsByClassName('markdown')[i];
    code.innerHTML = mdit.render(content);
  }
}
</script>

和身体部分的这些线条

## C++
```cpp
for(var i = 0; i < 10; i++) {
  cout << i << endl;
}

产生

C++

for(var i = 0; i &lt; 10; i++) {
  cout &lt;&lt; i &lt;&lt; endl;
}

似乎函数无法转义句柄字符。我想它被翻译为 但后来被翻译成 ,所以它成为并呈现为而不是在最终结果中。render()markdownit()&<&lt;&&amp;&amp;t;&lt;<

我已经找到了解决方法

code.innerHTML = mdit.render(content).replaceAll("&amp;", "&");

但希望仍然可以通过使用 Markdown-it 的设置找到更好的答案。

JavaScript &amp; Markdown-IT

评论

0赞 Konrad 11/10/2022
在这里提问可能会得到更好的回应 github.com/markdown-it/markdown-it/issues

答: 暂无答案