Improve class reference split, list variant types separately

This commit is contained in:
Yuri Sizov 2022-11-18 15:47:53 +03:00
parent e8f9cd8ac5
commit aac01fbaf8
1 changed files with 23 additions and 5 deletions

View File

@ -29,10 +29,12 @@ MARKUP_ALLOWED_SUBSEQUENT = " -.,:;!?\\/'\")]}>"
# write in this script (check `translate()` uses), and also hardcoded in # write in this script (check `translate()` uses), and also hardcoded in
# `doc/translations/extract.py` to include them in the source POT file. # `doc/translations/extract.py` to include them in the source POT file.
BASE_STRINGS = [ BASE_STRINGS = [
"Objects", "All classes",
"Globals",
"Nodes", "Nodes",
"Resources", "Resources",
"Globals", "Other objects",
"Variant types",
"Description", "Description",
"Tutorials", "Tutorials",
"Properties", "Properties",
@ -71,7 +73,13 @@ CLASS_GROUPS: Dict[str, str] = {
"global": "Globals", "global": "Globals",
"node": "Nodes", "node": "Nodes",
"resource": "Resources", "resource": "Resources",
"class": "Objects", "object": "Other objects",
"variant": "Variant types",
}
CLASS_GROUPS_BASE: Dict[str, str] = {
"node": "Node",
"resource": "Resource",
"object": "Object",
} }
@ -687,7 +695,7 @@ def get_git_branch() -> str:
def get_class_group(class_def: ClassDef, state: State) -> str: def get_class_group(class_def: ClassDef, state: State) -> str:
group_name = "class" group_name = "variant"
class_name = class_def.name class_name = class_def.name
if class_name.startswith("@"): if class_name.startswith("@"):
@ -702,6 +710,9 @@ def get_class_group(class_def: ClassDef, state: State) -> str:
if inherits == "Resource": if inherits == "Resource":
group_name = "resource" group_name = "resource"
break break
if inherits == "Object":
group_name = "object"
break
inode = state.classes[inherits].inherits inode = state.classes[inherits].inherits
if inode: if inode:
@ -1281,6 +1292,10 @@ def make_rst_index(grouped_classes: Dict[str, List[str]], dry_run: bool, output_
f.write(".. _doc_class_reference:\n\n") f.write(".. _doc_class_reference:\n\n")
main_title = translate("All classes")
f.write(f"{main_title}\n")
f.write(f"{'=' * len(main_title)}\n\n")
for group_name in CLASS_GROUPS: for group_name in CLASS_GROUPS:
if group_name in grouped_classes: if group_name in grouped_classes:
group_title = translate(CLASS_GROUPS[group_name]) group_title = translate(CLASS_GROUPS[group_name])
@ -1290,9 +1305,12 @@ def make_rst_index(grouped_classes: Dict[str, List[str]], dry_run: bool, output_
f.write(".. toctree::\n") f.write(".. toctree::\n")
f.write(" :maxdepth: 1\n") f.write(" :maxdepth: 1\n")
f.write(" :name: toc-class-ref-globals\n") f.write(f" :name: toc-class-ref-{group_name}s\n")
f.write("\n") f.write("\n")
if group_name in CLASS_GROUPS_BASE:
f.write(f" class_{CLASS_GROUPS_BASE[group_name].lower()}\n")
for class_name in grouped_classes[group_name]: for class_name in grouped_classes[group_name]:
f.write(f" class_{class_name.lower()}\n") f.write(f" class_{class_name.lower()}\n")