Необходимо включить расширение блоков кода , которое не является стандартной функцией уценки.В определении фильтра сделайте следующее:
htmlversion = markdown2.markdown(markdown_text, extras=['fenced-code-blocks'])
Обратите внимание на добавление аргумента ключевого слова extras
, переданного в markdown2.markdown
.Если вы хотите, чтобы подсветка синтаксиса также работала, вам нужно будет установить pygments
и копию соответствующих CSS-файлов для определения стилей подсветки.
У меня нет опыта работы с библиотекой Markdown2, и я никогда не использовал ее.Так как я могу быть уверен, что это правильно?Обратите внимание, что блок изолированного кода:
```python
name = "David"
age = 10
```
обрабатывался по адресу:
<p><code>python
name = "David"
age = 10
</code></p>
Все содержимое блока изолированного кода, включая идентификатор языка, заключено во встроенный кодspan (<p><code>
), а не кодовый блок (<pre><code>
).Это говорит о том, что синтаксический анализатор Markdown интерпретирует обратные пометки как кодовый диапазон , а не кодовый блок.Поскольку блоки изолированного кода не являются частью исходных правил разметки , мы можем только предположить, что синтаксический анализатор, как и большинство, не поддерживает блоки изолированного кода по умолчанию.На самом деле, быстрая проверка документации показывает, что блоки работающего кода должны быть включены через расширение для их работы.