summaryrefslogtreecommitdiff
path: root/docs/refman
diff options
context:
space:
mode:
authorSwagtoy <me@ow.swag.toys>2025-10-22 19:30:37 -0400
committerEli Schwartz <eschwartz93@gmail.com>2025-11-18 17:04:40 -0500
commit3f1933139dd11151c2eb166a10580eb05c90955f (patch)
tree542fe94f663ee928cba7a88a1b27037a53f88c9a /docs/refman
parent1e99097f9be5b64d53bc5aab5c739962d6ce4c38 (diff)
downloadmeson-3f1933139dd11151c2eb166a10580eb05c90955f.tar.gz
docs: Generate functions pages
Currently meson generates a huge page for functions. For now we'll keep compatibility with it, but it's a lot cleaner to have separate pages as well as it makes it easier for search engines to parse as well as sending direct links Signed-off-by: Swagtoy <me@ow.swag.toys>
Diffstat (limited to 'docs/refman')
-rw-r--r--docs/refman/generatormd.py9
-rw-r--r--docs/refman/model.py3
2 files changed, 8 insertions, 4 deletions
diff --git a/docs/refman/generatormd.py b/docs/refman/generatormd.py
index 854712d53..ebf57fa5e 100644
--- a/docs/refman/generatormd.py
+++ b/docs/refman/generatormd.py
@@ -44,6 +44,7 @@ _OBJ_ID_MAP = {
ObjectType.ELEMENTARY: 'elementary',
ObjectType.BUILTIN: 'builtin',
ObjectType.MODULE: 'module',
+ ObjectType.FUNCTIONS: 'functions',
ObjectType.RETURNED: 'returned',
}
@@ -299,7 +300,7 @@ class GeneratorMD(GeneratorBase):
def _write_functions(self) -> None:
data = {'functions': [self._gen_func_or_method(x) for x in self.functions]}
- self._write_template(data, 'root.functions')
+ self._write_template(data, f'root.{_OBJ_ID_MAP[ObjectType.FUNCTIONS]}')
def _root_refman_docs(self) -> None:
def gen_obj_links(objs: T.List[Object]) -> T.List[T.Dict[str, str]]:
@@ -330,6 +331,7 @@ class GeneratorMD(GeneratorBase):
self._write_template(data, 'root')
self._write_template({**dummy, 'name': 'Elementary types'}, f'root.{_OBJ_ID_MAP[ObjectType.ELEMENTARY]}', 'dummy')
self._write_template({**dummy, 'name': 'Builtin objects'}, f'root.{_OBJ_ID_MAP[ObjectType.BUILTIN]}', 'dummy')
+ self._write_functions()
self._write_template({**dummy, 'name': 'Returned objects'}, f'root.{_OBJ_ID_MAP[ObjectType.RETURNED]}', 'dummy')
if self.enable_modules:
@@ -339,7 +341,8 @@ class GeneratorMD(GeneratorBase):
def generate(self) -> None:
mlog.log('Generating markdown files...')
with mlog.nested():
- self._write_functions()
+ for fun in self.functions:
+ self._write_template(self._gen_func_or_method(fun), f'root.{_OBJ_ID_MAP[ObjectType.FUNCTIONS]}.{fun.name}', 'func')
for obj in self.objects:
if not self.enable_modules and (obj.obj_type == ObjectType.MODULE or obj.defined_by_module is not None):
continue
@@ -383,7 +386,7 @@ class GeneratorMD(GeneratorBase):
data[f'{obj.name}.{m.name}'] = f'{obj_file}#{obj.name}{m.name}'
# Functions
- funcs_file = self._gen_filename('root.functions', extension='html')
+ funcs_file = self._gen_filename(f'root.{_OBJ_ID_MAP[ObjectType.FUNCTIONS]}', extension='html')
for fn in self.functions:
data[fn.name] = f'{funcs_file}#{fn.name}'
diff --git a/docs/refman/model.py b/docs/refman/model.py
index 51d4ca24a..1360d8959 100644
--- a/docs/refman/model.py
+++ b/docs/refman/model.py
@@ -78,7 +78,8 @@ class ObjectType(Enum):
ELEMENTARY = 0
BUILTIN = 1
MODULE = 2
- RETURNED = 3
+ FUNCTIONS = 3
+ RETURNED = 4
@dataclass
class Object(NamedObject, FetureCheck):