forked from extern/nushell
66 lines
2.1 KiB
Plaintext
66 lines
2.1 KiB
Plaintext
|
let vers = (version).version
|
||
|
|
||
|
for command in ($scope.commands | where is_custom == $false) {
|
||
|
let top = $"---
|
||
|
title: ($command.command)
|
||
|
layout: command
|
||
|
version: ($vers)
|
||
|
---
|
||
|
|
||
|
($command.usage)
|
||
|
|
||
|
"
|
||
|
let sig = ($command.signature | each { |param|
|
||
|
if $param.parameter_type == "positional" {
|
||
|
$"('(')($param.parameter_name)(')')"
|
||
|
} else if $param.parameter_type == "switch" {
|
||
|
$"--($param.parameter_name)"
|
||
|
} else if $param.parameter_type == "named" {
|
||
|
$"--($param.parameter_name)"
|
||
|
} else if $param.parameter_type == "rest" {
|
||
|
$"...($param.parameter_name)"
|
||
|
}
|
||
|
} | str collect " ")
|
||
|
|
||
|
let signature = $"## Signature(char nl)(char nl)```> ($command.command) ($sig)```(char nl)(char nl)"
|
||
|
|
||
|
let params = ($command.signature | each { |param|
|
||
|
if $param.parameter_type == "positional" {
|
||
|
$" - `($param.parameter_name)`: ($param.description)"
|
||
|
} else if $param.parameter_type == "switch" {
|
||
|
$" - `--($param.parameter_name)`: ($param.description)"
|
||
|
} else if $param.parameter_type == "named" {
|
||
|
$" - `--($param.parameter_name) {($param.syntax_shape)}`: ($param.description)"
|
||
|
} else if $param.parameter_type == "rest" {
|
||
|
$" - `...($param.parameter_name)`: ($param.description)"
|
||
|
}
|
||
|
} | str collect (char nl))
|
||
|
|
||
|
let parameters = if ($command.signature | length) > 0 {
|
||
|
$"## Parameters(char nl)(char nl)($params)(char nl)(char nl)"
|
||
|
} else {
|
||
|
""
|
||
|
}
|
||
|
|
||
|
let examples = if ($command.examples | length) > 0 {
|
||
|
let example_top = $"## Examples(char nl)(char nl)"
|
||
|
|
||
|
let $examples = ($command.examples | each { |example|
|
||
|
$"($example.description)
|
||
|
```shell
|
||
|
> ($example.example)
|
||
|
```
|
||
|
|
||
|
"
|
||
|
} | str collect)
|
||
|
|
||
|
$example_top + $examples
|
||
|
} else { "" }
|
||
|
|
||
|
let doc = ($top + $signature + $parameters + $examples)
|
||
|
|
||
|
let safe_name = ($command.command | str find-replace '\?' '' | str find-replace ' ' '_')
|
||
|
$doc | save --raw $"./docs/commands/($safe_name).md"
|
||
|
} | length | $"($in) commands written"
|
||
|
|