如何防止博主在撰写视图中转换我的c ++源代码片段?

时间:2017-02-26 05:06:46

标签: blogger

假设我在博客文章的“撰写”标签中写下以下内容:

a->x(100)

我发布了帖子。

如果我查看帖子,那就是我想要的,基本上就是上面的代码。

问题是当我来到帖子再次编辑它时,它被改变了:

a->x(100)

这令人沮丧。

我不是HTML极客,任何简单的解决方案?

[更新] 我想这里没有简单的解决方案让像我这样的人不愿意乱用HTML。一个解决方法是,当我有一个包含代码片段的博客时,我只需在谷歌文档中编写它并在博客中引用它。

2 个答案:

答案 0 :(得分:0)

您需要使用<pre> <code>个数据包装代码,然后将其放在HTML点按的位置,而不是撰写点击

<pre>
    <code>
        a->x(100)
    </code>
</pre>

答案 1 :(得分:0)

这是因为Blogger使用的XML解析器会转义某些字符(有关详细信息,请参阅this answer)。阻止内容转义的方法是将其封闭在 -

<![CDATA[ 
 ... Your code ...
]]>

但是,当内容出现在scriptnoscript标记中时,Blogger才会尊重这一点。因此,有用的东西 -

<noscript>
  <![CDATA[
    a->x(100)
  ]]>
</noscript>

noscript标记未经浏览器呈现,因此您必须使用一些JavaScript才能显示

&#13;
&#13;
document.querySelector('noscript').insertAdjacentHTML('beforebegin','<pre><code>'+document.querySelector('noscript').textContent.replace("<![CDATA[","").replace("]]>","")+'</code></pre>');
&#13;
<noscript>
  <![CDATA[
    a->x(100)
  ]]>
</noscript>
&#13;
&#13;
&#13;

以上javascript代码段将呈现noscript标记内的内容。如果页面中有多个noscript标记,那么它将适用于循环遍历它们。