mirror of
https://github.com/nushell/nushell.git
synced 2024-12-24 16:09:11 +01:00
72 lines
2.2 KiB
Plaintext
72 lines
2.2 KiB
Plaintext
let vers = (version).version
|
|
|
|
for command in ($nu.scope.commands | where is_custom == false && is_extern == 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) |
|
|
lines |
|
|
each {|it| ($it | str trim -r) } |
|
|
str collect (char nl)
|
|
)
|
|
|
|
let safe_name = ($command.command | str find-replace '\?' '' | str find-replace ' ' '_')
|
|
$doc | save --raw $"./docs/commands/($safe_name).md"
|
|
$"./docs/commands/($safe_name).md"
|
|
} | length | $"($in) commands written"
|
|
|