Skip to content

Commit

Permalink
Fix an error in RailroadDiagramNode implementation
Browse files Browse the repository at this point in the history
Fix #15
  • Loading branch information
taminomara committed Dec 19, 2022
1 parent 11c8c38 commit 169ca43
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 5 deletions.
8 changes: 6 additions & 2 deletions sphinx_a4doc/autodoc_directive.py
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,9 @@ def make_rule(self, rule: RuleBase) -> List[docutils.nodes.Node]:
):
settings = dataclasses.replace(settings, end_class=EndClass.COMPLEX)
desc_content.append(
RailroadDiagramNode(dia, settings, grammar)
RailroadDiagramNode(
'', diagram=dia, options=settings, grammar=grammar
)
)

self.render_docs(rule.position.file, docs, desc_content)
Expand Down Expand Up @@ -472,7 +474,9 @@ def run(self):
settings = self.diagram_settings

doc_node.append(
RailroadDiagramNode(dia, settings, grammar)
RailroadDiagramNode(
'', diagram=dia, options=settings, grammar=grammar
)
)

self.render_docs(rule.position.file, docs, doc_node)
Expand Down
25 changes: 22 additions & 3 deletions sphinx_a4doc/diagram_directive.py
Original file line number Diff line number Diff line change
Expand Up @@ -92,8 +92,23 @@ def resolve(self, text: str, href: Optional[str], title_is_weak: bool):


class RailroadDiagramNode(docutils.nodes.Element, docutils.nodes.General):
def __init__(self, diagram: dict, options: DiagramSettings, grammar: str):
super().__init__('', diagram=diagram, options=options, grammar=grammar)
def __init__(
self,
rawsource='',
*args,
diagram: dict,
options: DiagramSettings,
grammar: str,
**kwargs
):
super().__init__(
rawsource,
*args,
diagram=diagram,
options=options,
grammar=grammar,
**kwargs
)

@staticmethod
def visit_node_html(self: sphinx.writers.html.HTMLTranslator, node):
Expand Down Expand Up @@ -390,7 +405,11 @@ def run(self):
line=self.lineno
)
]
return [RailroadDiagramNode(content, self.settings, grammar)]
return [
RailroadDiagramNode(
'', diagram=content, options=self.settings, grammar=grammar
)
]

def get_content(self):
return yaml.safe_load('\n'.join(self.content))
Expand Down

0 comments on commit 169ca43

Please sign in to comment.