diff options
| -rw-r--r-- | docs/cli.md | 10 | ||||
| -rw-r--r-- | lib/python/qmk/cli/__init__.py | 1 | ||||
| -rw-r--r-- | lib/python/qmk/cli/docs.py | 22 |
3 files changed, 33 insertions, 0 deletions
diff --git a/docs/cli.md b/docs/cli.md index 6ffe03365..d150ee917 100644 --- a/docs/cli.md +++ b/docs/cli.md | |||
| @@ -105,6 +105,16 @@ This command lets you configure the behavior of QMK. For the full `qmk config` d | |||
| 105 | qmk config [-ro] [config_token1] [config_token2] [...] [config_tokenN] | 105 | qmk config [-ro] [config_token1] [config_token2] [...] [config_tokenN] |
| 106 | ``` | 106 | ``` |
| 107 | 107 | ||
| 108 | ## `qmk docs` | ||
| 109 | |||
| 110 | This command starts a local HTTP server which you can use for browsing or improving the docs. Default port is 8936. | ||
| 111 | |||
| 112 | **Usage**: | ||
| 113 | |||
| 114 | ``` | ||
| 115 | qmk docs [-p PORT] | ||
| 116 | ``` | ||
| 117 | |||
| 108 | ## `qmk doctor` | 118 | ## `qmk doctor` |
| 109 | 119 | ||
| 110 | This command examines your environment and alerts you to potential build or flash problems. | 120 | This command examines your environment and alerts you to potential build or flash problems. |
diff --git a/lib/python/qmk/cli/__init__.py b/lib/python/qmk/cli/__init__.py index e982a75fc..e41cc3dcb 100644 --- a/lib/python/qmk/cli/__init__.py +++ b/lib/python/qmk/cli/__init__.py | |||
| @@ -5,6 +5,7 @@ We list each subcommand here explicitly because all the reliable ways of searchi | |||
| 5 | from . import cformat | 5 | from . import cformat |
| 6 | from . import compile | 6 | from . import compile |
| 7 | from . import config | 7 | from . import config |
| 8 | from . import docs | ||
| 8 | from . import doctor | 9 | from . import doctor |
| 9 | from . import hello | 10 | from . import hello |
| 10 | from . import json | 11 | from . import json |
diff --git a/lib/python/qmk/cli/docs.py b/lib/python/qmk/cli/docs.py new file mode 100644 index 000000000..a0888ec38 --- /dev/null +++ b/lib/python/qmk/cli/docs.py | |||
| @@ -0,0 +1,22 @@ | |||
| 1 | """Serve QMK documentation locally | ||
| 2 | """ | ||
| 3 | import http.server | ||
| 4 | |||
| 5 | from milc import cli | ||
| 6 | |||
| 7 | |||
| 8 | class DocsHandler(http.server.SimpleHTTPRequestHandler): | ||
| 9 | def __init__(self, *args, **kwargs): | ||
| 10 | super().__init__(*args, directory='docs', **kwargs) | ||
| 11 | |||
| 12 | |||
| 13 | @cli.argument('-p', '--port', default=8936, type=int, help='Port number to use.') | ||
| 14 | @cli.subcommand('Run a local webserver for QMK documentation.') | ||
| 15 | def docs(cli): | ||
| 16 | """Spin up a local HTTPServer instance for the QMK docs. | ||
| 17 | """ | ||
| 18 | with http.server.HTTPServer(('', cli.config.docs.port), DocsHandler) as httpd: | ||
| 19 | cli.log.info("Serving QMK docs at http://localhost:%d/", cli.config.docs.port) | ||
| 20 | cli.log.info("Press Control+C to exit.") | ||
| 21 | |||
| 22 | httpd.serve_forever() | ||
