293

我的博客托管在 Blogger 上,我经常在C/ C#/ Java/XML等中发布代码片段,但我发现片段被“破坏”了。

是否有任何网站可以用来预先解析代码段并整理格式,将 XML“ <”转换为“ &lt;”等。

SO上有很多关于这个领域的问题,但我找不到任何直接解决这个问题的问题。

Edit:对于@Rich 的回答,网站声明“要在您的网站上显示格式化代码,您需要获取此 CSS 样式表,并在您的页面部分添加对它的引用<head>” 。这就是问题所在——你不能在 Blogger AFAIK 上做到这一点。

4

16 回答 16

254

我创建了一篇博文,解释了如何使用syntaxhighlighter 2.0向博主添加代码语法高亮

这是我的博客文章:

http://www.craftyfella.com/2010/01/syntax-highlighting-with-blogger-engine.html

我希望它对你们有帮助。我对它的功能印象深刻。

以上链接停止工作。尝试使用http://hilite.me/

于 2010-01-01T22:42:56.950 回答
132

共享代码的最简单方法是使用公共要点。只需编写一个并粘贴到嵌入代码中。十分简单。

http://gist.github.com

要解决搜索引擎问题,可以使用隐藏div在页面上,如下所示:

<div style="display:none"> content </div>
于 2011-04-10T23:30:48.863 回答
64

对于我的博客,我使用http://hilite.me/来格式化源代码。它支持许多格式和输出相当干净的 html。但是如果你有很多代码片段,那么你必须做很多复制粘贴。为了格式化 Python 代码,我还使用了Pygments博客文章)。

于 2012-01-25T19:45:18.633 回答
46

这个 css 脚本可能对所有人都有用 - 它不适用于语法突出显示,但可以很好地以原始格式呈现源代码:

 <pre style="font-family: Andale Mono, Lucida Console, Monaco, fixed, monospace; 
                color: #000000; background-color: #eee;
                font-size: 12px; border: 1px dashed #999999;
                line-height: 14px; padding: 5px; 
                overflow: auto; width: 100%">
       <code style="color:#000000;word-wrap:normal;">

            <<<<<<<YOUR CODE HERE>>>>>>>

       </code>
 </pre>

如何使用 :

  1. 将此片段粘贴到文本编辑器中,
  2. 将您的代码粘贴到 <<<<<<>>>>>> 块中。
  3. 全部复制并
  4. 粘贴到博客(或任何其他)帖子编辑器中的 HTML 视图。

优点:简单易用,配置少,易于重新配置,无需额外软件

于 2012-01-02T04:33:13.810 回答
16

这可以通过 SyntaxHighlighter 轻松完成。我的博客上有关于在 Blogger 中设置 SyntaxHighlighter 的分步说明。SyntaxHighlighter 非常易于使用。它允许您以原始形式发布片段,然后将它们包装在pre块中,例如:

<pre name="code" class="brush: erlang"><![CDATA[
-module(trim).

-export([string_strip_right/1, reverse_tl_reverse/1, bench/0]).

bench() -> [nbench(N) || N <- [1,1000,1000000]].

nbench(N) -> {N, bench(["a" || _ <- lists:seq(1,N)])}.

bench(String) ->
    {{string_strip_right,
    lists:sum([
        element(1, timer:tc(trim, string_strip_right, [String]))
        || _ <- lists:seq(1,1000)])},
    {reverse_tl_reverse,
    lists:sum([
        element(1, timer:tc(trim, reverse_tl_reverse, [String]))
        || _ <- lists:seq(1,1000)])}}.

string_strip_right(String) -> string:strip(String, right, $\n).

reverse_tl_reverse(String) ->
    lists:reverse(tl(lists:reverse(String))).
]]></pre>

只需将画笔名称更改为“python”或“java”或“javascript”并粘贴您选择的代码。CDATA 标记让您可以在其中放置几乎任何代码,而不必担心实体转义或其他典型的代码博客烦恼。

于 2010-03-30T22:52:45.377 回答
15

1. 首先,备份您的博客模板
2. 之后打开您的博客模板(在编辑 HTML 模式下)并复制 此链接中给出</b:skin>的所有 css 在标签之前
3.在标签之前 粘贴以下</head>代码

<script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shCore.js' type='text/javascript'></script>
<script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushCpp.js' type='text/javascript'></script>
<script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushCSharp.js' type='text/javascript'></script>
<script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushCss.js' type='text/javascript'></script>
<script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushDelphi.js' type='text/javascript'></script>
<script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushJava.js' type='text/javascript'></script>
<script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushJScript.js' type='text/javascript'></script>
<script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushPhp.js' type='text/javascript'></script>
<script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushPython.js' type='text/javascript'></script>
<script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushRuby.js' type='text/javascript'></script>
<script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushSql.js' type='text/javascript'></script>
<script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushVb.js' type='text/javascript'></script>
<script src='http://syntaxhighlighter.googlecode.com/svn/trunk/Scripts/shBrushXml.js' type='text/javascript'></script>

