Skip to content

Commit

Permalink
feat: Warning if it is remained nodes removed by transforms
Browse files Browse the repository at this point in the history
  • Loading branch information
attakei committed May 8, 2024
1 parent 659be33 commit 296a13b
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 29 deletions.
18 changes: 7 additions & 11 deletions sphinx_revealjs/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,7 @@
revealjs_vertical,
)
from sphinx_revealjs.themes import get_theme_path
from sphinx_revealjs.writers import (
depart_revealjs_break,
not_write,
visit_revealjs_break,
)
from sphinx_revealjs.writers import alert_unremoved_node, not_write

logger = logging.getLogger(__name__)

Expand Down Expand Up @@ -70,8 +66,8 @@ def setup(app: Sphinx):
text=(not_write, not_write),
man=(not_write, not_write),
texinfo=(not_write, not_write),
revealjs=(not_write, not_write),
dirrevealjs=(not_write, not_write),
revealjs=(alert_unremoved_node, alert_unremoved_node),
dirrevealjs=(alert_unremoved_node, alert_unremoved_node),
)
app.add_node(
revealjs_section,
Expand All @@ -80,8 +76,8 @@ def setup(app: Sphinx):
text=(not_write, not_write),
man=(not_write, not_write),
texinfo=(not_write, not_write),
revealjs=(not_write, not_write),
dirrevealjs=(not_write, not_write),
revealjs=(alert_unremoved_node, alert_unremoved_node),
dirrevealjs=(alert_unremoved_node, alert_unremoved_node),
)
app.add_node(
revealjs_break,
Expand All @@ -90,8 +86,8 @@ def setup(app: Sphinx):
text=(not_write, not_write),
man=(not_write, not_write),
texinfo=(not_write, not_write),
revealjs=(visit_revealjs_break, depart_revealjs_break),
dirrevealjs=(visit_revealjs_break, depart_revealjs_break),
revealjs=(alert_unremoved_node, alert_unremoved_node),
dirrevealjs=(alert_unremoved_node, alert_unremoved_node),
)
app.add_node(
revealjs_slide,
Expand Down
32 changes: 14 additions & 18 deletions sphinx_revealjs/writers.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,13 @@
section,
)
from sphinx.util.docutils import nodes
from sphinx.util.logging import getLogger
from sphinx.writers.html5 import HTML5Translator

from . import _patches
from .nodes import revealjs_break, revealjs_slide
from .nodes import revealjs_slide

logger = getLogger(__name__)


def has_child_sections(node: Element, name: str):
Expand Down Expand Up @@ -143,22 +146,15 @@ def not_write(self, node):
pass


def visit_revealjs_break(self, node: revealjs_break):
"""Close current section."""
self.body.append("</section>\n")


def depart_revealjs_break(self, node: revealjs_break):
"""Open as next section.
def alert_unremoved_node(self, node):
"""Note warning message about remained nodes.
If node does not have attribute 'notitle',
render title from current original section.
``revealjs_vertical``, ``revealjs_section`` and ``revealjs_break``
will be removed before process of writer by transforms.
This visitor function logs as Sphinx warning.
"""
attrs = node.attributes_str()
self.body.append(f"<section {attrs}>\n")
if "notitle" not in node.attributes:
title = find_child_section(node.parent, "title")
self.body.append(f"<h{self.section_level}>")
self.body.append(title.children[0])
self.body.append(f"</h{self.section_level}>")
self.body.append("\n")
logger.warning(
f"<{node.tagname}> is detected,"
" but it should have been removed before writing content."
" If you see this message unexpectedly, please report to GitHub."
)

0 comments on commit 296a13b

Please sign in to comment.