mkdocstrings-github 0.5.0__py3-none-any.whl → 0.6.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {mkdocstrings_github-0.5.0.dist-info → mkdocstrings_github-0.6.0.dist-info}/METADATA +5 -4
- mkdocstrings_github-0.6.0.dist-info/RECORD +18 -0
- mkdocstrings_handlers/github/config.py +26 -2
- mkdocstrings_handlers/github/handler.py +1 -0
- mkdocstrings_handlers/github/objects.py +30 -53
- mkdocstrings_handlers/github/rendering.py +17 -0
- mkdocstrings_handlers/github/templates/material/_macros.html.jinja +38 -0
- mkdocstrings_handlers/github/templates/material/inputs.html.jinja +13 -20
- mkdocstrings_handlers/github/templates/material/outputs.html.jinja +14 -14
- mkdocstrings_handlers/github/templates/material/secrets.html.jinja +14 -15
- mkdocstrings_handlers/github/templates/material/style.css +19 -0
- mkdocstrings_github-0.5.0.dist-info/RECORD +0 -17
- {mkdocstrings_github-0.5.0.dist-info → mkdocstrings_github-0.6.0.dist-info}/WHEEL +0 -0
- {mkdocstrings_github-0.5.0.dist-info → mkdocstrings_github-0.6.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mkdocstrings-github
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.6.0
|
|
4
4
|
Summary: A GitHub Action handler for mkdocstrings
|
|
5
5
|
Author-email: Mark Hu <watermarkhu@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -21,9 +21,9 @@ Classifier: Topic :: Software Development :: Documentation
|
|
|
21
21
|
Classifier: Topic :: Utilities
|
|
22
22
|
Classifier: Typing :: Typed
|
|
23
23
|
Requires-Python: <3.15,>=3.10
|
|
24
|
-
Requires-Dist: gitpython
|
|
25
|
-
Requires-Dist: mkdocstrings
|
|
26
|
-
Requires-Dist:
|
|
24
|
+
Requires-Dist: gitpython<4,>=3.1.45
|
|
25
|
+
Requires-Dist: mkdocstrings<1,>=0.29
|
|
26
|
+
Requires-Dist: ruamel-yaml<1,>=0.18.16
|
|
27
27
|
Requires-Dist: typing-extensions>=4.0; python_version < '3.11'
|
|
28
28
|
Description-Content-Type: text/markdown
|
|
29
29
|
|
|
@@ -83,5 +83,6 @@ after which the generated documentation can be inserted in the markdown page wit
|
|
|
83
83
|
- 🧩 **Individual Parameter Hyperlinks**: Each action or workflow parameter—including inputs, outputs, and secrets—receives a unique HTML id, facilitating direct linking to specific parameter documentation.
|
|
84
84
|
- 🔒 **Automated Permission Aggregation**: For reusable workflows, if permissions are specified at the job level rather than the workflow level, the required final permissions are automatically determined and displayed in the signature.
|
|
85
85
|
- 🔗 **Parameter cross-linking**: Link to other parameters of the action or workflow via a simple Markdown syntax.
|
|
86
|
+
- 🧑🤝🧑 **Parameter grouping**: Organize related inputs, outputs, and secrets into visual groups using inline YAML comments for clearer documentation structure.
|
|
86
87
|
|
|
87
88
|
<!-- --8<-- [end:footer] -->
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
mkdocstrings_handlers/github/__init__.py,sha256=0WdFUIq4Xu2ZFtlZNIYCQSoqcx3Ot9Wv41_X_dwbFww,248
|
|
2
|
+
mkdocstrings_handlers/github/config.py,sha256=r7efiI-vKbVEeD6utrc55h4RP6VIlabqDebhiIIx_ZA,7120
|
|
3
|
+
mkdocstrings_handlers/github/handler.py,sha256=SQcd08VA3g4f3Fof2mam85ahPLiK99TteAJJpUg-iB4,8489
|
|
4
|
+
mkdocstrings_handlers/github/objects.py,sha256=v1GchB9fzqasnXbVEOXoDzOR2iVTwcfPQ9mFT4sdjgs,7625
|
|
5
|
+
mkdocstrings_handlers/github/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
+
mkdocstrings_handlers/github/rendering.py,sha256=pFk621Fqp_R6ZS2dJ0zwEEez0Urqpekial6kqKYDag8,3371
|
|
7
|
+
mkdocstrings_handlers/github/templates/material/_macros.html.jinja,sha256=1TNUgoOIxm-a1S7eiESrW1fYuzXOjrwFqXQSyA4tkkU,1576
|
|
8
|
+
mkdocstrings_handlers/github/templates/material/action.html.jinja,sha256=C7S8I9bjnrEUahyDB7CkFxtakFrr53KE3t3uyczBPzc,2864
|
|
9
|
+
mkdocstrings_handlers/github/templates/material/heading.html.jinja,sha256=wnvZpNED8Dhb935qnddeDExXN-MIUz8frRRfgq-A9VA,1396
|
|
10
|
+
mkdocstrings_handlers/github/templates/material/inputs.html.jinja,sha256=UE8RmfMlF6np7CP-920CwgkbXIcKNgl9KgK1BJ588GM,3271
|
|
11
|
+
mkdocstrings_handlers/github/templates/material/outputs.html.jinja,sha256=Z9QD1KSALLDS9VEyugWG1BHpLCHTKYEx4TEQkKIoC3M,2693
|
|
12
|
+
mkdocstrings_handlers/github/templates/material/secrets.html.jinja,sha256=jQ_HaG2ivbZTH74pyV4BAFGQu5Vn03kA_vaEbTSABds,2839
|
|
13
|
+
mkdocstrings_handlers/github/templates/material/style.css,sha256=Nfmds-xHtPJ_IzOv5svA7ih5talHDTiQryN_n0DGdZs,1553
|
|
14
|
+
mkdocstrings_handlers/github/templates/material/workflow.html.jinja,sha256=5dLdHRSQyulyFAVCVZAR_pkw-WXxCtM20cj6RS7IH1Q,4206
|
|
15
|
+
mkdocstrings_github-0.6.0.dist-info/METADATA,sha256=LMnLdluKYLRVWGSbmh30zSZ7TjfA5oCtYzhEgxN8RP4,4055
|
|
16
|
+
mkdocstrings_github-0.6.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
17
|
+
mkdocstrings_github-0.6.0.dist-info/licenses/LICENSE,sha256=5enZtJ4zSp0Ps3jTqFQ4kadcx62BhgTaDNPrXWb3g3E,1069
|
|
18
|
+
mkdocstrings_github-0.6.0.dist-info/RECORD,,
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
|
-
import re
|
|
6
5
|
import sys
|
|
7
6
|
from typing import Literal
|
|
8
7
|
|
|
@@ -99,7 +98,6 @@ class GitHubOptions(BaseModel):
|
|
|
99
98
|
By default, the repository is inferred from the current git repository using the default origin remote.
|
|
100
99
|
If it cannot be inferred, it must be set manually.
|
|
101
100
|
""",
|
|
102
|
-
pattern=re.compile(r"^[\w.-]+/[\w.-]+$"),
|
|
103
101
|
)
|
|
104
102
|
|
|
105
103
|
signature_show_secrets: bool = Field(
|
|
@@ -172,6 +170,32 @@ class GitHubOptions(BaseModel):
|
|
|
172
170
|
""",
|
|
173
171
|
)
|
|
174
172
|
|
|
173
|
+
parameters_groups: bool = Field(
|
|
174
|
+
default=True,
|
|
175
|
+
description="""Whether to group parameters by their group in the documentation.
|
|
176
|
+
|
|
177
|
+
This is done by adding a comment `# group: <group name>` directly after the parameter definition in the action/workflow file.
|
|
178
|
+
This can be done for inputs, outputs and secrets. E.g.:
|
|
179
|
+
|
|
180
|
+
```yaml
|
|
181
|
+
inputs:
|
|
182
|
+
my_input: # group: Example Group
|
|
183
|
+
description: "An example input"
|
|
184
|
+
required: true
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
This has no effect if there are no groups defined for any parameter.
|
|
188
|
+
""",
|
|
189
|
+
)
|
|
190
|
+
|
|
191
|
+
parameters_group_title_row: bool = Field(
|
|
192
|
+
default=True,
|
|
193
|
+
description="""Whether to add a title row for each parameter group in the documentation.
|
|
194
|
+
This only has an effect if [`parameters_groups`][mkdocstrings_handlers.github.config.GitHubOptions.parameters_groups] is set to `true`,
|
|
195
|
+
and if the [`parameters_section_style`][mkdocstrings_handlers.github.config.GitHubOptions.parameters_section_style] is set to `table`.
|
|
196
|
+
""",
|
|
197
|
+
)
|
|
198
|
+
|
|
175
199
|
parameters_anchors: bool = Field(
|
|
176
200
|
default=True,
|
|
177
201
|
description="Whether to add anchors to parameters in the documentation.",
|
|
@@ -170,6 +170,7 @@ class GitHubHandler(BaseHandler):
|
|
|
170
170
|
self.env.filters["format_action_signature"] = rendering.format_action_signature
|
|
171
171
|
self.env.filters["order_parameters"] = rendering.order_parameters
|
|
172
172
|
self.env.filters["filter_parameters"] = rendering.filter_parameters
|
|
173
|
+
self.env.filters["group_parameters"] = rendering.group_parameters
|
|
173
174
|
self.env.filters["anchor_id"] = rendering.anchor_id
|
|
174
175
|
self.env.filters["as_string"] = rendering.as_string
|
|
175
176
|
self.env.globals["semver_tag"] = self.semver
|
|
@@ -1,10 +1,28 @@
|
|
|
1
|
-
|
|
1
|
+
import re
|
|
2
2
|
from dataclasses import dataclass, field
|
|
3
3
|
from enum import Enum
|
|
4
4
|
from os import PathLike
|
|
5
5
|
from typing import Any, Literal, Optional
|
|
6
6
|
|
|
7
|
-
import
|
|
7
|
+
from ruamel.yaml import YAML
|
|
8
|
+
from ruamel.yaml.comments import CommentedMap
|
|
9
|
+
|
|
10
|
+
yaml = YAML()
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
GROUP_PATTERN = r"#\s*group:\s*(.+)$"
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
def group_from_map(map: CommentedMap) -> str:
|
|
17
|
+
"""Extract group string from a comment line if it matches the group pattern."""
|
|
18
|
+
if map.ca.comment:
|
|
19
|
+
for comment in map.ca.comment:
|
|
20
|
+
if comment is not None:
|
|
21
|
+
group_matches = re.finditer(GROUP_PATTERN, comment.value)
|
|
22
|
+
group_string = next((m.group(1).strip() for m in group_matches), "")
|
|
23
|
+
if group_string:
|
|
24
|
+
return group_string
|
|
25
|
+
return ""
|
|
8
26
|
|
|
9
27
|
|
|
10
28
|
@dataclass
|
|
@@ -15,28 +33,15 @@ class Input:
|
|
|
15
33
|
type: Literal["boolean", "number", "string"] = "string"
|
|
16
34
|
default: bool | float | int | str | None = None
|
|
17
35
|
deprecationMessage: Optional[str] = None
|
|
18
|
-
|
|
19
|
-
@staticmethod
|
|
20
|
-
def from_data(
|
|
21
|
-
name: str,
|
|
22
|
-
description: str = "",
|
|
23
|
-
required: bool = False,
|
|
24
|
-
type: Literal["boolean", "number", "string"] = "string",
|
|
25
|
-
default: bool | float | int | str | None = None,
|
|
26
|
-
deprecationMessage: Optional[str] = None,
|
|
27
|
-
**kwargs,
|
|
28
|
-
) -> "Input":
|
|
29
|
-
return Input(name, description, required, type, default, deprecationMessage)
|
|
36
|
+
group: str = ""
|
|
30
37
|
|
|
31
38
|
|
|
32
39
|
@dataclass
|
|
33
40
|
class Output:
|
|
34
41
|
name: str
|
|
35
42
|
description: str = ""
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
def from_data(name: str, description: str = "", **kwargs) -> "Output":
|
|
39
|
-
return Output(name, description)
|
|
43
|
+
value: str = ""
|
|
44
|
+
group: str = ""
|
|
40
45
|
|
|
41
46
|
|
|
42
47
|
@dataclass
|
|
@@ -44,10 +49,7 @@ class Secret:
|
|
|
44
49
|
name: str
|
|
45
50
|
description: str = ""
|
|
46
51
|
required: bool = False
|
|
47
|
-
|
|
48
|
-
@staticmethod
|
|
49
|
-
def from_data(name: str, description: str = "", required: bool = False, **kwargs) -> "Secret":
|
|
50
|
-
return Secret(name, description, required)
|
|
52
|
+
group: str = ""
|
|
51
53
|
|
|
52
54
|
|
|
53
55
|
def _get_member(d: dict, key: str, error_message: str = "", default: Any = None) -> Any:
|
|
@@ -58,36 +60,11 @@ def _get_member(d: dict, key: str, error_message: str = "", default: Any = None)
|
|
|
58
60
|
return d[key]
|
|
59
61
|
|
|
60
62
|
|
|
61
|
-
class _OrderedLoader(yaml.Loader):
|
|
62
|
-
pass
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
# Remove boolean resolver for "on", "off", "yes", "no" (and case variants)
|
|
66
|
-
for ch in "yYnNoO":
|
|
67
|
-
if ch in _OrderedLoader.yaml_implicit_resolvers:
|
|
68
|
-
_OrderedLoader.yaml_implicit_resolvers[ch] = [
|
|
69
|
-
res
|
|
70
|
-
for res in _OrderedLoader.yaml_implicit_resolvers[ch]
|
|
71
|
-
if res[0] != "tag:yaml.org,2002:bool"
|
|
72
|
-
]
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
def _construct_mapping(loader, node):
|
|
76
|
-
loader.flatten_mapping(node)
|
|
77
|
-
return OrderedDict(loader.construct_pairs(node))
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
_OrderedLoader.add_constructor(
|
|
81
|
-
yaml.SafeLoader.DEFAULT_MAPPING_TAG,
|
|
82
|
-
_construct_mapping,
|
|
83
|
-
)
|
|
84
|
-
|
|
85
|
-
|
|
86
63
|
def _read_file(file: PathLike) -> tuple[str, dict]:
|
|
87
64
|
with open(file, "r", encoding="utf-8") as f:
|
|
88
65
|
source = f.read()
|
|
89
66
|
f.seek(0)
|
|
90
|
-
data = yaml.load(f
|
|
67
|
+
data = yaml.load(f)
|
|
91
68
|
return source, data
|
|
92
69
|
|
|
93
70
|
|
|
@@ -121,9 +98,9 @@ class Action:
|
|
|
121
98
|
branding=_get_member(data, "branding", default={}),
|
|
122
99
|
)
|
|
123
100
|
for key, value in data.get("inputs", {}).items():
|
|
124
|
-
action.inputs.append(Input
|
|
101
|
+
action.inputs.append(Input(name=key, **value, group=group_from_map(value)))
|
|
125
102
|
for key, value in data.get("outputs", {}).items():
|
|
126
|
-
action.outputs.append(Output
|
|
103
|
+
action.outputs.append(Output(name=key, **value, group=group_from_map(value)))
|
|
127
104
|
return action
|
|
128
105
|
|
|
129
106
|
|
|
@@ -218,11 +195,11 @@ class Workflow:
|
|
|
218
195
|
call = data["on"]["workflow_call"]
|
|
219
196
|
if call:
|
|
220
197
|
for key, value in call.get("inputs", {}).items():
|
|
221
|
-
workflow.inputs.append(Input
|
|
198
|
+
workflow.inputs.append(Input(name=key, **value, group=group_from_map(value)))
|
|
222
199
|
for key, value in call.get("outputs", {}).items():
|
|
223
|
-
workflow.outputs.append(Output
|
|
200
|
+
workflow.outputs.append(Output(name=key, **value, group=group_from_map(value)))
|
|
224
201
|
for key, value in call.get("secrets", {}).items():
|
|
225
|
-
workflow.secrets.append(Secret
|
|
202
|
+
workflow.secrets.append(Secret(name=key, **value, group=group_from_map(value)))
|
|
226
203
|
|
|
227
204
|
def set_all_permissions(level: str):
|
|
228
205
|
if level == "read-all":
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
3
|
import os
|
|
4
|
+
from collections import OrderedDict
|
|
4
5
|
from typing import TYPE_CHECKING, Sequence
|
|
5
6
|
|
|
6
7
|
from jinja2 import pass_context
|
|
@@ -40,6 +41,22 @@ def format_action_signature(context: Context, id: str, repo: str, options: GitHu
|
|
|
40
41
|
return f"{name}@{version}"
|
|
41
42
|
|
|
42
43
|
|
|
44
|
+
def group_parameters(
|
|
45
|
+
parameters: Sequence[Input | Output | Secret],
|
|
46
|
+
do_group: bool,
|
|
47
|
+
) -> OrderedDict[str, list[Input | Output | Secret]]:
|
|
48
|
+
grouped: OrderedDict[str, list[Input | Output | Secret]] = OrderedDict()
|
|
49
|
+
if not do_group:
|
|
50
|
+
grouped[""] = list(parameters)
|
|
51
|
+
return grouped
|
|
52
|
+
for parameter in parameters:
|
|
53
|
+
group = getattr(parameter, "group", "")
|
|
54
|
+
if group not in grouped:
|
|
55
|
+
grouped[group] = []
|
|
56
|
+
grouped[group].append(parameter)
|
|
57
|
+
return grouped
|
|
58
|
+
|
|
59
|
+
|
|
43
60
|
def order_parameters(
|
|
44
61
|
parameters: Sequence[Input | Output | Secret], parameters_order: PARAMETERS_ORDER
|
|
45
62
|
):
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{#- Shared macros for rendering parameters in different styles -#}
|
|
2
|
+
|
|
3
|
+
{#- Macro to render a single parameter item in list style -#}
|
|
4
|
+
{% macro render_parameter_item(item, item_type, options, data) %}
|
|
5
|
+
{% set anchor_id = item.name | anchor_id(item_type, data.id) %}
|
|
6
|
+
<li class="doc-section-item field-body">
|
|
7
|
+
<b><code>{{ item.name }}</code></b>
|
|
8
|
+
{%- if item.required is defined and item.required %} - <em>required</em>{% endif %}
|
|
9
|
+
{% if options.parameters_anchors %}
|
|
10
|
+
<a class="headerlink" href="#{{ anchor_id }}" title="Link to {{ item.name }}">¤</a>
|
|
11
|
+
{% endif %}
|
|
12
|
+
<div class="doc-md-description">
|
|
13
|
+
{{ item.description | convert_markdown(options.heading_level, data.id) }}
|
|
14
|
+
</div>
|
|
15
|
+
{% if item.default is defined and item.default is not none %}
|
|
16
|
+
<div class="doc-md-description">
|
|
17
|
+
<code>{{ item.default | as_string }}</code>
|
|
18
|
+
</div>
|
|
19
|
+
{% endif %}
|
|
20
|
+
</li>
|
|
21
|
+
{% endmacro %}
|
|
22
|
+
|
|
23
|
+
{#- Macro to render grouped parameters in list style -#}
|
|
24
|
+
{% macro render_grouped_list(items, item_type, options, data) %}
|
|
25
|
+
{% set grouped_items = items | group_parameters(options.parameters_groups) %}
|
|
26
|
+
{% for group, group_items in grouped_items.items() %}
|
|
27
|
+
{% if group %}
|
|
28
|
+
<li class="gh-group-item">
|
|
29
|
+
<em>{{ group }}:</em>
|
|
30
|
+
<ul>
|
|
31
|
+
{% for item in group_items %}{{ render_parameter_item(item, item_type, options, data) }}{% endfor %}
|
|
32
|
+
</ul>
|
|
33
|
+
</li>
|
|
34
|
+
{% else %}
|
|
35
|
+
{% for item in group_items %}{{ render_parameter_item(item, item_type, options, data) }}{% endfor %}
|
|
36
|
+
{% endif %}
|
|
37
|
+
{% endfor %}
|
|
38
|
+
{% endmacro %}
|
|
@@ -7,6 +7,8 @@ Context:
|
|
|
7
7
|
options (dict): The local options
|
|
8
8
|
-#}
|
|
9
9
|
|
|
10
|
+
{% from "_macros.html.jinja" import render_grouped_list %}
|
|
11
|
+
|
|
10
12
|
{% block logs scoped %}
|
|
11
13
|
{{ log.debug("Rendering inputs of " + data.id) }}
|
|
12
14
|
{% endblock logs %}
|
|
@@ -27,7 +29,7 @@ Context:
|
|
|
27
29
|
<span class="doc-section-title">Inputs:</span>
|
|
28
30
|
<a class="headerlink" href="#{{ header_id }}" title="Link to {{ data.name }} outputs">¤</a>
|
|
29
31
|
</p>
|
|
30
|
-
<table>
|
|
32
|
+
<table data-gh-parameters>
|
|
31
33
|
<thead>
|
|
32
34
|
<tr>
|
|
33
35
|
<th>Name</th>
|
|
@@ -35,8 +37,15 @@ Context:
|
|
|
35
37
|
{% if default_column %}<th>Default</th>{% endif %}
|
|
36
38
|
</tr>
|
|
37
39
|
</thead>
|
|
40
|
+
{% set grouped_inputs = inputs | group_parameters(options.parameters_groups) %}
|
|
41
|
+
{% for group, group_inputs in grouped_inputs.items() %}
|
|
38
42
|
<tbody>
|
|
39
|
-
{%
|
|
43
|
+
{% if options.parameters_group_title_row and grouped_inputs | length > 1 and group != "" %}
|
|
44
|
+
<tr class="doc-section-item">
|
|
45
|
+
<td class="gh-group-title" colspan="{% if default_column %}3{% else %}2{% endif %}">{{ group }}</td>
|
|
46
|
+
</tr>
|
|
47
|
+
{% endif %}
|
|
48
|
+
{% for input in group_inputs %}
|
|
40
49
|
{% if options.parameters_anchors %}
|
|
41
50
|
{% set anchor_id = input.name | anchor_id("inputs", data.id) %}
|
|
42
51
|
{% else %}
|
|
@@ -66,6 +75,7 @@ Context:
|
|
|
66
75
|
</tr>
|
|
67
76
|
{% endfor %}
|
|
68
77
|
</tbody>
|
|
78
|
+
{% endfor %}
|
|
69
79
|
</table>
|
|
70
80
|
{% endblock table_style %}
|
|
71
81
|
{% elif options.parameters_section_style == "list" %}
|
|
@@ -75,24 +85,7 @@ Context:
|
|
|
75
85
|
<a class="headerlink" href="#{{ header_id }}" title="Link to {{ data.name }} outputs">¤</a>
|
|
76
86
|
</p>
|
|
77
87
|
<ul>
|
|
78
|
-
{
|
|
79
|
-
{% set anchor_id = input.name | anchor_id("inputs", data.id) %}
|
|
80
|
-
<li class="doc-section-item field-body">
|
|
81
|
-
<b><code>{{ input.name }}</code></b>
|
|
82
|
-
{%- if input.required %} - <em>required</em>{% endif %}
|
|
83
|
-
{% if options.parameters_anchors %}
|
|
84
|
-
<a class="headerlink" href="#{{ anchor_id }}" title="Link to {{ input.name }}">¤</a>
|
|
85
|
-
{% endif %}
|
|
86
|
-
<div class="doc-md-description">
|
|
87
|
-
{{ input.description | convert_markdown(options.heading_level, data.id) }}
|
|
88
|
-
</div>
|
|
89
|
-
{% if input.default is not none %}
|
|
90
|
-
<div class="doc-md-description">
|
|
91
|
-
Default: <code>{{ input.default | as_string }}</code>
|
|
92
|
-
</div>
|
|
93
|
-
{% endif %}
|
|
94
|
-
</li>
|
|
95
|
-
{% endfor %}
|
|
88
|
+
{{ render_grouped_list(inputs, "inputs", options, data) }}
|
|
96
89
|
</ul>
|
|
97
90
|
{% endblock list_style %}
|
|
98
91
|
{% endif %}
|
|
@@ -7,6 +7,8 @@ Context:
|
|
|
7
7
|
options (dict): The local options
|
|
8
8
|
-#}
|
|
9
9
|
|
|
10
|
+
{% from "_macros.html.jinja" import render_grouped_list %}
|
|
11
|
+
|
|
10
12
|
{% block logs scoped %}
|
|
11
13
|
{{ log.debug("Rendering outputs of " + data.id) }}
|
|
12
14
|
{% endblock logs %}
|
|
@@ -24,15 +26,22 @@ Context:
|
|
|
24
26
|
<span class="doc-section-title">Outputs:</span>
|
|
25
27
|
<a class="headerlink" href="#{{ header_id }}" title="Link to {{ data.name }} outputs">¤</a>
|
|
26
28
|
</p>
|
|
27
|
-
<table>
|
|
29
|
+
<table data-gh-parameters>
|
|
28
30
|
<thead>
|
|
29
31
|
<tr>
|
|
30
32
|
<th>Name</th>
|
|
31
33
|
<th>Description</th>
|
|
32
34
|
</tr>
|
|
33
35
|
</thead>
|
|
36
|
+
{% set grouped_outputs = outputs | group_parameters(options.parameters_groups) %}
|
|
37
|
+
{% for group, group_outputs in grouped_outputs.items() %}
|
|
34
38
|
<tbody>
|
|
35
|
-
{%
|
|
39
|
+
{% if options.parameters_group_title_row and grouped_outputs | length > 1 and group != "" %}
|
|
40
|
+
<tr class="doc-section-item">
|
|
41
|
+
<td class="gh-group-title" colspan="2">{{ group }}</td>
|
|
42
|
+
</tr>
|
|
43
|
+
{% endif %}
|
|
44
|
+
{% for output in group_outputs %}
|
|
36
45
|
{% if options.parameters_anchors %}
|
|
37
46
|
{% set anchor_id = output.name | anchor_id("outputs", data.id) %}
|
|
38
47
|
{% else %}
|
|
@@ -48,8 +57,10 @@ Context:
|
|
|
48
57
|
<td>
|
|
49
58
|
{{ output.description | convert_markdown(options.heading_level, data.id) }}
|
|
50
59
|
</td>
|
|
60
|
+
</tr>
|
|
51
61
|
{% endfor %}
|
|
52
62
|
</tbody>
|
|
63
|
+
{% endfor %}
|
|
53
64
|
</table>
|
|
54
65
|
{% endblock table_style %}
|
|
55
66
|
{% elif options.parameters_section_style == "list" %}
|
|
@@ -59,18 +70,7 @@ Context:
|
|
|
59
70
|
<a class="headerlink" href="#{{ header_id }}" title="Link to {{ data.name }} outputs">¤</a>
|
|
60
71
|
</p>
|
|
61
72
|
<ul>
|
|
62
|
-
{
|
|
63
|
-
{% set anchor_id = output.name | anchor_id("outputs", data.id) %}
|
|
64
|
-
<li class="doc-section-item field-body">
|
|
65
|
-
<b><code>{{ output.name }}</code></b>
|
|
66
|
-
{% if options.parameters_anchors %}
|
|
67
|
-
<a class="headerlink" href="#{{ anchor_id }}" title="Link to {{ output.name }}">¤</a>
|
|
68
|
-
{% endif %}
|
|
69
|
-
<div class="doc-md-description">
|
|
70
|
-
{{ output.description | convert_markdown(options.heading_level, data.id) }}
|
|
71
|
-
</div>
|
|
72
|
-
</li>
|
|
73
|
-
{% endfor %}
|
|
73
|
+
{{ render_grouped_list(outputs, "outputs", options, data) }}
|
|
74
74
|
</ul>
|
|
75
75
|
{% endblock list_style %}
|
|
76
76
|
{% endif %}
|
|
@@ -7,6 +7,8 @@ Context:
|
|
|
7
7
|
options (dict): The local options
|
|
8
8
|
-#}
|
|
9
9
|
|
|
10
|
+
{% from "_macros.html.jinja" import render_grouped_list %}
|
|
11
|
+
|
|
10
12
|
{% block logs scoped %}
|
|
11
13
|
{{ log.debug("Rendering secrets of " + data.id) }}
|
|
12
14
|
{% endblock logs %}
|
|
@@ -24,15 +26,22 @@ Context:
|
|
|
24
26
|
<span class="doc-section-title">Secrets:</span>
|
|
25
27
|
<a class="headerlink" href="#{{ header_id }}" title="Link to {{ data.name }} outputs">¤</a>
|
|
26
28
|
</p>
|
|
27
|
-
<table>
|
|
29
|
+
<table data-gh-parameters>
|
|
28
30
|
<thead>
|
|
29
31
|
<tr>
|
|
30
32
|
<th>Name</th>
|
|
31
33
|
<th>Description</th>
|
|
32
34
|
</tr>
|
|
33
35
|
</thead>
|
|
36
|
+
{% set grouped_secrets = secrets | group_parameters(options.parameters_groups) %}
|
|
37
|
+
{% for group, group_secrets in grouped_secrets.items() %}
|
|
34
38
|
<tbody>
|
|
35
|
-
{%
|
|
39
|
+
{% if options.parameters_group_title_row and grouped_secrets | length > 1 and group != "" %}
|
|
40
|
+
<tr class="doc-section-item">
|
|
41
|
+
<td class="gh-group-title" colspan="2">{{ group }}</td>
|
|
42
|
+
</tr>
|
|
43
|
+
{% endif %}
|
|
44
|
+
{% for secret in group_secrets %}
|
|
36
45
|
{% if options.parameters_anchors %}
|
|
37
46
|
{% set anchor_id = secret.name | anchor_id("secrets", data.id) %}
|
|
38
47
|
{% else %}
|
|
@@ -52,8 +61,10 @@ Context:
|
|
|
52
61
|
<td>
|
|
53
62
|
{{ secret.description | convert_markdown(options.heading_level, data.id) }}
|
|
54
63
|
</td>
|
|
64
|
+
</tr>
|
|
55
65
|
{% endfor %}
|
|
56
66
|
</tbody>
|
|
67
|
+
{% endfor %}
|
|
57
68
|
</table>
|
|
58
69
|
{% endblock table_style %}
|
|
59
70
|
{% elif options.parameters_section_style == "list" %}
|
|
@@ -63,19 +74,7 @@ Context:
|
|
|
63
74
|
<a class="headerlink" href="#{{ header_id }}" title="Link to {{ data.name }} outputs">¤</a>
|
|
64
75
|
</p>
|
|
65
76
|
<ul>
|
|
66
|
-
{
|
|
67
|
-
{% set anchor_id = secret.name | anchor_id("secrets", data.id) %}
|
|
68
|
-
<li class="doc-section-item field-body">
|
|
69
|
-
<b><code>{{ secret.name }}</code></b>
|
|
70
|
-
{%- if secret.required %} - <em>required</em>{% endif %}
|
|
71
|
-
{% if options.parameters_anchors %}
|
|
72
|
-
<a class="headerlink" href="#{{ anchor_id }}" title="Link to {{ secret.name }}">¤</a>
|
|
73
|
-
{% endif %}
|
|
74
|
-
<div class="doc-md-description">
|
|
75
|
-
{{ secret.description | convert_markdown(options.heading_level, data.id) }}
|
|
76
|
-
</div>
|
|
77
|
-
</li>
|
|
78
|
-
{% endfor %}
|
|
77
|
+
{{ render_grouped_list(secrets, "secrets", options, data) }}
|
|
79
78
|
</ul>
|
|
80
79
|
{% endblock list_style %}
|
|
81
80
|
{% endif %}
|
|
@@ -57,3 +57,22 @@
|
|
|
57
57
|
background-color: #24292e;
|
|
58
58
|
color: #ffffff;
|
|
59
59
|
}
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
/* Add thicker divider between thead and tbody, and between tbody groups */
|
|
63
|
+
table[data-gh-parameters] thead + tbody tr:first-child td,
|
|
64
|
+
table[data-gh-parameters] tbody:not(:first-of-type) tr:first-child td {
|
|
65
|
+
border-top: 2px solid var(--md-default-fg-color--lighter) !important;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/* Disable word-wrap in first column (except group titles) */
|
|
69
|
+
table[data-gh-parameters] td:first-child:not(.gh-group-title) {
|
|
70
|
+
white-space: nowrap;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/* Style group title rows */
|
|
74
|
+
table[data-gh-parameters] td.gh-group-title {
|
|
75
|
+
text-align: center !important;
|
|
76
|
+
font-style: italic;
|
|
77
|
+
white-space: normal;
|
|
78
|
+
}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
mkdocstrings_handlers/github/__init__.py,sha256=0WdFUIq4Xu2ZFtlZNIYCQSoqcx3Ot9Wv41_X_dwbFww,248
|
|
2
|
-
mkdocstrings_handlers/github/config.py,sha256=JrI9HK6g-XwXuKFJegfPOpvw-_ZMG0iipSNnEqU0wcw,6105
|
|
3
|
-
mkdocstrings_handlers/github/handler.py,sha256=ShE0EUsWDgonE4LtR3MFPEzCLwvDb2UztrAiXqQs_oc,8415
|
|
4
|
-
mkdocstrings_handlers/github/objects.py,sha256=ckMEEoj3pdLasGHzZMwYY7XdjwbUdHRch07dAzgEHs0,8217
|
|
5
|
-
mkdocstrings_handlers/github/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
-
mkdocstrings_handlers/github/rendering.py,sha256=6xcE2WwyTRW_38g7Ek55hlm53EsFFqueazFw12__DyA,2820
|
|
7
|
-
mkdocstrings_handlers/github/templates/material/action.html.jinja,sha256=C7S8I9bjnrEUahyDB7CkFxtakFrr53KE3t3uyczBPzc,2864
|
|
8
|
-
mkdocstrings_handlers/github/templates/material/heading.html.jinja,sha256=wnvZpNED8Dhb935qnddeDExXN-MIUz8frRRfgq-A9VA,1396
|
|
9
|
-
mkdocstrings_handlers/github/templates/material/inputs.html.jinja,sha256=CIcw3OBQdCP4e5A4srLu1v3xoOjsedIw1Zh3qxtG0-A,3482
|
|
10
|
-
mkdocstrings_handlers/github/templates/material/outputs.html.jinja,sha256=jlzVF93q5AyJfOiSl3_1VBVL3c6rjmEcS81s3sri5Gg,2670
|
|
11
|
-
mkdocstrings_handlers/github/templates/material/secrets.html.jinja,sha256=1lMJoxjjeiqetVu0mdLKmZ1faYRReeyjiYvYTZESots,2881
|
|
12
|
-
mkdocstrings_handlers/github/templates/material/style.css,sha256=R2hh1RfHwJ6XNT4YQl_txNkNXcPBZJMCBZn5kQEMQ6M,962
|
|
13
|
-
mkdocstrings_handlers/github/templates/material/workflow.html.jinja,sha256=5dLdHRSQyulyFAVCVZAR_pkw-WXxCtM20cj6RS7IH1Q,4206
|
|
14
|
-
mkdocstrings_github-0.5.0.dist-info/METADATA,sha256=maSQ6Gbg1xgruSrClF-EHllBLo4fy2q5A30XctacPSw,3867
|
|
15
|
-
mkdocstrings_github-0.5.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
16
|
-
mkdocstrings_github-0.5.0.dist-info/licenses/LICENSE,sha256=5enZtJ4zSp0Ps3jTqFQ4kadcx62BhgTaDNPrXWb3g3E,1069
|
|
17
|
-
mkdocstrings_github-0.5.0.dist-info/RECORD,,
|
|
File without changes
|
{mkdocstrings_github-0.5.0.dist-info → mkdocstrings_github-0.6.0.dist-info}/licenses/LICENSE
RENAMED
|
File without changes
|