A Geminispace server for serving JSDoc documentation with the Deno 2+ TypeScript runtime.
Geminispace 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.
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 run --allow-env --allow-net --allow-read \
jsr:@arma/[email protected]/main
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.
This TypeScript module depends on qgeminiserver.
---
title: Dependencies
---
flowchart LR
GeminispaceJSDocServer[geminispace-jsdoc-server] --imports--> QGeminiServer[qgeminiserver]
Current status:
- Only classes, constructors and methods are listed.
- Setter methods are not listed.
These Geminispace capsules are running on geminispace-jsdoc-server
:
- Qworum JSDoc server: gemini://qworum-jdoc.ddns.net/
To add your capsule here, simply send a pull request.
∎