В OctoberCMS из коробки работает фильтр Markdown, он применяется почти везде и, к тому же, его можно легко применять к любому тексту вручную. И, что важно, фильтр автоматически применяется к записям плагина Blog перед сохранением готового к выводу html.
Если мы хотим применить к проходящему через Markdown тексту какие-то свои фильтры, можно прицепиться к событию markdown.parse
. Это событие генерируется сразу после парсинга входящего текста самим фильтром. Подключимся к нему в методе boot()
нашего плагина:
public function boot() {
Event::listen('markdown.parse', 'Author\PluginName\Classes\MarkdownExtender@parse');
}
Теперь при каждом применении фильтра Markdown будет вызываться метод parse()
класса MarkdownExtender
, который должен находиться в author/pluginname/classes/MarkdownExtender.php
. Код класса:
namespace Author\PluginName\Classes;
class MarkdownExtender {
public function parse($text, $data) {
// в $text находится оригинальный текст
// а в $data->text - результирующий
}
}
Производим все нужные манипуляции с текстом в $data->text
и сохраняем результат обратно, сверяясь с оригиналом в $text
при необходимости. Вот и всё.