Как указать языки для фрагментов кода, которые будут создаваться виджетшинами из спецификации OpenAPI?

Я хочу использовать widdershins (приложение node.js) для создания документов Slate API из спецификаций OpenAPI.

Widdershins имеет возможность указать языки, которые он должен включать при создании примеров фрагментов кода для документов API.

Вся помощь, которую я могу найти по этой опции, - это вывод об использовании, который говорит мне следующее:

widdershins [options] {input-file|url} [[-o] output markdown]

Options:
[...]
  --language_tabs       List of language tabs for code samples using
                        "language[:label[:client]]" format, for example:
                        "javascript:JavaScript:request"                  [array]
[...]

Но я не могу понять, как именно использовать эту опцию. Что бы я ни пытался, я получаю одно и то же сообщение об ошибке:

Not enough non-option arguments: got 0, need at least 1

Я старался:

widdershins --language_tabs="shell,ruby" foo.yaml
widdershins --language_tabs "shell,ruby" foo.yaml
widdershins --language_tabs=shell,ruby foo.yaml
widdershins --language_tabs="[shell,ruby]" foo.yaml
widdershins --language_tabs="[{ 'shell': 'Shell' }, { 'ruby': 'Ruby' }]" foo.yaml

Я также попробовал это, в точности как указано в справке по использованию:

widdershins --language_tabs="javascript:JavaScript:request" foo.yaml
widdershins --language_tabs=javascript:JavaScript:request foo.yaml

Но даже это приводит к той же ошибке, как описано выше.

Когда опция вообще не используется, она работает нормально:

widdershins foo.yaml

Но затем я получаю значения по умолчанию для сгенерированных фрагментов кода, что не так, как я хочу.

Кто-нибудь знает, как правильно указать эту опцию?

1 ответ

Решение

Хитрость заключается в том, чтобы задать опцию несколько раз для каждого языка, который следует учитывать при создании фрагментов. Кроме того, входной файл должен быть указан перед параметрами, в отличие от того, что говорится в выводе справки по использованию:

widdershins foo.yaml --language_tabs 'python:Python' --language_tabs 'ruby:Ruby'

Другая возможность, которая больше соответствует другим параметрам, заключается в добавлении -- чтобы закрыть список опций:

widdershins --language_tabs 'python:Python' --language_tabs 'ruby:Ruby' -- foo.yaml 

Вы можете использовать --language_tabs флаг:

widdershins --search false --language_tabs 'ruby:Ruby' 'python:Python' --summary swagger.json -o swagger.md
Другие вопросы по тегам