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

Posted

技术标签:

【中文标题】带有 Python 语法高亮的 HTML 演示幻灯片【英文标题】:HTML presentation slides with Python syntax highlighting 【发布时间】:2010-11-12 10:54:13 【问题描述】:

我想为我的演示文稿制作幻灯片。我的演示文稿将包含以下内容:幻灯片标题、项目符号、代码 sn-ps(采用等宽字体)、一些代码行以粗体突出显示、Python 代码 sn-ps(语法突出显示)。

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

我知道 Google Docs 的演示功能,但它不支持 Python 语法高亮显示。

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

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

还有其他选择吗?

【问题讨论】:

【参考方案1】:

尝试以下方法之一:

    使用 S5 重构文本

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

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

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

    布鲁斯,演示工具

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

    Pandoc:通用文档转换器

    http://johnmacfarlane.net/pandoc/

    AsciiDoc 有一个选项可以生成自包含的Slidy HTML

【讨论】:

感谢您整理这份长长的清单。请注意,并非您提到的每个软件都支持 Python 源代码的语法高亮(或者,至少,它并不容易找到)。 @pts:由于您只能在幻灯片上显示几行代码,因此语法突出显示实际上并没有那么有用。你真的尝试过其中一种吗?【参考方案2】:

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

【讨论】:

【参考方案3】:

你一定要看看landslide,这是一个python应用程序,它允许从markdown格式的文本创建非常漂亮的HTML5幻灯片,它支持语法突出显示。要预览它的功能,只需查看从项目的README 生成的sample slideshow。

【讨论】:

【参考方案4】:

html5slides 是不错的选择。

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

【讨论】:

【参考方案5】:

这只是您所要求的一部分,但是如果您想对 Python 进行语法高亮并转换为 HTML,那么您可以在 Emacs 中使用 python-mode 来进行语法高亮和 @987654321 @ 转换为 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>

您可以看到每条语法都标有一个&lt;span&gt;,该&lt;span&gt; 属于一个类,指示它属于哪个语法类:然后您可以使用CSS 来指定您想要的颜色。 (htmlize 可以配置为指定显式颜色 - &lt;span style="color:#b22222"&gt; - 但类/CSS 方法更灵活。)

这可以作为幻灯片生成过程的一部分轻松自动化,但我认为这对于一个答案来说已经足够了。

【讨论】:

感谢您提供此信息。我知道其他可以使用&lt;span&gt; 生成语法高亮的工具(例如 pygments)。如有必要,我可以自动化整个过程。但我没有时间。

以上是关于带有 Python 语法高亮的 HTML 演示幻灯片的主要内容,如果未能解决你的问题,请参考以下文章

带有括号的 .leaf 文件的 html 高亮显示

python语法高亮使用Pygments程序

C++语法高亮html生成器

如何更改reveal.js中语法高亮的主题和语言

如何让Ultraedit支持python语法高亮

PHP print_r的替代方法,带有语法高亮显示