With this change we update the CLI docs template to seperate the following the default and value types from the argument field. This should make it clearer and more understandable PR Close #40038
112 lines
4.1 KiB
HTML
112 lines
4.1 KiB
HTML
{% macro renderSyntax(container, prefix) -%}
|
|
{% for name in container.names %}
|
|
<code-example hideCopy="true" class="no-box api-heading no-auto-link{% if container.deprecated %} deprecated-api-item{% endif %}">ng {%if prefix %}{$ prefix $} {% endif %}<span class="cli-name">{$ name $}</span>
|
|
{%- for arg in container.positionalOptions %} <<var>{$ arg.name $}</var>>{% endfor %}
|
|
{%- if container.namedOptions.length %} [<var>options</var>]{% endif -%}
|
|
</code-example>
|
|
{% endfor %}
|
|
{% endmacro %}
|
|
|
|
{% macro renderArguments(arguments, level = 2) %}
|
|
{% if arguments.length %}
|
|
<h{$ level $} class="no-anchor">Arguments</h{$ level $}>
|
|
<table class="is-full-width list-table property-table">
|
|
<thead>
|
|
<tr>
|
|
<th width="15%">Argument</th>
|
|
<th width="40%">Description</th>
|
|
<th>Value Type</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for option in arguments %}
|
|
<tr class="cli-option">
|
|
<td><code class="cli-option-syntax no-auto-link"><<var>{$ option.name $}</var>></code></td>
|
|
<td>
|
|
{$ option.description | marked $}
|
|
{% if option.subcommands.length -%}
|
|
<p>This option can take one of the following <a href="#{$ option.name $}-commands">sub-commands</a>:<p>
|
|
<ul>
|
|
{% for subcommand in option.subcommands %}
|
|
<li><code class="no-auto-link"><a class="code-anchor" href="#{$ subcommand.name $}-command">{$ subcommand.name $}</a></code></li>
|
|
{% endfor %}
|
|
</ul>
|
|
{%- endif %}
|
|
</td>
|
|
<td><code class="cli-option-syntax no-auto-link">{% if option.enum.length > 0 %}{$ renderValues(option.enum) $}{% else %}string{% endif %}</code></td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
{% endmacro %}
|
|
|
|
{% macro renderNamedOptions(options, level = 2) %}
|
|
{% if options.length %}
|
|
<h{$ level $} class="no-anchor">Options</h{$ level $}>
|
|
<table class="is-full-width list-table property-table">
|
|
<thead>
|
|
<tr>
|
|
<th width="15%">Option</th>
|
|
<th width="40%">Description</th>
|
|
<th>Value Type</th>
|
|
<th>Default Value</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for option in options %}
|
|
<tr class="cli-option">
|
|
<td>
|
|
<code class="cli-option-syntax no-auto-link{% if option.deprecated %} deprecated-api-item{% endif %}">{$ renderOptionName(option.name) $}</code>
|
|
</td>
|
|
<td>
|
|
{% if option.deprecated %}
|
|
{% if option.deprecated === true %}
|
|
<p><strong>Deprecated</strong></p>
|
|
{% else %}
|
|
{$ ('**Deprecated:** ' + option.deprecated) | marked $}
|
|
{% endif %}
|
|
{% endif %}
|
|
{$ option.description | marked $}
|
|
{% if option.aliases.length %}<p><span class="cli-aliases">Aliases:</span> {% for alias in option.aliases %}{$ renderOptionName(alias) $}{% if not loop.last %}, {% endif %}{% endfor %}</p>{% endif %}
|
|
</td>
|
|
<td><code class="no-auto-link">{$ renderOptionValues(option.type, option.enum) $}</td>
|
|
<td>{% if option.default !== undefined %}<code class="no-auto-link">{$ option.default $}</code>{% endif %}</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
{% endif %}
|
|
{% endmacro %}
|
|
|
|
{%- macro renderOptionName(name) -%}
|
|
{% if name.length > 1 %}-{% endif %}-{$ name $}
|
|
{%- endmacro %}
|
|
|
|
{%- macro renderValues(values) -%}
|
|
{$ values.join('|') $}
|
|
{%- endmacro -%}
|
|
|
|
{%- macro renderOptionValues(type, values) -%}
|
|
{%- if values.length -%}
|
|
{$ renderValues(values) $}
|
|
{%- else -%}
|
|
{$ type $}
|
|
{%- endif -%}
|
|
{%- endmacro -%}
|
|
|
|
{%- macro renderSubcommands(container) -%}
|
|
{% for command in container.positionalOptions %}{% if command.subcommands.length %}
|
|
<h2><a id="{$ command.name $}-commands"></a>{$ command.name | title $} commands</h2>
|
|
{% for subcommand in command.subcommands %}
|
|
<h3><code class="no-auto-link"><a id="{$ subcommand.name $}-command"></a>{$ subcommand.name $}</code></h3>
|
|
{% for name in container.names %}
|
|
{$ renderSyntax(subcommand, name) $}
|
|
{% endfor %}
|
|
{$ subcommand.description | marked $}
|
|
{# for now we assume that commands do not have further sub-commands #}
|
|
{$ renderArguments(subcommand.positionalOptions, 4) $}
|
|
{$ renderNamedOptions(subcommand.namedOptions, 4) $}
|
|
{% endfor %}
|
|
{% endif %}{% endfor %}
|
|
{%- endmacro -%} |