我如何把我的HTML代码,使highlight.js美化它?
我试过了
<pre>
<code>
<!-- HTML Prettify -->
<div>
<pre class="pre-code-ception"><code> haha </code></pre>
</div>
</code>
</pre>我确实把我的档案放在了末尾:
<script type="text/javascript">
hljs.initHighlightingOnLoad();
</script>但是一切都显示为普通的HTML。
发布于 2014-02-27 17:53:16
哦,我想我明白问题了。您需要在<code>元素中转义HTML,否则它将被解释为HTML而不是文本(您希望HTML按字面显示,而不是解释为网页结构的一部分)。
将每个<更改为<,将>更改为>,以及代码示例中的任何其他特殊HTML字符。(如果要动态生成页面,大多数语言都有一个实用函数来为您转义HTML。)
发布于 2017-07-24 16:09:05
没有user2932428的jQuery解决方案:
document.querySelectorAll("code").forEach(function(element) {
element.innerHTML = element.innerHTML.replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
});发布于 2015-05-27 17:03:32
要添加@Cameron关于转义html的答案:
如果您有大量希望突出显示的代码,并且不希望手动转义所有内容,一个选项是使用特雷多语法将其保存为变量,并使用htmlspecialchars() (PHP)的一个变体来转义它。Heredoc允许您将多行字符串保存为变量,而不必使用级联运算符。
那么,这只是一个echo在您的<pre><code>...</code></pre>块中使用它的问题。
使用此方法的好处是代码在文档中保持可读性。
示例:
<?php
$code = <<< EOT
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<img src="image.png" />
</body>
</html>
EOT;
?>
<pre>
<code class="html">
<?php echo htmlspecialchars( $code ); ?>
</code>
</pre>在使用本文档时要注意的一点是,关闭的EOT必须是左对齐的。
https://stackoverflow.com/questions/22076190
复制相似问题