使用Python语法高亮的HTML演示幻灯片

12
我想为我的演示文稿创建幻灯片。我的演示文稿将包含:幻灯片标题、项目符号、代码片段(使用等宽字体)、一些粗体突出的代码行、Python代码片段(带有语法高亮)。
我需要一个可以生成此类HTML(或HTML5)幻灯片的应用程序或工具,因此当我在Web浏览器中打开生成的HTML并将Web浏览器设置为全屏模式时,它将开始播放幻灯片。我更喜欢将我的演示文稿编写为具有一些标记的.txt文件,然后该工具应生成HTML。
我知道Google Docs的演示文稿功能,但它不支持Python语法高亮。
我也知道LaTeX和Beamer,但这会生成PDF而不是HTML(不是很大的问题),并且没有内置Python语法高亮。
我更喜欢使用纯净版的Google Chrome或Mozilla Firefox投影我的演示文稿。我不想在投影机上安装任何演示文稿软件(如bruce)。
是否有其他选择?
5个回答

12

感谢您编制了这个长列表。请注意,并非您提到的每个软件都支持Python源代码的语法高亮(或者至少很难找到)。 - pts
@pts:由于幻灯片上只能显示很少的代码行,语法高亮实际上并没有太大帮助。你有尝试过其中之一吗? - S.Lott

3

最近出现了slippy:使用HTML编辑您的演示文稿,并使用Python(以及许多其他语言)进行突出显示。


2

2
你绝对需要看一下landslide,这是一个Python应用程序,它允许从Markdown格式的文本创建非常漂亮的HTML5幻灯片,并支持语法高亮显示。如果想要预览其功能,请查看该项目的示例幻灯片展示,该展示是从项目的README生成的。

1

这只是你要求的一部分,但如果你想要对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">,但是类/CSS方法更加灵活。)

这可以很容易地作为幻灯片生成过程的一部分自动化,但我认为这已经足够了。


感谢提供这些信息。我知道其他工具(如pygments)可以使用<span>生成语法高亮。如果需要的话,我可以自动化整个过程。但是我现在没有时间做这个。 - pts

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接