Как заставить внешние URL-адреса, вставленные в редактор трясогузки, открывать на новой вкладке? - PullRequest
0 голосов
/ 26 апреля 2018

В основном мне нужно, чтобы атрибут target="_blank" был добавлен ко всем внешним URL-адресам, вставленным в редактор wagtail Draftail richtext:

external url

In [2]: wagtail.__version__
Out[2]: '2.0.1'

РЕДАКТИРОВАТЬ-1 : Это не дубликат . wagtail версия 2 использует совершенно другой редактор richtext.

Предлагаемый ответ предлагает $('a[href^="http://"]').attr('target', '_blank'), который добавит соответствующий атрибут ко всем ссылкам на странице , которые содержат http://. Это очень неоптимальное решение, так как на странице может быть гораздо больше ссылок, которые не требуют такой обработки. Очевидно, что должно быть более адекватное исправление, особенно потому, что wagtail уже различает Internal и External ссылки в интерфейсе редактора (см. Прикрепленное изображение).

EDIT-2

Кажется, что в классе wagtail.core.rich_text.feature_registry.FeatureRegistry есть метод, который, насколько я понимаю, назначает другой обработчик для другого типа URL, однако я не вижу, что это за обработчики, как их вызывают или как изменить их?

def register_link_type(self, link_type, handler):
    self.link_types[link_type] = handler
...