diff --git a/xblocks_contrib/html/__init__.py b/xblocks_contrib/html/__init__.py
index 5b8118f9..0fe36653 100644
--- a/xblocks_contrib/html/__init__.py
+++ b/xblocks_contrib/html/__init__.py
@@ -2,4 +2,4 @@
Init for the HtmlBlock.
"""
-from .html import HtmlBlock
+from .html import HtmlBlock, HtmlBlockMixin
diff --git a/xblocks_contrib/html/html.py b/xblocks_contrib/html/html.py
index ab1d9fa3..282e6292 100644
--- a/xblocks_contrib/html/html.py
+++ b/xblocks_contrib/html/html.py
@@ -143,13 +143,12 @@ def stringify_children(node):
# This makes our block more resilient. It won't crash in test environments
# where the user service might not be available.
@XBlock.wants("user")
-class HtmlBlock(LegacyXmlMixin, XBlock):
+class HtmlBlockMixin(LegacyXmlMixin, XBlock):
"""
- The HTML XBlock.
+ The HTML XBlock mixin.
+ This provides the base class for all Html-ish blocks (including the HTML XBlock).
"""
- # Indicates that this XBlock has been extracted from edx-platform.
- is_extracted = True
display_name = String(
display_name=_("Display Name"),
help=_("The display name for this component."),
@@ -565,3 +564,12 @@ def definition_to_xml(self, resource_fs):
def non_editable_metadata_fields(self):
"""`use_latex_compiler` should not be editable in the Studio settings editor."""
return super().non_editable_metadata_fields + [HtmlBlock.xml_attributes, HtmlBlock.use_latex_compiler]
+
+
+class HtmlBlock(HtmlBlockMixin): # pylint: disable=abstract-method
+ """
+ The HTML XBlock.
+ """
+
+ # Indicates that this XBlock has been extracted from edx-platform.
+ is_extracted = True