diff --git a/wagtail/core/rich_text/feature_registry.py b/wagtail/core/rich_text/feature_registry.py index a376a83d1..9bef84be0 100644 --- a/wagtail/core/rich_text/feature_registry.py +++ b/wagtail/core/rich_text/feature_registry.py @@ -68,16 +68,16 @@ class FeatureRegistry: except KeyError: return None - def register_link_type(self, link_type, handler): - self.link_types[link_type] = handler + def register_link_type(self, handler): + self.link_types[handler.identifier] = handler def get_link_types(self): if not self.has_scanned_for_features: self._scan_for_features() return self.link_types - def register_embed_type(self, embed_type, handler): - self.embed_types[embed_type] = handler + def register_embed_type(self, handler): + self.embed_types[handler.identifier] = handler def get_embed_types(self): if not self.has_scanned_for_features: diff --git a/wagtail/core/rich_text/pages.py b/wagtail/core/rich_text/pages.py index d5f8bbdfb..635553c74 100644 --- a/wagtail/core/rich_text/pages.py +++ b/wagtail/core/rich_text/pages.py @@ -5,6 +5,8 @@ from wagtail.core.rich_text import LinkHandler class PageLinkHandler(LinkHandler): + identifier = 'page' + @staticmethod def get_model(): return Page diff --git a/wagtail/core/wagtail_hooks.py b/wagtail/core/wagtail_hooks.py index 800f94a06..b96ae3355 100644 --- a/wagtail/core/wagtail_hooks.py +++ b/wagtail/core/wagtail_hooks.py @@ -40,7 +40,7 @@ def register_core_features(features): features.default_features.append('hr') features.default_features.append('link') - features.register_link_type('page', PageLinkHandler) + features.register_link_type(PageLinkHandler) features.default_features.append('bold') diff --git a/wagtail/documents/rich_text/__init__.py b/wagtail/documents/rich_text/__init__.py index f0a307e51..4e59c2f36 100644 --- a/wagtail/documents/rich_text/__init__.py +++ b/wagtail/documents/rich_text/__init__.py @@ -8,6 +8,8 @@ from wagtail.documents.models import get_document_model # Front-end conversion class DocumentLinkHandler(LinkHandler): + identifier = 'document' + @staticmethod def get_model(): return get_document_model() diff --git a/wagtail/documents/wagtail_hooks.py b/wagtail/documents/wagtail_hooks.py index 8b160213a..c976acada 100644 --- a/wagtail/documents/wagtail_hooks.py +++ b/wagtail/documents/wagtail_hooks.py @@ -68,7 +68,7 @@ def editor_js(): @hooks.register('register_rich_text_features') def register_document_feature(features): - features.register_link_type('document', DocumentLinkHandler) + features.register_link_type(DocumentLinkHandler) features.register_editor_plugin( 'hallo', 'document-link', diff --git a/wagtail/embeds/rich_text/__init__.py b/wagtail/embeds/rich_text/__init__.py index b852c16a4..399d2b58c 100644 --- a/wagtail/embeds/rich_text/__init__.py +++ b/wagtail/embeds/rich_text/__init__.py @@ -7,6 +7,8 @@ from wagtail.embeds.models import Embed # Front-end conversion class MediaEmbedHandler(EmbedHandler): + identifier = 'media' + @staticmethod def get_model(): return Embed diff --git a/wagtail/embeds/wagtail_hooks.py b/wagtail/embeds/wagtail_hooks.py index b767a7016..40922fe14 100644 --- a/wagtail/embeds/wagtail_hooks.py +++ b/wagtail/embeds/wagtail_hooks.py @@ -34,7 +34,7 @@ def editor_js(): @hooks.register('register_rich_text_features') def register_embed_feature(features): # define a handler for converting tags into frontend HTML - features.register_embed_type('media', MediaEmbedHandler) + features.register_embed_type(MediaEmbedHandler) # define a hallo.js plugin to use when the 'embed' feature is active features.register_editor_plugin( diff --git a/wagtail/images/rich_text/__init__.py b/wagtail/images/rich_text/__init__.py index 429c439dc..7aa3f75b7 100644 --- a/wagtail/images/rich_text/__init__.py +++ b/wagtail/images/rich_text/__init__.py @@ -8,6 +8,8 @@ from wagtail.images.formats import get_image_format # Front-end conversion class ImageEmbedHandler(EmbedHandler): + identifier = 'image' + @staticmethod def get_model(): return get_image_model() diff --git a/wagtail/images/wagtail_hooks.py b/wagtail/images/wagtail_hooks.py index be27e7a8a..6d348a8e8 100644 --- a/wagtail/images/wagtail_hooks.py +++ b/wagtail/images/wagtail_hooks.py @@ -61,7 +61,7 @@ def editor_js(): @hooks.register('register_rich_text_features') def register_image_feature(features): # define a handler for converting tags into frontend HTML - features.register_embed_type('image', ImageEmbedHandler) + features.register_embed_type(ImageEmbedHandler) # define a hallo.js plugin to use when the 'image' feature is active features.register_editor_plugin(