
Недавно я установил модуль Markdown Easy для Drupal и обновился с версии 1.0 до 2.0.
Решил задокументировать свои шаги публично на случай, если они помогут другим.
На моей локальной машине я запускаю Drupal с помощью DDEV. Он создает предварительно настроенные контейнеры Docker для веб-сервера, базы данных и других необходимых служб Drupal. DDEV также устанавливает Composer и Drush, которыми мы воспользуемся ниже.
Сначала я установил версию 2.0 модуля Markdown Easy с помощью Composer:
ddev composer require drupal/markdown_easy
Если вы обновляетесь с версии 1.0, вам понадобится запустить обновление базы данных, чтобы Drupal применила требуемые изменения для новой версии. Сделать это можно с помощью команды Drush:
ddev drush updatedb
Как объясняется в статье "Переход на Markdown спустя 20 лет использования HTML", я хочу иметь возможность использовать HTML и Markdown взаимозаменяемо. По умолчанию Markdown Easy очищает весь HTML-код. Такое поведение безопасно для большинства сайтов, но это значит, что вы не сможете свободно сочетать HTML-теги и Markdown-разметку.
Чтобы изменить это поведение, мне пришлось скорректировать две настройки конфигурации. Эти настройки нигде не выставлены в административной панели Drupal намеренно. Модуль Markdown Easy стремится сохранять своё конфигурирование небольшим, чтобы оставаться верным своему названию "Easy" ("Простой"), а также придерживается философии безопасной работы по умолчанию. Если вы решили ослабить эти настройки, вы можете сделать это с помощью Drush.
ddev drush config:set markdown_easy.settings skip_html_input_stripping 1
ddev drush config:set markdown_easy.settings skip_filter_enforcement 1
Параметр skip_html_input_stripping
отключает очистку ввода в парсере Markdown CommonMark, что означает, что ваши HTML-теги останутся неизменёнными при обработке Markdown.
Параметр skip_filter_enforcement
позволяет отключить фильтрацию ввода в самой CMS Drupal. Это позволяет вам отменить фильтр "Ограничить разрешённые HTML-теги", без предупреждений от Markdown Easy.
Вы можете включить только первую настройку, если хотите позволить Markdown обрабатывать HTML, но оставить фильтрующему механизму Drupal возможность удалять нежелательные HTML-теги с помощью фильтра "Ограничить разрешённые HTML-теги". Или вы можете включить обе настройки, если хотите полностью контролировать HTML без какой-либо очистки на любом этапе.
Только учтите, что отключение очистки HTML-ввода и снятие ограничений фильтров может привести к проблемам безопасности. Отключайте эти функции только в том случае, если доверяете авторам контента и понимаете возможные риски.
Затем я проверил правильность установленных настроек:
ddev drush config:get markdown_easy.settings
Вы должны увидеть:
skip_html_input_stripping: true
skip_filter_enforcement: true
Наконец, очистите кэш:
ddev drush cache-rebuild
Затем я обновил мою существующую разметку формата Markdown. Перешёл по адресу /admin/config/content/formats/
и внёс следующие изменения:
- Установил парсер Markdown на "Smorgasbord".
- Отключил фильтр "Ограничить разрешённые HTML-теги и исправить ошибочный HTML".
- Отключил фильтр "Заменять переводы строк соответствующими HTML-тегами".
Всё готово!