Switch to unified view

a b/Docs/tools/class-template.md.jinja
1
{% set file_target = (group+"."+topic+"."+filename) | replace(" ","-") %}
2
3
({{ file_target }}.any)=
4
# {{filename}}
5
6
{{filedocstring}}
7
8
:::{code-block} AnyScriptDoc
9
:caption: Include this file this file to use
10
#include "{{include_str}}"`
11
::: 
12
13
{% for classt in class_templates %}
14
{%- set classname = classt['name'] %}
15
16
({{ file_target }}.{{classname}})=
17
{%- set documented_args = classt.args | selectattr("docs", "ne", "") | list %}
18
{%- set undocumented_args = classt.args | selectattr("docs", "eq", "") | list %}
19
{%- set expected_undocumented_args = undocumented_args | selectattr("value", "eq", "") | list %}
20
{%- set args_in_documentation = (documented_args + expected_undocumented_args) %}
21
{%- set expected_members = classt.expected_members %}
22
{%- set required_members = classt.members | selectattr("value", "eq", "") | list %}
23
{%- set optional_members = classt.members | selectattr("value", "ne", "") | list %}
24
25
26
```{raw} html
27
<!--  
28
```
29
% If you get a build error here, most likely your class template documentation is invalid
30
[Validate docs section](#{{ file_target }}.{{classname}}.DocsValidationTarget)
31
32
```{raw} html
33
-->
34
```
35
36
## #{{classname}}
37
38
{{ classt['docs'].strip() }}
39
40
41
({{ file_target }}.{{classname}}.DocsValidationTarget )=
42
43
:::{rubric} Full signature
44
:::
45
46
```{code-block} AnyScriptDoc
47
{{classname}} <ObjectName>
48
{%- if args_in_documentation | length  -%}
49
(
50
  {%- for arg in args_in_documentation %}
51
  {{ arg.name }}={{arg.value or "<required>"}},
52
{%- endfor %}
53
){% endif %} = {
54
{%- for member in expected_members %}
55
  {% if member.group %}{{member.group}} = { {{"\n    "}}{%endif%}
56
{{- member.type}} {{member.name}} = {{member.value}}
57
{% if member.group %}  };{{"\n"}}{%endif%}
58
{%- endfor -%}
59
{%- for member in required_members %}
60
  {{member.name}} = <Required>; {{ "\n" if loop.last}}
61
{%- endfor -%}
62
};
63
```
64
65
66
:::{rubric} Arguments
67
:::
68
69
:\_\_CLASS\_\_: `{{classt.type}}`{l=AnyScriptDoc}
70
{% for arg in args_in_documentation %}
71
({{ file_target }}.{{classname}}:{{arg.name}})=
72
:{{arg.name}}: 
73
  {{arg.docs}} {%if arg.value %} (Default: {{arg.value}}) {%else%} (Required) {%endif%}
74
{% endfor %}
75
76
{%- if expected_members | length  %}
77
78
:::{rubric} Expected members
79
:::
80
  
81
:::::{grid} 1
82
{% for member in expected_members %}
83
::::{grid-item-card} 
84
```{code-block} AnyScriptDoc
85
{% if member.group %}{{member.group}} = { {{"\n  "}}{%endif%}
86
{{- member.type}} {{member.name}} = {{member.value}}
87
{% if member.group %}};{%endif%}
88
```
89
90
91
{{member.docs}}
92
93
::::
94
{% endfor %}
95
:::::
96
97
{% endif %}
98
99
100
101
{%- if required_members | length  %}
102
103
:::{rubric} Required initialization members
104
:::
105
  
106
:::::{grid} 1
107
{% for member in required_members %}
108
109
::::{grid-item-card} 
110
({{ file_target }}.{{classname}}.{{member.name}})=
111
```{code-block} AnyScriptDoc
112
{{member.name}} = §<Required>§;
113
```
114
115
{%if member.type != ""%}:class type: `{{member.type}}`{l=AnyScriptDoc}{%endif%}
116
117
{{member.docs}}
118
::::
119
{% endfor %}
120
:::::
121
122
{% endif %}
123
124
{%- if optional_members | length  %}
125
126
:::{rubric} Optional initialization members
127
:::
128
129
  
130
:::::{grid} 1
131
{% for member in optional_members %}
132
::::{grid-item}
133
({{ file_target }}.{{classname}}.{{member.name}})=
134
:::{dropdown} `{{member.name}} = {{member.value}};`{l=AnyScriptDoc}
135
:margin: 0
136
:color: white
137
138
{%if member.type != ""%}:class type: `{{member.type}}`{l=AnyScriptDoc}{%endif%}
139
140
{{member.docs}}
141
:::
142
::::
143
{% endfor %}
144
:::::
145
{% endif %}
146
147
148
149
150
151
152
153
154
{% endfor %}
155