我的博客托管在Blogger上,我经常用C / c# / Java / XML等语言发布代码片段,但我发现这些代码片段“支离破碎”。
是否有任何网站,我可以用来事先解析代码片段,整理格式,将XML“<”转换为“<”等。
在这个领域有很多关于SO的问题,但我找不到任何直接解决这个问题的问题。
编辑:对于@Rich答案,网站声明“要在您的网站上显示格式化的代码,您需要获得此CSS样式表,并在页面的<head>部分中添加对它的引用”。这就是问题所在——你不能在博客AFAIK上这样做。
我的博客托管在Blogger上,我经常用C / c# / Java / XML等语言发布代码片段,但我发现这些代码片段“支离破碎”。
是否有任何网站,我可以用来事先解析代码片段,整理格式,将XML“<”转换为“<”等。
在这个领域有很多关于SO的问题,但我找不到任何直接解决这个问题的问题。
编辑:对于@Rich答案,网站声明“要在您的网站上显示格式化的代码,您需要获得此CSS样式表,并在页面的<head>部分中添加对它的引用”。这就是问题所在——你不能在博客AFAIK上这样做。
当前回答
这个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>
使用方法:
将此片段粘贴到文本编辑器中, 将代码粘贴到<<<<<<>>>>>>块中。 复制全部和 粘贴到HTML视图在博客(或任何其他)后编辑器。
优点:简单易用,少配置,容易重新配置,不需要额外的软件
其他回答
我已经创建了一篇博客文章,解释如何使用syntaxhighlighter 2.0向博客添加代码语法高亮显示
以下是我的博文:
http://www.craftyfella.com/2010/01/syntax-highlighting-with-blogger-engine.html
我对它的能力印象深刻。
上面的链接停止工作。 尝试使用http://hilite.me/
使用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标记让您可以在其中放入几乎任何代码,而不用担心实体转义或其他代码博客的典型烦恼。
看起来SyntaxHighlighter 2.0做了一些改变,使它更容易与Blogger一起使用。
样式和javascript的托管版本在:http://alexgorbatchev.com/pub/sh/
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>属性支持的语言列表。
我在f#中编写了自己的代码(参见这个问题),但它仍然不是完美的(我只是做正则表达式,所以我不识别类或方法名等)。
基本上,据我所知,如果你在撰写模式和HTML模式之间切换,博客编辑器有时会吃掉你的尖括号。所以你必须粘贴到HTML模式,然后直接保存。(我可能是错的,现在刚刚尝试,它似乎工作-依赖浏览器?)
当你有泛型时,这是可怕的!