Skip to content

Commit

Permalink
qmk docs: Add flag to open in browser (qmk#13788)
Browse files Browse the repository at this point in the history
* `qmk docs`: Add flag to open in browser

* Add docs
  • Loading branch information
fauxpark authored Jul 30, 2021
1 parent d93089d commit 8b39a3c
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 2 deletions.
3 changes: 2 additions & 1 deletion docs/cli_commands.md
Original file line number Diff line number Diff line change
Expand Up @@ -349,11 +349,12 @@ qmk cformat -b branch_name
## `qmk docs`

This command starts a local HTTP server which you can use for browsing or improving the docs. Default port is 8936.
Use the `-b`/`--browser` flag to automatically open the local webserver in your default browser.

**Usage**:

```
qmk docs [-p PORT]
qmk docs [-b] [-p PORT]
```

## `qmk generate-docs`
Expand Down
7 changes: 6 additions & 1 deletion lib/python/qmk/cli/docs.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,26 @@
"""
import http.server
import os
import webbrowser

from milc import cli


@cli.argument('-p', '--port', default=8936, type=int, help='Port number to use.')
@cli.argument('-b', '--browser', action='store_true', help='Open the docs in the default browser.')
@cli.subcommand('Run a local webserver for QMK documentation.', hidden=False if cli.config.user.developer else True)
def docs(cli):
"""Spin up a local HTTPServer instance for the QMK docs.
"""
os.chdir('docs')

with http.server.HTTPServer(('', cli.config.docs.port), http.server.SimpleHTTPRequestHandler) as httpd:
cli.log.info("Serving QMK docs at http://localhost:%d/", cli.config.docs.port)
cli.log.info(f"Serving QMK docs at http://localhost:{cli.config.docs.port}/")
cli.log.info("Press Control+C to exit.")

if cli.config.docs.browser:
webbrowser.open(f'http://localhost:{cli.config.docs.port}')

try:
httpd.serve_forever()
except KeyboardInterrupt:
Expand Down

0 comments on commit 8b39a3c

Please sign in to comment.