为网页格式化Python代码

直到最近,我在blogspot.com上发布Python代码 (whitespace matters),使用的是这样的方式。

<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> 标签是不好的(除了失去颜色),因为它也会导致双新行,而一个 <code> 标签会把空白处弄乱。 我想我可以直接添加 &nbsp;

标准的答案(比如在SO上)是通过使用css(我对css了解不多)来实现语法着色或高亮,比如在之前的SO问题中讨论过的那样 此处. 我遇到的问题是,所有这些解决方案都需要从网络上的服务器加载资源。 但是如果(比如说5年后)这个资源消失了,html版本的代码就根本无法呈现。 如果我懂Javascript,我想我大概可以解决这个问题。

着色的问题本身是微不足道的,它可以通过使用 <style> 标签的各种定义。 但是解析是很难的,至少我自己尝试解析Python没有什么进展。 多行字符串是一个特别痛苦的问题。 我可以不理会那些难解的情况,只写简单的代码。

TextMate有一个命令 Create HTML from Document. 结果相当啰嗦,但可以直接粘贴到帖子里。 但如果说你有3段代码,那么就有1000行左右。 当然这也是一个文档,所以你必须在粘贴前实际剪切。

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

更新:我自己写了一个语法高亮的解析器。 也许还是有点bug,但它很简单,是一个自成一体的解决方案。 我把它贴出来了 此处. Pygments也是一个不错的选择。

解决方案:

你为什么不使用 侏儒?

本文来自投稿,不代表实战宝典立场,如若转载,请注明出处:https://www.shizhanbaodian.com/439.html

(0)
上一篇 2022年5月29日 下午8:37
下一篇 2022年5月29日 下午8:37

相关推荐

发表评论

登录后才能评论