Как добиться правильного отображения угловых скобок в коде C++ в markdown-it?

Я стараюсь использовать markdown-it.js с nodejs для рендеринга страницы уценки, содержащей некоторый код С ++.

Это код javascript, который преобразует все в теге body:

var markdownjs = require('markdown-it')({ html: true });
var body = document.getElementsByTagName("body")[0];
bodyHTML = body.innerHTML;
bodyHTML = markdownjs.render(bodyHTML);
body.innerHTML = bodyHTML

Это HTML-документ с уценкой:


<!DOCTYPE html>
<title>Hello Javascript</title>

# Hello Javascript

- test1

```cpp
    #include <iostream>

    int main(int argc, char * argv[])
    {
        std::cout << "Hello World" << std::endl;
    }
`` `

<script src="bundle.js" ></script>

Все отображается так, как я ожидал, за исключением того, что в коде C++ операторы потока / сдвига отображаются как <

2 ответа

Попробуйте избежать угловых скобок с их соответствующими компонентами.

  • &lt; за <
  • &gt; за >
    ```cpp
        #include <iostream>

        int main(int argc, char * argv[])
        {
            std::cout &lt;&lt; "Hello World" &lt;&lt; std::endl;
        }
    ```

ОК разобрался, что это было. По какой-то причине уценка - это рендеринг:< as & amp; lt; и > как & amp; gt; Мне пришлось добавить некоторые дополнительные преобразования, чтобы заменить & amp; с &.

ПРИМЕЧАНИЕ. В приведенном выше примере нет пробела между & и amp, я вставил это, потому что & + amp +; превращается в &, и я не знаю, как от него убежать.

Другие вопросы по тегам