У меня есть сайт с кучей «проектов», которые часто ссылаются друг на друга в своих описаниях (хранятся в TextField).
Вместо того, чтобы жестко кодировать ссылки между проектами в их описаниях, я бы хотел сохранить СУХОЕ содержание, ссылаясь на них с помощью какого-то токена, например, в поле описания:
Blabla text describing this project, this project was inspired by
{{ project "ProjectB"}} and lead to the development of {{ project "ProjectC" }}.
Который затем обрабатывается и превращается в:
Blabla text describing this project, this project was inspired by
<a href="/projects/ProjectB">ProjectB</a> and lead to the development
of <a href="/projects/ProjectC">ProjectC</a>.
Чтобы быть ясным: описание является свободным текстом, который не может содержать много ссылок на другие элементы в виде гиперссылок в различных точках текста. В CMS этот эффект обычно достигается с помощью какого-либо способа связать элементы с идентификатором узла / объекта - так что, если ссылка изменится, ссылка все равно будет сохранена.
Я считал:
- Оценка текстового поля в качестве шаблона и использование тега шаблона 'url' в описаниях. Похоже, самое простое решение, но этот шаблон тега не особенно удобен для редакторов контента, и оценка каждого описания через весь рендерер шаблонов кажется немного громоздкой.
- Реализация тега шаблона, который просто заново реализует базовую систему искусственного шаблона, чтобы просто разобрать хороший простой тег для этой цели.
- Расширение TextField для предварительной обработки описания перед его сохранением в базе данных.
Кто-нибудь делал что-нибудь подобное? Что бы вы предложили?