在使用源代码编辑 HTML 文件时,我有时会遇到这个问题:
例如
<p>C uses statement <pre>include <stdio.h></pre> to include a library</p>
我必须手动将其更改<stdio.h>
为<stdio.h<
使其正常显示。
考虑到经常在这种混合情况下工作,这种手动更改会耗费大量时间。
有什么好的解决办法吗?
您无需更改大于号“>”。它经常被逃避,但这只是一种习惯,在许多人看来是对称的。但只有小于号“<” 需要逃脱。
如果工作量太大,请考虑使用例如编辑器,在其中复制并粘贴要插入的代码并运行全局替换,替换“<” 通过<
和“&” 由&
.
避免在 HTML 中转义的唯一方法是使用xmp
元素,例如<p>C uses statement <xmp>include <stdio.h></xmp> to include a library</p>
. 然而,xmp
它是非标准的(尽管普遍支持)并且默认呈现为块,最糟糕的是,这里被解析为块元素,即<xml>
标签隐式关闭打开的p
元素,这当然会影响呈现。所以对于内联代码示例xmp
来说不是那么实用。
大多数文本编辑器,甚至Notepad
带有查找和替换选项,将您的代码粘贴到那里,然后使用查找和替换选项将所有内容更改<
为<
>
>
您可以考虑多种选择
Javascript 使用 javascript 执行以下操作:
var element = document.getElementsByClassName("code");
//get the innerHTML and change < to < and > to >
element.innerHTML = element.innerHTML.replace(/\</g,"<").replace(/\>/g,">");
这将寻找一个带有“代码”类的元素,读取它的输入并将其更改为适当的形式。
PHP 或其他服务器端语言 在 PHP 中,您可以使用 htmlspecialchars()。您可以在 PHP 中读出一个文件并在其上使用 htmlspecialchars(可能有成千上万的关于如何在线执行此操作的教程)
将 bash (或任何脚本) 与 sed 一起使用,您可以使用:
sed -e 's/\</\</g' -e 's/\>/\>/g' filename.c > newfile.html
这将获取您提供的文件(filename.c)并将所有 < 和 > 更改为适当的内容并将输出存储在 newfile.html 中。现在您可以从 newfile 中复制粘贴内容。
如果 这是一个网站,我建议你在服务器端对文本进行编码(使用 PHP 的东西)。如果是静态站点,使用 sed 可能更有用。如果每个网页只有几个字符,我建议你手动完成。(或使用所见即所得的编辑器)