Grav CMS и ссылки с параметрами
Ко мне обратился пользователь Grav CMS с вопросом о том, почему система управления контентом портит ссылки с параметрами в содержании страниц веб-сайта и как это предотвратить. Если эти вопросы возникли у одного пользователя, существует вероятность, что возникнут и у других, поэтому отвечаю этой заметкой.
Система управления контентом Grav CMS действительно может портить ссылки в содержании страниц, но делает это непреднамеренно и при определённых условиях. Причина этого в логике работы встроенного Markdown парсера ссылок. Что это за логика и при каких условиях ссылка становится испорченной?
Markdown парсер Grav CMS обрабатывает все встреченные ссылки в разметке Markdown, считая параметры class, id, rel и target в адресе ссылки атрибутами для формирования HTML кода ссылки, не имеющими отношения непосредственно к адресу ссылки. В результате работы парсера перечисленные параметры исключаются из адреса ссылки. Примеры ссылок до и после обработки парсером ниже.
[Страница 1](/index.php?id=page-1&class=data)
<a href="/index.php" id="page-1" class="data">Страница 1</a>
Как обойти такое поведение парсера Markdown в Grav CMS, если адреса ссылок содержат параметры class, id, rel или target? Есть два варианта:
- Задавать ссылки с перечисленными параметрами через HTML код;
- Добавлять к адресам ссылок специальный параметр
noprocess
, отключающий разбор парсером параметров в адресах ссылок.
Прочитать подробнее о работе Grav CMS со ссылками, параметрами и атрибутами можно в официальной документации в разделе Link Attributes.