

# やりたいこと

Pythonの[argparse](https://docs.python.org/ja/3/howto/argparse.html)モジュールを使って、CLIを作っています。  
CLIの使い方は、`--help`引数を指定すればターミナルで確認できますが、できればwebでも確認できるようにしたいです。

イメージとしては、awscliのように、ヘルプコマンドとwebのリファレンスの内容を一致させたいです。

### awscliのヘルプコマンド

[code]

    $ aws s3 list help
    
    LS()                                                                      LS()
    
    
    
    NAME
           ls -
    
    DESCRIPTION
           List  S3  objects and common prefixes under a prefix or all S3 buckets.
           Note that the --output and --no-paginate arguments are ignored for this
           command.
    
           See 'aws help' for descriptions of global parameters.
    
    SYNOPSIS
                ls
              <S3Uri> or NONE
              [--recursive]
              [--page-size <value>]
              [--human-readable]
              [--summarize]
              [--request-payer <value>]
    
    OPTIONS
           paths (string)
    
           --recursive  (boolean)  Command  is  performed  on all files or objects
           under the specified directory or prefix.
    
    
[/code]

### awscliのwebのリファレンス

[![awscli s3
ls](https://i.stack.imgur.com/mQ9ha.png)](https://i.stack.imgur.com/mQ9ha.png)

<https://docs.aws.amazon.com/cli/latest/reference/s3/ls.html>

# 質問

CLIのリファレンスを、HTMLとして出力するのによいツールやパターンがあれば教えてください。  
単純な方法だと、「`argparse`にヘルプメッセージを渡し、HTML(実際はsphinxを使う予定)にもヘルプメッセージを書く」という方法もありますが、これだと二重管理になってしまいます。

awscliのソースを見て、どのような仕組みになっているか探してみましたが、よく分かりませんでした。  
"Examples"の内容は、reStructuredTextで書かれたファイルを読み込んでいるらしいことは分かりました。

<https://github.com/aws/aws-
cli/blob/274ee71cb3180e557a54f9445cca2b6a7a998d24/awscli/examples/s3/ls.rst>

### 環境

  * Python3.8
  * awscli 1.18.147


CC BY-SA 4.0
2020-09-26T23:03:47.737
70738
2021-06-22T16:43:02.453
19524
question
python
pythonのCLIで、リファレンスをHTMLで出力する方法


`htmlgen` というpythonスクリプトが `awscli.clidriver` 経由で `ProviderHelpCommand`
を呼び出し、その内容から生成しているようです。

  * `htmlgen`  
<https://github.com/aws/aws-cli/blob/master/doc/source/htmlgen>

  * `ProviderHelpCommand`  
<https://github.com/aws/aws-cli/blob/master/awscli/help.py#L276>


CC BY-SA 4.0
2021-06-22T16:43:02.453
77716
2021-06-22T16:43:02.453
29826
70738
answer