Skip to content

Commit e3d8c42

Browse files
committed
refactor(docgen): improve template handling and output formatting
1 parent 0089fa1 commit e3d8c42

File tree

4 files changed

+16
-54
lines changed

4 files changed

+16
-54
lines changed

scripts/docgen/cppgen.py

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,8 @@ def generate(base_dir: Path, debug: bool = True):
4747
# doxygen.printStructure()
4848

4949
# Prepare generator for future use (GeneratorAuto, SnippetGenerator)
50-
base_generator = GeneratorBase("", ignore_errors=False, debug=debug)
50+
template_dir = str(Path(__file__).parent / "templates" / "mkdoxy")
51+
base_generator = GeneratorBase(template_dir, ignore_errors=False, debug=debug)
5152

5253
generator = Generator(
5354
generatorBase=base_generator,
@@ -69,9 +70,3 @@ def generate(base_dir: Path, debug: bool = True):
6970
nodes = [node for node in root_node.children if node.kind == Kind.CLASS]
7071
generator.members(nodes, template_config)
7172
generator.classes(nodes, template_config)
72-
73-
for file in generator.fullDocFiles:
74-
log.info(file)
75-
76-
77-

scripts/docgen/generator.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,11 @@ def save(self, path: str, output: str):
1616
def member(self, node: Node, config: dict = None):
1717
path = inflection.underscore(node.name_short) + ".md"
1818

19-
output = self.generatorBase.member(node, config)
19+
output = ""
20+
output += '---\n'
21+
output += f'title: "{node.name_short}"\n'
22+
output += '---\n\n'
23+
output += self.generatorBase.member(node, config)
2024
self.save(path, output)
2125

2226
if node.is_language or node.is_group or node.is_file or node.is_dir:

scripts/docgen/pygen.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def render_object_docs(obj: Object, config: dict | None = None) -> str:
2727

2828

2929
def render_package_docs(package: str, config: dict | None = None) -> str:
30-
config = config or dict(_rendering.default_config)
30+
config = config or dict(rendering.default_config)
3131
parser = config["docstring_style"] and Parser(config["docstring_style"])
3232
extensions = griffe.load_extensions(StubOverloadExtension)
3333
loader = GriffeLoader(docstring_parser=parser, extensions=extensions)

scripts/docgen/templates/mkdoxy/member.jinja2

Lines changed: 8 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -5,40 +5,24 @@ implements: True
55
---
66
{% filter indent(config.get('indent_level', 0), True) %}
77

8-
# {{node.kind.value|title}} {{node.name_long}}
8+
## {{node.name_long}}
99
{% if node.has_templateparams %}
1010
**template <{{node.templateparams}}>**
1111
{% endif %}
1212

13-
14-
[**{{node.base_name}}**]({{node.base_url}})
15-
{%- for parent in node.parents -%}
16-
{{'**>**'|indent(1, true)}} [**{{parent.name_long if node.is_group else parent.name_short}}**]({{parent.url}})
17-
{%- endfor %}
18-
19-
{% if node.is_file and node.has_programlisting -%}
20-
[Go to the source code of this file]({{node.url_source}})
21-
{%- endif %}
22-
23-
{{node.brief}}
24-
{%- if node.has_details -%}
25-
[More...](#detailed-description)
26-
{%- endif %}
27-
28-
{% if node.has_includes -%}
29-
{%- for include in node.includes -%}
30-
* `#include {{include}}`
31-
{% endfor -%}
32-
{%- endif %}
33-
3413
{% if node.has_base_classes %}
35-
Inherits the following classes:
14+
Bases:
3615
{%- for base in node.base_classes -%}
37-
{%- if base is string %} {{base}}{%- else %} [{{base.name_long}}]({{base.url}}){%- endif -%}
16+
{%- if base is string %} `{{base}}`{%- else %} [`{{base.name_long}}`]({{base.url}}){%- endif -%}
3817
{{ ', ' if not loop.last else '' }}
3918
{%- endfor -%}
4019
{%- endif %}
4120

21+
{{node._brief.plain()}}
22+
{%- if node.has_details -%}
23+
[More...](#detailed-description)
24+
{%- endif %}
25+
4226
{% if node.has_derived_classes %}
4327
Inherited by the following classes:
4428
{%- for derived in node.derived_classes -%}
@@ -86,25 +70,4 @@ Inherited by the following classes:
8670
{%- endfor -%}
8771
{%- endfor -%}
8872

89-
{%- if node.has('public', ['define'], False) %}
90-
## Macro Definition Documentation
91-
92-
{% for member in node.query('public', ['define'], False) -%}
93-
{{ templateMemDef.render({'config': {}, 'node': member, 'configMemDef': configMemDef}) }}
94-
{%- endfor -%}
95-
{%- endif %}
96-
97-
{%- if node.has('public', ['friend'], False) -%}
98-
## Friends Documentation
99-
100-
{% for member in node.query('public', ['friend'], False) -%}
101-
{{ templateMemDef.render({'config': {}, 'node': member, 'configMemDef': configMemDef}) }}
102-
{%- endfor %}
103-
{%- endif %}
104-
105-
------------------------------
106-
{% if node.has_location -%}
107-
The documentation for this class was generated from the following file `{{node.location}}`
108-
{%- endif %}
109-
11073
{% endfilter %}

0 commit comments

Comments
 (0)