直到最近,我使用以下内容向blogspot.com发布了Python代码(空白事项):
<div style="overflow-x: scroll ">
<table bgcolor="#ffffb0" border="0" width="100%" padding="4">
<tbody><tr><td><pre style=" hidden;font-family:monaco;">
my code here
</pre></table></div>
大约一周前,这些帖子开始获得额外的新行,因此所有这些都是双倍行距。使用简单的<pre>
标签是不好的(除了丢失颜色)b / c它还会产生双重换行,而<code>
标签会混淆空白。我想我可以添加
* 4 ---但这是HTML风格的神的不满或其他东西。
对此的标准答案(就像在SO上这样)是通过使用css(我不太了解)来获得语法着色或突出显示,例如在之前的SO问题中所讨论的{{3 }}。我遇到的问题是所有这些解决方案都需要从Web上的服务器加载资源。但是如果(从现在起5年后)资源消失了,代码的html版本根本就不会呈现。如果我知道Javascript,我想我可以解决这个问题。
着色问题本身是微不足道的,可以通过使用具有各种定义的<style>
标签来解决。但解析很难;至少我自己在尝试解析Python方面没有取得多大进展。多线串特别痛苦。我可以忽略硬案例并编写简单的代码。
TextMate有一个命令Create HTML from Document
。结果相当冗长,但可以粘贴到帖子中。但是如果你有3个代码段,那么它就像1000行或者其他东西。当然它是一个文档,所以你必须在粘贴前实际剪切。
是否有简单的Python解析器?一个更好的解决方案?
更新:我编写了自己的语法高亮解析器。也许还有一点儿童车,但这很简单,也是一个独立的解决方案。我发布了它here。 Pygments也是一个不错的选择。