HTML слайды презентации с подсветкой синтаксиса Python - PullRequest
12 голосов
/ 12 ноября 2010

Я бы хотел создать слайды для своей презентации. Моя презентация будет содержать следующее: заголовок слайда, маркеры, фрагменты кода (моноширинным шрифтом), некоторые строки кода, выделенные жирным шрифтом, фрагменты кода Python (с подсветкой синтаксиса).

Мне нужно приложение или инструмент, который может генерировать такие слайды в HTML (или HTML5), поэтому, когда я открываю сгенерированный HTML в своем веб-браузере и переводю веб-браузер в полноэкранный режим, он запускает слайд-шоу. Я предпочитаю писать свою презентацию в виде .txt файла с некоторой разметкой, и тогда инструмент должен сгенерировать HTML.

Я знаю о функции представления Google Docs, но она не поддерживает подсветку синтаксиса Python.

Я также знаю о LaTeX и Beamer , но это генерировало бы PDF вместо HTML (не большая проблема) и не имеет встроенной подсветки синтаксиса Python.

Я бы предпочел проецировать свою презентацию, используя ванильный Google Chrome или Mozilla Firefox. Я не хочу устанавливать какое-либо программное обеспечение для презентаций (например, Брюс ) на проекционный компьютер.

Есть ли альтернатива?

Ответы [ 5 ]

12 голосов
/ 12 ноября 2010

Попробуйте выполнить одно из следующих действий:

  1. Текст с измененной структурой с S5

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

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

    ЕслиВы устанавливаете documentstils (предпочтителен снимок), вы получите rst2s5.py в папке инструментов.

  2. Брюс, Инструмент для презентаций

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

  3. Pandoc: универсальный конвертер документов

    http://johnmacfarlane.net/pandoc/

  4. AsciiDoc имеет возможность создавать собственные Slidy HTML

3 голосов
/ 12 ноября 2010

Совсем недавно slippy появилось: отредактируйте вашу презентацию как HTML, выделив Python (и многие другие языки).

2 голосов
/ 12 января 2012

html5slides - отличный вариант.

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

2 голосов
/ 12 ноября 2010

Вы обязательно должны взглянуть на оползень , это приложение на python, которое позволяет создавать действительно красивые слайды в HTML5 из ​​отформатированного текста уценки и поддерживает подсветку синтаксиса. Чтобы получить представление о том, что он может сделать, просто взгляните на образец слайд-шоу , сгенерированный из README .

проекта.
1 голос
/ 12 ноября 2010

Это только часть того, что вы просите, но если вы хотите сделать подсветку синтаксиса 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 вы получите:

<code><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>)

Вы можете видеть, что каждый фрагмент синтаксиса помечен <span>, который принадлежит классу, указывающему, к какому классу синтаксиса он принадлежит: затем вы можете использовать CSS, чтобы указать нужные цвета. (htmlize можно настроить для указания явных цветов вместо - <span style="color:#b22222"> - но подход класса / CSS более гибкий.)

Это можно легко автоматизировать как часть процесса создания слайдов, но я думаю, что этого достаточно для одного ответа.

...