我正在尝试使用 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
从此 getter中获取值:
get _highlightedCode() {
return Prism.highlight(this._selectedSnippet.code, Prism.languages.css, 'css')
}
在第一个上,我在代码块上看到了正确的片段,但 prism 没有突出显示它。在第二个中,我看到 Prism 添加了突出显示代码所需的类,但随后将其呈现为字符串(使用 prism 添加的新标记)。
关于如何解决这个问题的任何想法?谢谢!