4.在标签 前粘贴以下代码</body>

<script language='javascript'>
dp.SyntaxHighlighter.BloggerMode();
dp.SyntaxHighlighter.HighlightAll('code');
</script>

5. 保存博客模板。
6. 现在语法高亮已经可以使用了,你可以将它与<pre></pre>标签一起使用。

<pre name="code">
...Your html-escaped code goes here...
</pre>

<pre name="code" class="php">
    echo "I like PHP";
</pre>

7.你可以在这里 转义你的代码。
8. 这里<class>属性支持的语言列表。

于 2012-06-01T11:36:06.200 回答
9

http://formatmysourcecode.blogspot.co.uk/ 工作正常,您只需复制、格式化、粘贴回来。

于 2012-05-09T17:58:24.683 回答
5

这是一个可以格式化您的代码并输出 html 的站点,它甚至包括用于语法着色的内联样式。可能无法满足您的所有需求,但这是一个好的开始。如果您想扩展它,我相信他已经提供了源代码:

于 2009-03-24T20:53:54.610 回答
5

我使用了相当低技术的解决方案。我使用此在线语法高亮工具格式化代码,然后将其粘贴到博客中

于 2011-07-02T21:16:13.927 回答
5

我创建了一个可以完成工作的工具。你可以在我的博客上找到它:

免费在线 C# 代码着色器

除了为您的 C# 代码着色之外,该工具还负责将所有“<”和“>”符号转换为“<” 和'>'。制表符被转换为空格,以便在不同的浏览器中看起来相同。您甚至可以使着色器内联 CSS 样式,以防您不能或不想在您的博客或网站中插入 CSS 样式表。

于 2013-03-15T11:07:45.637 回答
3

我将SyntaxHighlighter与我的 Blogger 驱动的博客一起使用。实际站点托管在我自己的服务器上而不是 Blogger 的服务器上(Blogger 可以选择 ftping 帖子到您自己的站点),但拥有自己的域和网络托管每月只需花费几美元。

于 2009-03-24T21:11:07.097 回答
3

看起来SyntaxHighlighter 2.0发生了一些变化,使其更易于与 Blogger 一起使用。

在以下位置有样式和 Javascript 的托管版本:http: //alexgorbatchev.com/pub/sh/

于 2009-11-10T23:08:46.830 回答
2

实际上我用过(还有什么;-))Vim:它有一个 2html“插件”。请参阅此处的文档

因此,当我编辑我的代码时,我只是将其转换为 HTML 并将结果粘贴到 Blogger 的 HTML 编辑器中。

注意:它不是那么漂亮的 HTML(嵌入 css 会更好),但它确实有效。

哦:它有多种语言的语法文件,这使它非常有用。

于 2009-03-24T21:00:46.683 回答
1

Emacs 具体回答:就博主而言,它允许内联 css。基于 javascript 的荧光笔的问题在于您必须接受他们的配色方案或实现自己的配色方案。但是,像我一样,如果您是自己的 emacs 配色方案的粉丝,那么您有一个更好的选择。我已经破解了 emacs 的“htmlize.el”包以添加以下四个功能......

  1. 博客 htmlize 缓冲区
  2. 博客-htmlize-区域
  3. blog-htmlize-buffer-with-linum
  4. 博客-htmlize-region-with-linum

这些函数将在 emacs 的新缓冲区中输出可复制粘贴的 html(内联样式),您可以直接在博客文章中使用。输出看起来与您在 emacs 中看到的代码完全相同(包括配色方案)。

这是我博客的链接,您可以在其中找到有关如何将“blog-htmlize.el”与 emacs 一起使用的详细信息。这也消除了对“小于”和“大于”符号的 html 编码。而且由于 emacs 正在做所有的突出显示和样式设置,您不必担心 js 库是否支持您的代码片段的语言,也不必在 blogger 中干预您的模板代码。

您可以在此处找到 elisp 文件(将文件另存为blog-htmlize.el

于 2011-06-25T08:59:41.140 回答
0

我在 F# 中推出了自己的方法(参见这个问题),但它仍然不是完美的(我只是做正则表达式,所以我不认识类或方法名等)。

基本上,据我所知,如果您在 Compose 和 HTML 模式之间切换,博客编辑器有时会吃掉您的尖括号。所以你必须粘贴到 HTML 模式然后直接保存。(我可能错了,现在刚刚尝试过,它似乎工作 - 取决于浏览器?)

当你有泛型时,这太可怕了!

于 2009-03-27T10:29:29.627 回答
0

要发布您的 html、javascript、c# 和 java,您应该将特殊字符转换为 HTML 代码。as '<'as&lt;'>'to &gt;

将此链接代码转换器添加到 iGoogle。这将帮助您转换特殊字符。

然后添加SyntaxHighlighter 3.0.83新版本,在博客中自定义你的代码。但是您应该知道如何在您的博客模板中配置 syntaxHighlighter。

于 2012-06-26T09:13:05.333 回答