mirror of
https://github.com/YosysHQ/yosys
synced 2025-04-16 13:58:47 +00:00
autocmd_rst: autodoc for generated RST
Adds `autocmd_rst` directive, which effectively calls `autocmd` for the same command, but wraps it in a code-block in order to render the raw RST generated.
This commit is contained in:
parent
97b9a4c095
commit
b4ccaf8c08
|
@ -403,11 +403,35 @@ class YosysCmdDocumenter(YosysCmdGroupDocumenter):
|
|||
|
||||
return False, []
|
||||
|
||||
class YosysCmdRstDocumenter(YosysCmdDocumenter):
|
||||
objtype = 'cmd_rst'
|
||||
priority = 0
|
||||
|
||||
@classmethod
|
||||
def can_document_member(cls, *args) -> bool:
|
||||
return False
|
||||
|
||||
def add_directive_header(self, sig):
|
||||
source_name = self.object.source_file
|
||||
cmd = self.object.name
|
||||
self.add_line(f'.. code-block:: rst', source_name)
|
||||
self.add_line(f' :caption: Generated rst for ``.. autocmd:: {cmd}``', source_name)
|
||||
|
||||
def add_content(self, more_content):
|
||||
source_name = self.object.source_file
|
||||
cmd = self.object.name
|
||||
self.domain = 'cmd'
|
||||
super().add_directive_header(cmd)
|
||||
self.add_line('', source_name)
|
||||
self.indent += self.content_indent
|
||||
super().add_content(more_content)
|
||||
|
||||
def setup(app: Sphinx) -> dict[str, Any]:
|
||||
app.add_config_value('cmds_json', False, 'html', [Path, PosixPath, WindowsPath])
|
||||
app.setup_extension('sphinx.ext.autodoc')
|
||||
app.add_autodocumenter(YosysCmdGroupDocumenter)
|
||||
app.add_autodocumenter(YosysCmdDocumenter)
|
||||
app.add_autodocumenter(YosysCmdRstDocumenter)
|
||||
return {
|
||||
'version': '2',
|
||||
'parallel_read_safe': True,
|
||||
|
|
Loading…
Reference in a new issue