diff options
author | fauxpark <fauxpark@gmail.com> | 2019-10-09 05:06:26 +1100 |
---|---|---|
committer | Drashna Jaelre <drashna@live.com> | 2019-10-08 11:06:26 -0700 |
commit | 2707652c9877e5fc7dd67670f8e14962c31baf42 (patch) | |
tree | fe59684ab5a80ed51bb14c5b465254c24935d194 | |
parent | e7d95701bf12998a61c5d2143891b24939ebbe52 (diff) | |
download | qmk_firmware-2707652c9877e5fc7dd67670f8e14962c31baf42.tar.gz qmk_firmware-2707652c9877e5fc7dd67670f8e14962c31baf42.zip |
[Docs] CLI command to serve docs locally (#6956)
* CLI command to serve docs locally
* Document it
* Default port
* Use `with` and subclass `SimpleHTTPRequestHandler` to set working dir
* Apply suggestions from code review
Co-Authored-By: skullydazed <skullydazed@users.noreply.github.com>
* Update docs/cli.md
-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() | ||