Как расширить PageLinkHandler для приема якоря на странице
Я хочу расширить PageLinkHandler Wagtail для объединения внутренней ссылки PageChooser с ссылкой AnchorLink, чтобы шаблон выводил <a href="/mypage#myanchor".
class AnchorPageLinkHandler(PageLinkHandler):
identifier = 'page_anchor'
@staticmethod
def get_model():
return Page
@classmethod
def get_instance(cls, attrs):
return super().get_instance(attrs).specific
@classmethod
def expand_db_attributes(cls, attrs):
try:
page = cls.get_instance(attrs)
hash_id = attrs["hash_id"]
return '<a href="{}#{}">'.format(escape(
page.localized.specific.url), hash_id)
except Page.DoesNotExist:
return "<a>"
@hooks.register('register_rich_text_features')
def register_link_handler(features):
features.register_link_type(AnchorPageLinkHandler)
Я продвинулся далеко, но у меня 2 проблемы: i) page_anchor не отображается в виджете редактора ссылок, как мне включить его? ii) как мне добавить текстовый ввод hash_id в виджет, когда я включу его?