Как отредактировать правило конвертера формата внешних ссылок в редакторе draftail cms wagtail
Когда кто-то добавляет внешнюю ссылку в Wagtail CMS, у него должна быть возможность выбрать, сделать ли ссылку 'nofollow' или 'noreferrer'. Чтобы добиться этого, я унаследовал существующую форму ссылок, и код представлен здесь
class CustomExternalLinkChooserForm(ExternalLinkChooserForm):
rel = forms.ChoiceField(
choices=[
("noreferrer", "Noreferrer"),
("nofollow", "Nofollow"),
],
required=False,
label=_("Rel Attribute"),
)
я также унаследовал вид
class CustomExternalLinkView(ExternalLinkView):
form_class = CustomExternalLinkChooserForm
я зарегистрировал это в wagtail hooks, поэтому администратор принимает это за переопределение основного вида
@hooks.register("register_admin_urls")
def register_custom_external_link_view():
return [
path(
"admin/choose-external-link/",
CustomExternalLinkView.as_view(),
name="wagtailadmin_choose_page_external_link",
)
]
При использовании вышеуказанного, он дает мне такой вывод, но основная проблема заключается в том, что когда редактор Draftail rich text сохраняет ссылку в базе данных, он не добавляет атрибут rel в href url. Как я могу решить эту проблему?
Вам также потребуется настроить обработчики ссылок. В документации есть пример того, как добавить nofollow ко всем ссылкам. Вам нужно будет изменить его, чтобы он принимал ваш динамический атрибут. https://docs.wagtail.org/en/stable/extending/rich_text_internals.html#registering-rewrite-handlers