Add markdown and man page docs generation methods

This adds two new methods to the `App` struct:

- `ToMarkdown`: creates a markdown documentation string
- `ToMan`: creates a man page string

Signed-off-by: Sascha Grunert <mail@saschagrunert.de>
This commit is contained in:
Sascha Grunert
2019-08-03 12:41:50 +02:00
committed by Sascha Grunert
parent 97179ca390
commit 40d4a25a01
17 changed files with 908 additions and 103 deletions

80
testdata/expected-doc-full.man vendored Normal file
View File

@@ -0,0 +1,80 @@
.nh
.TH greet(8)
.SH Harrison
.SH NAME
.PP
greet \- Some app
.SH SYNOPSIS
.PP
greet
.PP
.RS
.nf
[\-\-another\-flag|\-b]
[\-\-flag|\-\-fl|\-f]=[value]
[\-\-socket|\-s]=[value]
.fi
.RE
.SH DESCRIPTION
.PP
app [first\_arg] [second\_arg]
.PP
\fBUsage\fP:
.PP
.RS
.nf
greet [GLOBAL OPTIONS] command [COMMAND OPTIONS] [ARGUMENTS...]
.fi
.RE
.SH GLOBAL OPTIONS
.PP
\fB\-\-another\-flag, \-b\fP: another usage text
.PP
\fB\-\-flag, \-\-fl, \-f\fP="":
.PP
\fB\-\-socket, \-s\fP="": some usage text (default: value)
.SH COMMANDS
.SH config, c
.PP
another usage test
.PP
\fB\-\-another\-flag, \-b\fP: another usage text
.PP
\fB\-\-flag, \-\-fl, \-f\fP="":
.SS sub\-config, s, ss
.PP
another usage test
.PP
\fB\-\-sub\-command\-flag, \-s\fP: some usage text
.PP
\fB\-\-sub\-flag, \-\-sub\-fl, \-s\fP="":
.SH info, i, in
.PP
retrieve generic information
.SH some\-command

62
testdata/expected-doc-full.md vendored Normal file
View File

@@ -0,0 +1,62 @@
% greet(8)
% Harrison
# NAME
greet - Some app
# SYNOPSIS
greet
```
[--another-flag|-b]
[--flag|--fl|-f]=[value]
[--socket|-s]=[value]
```
# DESCRIPTION
app [first_arg] [second_arg]
**Usage**:
```
greet [GLOBAL OPTIONS] command [COMMAND OPTIONS] [ARGUMENTS...]
```
# GLOBAL OPTIONS
**--another-flag, -b**: another usage text
**--flag, --fl, -f**="":
**--socket, -s**="": some usage text (default: value)
# COMMANDS
## config, c
another usage test
**--another-flag, -b**: another usage text
**--flag, --fl, -f**="":
### sub-config, s, ss
another usage test
**--sub-command-flag, -s**: some usage text
**--sub-flag, --sub-fl, -s**="":
## info, i, in
retrieve generic information
## some-command

36
testdata/expected-doc-no-commands.md vendored Normal file
View File

@@ -0,0 +1,36 @@
% greet(8)
% Harrison
# NAME
greet - Some app
# SYNOPSIS
greet
```
[--another-flag|-b]
[--flag|--fl|-f]=[value]
[--socket|-s]=[value]
```
# DESCRIPTION
app [first_arg] [second_arg]
**Usage**:
```
greet [GLOBAL OPTIONS] command [COMMAND OPTIONS] [ARGUMENTS...]
```
# GLOBAL OPTIONS
**--another-flag, -b**: another usage text
**--flag, --fl, -f**="":
**--socket, -s**="": some usage text (default: value)

47
testdata/expected-doc-no-flags.md vendored Normal file
View File

@@ -0,0 +1,47 @@
% greet(8)
% Harrison
# NAME
greet - Some app
# SYNOPSIS
greet
# DESCRIPTION
app [first_arg] [second_arg]
**Usage**:
```
greet [GLOBAL OPTIONS] command [COMMAND OPTIONS] [ARGUMENTS...]
```
# COMMANDS
## config, c
another usage test
**--another-flag, -b**: another usage text
**--flag, --fl, -f**="":
### sub-config, s, ss
another usage test
**--sub-command-flag, -s**: some usage text
**--sub-flag, --sub-fl, -s**="":
## info, i, in
retrieve generic information
## some-command