首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SyntaxHighlighter将<>符号视为HTML标记

SyntaxHighlighter将<>符号视为HTML标记
EN

Stack Overflow用户
提问于 2012-12-14 11:15:59
回答 3查看 464关注 0票数 2

这张图片描述了我的问题,这是一段C代码,如下所示。

代码语言:javascript
复制
<pre class="brush: cpp">
#include <stdio.h>

int main() {
    printf("Hello world<imnew>");

    return 0;
}
</pre>

我得到的节点输出如下所示。

这一切为什么要发生?我怎么才能修复它?

EN

回答 3

Stack Overflow用户

发布于 2013-05-23 19:49:56

我也有同样的问题,尽管我没有检查“更正错误并截断HTML”过滤器。但我找到了一个时间解决方案,首先将小于字符转义为<

代码语言:javascript
复制
<pre class="brush:cpp">
 #include &lt;iostream> 

  using namespace std;
  void main()
   {
   cout << "Hello World!" << endl;   cout << "Welcome to C++ Programming" << endl; }
</pre>

或者,您可以生成custom filter来转义大于和小于sembols的值来&gt;一个&lt;

票数 2
EN

Stack Overflow用户

发布于 2012-12-18 23:38:58

这是在语法荧光笔输入筛选器之后执行的“更正有故障且被截断的HTML”输入筛选器的问题。从“更正错误并截断HTML”输入过滤器中执行的代码如下所示。

代码语言:javascript
复制
return filter_dom_serialize(filter_dom_load($text));

我尝试执行以下代码。

代码语言:javascript
复制
$text = <<<HTML
<pre class="brush: cpp">
#include <stdio.h>

int main() {
    printf("Hello world<imnew>");

    return 0;
}
</pre>
HTML;

print filter_dom_serialize(filter_dom_load($text));

我得到的输出如下所示。

代码语言:javascript
复制
<pre class="brush: cpp">
#include <stdio.h>

int main() {
    printf("Hello world<imnew>");

    return 0;
}
</imnew></stdio.h></pre>

原因就是<stdio.h><imnew>被解释为标签,它们在</pre>之前关闭。语法高亮应该避开代码中发现的任何<>,以避免出现这样的问题。

票数 1
EN

Stack Overflow用户

发布于 2015-08-06 21:02:06

除了@guneysus回答之外,将所有<更改为<也是有效的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13872145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档