Repository navigation
feat: redesign doc-kit.nodejs.org #1192
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
ovflowd
wants to merge
22
commits into
main
Choose a base branch
from
feat/site-redesign
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Changes from all commits
Commits
Show all changes
22 commits
Select commit
Hold shift + click to select a range
1927b3e
docs: rewrite and restructure the documentation
ovflowd 6972167
feat(www): redesign doc-kit.nodejs.org
ovflowd fa8b6af
fix(react): replay the press that hydrates an island
ovflowd cf2cef9
refactor(www): skip comments instead of stripping them when inlining …
ovflowd 51ca462
refactor(react): keep the press events with the other UI constants
ovflowd 0e79675
chore(www): make the site its own workspace package
ovflowd 2c5d005
chore(www): add the source of the social preview image
ovflowd 22abfaa
feat(www): make the benchmarks reproducible
ovflowd 9354308
docs: give every generator its own page again
ovflowd 93994e8
feat(www): write the home page in MDX on doc-kit's own code blocks
ovflowd c5ff68f
docs: link to one place instead of repeating it
ovflowd 25706ab
fix(react): scope the heading layout and mark the selected code tab
ovflowd ec4c73a
refactor(www): drop the workarounds doc-kit no longer needs
ovflowd 64dd3f3
feat(www): build the all page and take more from the configuration
ovflowd 12a5473
docs(react): shorten the comment on held presses
ovflowd 88e48bf
refactor: move the benchmark to scripts/ and slim it down
ovflowd dbd3aee
docs: make the diagrams self-contained and play them once
ovflowd 3f25b6c
feat(www): draw the home page's animations as SVGs
ovflowd 2e90212
refactor(www): keep the home page's main landmark on a div
ovflowd 68fcb10
feat(www): polish Kit's head
ovflowd 545de1a
chore(www): format the social card's source
ovflowd e0d7ced
fix(www): bring back the site and search previews
ovflowd File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| '@doc-kit/generator-react': patch | ||
| --- | ||
|
|
||
| Replay the click or tap that hydrates a code block, so its first press switches tabs or copies the code |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| --- | ||
| '@doc-kit/generator-react': patch | ||
| --- | ||
|
|
||
| Scope the heading layout to API entry headings, mark the selected code tab and let tabs wrap on narrow screens, and add a canonical link and `theme-color` to the default template |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,61 +1,135 @@ | ||
| # CLI | ||
|
|
||
| The `doc-kit` command-line interface. Every option that maps to | ||
| configuration can also live in a [configuration file](./configuration.md); | ||
| when both are present, CLI flags win (rule of specifity). | ||
| The `doc-kit` command builds your docs with `doc-kit generate` and serves | ||
| them locally with `doc-kit preview`. It comes from the | ||
| [`@doc-kit/cli`](./packages/cli.md) package; install it in your project as | ||
| shown in [Getting started](./getting-started.md), then run it with `npx`: | ||
|
|
||
| ```bash | ||
| npx @doc-kit/cli [command] [options] | ||
| ``` | ||
|
|
||
| One option applies to every command: | ||
|
|
||
| - `--log-level <level>` {string} `debug`, `info`, `warn`, `error`, or | ||
| `fatal`. **Default:** `'info'`. | ||
| `npx @doc-kit/cli --help` lists the commands, and | ||
| `npx @doc-kit/cli generate --help` the options of one. | ||
|
|
||
| ## `doc-kit generate` | ||
|
|
||
| Runs the generators and writes their output. It needs at least one target | ||
| and an input, from flags or a [configuration file](#configuration-files): | ||
|
|
||
| ```bash | ||
| npx @doc-kit/cli generate -t html -t orama-db -i "docs/**/*.md" -o out | ||
| ``` | ||
|
|
||
| Quote glob patterns, so they reach doc-kit as written instead of being | ||
| expanded by your shell. Options that take a list accept several values after | ||
| one flag (`-t html orama-db`) or the flag repeated (`-t html -t orama-db`). | ||
| Each option except `--config-file` sets the configuration key named in | ||
| parentheses. | ||
|
|
||
| - `-t, --target <name...>` {string[]} Generators to run (`target`): built-in | ||
| names, such as `html` or `orama-db`, or the import specifier or path of a | ||
| [custom generator](./creating-generators.md). The | ||
| [generators overview](./generators.md) lists the built-in ones and the | ||
| package each comes from. | ||
| - `-i, --input <patterns...>` {string[]} Glob patterns of the files to read | ||
| (`global.input`). | ||
| - `--ignore <patterns...>` {string[]} Glob patterns of files to leave out | ||
| (`global.ignore`). | ||
| - `-o, --output <dir>` {string} Directory to write the output to | ||
| (`global.output`). | ||
| - `--config-file <path>` {string} Path of the configuration file to load, | ||
| instead of searching the working directory for one. | ||
| - `-v, --version <semver>` {string} Version of the project being documented | ||
| (`global.version`), coerced to semver, so `22` means `22.0.0`. | ||
| **Default:** the version of Node.js running doc-kit. | ||
| - `-c, --changelog <url>` {string} URL or path of a changelog in the format of | ||
| Node.js's `CHANGELOG.md`, which the version selector is built from | ||
| (`global.changelog`). Without one, the output covers a single version. | ||
| - `--index <url>` {string} URL or path of an `index.md` whose list of links | ||
| (`* [Title](file.md)`) sets the order of the documents in the JSON bundle, | ||
| the legacy HTML sidebar and the legacy JSON bundle (`global.index`). | ||
| - `--git-ref <ref>` {string} Git branch, tag, or commit that links into your | ||
| repository point to, such as edit links and the JSON output's source URLs | ||
| (`global.ref`). The website's source code links follow | ||
| [`jsx-ast.ref`](./generators/jsx-ast.md#configuring) instead, which defaults | ||
| to `'main'` and is set in a configuration file. **Default:** `'HEAD'`. | ||
| - `--type-map <url>` {string} URL or path of a JSON file mapping type names to | ||
| the URLs documenting them, used to link types (`metadata.typeMap`). | ||
| - `--minify` {boolean} Minify the output (`global.minify`). **Default:** | ||
| `false`. | ||
| - `-p, --threads <n>` {number} Worker threads to use, at least 1 (`threads`). | ||
| **Default:** the number of CPUs, up to 4. | ||
| - `--chunk-size <n>` {number} Items each worker processes per task, at least 1 | ||
| (`chunkSize`). **Default:** `10`. | ||
|
|
||
| ```bash | ||
| npx @doc-kit/cli generate [options] | ||
| # Build everything the configuration file describes | ||
| npx @doc-kit/cli generate | ||
|
|
||
| # Build only the JSON output, minified, into dist/json | ||
| npx @doc-kit/cli generate -t json -o dist/json --minify | ||
| ``` | ||
|
|
||
| Runs the generators and writes their output. Requires a `target` and an | ||
| `input`, from flags or the configuration file. | ||
|
|
||
| - `--config-file <path>` {string} Use a specific configuration file instead | ||
| of searching. | ||
| - `-i, --input <patterns...>` {string[]} Input file patterns (glob). | ||
| - `-t, --target <name...>` {string[]} Generator name(s), or import | ||
| specifiers for custom generators. | ||
| - `--ignore <patterns...>` {string[]} Input patterns to skip. | ||
| - `-o, --output <dir>` {string} The output directory. | ||
| - `-v, --version <semver>` {string} The version of the project being | ||
| documented. | ||
| - `-c, --changelog <url>` {string} Changelog URL or path (release history | ||
| for version selectors). | ||
| - `--git-ref <ref>` {string} Git ref used in source links. | ||
| - `--index <url>` {string} `index.md` URL or path. | ||
| - `--minify` {boolean} Minify the output. | ||
| - `--type-map <url>` {string} Type map URL or path (custom type-name → URL | ||
| links). | ||
| - `-p, --threads <n>` {number} Worker threads to use (minimum 1). | ||
| - `--chunk-size <n>` {number} Items per worker thread (minimum 1). | ||
| When something fails, doc-kit logs the error and exits with code 1, so a | ||
| broken build also fails your CI job. | ||
|
|
||
| ## `doc-kit preview` | ||
|
|
||
| Serves the output directory over HTTP at <http://localhost:3000>, so you can | ||
| check a build in the browser the way a host would serve it: | ||
|
|
||
| ```bash | ||
| npx @doc-kit/cli preview [options] | ||
| ``` | ||
|
|
||
| Serves the generated docs over HTTP for local verification. Every `generate` | ||
| option is accepted: when any of them is passed, the docs are built first | ||
| (same semantics as `doc-kit generate`); otherwise the existing output | ||
| directory is served as-is (`./out` by default). | ||
| What it serves depends on the options you pass: | ||
|
|
||
| - **No `generate` options:** it serves `./out` as it is, without reading your | ||
| configuration file, and stops with an error if `./out` doesn't exist. | ||
| - **Any `generate` option:** it builds first, exactly as `doc-kit generate` | ||
| would, then serves the directory that build wrote to. To build from your | ||
| configuration file alone, pass it with `--config-file`. | ||
|
|
||
| It builds once and doesn't watch for changes, so run it again after editing. | ||
| Directories serve their `index.html`, and paths that don't exist get the | ||
| output's `404.html`, when it has one. | ||
|
|
||
| It takes these options, plus every option of | ||
| [`doc-kit generate`](#doc-kit-generate): | ||
|
|
||
| - `--port <n>` {number} Port to serve on; `0` picks a free one. **Default:** | ||
| `3000`. | ||
| - `--host <host>` {string} Host to listen on. **Default:** `'localhost'`. | ||
|
|
||
| ```bash | ||
| # Build with the configuration file, then serve its output directory | ||
| npx @doc-kit/cli preview --config-file doc-kit.config.mjs | ||
|
|
||
| # Build only the site, then serve it on another port | ||
| npx @doc-kit/cli preview -t html --port 8080 | ||
| ``` | ||
|
|
||
| > [!WARNING] | ||
| > The preview server is meant for local testing only. It is not a secure, | ||
| > production-grade server: don't expose it to other machines, and don't use | ||
| > it to deploy your documentation. To publish, see | ||
| > [Publishing your docs](./publishing.md). | ||
|
|
||
| ## Global options | ||
|
|
||
| These work with every command, before or after its name: | ||
|
|
||
| - `--log-level <level>` {string} Log only messages at this level or above: | ||
| `debug`, `info`, `warn`, `error`, or `fatal`. **Default:** `'info'`. | ||
|
|
||
| ```bash | ||
| npx @doc-kit/cli generate --log-level debug | ||
| ``` | ||
|
|
||
| > **Note:** The preview server is meant for local testing only — it is not | ||
| > production grade. Do not use it to deploy your documentation. | ||
| ## Configuration files | ||
|
|
||
| - `--port <n>` {number} Port to serve on. **Default:** `3000`. | ||
| - `--host <host>` {string} Host to listen on (e.g. `localhost`, `0.0.0.0`). | ||
| **Default:** `'localhost'`. | ||
| - Every option of [`doc-kit generate`](#doc-kit-generate). | ||
| Everything the `generate` flags set can also live in a | ||
| [configuration file](./configuration.md), along with what they don't cover, | ||
| such as generator options, Markdown plugins, and presets. Flags win over the | ||
| file; see [Precedence](./configuration.md#precedence). | ||
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.