Студия разработки сайтов и приложений

Netspark.ru

OctoberCMS и украшения кода

В поставку OctoberCMS уже входят скрипты Prettify, но по умолчанию они применяются только в бэкенде. Впрочем, подключить их к постам фронт-энда не очень трудно.

Сначала нужно добавить в разметку соответствующие скрипты и стили, например, вкорячив их в scripts и styles, или просто рядом с остальными ассетами в лейауте:

{% styles %}
<link href="{{ [
            // ...
            '~/modules/system/assets/vendor/prettify/theme-desert.css',
            // ...
        ]|theme }}" rel="stylesheet">

{% scripts %}
<script src="{{ [
            // ...
            '~/modules/system/assets/vendor/prettify/run_prettify.js',
            // ...
        ]|theme }}"></script>

(многоточия приведены для иллюстрации, что в массиве можно передать и склеить много разных скриптов)

И после этого можно просто добавить в контент, генерируемый маркдауном, нужные классы в html, в котором есть форматируемые коды. Например, через стандартные фильтры вывода можно добавить в код компонента, выводящего блог-пост:

<div class="content">
{{ post.content_html | replace({'<pre>': '<pre class = "prettyprint">'}) | raw }}
</div>

А если html генерится не стандартным маркдауном, а как-то еще, то можно сразу в pre добавить класс prettyprint, и фильтр не понадобится.

Комментарии