A Gemini server for serving JSDoc documentation on the Deno JavaScript runtime.
Gemini is a new Web-like content platform with its own protocol and its own Markdown-like content format. It is especially suitable for browsing content from the terminal. Recommended Gemini client: amfora.
git clone https://github.com/doga/doc-server.git
TLS_CERT=./path/to/cert.pem \
TLS_CERT_KEY=./path/to/key.pem && \
openssl req -x509 -newkey rsa:2048 -keyout $TLS_CERT_KEY -out $TLS_CERT -days 365 -nodes
Certificate validity is set to one year by default, and must normally be regenerated periodically.
Do this each time the JSDoc in the source code changes:
deno doc --json --name=MODULENAME ./path/to/mod.mjs > ./path/to/jsdoc/MODULENAME/jsdoc.json
The server does not need a restart to serve new content.
Note that the jsdoc
directory has a strict structure. It can contain:
- a
jsdoc.json
file at the root, and - any number of module directories, each containing a
jsdoc.json
file.
Additional requirements:
- The
jsdoc
directory can be zero or one directory deep. - The name
jsdoc.json
is mandatory for the output ofdeno doc
.
JSDOC_DIR='./jsdoc' \
TLS_CERT='./cert/cert.pem' \
TLS_CERT_KEY='./cert/key.pem' \
CACHE_SIZE='100' \
HOSTNAME='0.0.0.0' \
PORT='1965'
deno task server
All environment variables are optional. The command above shows their default values.
CACHE_SIZE
defines the size of the in-memory cache. 1 means 10 000 bytes. 0 disables the cache.
Current status:
- Only classes, constructors and methods are listed.
- Setter methods are not listed.
These Gemini capsules are running on doc-server:
- Qworum JSDoc server: gemini://qworum-jdoc.ddns.net/
To add your doc-server capsule here, simply send a pull request.
∎