Для написания статей в блог, заметок, описаний и прочего текстового контента нужен текстовый редактор. В маркетплейсе MODX Revolution есть неплохой выбор редакторов: TinyMCE, TinyMCE Rich Text Editor, CKEditor. Их использование закроет 99,9% всех потребностей, а контент-менеджера не нужно обучать, так как интерфейс похож на интерфейс MS Word.
Но всё-таки есть небольшая проблема с такими редакторами - вставка кода. Не просто размещение исполняемого кода, а именно его отображение в виде текста, да ещё и с поддержкой форматирования. Это задачка не из простых.
Markdown-текст из админки
Рассмотрю на примере написания постов для блога.

Чтобы реализовать такую штуку, нужно в ресурсе поста блога, а именно в поле content, размещать текст в Markdown-формате.
Затем в шаблоне парсить его и отдавать в HTML-формате, понятном всем браузерам.
Дополнение Ace для подсветки
Чтобы писать Markdown-текст было интереснее, сделаю подсветку текста. Для этого буду использовать популярный редактор кода Ace.
- Установлю пакет Ace из маркетплейса.

- В системных настройках выберу этот пакет в качестве HTML-редактора ресурса.

Подключение репозитория через Composer
Чтобы сконвертировать Markdown в HTML, использую репозиторий на GitHub. Делаю соответствующую магию в Composer, чтобы подключить.
Сниппет конвертации Markdown
-
Создаю сниппет с названием
markdown. -
Вставляю код и сохраняю.
<?php
require $_SERVER['DOCUMENT_ROOT'] . '/vendor/autoload.php';
use FastVolt\Helper\Markdown;
// Инициализация
$markdown = new Markdown(); // или Markdown::new()
// Получаю контент для конвертации
$markdown->setContent($input);
// Возвращаю HTML
return $markdown->getHtml();
Подключение в шаблоне
В шаблоне подключаю сниппет в режиме inline.
{ $_modx->resource.content | markdown }