这只是您所要求的一部分,但是如果您想要对 Python 进行语法高亮并转换为 HTML,那么您可以在 Emacs 中使用python-mode
来执行语法高亮并htmlize
转换为 HTML。
例如,您可以从
def decode_safely(s, charset='ascii'):
"""Return s decoded according to charset, but do so safely."""
try:
return s.decode(charset or 'ascii', 'replace')
except LookupError: # bogus charset
return s.decode('ascii', 'replace')
通过后htmlize
你得到:
<pre><span class="keyword">def</span> <span class="function-name">decode_safely</span>(s, charset=<span class="string">'ascii'</span>):
<span class="string">"""Return s decoded according to charset, but do so safely."""</span>
<span class="keyword">try</span>:
<span class="keyword">return</span> s.decode(charset <span class="keyword">or</span> <span class="string">'ascii'</span>, <span class="string">'replace'</span>)
<span class="keyword">except</span> <span class="type">LookupError</span>: <span class="comment"># see job002442
</span> <span class="keyword">return</span> s.decode(<span class="string">'ascii'</span>, <span class="string">'replace'</span>)
</pre>
您可以看到每条语法都标有<span>
属于某个类的 ,指示它属于哪个语法类:然后您可以使用 CSS 指定您想要的颜色。(htmlize
可以配置为指定显式颜色<span style="color:#b22222">
,但 class/CSS 方法更灵活。)
作为幻灯片生成过程的一部分,这可以很容易地自动化,但我认为这对于一个答案来说已经足够了。