Я пытаюсь показать фрагмент кода, используя Prismjs для выделения синтаксиса.
Немного информации о проекте:
Я использую lit-element, и у меня есть фрагмент кода, сохраненный в виде строки, которую я хочу показать на странице с красивой подсветкой синтаксиса (используя для этого prismjs).
Вот как выглядит фрагмент в магазине (просто строка):
Затем внутри компонента я могу без проблем отобразить его как строку, но я не могу заставить работать подсветку синтаксиса.
Я импортирую стили, а также импортирую prismjs в верхней части компонента следующим образом: import Prism from 'prismjs'
;
Для проверки я визуализирую фрагмент двумя разными способами: первым, как он сохраняется в магазине, и вторым, используя функцию prism.highlight()
.
Вот как они выглядят в интерфейсе:
и вот как я их визуализирую в своем компоненте:
<pre>
<code class="stage__code language-css">${this._selectedSnippet.code}</code>
<code class="stage__code language-css">${this._highlightedCode}</code>
</pre>
this._selectedSnippet.code
получает значение, сохраненное в магазине.
this._highlightedCode
получают значение от этого геттера:
get _highlightedCode() {
return Prism.highlight(this._selectedSnippet.code, Prism.languages.css, 'css')
}
На первом я вижу правильный фрагмент кода, но призма его не выделяет. На втором я вижу, что Prism добавила классы, необходимые для выделения кода, но затем он отображается как строка (с новой разметкой, добавленной призмой).
Есть идеи, как я могу это исправить? Спасибо!