在Blogger上设置博客的代码片段格式
我的博客托pipe在Blogger上,我经常在C
/ C#
/ Java
/ XML
等文章中发布代码片断,但是我发现代码片断“受到了重创”。
是否有任何网站可以用来事先parsing代码片段,并对格式进行sorting,将XML“ <
”转换为“ <
”等。
所以在这方面有很多问题,但是我没有直接find这个问题。
Edit:
@Rich答案,网站状态“要在您的网站上显示格式化的代码,你需要得到这个CSS样式表,并在页面的<head>
部分添加引用 。 这就是问题所在 – 您无法在Blogger AFAIK上执行此操作。
我创build了一个博客文章条目,介绍如何使用syntaxhighlighter 2.0将代码语法高亮添加到博客
这是我的博客文章:
http://www.craftyfella.com/2010/01/syntax-highlighting-with-blogger-engine.html
我希望它可以帮助你们..我对它能做什么印象深刻。
共享代码的最简单的方法是公开的要点。 只要写一个并粘贴到embedded代码。 十分简单。
要解决search引擎问题,可以使用页面上的隐藏div
,如下所示:
<div style="display:none"> content </div>
对于我的博客,我使用http://hilite.me/来格式化源代码。; 它支持大量的格式和输出,而不是干净的HTML。 但是,如果你有很多的代码片段,那么你必须做大量的复制粘贴。 为了格式化Python代码,我也使用了Pygments ( 博客文章 )。
这个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视图。
优点:简单易用,configurationless,易于重新configuration,无需额外的软件
使用SyntaxHighlighter可以很容易地完成。 在我的博客上,我已经逐步说明了如何在Blogger中设置SyntaxHighlighter 。 SyntaxHighlighter非常易于使用。 它可以让你张贴原始forms的片段,然后将其包装在如下的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”并粘贴到您select的代码中即可。 CDATA标签让你把几乎任何代码放在那里,而不用担心实体转义或其他典型的代码博客烦恼。
1.首先,备份你的博客模板
2.之后,打开您的博客模板(在编辑HTML模式)&复制在此链接给出的所有CSS </b:skin>
标签
3.在</head>
标签前粘贴followig代码
<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.保存Blogger模板。
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>
属性支持的语言列表。
这里有一个网站 ,它将格式化你的代码和吐出html,甚至包括内联样式的语法着色。 可能无法满足您的所有需求,但是一个好的开始。 如果你想扩展它,我相信他已经提供了源代码:
我创build了一个可以完成工作的工具。 你可以在我的博客上find它:
免费的在线C#代码着色器
除了着色C#代码之外,该工具还会处理所有将它们收敛到“&”的“&”符号。 和“&amp;”。 选项卡被转换为空格,以便在不同的浏览器中看起来相同。 您甚至可以使Colorizer内嵌CSS样式,以防您无法或不想在您的博客或网站中插入CSS样式表。
我使用支持Bloggerfunction的博客的SyntaxHighlighter 。 实际的网站是托pipe在我自己的服务器上,而不是Blogger的(虽然Blogger有一个选项,可以将post转到自己的网站),但是拥有自己的域名和networking托pipe服务只需要花费几个月。
它看起来像SyntaxHighlighter 2.0有一些变化,使得与Blogger更容易使用。
这些样式和Javascript的托pipe版本位于: http : //alexgorbatchev.com/pub/sh/
其实我已经使用过(还有什么;-))Vim为此:它有一个2html“插件”。 看到这里的文档 。
所以当我编辑我的代码时,我只是将其转换为HTML并将结果粘贴到Blogger的HTML编辑器。
注意:这不是很漂亮的HTML(embedded的CSS会更好),但它只是工作。
哦:它有几种语言的语法文件,使它非常有用。
我使用一个相当低的技术解决scheme。 我使用这个在线语法突出显示工具对代码进行格式化,然后将其粘贴到博客中
Emacs具体答案:就博客而言,它允许内联css。 与基于JavaScript的荧光笔的问题是,你必须与他们的配色scheme或实现自己的。 但是,就像我一样,如果你是自己的emacs配色scheme的粉丝,你可以select更好的select。 我已经破解了用于emacs的“htmlize.el”包,以添加以下四个函数…
- 博客 – htmlize缓冲区
- 博客 – htmlize区域
- 博客 – htmlize缓冲与 – 亚麻
- 博客 – htmlize区域与 – 亚麻
这些函数将在emacs的新缓冲区中输出复制粘贴准备好的html(内联样式),您可以直接在博客文章中使用它。 输出看起来与您在emacs中看到的代码完全相同(包括颜色scheme)。
这是一个链接到我的博客 ,在那里你可以find如何使用emacs的“blog-htmlize.el”的详细信息。 这可以避免使用html编码“小于”和“大于”符号。 而且,由于emacs正在做所有的突出显示和样式,所以您不必担心js库是否支持片段的语言,也不必在博主中插入您的模板代码。
您可以在这里findelisp文件 (将文件保存为blog-htmlize.el )
我在F#中推出了自己的(见这个问题),但它仍然不是完美的(我只是做正则expression式,所以我不认识类或方法名称等)。
基本上,从我所知道的情况来看,如果在Compose和HTML模式之间切换,博客编辑器有时会使用尖括号。 所以你必须粘贴到HTML模式,然后直接保存。 (我可能是错误的,现在只是尝试,似乎工作 – 浏览器依赖?)
当你有generics时,这太可怕了!
要发布您的HTML,JavaScript,C#和Java,你应该将特殊字符转换为HTML代码。 如'<'
和'>'
到>
等等。
将此代码转换器添加到iGoogle。 这将帮助您转换特殊字符。
然后添加SyntaxHighlighter 3.0.83新版本,以在博客中定制您的代码。 但是,您应该知道如何在您的博客模板中configurationsyntaxHighlighter。