Previously we on;ly displayed enum values for named options. Now positional options get equal justice. Fixes https://github.com/angular/angular-cli/issues/15040 PR Close #31529
		
			
				
	
	
		
			112 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			112 lines
		
	
	
		
			4.2 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
{% macro renderSyntax(container, prefix) -%}
 | 
						|
{% for name in container.names %}
 | 
						|
<code-example hideCopy="true" class="no-box api-heading no-auto-link">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>Argument</th>
 | 
						|
      <th>Description</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>>{% if option.enum.length > 0 %}={$ renderValues(option.enum) $}{% endif %}</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>
 | 
						|
  </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>Option</th>
 | 
						|
      <th>Description</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 %}">{$ renderOption(option.name, option.type, option.default, option.enum) $}</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.default !== undefined %}<p><span class="cli-default">Default:</span> <code class="no-auto-link">{$ option.default $}</code></p>{% endif %}
 | 
						|
        {% 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>
 | 
						|
    </tr>
 | 
						|
  {% endfor %}
 | 
						|
  </tbody>
 | 
						|
</table>
 | 
						|
{% endif %}
 | 
						|
{% endmacro %}
 | 
						|
 | 
						|
{%- macro renderOptionName(name) -%}
 | 
						|
{% if name.length > 1 %}-{% endif %}-{$ name $}
 | 
						|
{%- endmacro %}
 | 
						|
 | 
						|
{%- macro renderValues(values, default) -%}
 | 
						|
{%- set valString = values.join('|') -%}
 | 
						|
{%- if valString.length > 15 %}<br>    {% endif %}{$ valString $}
 | 
						|
{%- endmacro -%}
 | 
						|
 | 
						|
{%- macro renderOption(name, type, default, values) -%}
 | 
						|
{% set prefix = '--' if name.length > 1 else '-' %}
 | 
						|
{%- if type === 'boolean' and not values.length %}{$ prefix $}{$ name $}={$ renderValues([true, false], default) $}
 | 
						|
{%- elif values.length -%}
 | 
						|
{$ prefix $}{$ name $}={$ renderValues(values, default) $}
 | 
						|
{%- elif type === 'string' -%}
 | 
						|
{$ prefix $}{$ name $}={% if name.length > 15 %}<br>    {% endif %}<var>{$ name $}</var>
 | 
						|
{%- else -%}
 | 
						|
{$ prefix $}{$ name $}
 | 
						|
{%- 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 -%} |