Skip to content

Commit

Permalink
feat(sphinx): Customize separator text from conf.py
Browse files Browse the repository at this point in the history
  • Loading branch information
attakei committed May 2, 2024
1 parent 8bc2c67 commit dc0c8af
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 1 deletion.
13 changes: 12 additions & 1 deletion src/rst_budoux/sphinx.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,31 @@
"""Implementation as Sphinx-extension."""

import budoux
from docutils.writers._html_base import HTMLTranslator
from sphinx.application import Sphinx
from sphinx.config import Config
from sphinx.util.docutils import nodes

from . import WordBreak, __version__, parse_all_sentences
from .writers import html


def _configure_visitor(app: Sphinx, config: Config):
def _visit_word_break(self: HTMLTranslator, node: WordBreak):
print("koko")
self.body.append(config.budoux_separator)

app.add_node(WordBreak, html=(_visit_word_break, html.depart_word_break))


def _insert_word_break(app: Sphinx, doctree: nodes.document) -> nodes.document:
parser = budoux.load_default_japanese_parser()
return parse_all_sentences(parser, doctree)


def setup(app: Sphinx): # noqa: D103
app.add_node(WordBreak, html=(html.visit_word_break, html.depart_word_break))
app.add_config_value("budoux_separator", "\u200b", "env")
app.connect("config-inited", _configure_visitor)
app.connect("doctree-read", _insert_word_break)
return {
"version": __version__,
Expand Down
10 changes: 10 additions & 0 deletions tests/test_sphinx.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,3 +17,13 @@ def test_parsed_document(app: SphinxTestApp):
html = app.outdir / "ja.html"
data = html.read_text()
assert "\u200b" in data


@pytest.mark.sphinx("html", confoverrides={"budoux_separator": "<wbr>"})
def test_change_separator(app: SphinxTestApp):
"""Test that it passes with rst-budoux extension."""
app.build()
html = app.outdir / "ja.html"
data = html.read_text()
assert "\u200b" not in data
assert "<wbr>" in data

0 comments on commit dc0c8af

Please sign in to comment.