【发布时间】:2022-11-17 22:16:39
【问题描述】:
我有一个 Django 网站,我想在其中显示带有语法高亮显示的代码块。
我已经安装了 highlight.js 并按照他们的说明将样式和 js 注入到 html 中,在本例中为 base.html:
...
<link rel="stylesheet" href="{% static 'highlight/styles/default.min.css' %}">
<script src="{% static 'highlight/highlight.min.js' %}"></script>
<script>hljs.highlightAll();</script>
然后我使用破折号 html 组件将代码添加到某些视图:
...
html.Div([html.H3(title),
html.Pre(html.Code(code, className=f'language-{lang}'))])
该代码未突出显示语法。不知道如何解决这个问题。
编辑:如果将 <pre><code>...</pre><code> 元素硬编码到将应用 highlight.js 的 html 模板中,检查该元素会显示代码块中每个单词的各种转换。但是,如果 HTML 是由破折号生成的,如上所示,它只是一个普通的 <pre><code>...</pre><code> 块。如何让 highlight.js 应用于破折号生成的 HTML?
【问题讨论】:
-
这看起来更像是一个 Javascript 问题,因此我建议使用浏览器和 Web 开发人员工具调试此 HTML 页面。
-
我应该如何调试?我在控制台上没有看到任何错误。
标签: javascript python html css django