带有Python语法高亮的HTML演示幻灯片

时间:2010-11-12 10:54:14

标签: python html syntax-highlighting presentation

我想为我的演示文稿创建幻灯片。我的演示文稿将包含以下内容:幻灯片标题,项目符号,代码片段(以等宽字体显示),一些代码行以粗体突出显示,Python代码片段(带语法高亮显示)。

我需要一个可以用HTML(或HTML5)生成这样的幻灯片的应用程序或工具,因此当我在Web浏览器中打开生成的HTML,并将Web浏览器置于全屏模式时,它将启动幻灯片放映。我更喜欢将我的演示文稿编写为带有一些标记的.txt文件,然后该工具应该生成HTML。

我了解Google文档的演示功能,但不支持Python语法高亮显示。

我也知道LaTeX and Beamer,但这会生成PDF而不是HTML(不是大问题),并且没有内置的Python语法高亮。

我更喜欢使用香草谷歌Chrome或Mozilla Firefox投影我的演示文稿。我不想在投影机上安装任何演示软件(例如bruce)。

有替代方案吗?

5 个答案:

答案 0 :(得分:12)

请尝试以下方法之一:

  1. 使用S5重新构建文本

    http://meyerweb.com/eric/tools/s5/

    http://docutils.sourceforge.net/docs/user/slide-shows.html

    如果您安装docutils(首选快照),您将在工具文件夹中获得rst2s5.py。

  2. 布鲁斯,演示工具

    http://code.google.com/p/bruce-tpt/

  3. Pandoc:通用文档转换器

    http://johnmacfarlane.net/pandoc/

  4. AsciiDoc可以选择生成生成自包含的Slidy HTML

答案 1 :(得分:3)

就在最近slippy出现了:将您的演示文稿编辑为HTML,并使用Python(和许多其他语言)突出显示。

答案 2 :(得分:2)

你一定要看看landslide,这是一个python应用程序,它允许从标记格式的文本在HTML5中创建非常漂亮的幻灯片,并且它支持语法高亮。要预览它可以执行的操作,只需查看项目sample slideshow生成的README

答案 3 :(得分:2)

html5slides是不错的选择。

http://code.google.com/p/html5slides/

答案 4 :(得分:1)

这只是你要求的一部分,但如果你想对Python进行语法高亮并转换为HTML,那么你可以使用python-mode在Emacs中执行此操作来进行语法高亮显示和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方法更灵活。)

这可以很容易地自动化,作为幻灯片生成过程的一部分,但我认为这足以得到一个答案。