格式化Web的Python代码

时间:2011-08-20 21:23:01

标签: python html css

直到最近,我使用以下内容向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>标签会混淆空白。我想我可以添加&nbsp; * 4 ---但这是HTML风格的神的不满或其他东西。

对此的标准答案(就像在SO上这样)是通过使用css(我不太了解)来获得语法着色或突出显示,例如在之前的SO问题中所讨论的{{3 }}。我遇到的问题是所有这些解决方案都需要从Web上的服务器加载资源。但是如果(从现在起5年后)资源消失了,代码的html版本根本就不会呈现。如果我知道Javascript,我想我可以解决这个问题。

着色问题本身是微不足道的,可以通过使用具有各种定义的<style>标签来解决。但解析很难;至少我自己在尝试解析Python方面没有取得多大进展。多线串特别痛苦。我可以忽略硬案例并编写简单的代码。

TextMate有一个命令Create HTML from Document。结果相当冗长,但可以粘贴到帖子中。但是如果你有3个代码段,那么它就像1000行或者其他东西。当然它是一个文档,所以你必须在粘贴前实际剪切。

是否有简单的Python解析器?一个更好的解决方案?

更新:我编写了自己的语法高亮解析器。也许还有一点儿童车,但这很简单,也是一个独立的解决方案。我发布了它here。 Pygments也是一个不错的选择。

2 个答案:

答案 0 :(得分:3)

为什么不使用pygments

答案 1 :(得分:0)

对我有用的是使用prettify。在HTML的顶部,添加行

<script src="https://google-code-prettify.googlecode.com/svn/loader/run_prettify.js"></script>

自动运行美化。然后使用

<code class="prettify">
... enter your code here ...
</code>
在您的HTML中

我实际上在blogspot.com上使用了这段代码;这是一个example