Это только часть того, что вы просите, но если вы хотите сделать подсветку синтаксиса 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 более гибкий.)
Это можно легко автоматизировать как часть процесса создания слайдов, но я думаю, что этого достаточно для одного ответа.