Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .changeset/node-kitten-package.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
'@doc-kittens/node': major
'@node-core/doc-kit': minor
---

The Node.js-specific generators (`api-links`, `addon-verify`, and
`man-page`) now live in the new `@doc-kittens/node` package and are loaded
via import specifiers such as `@doc-kittens/node/man-page`. The CLI
shorthand names are unchanged.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ To generate [our redesigned documentation pages](https://nodejs-api-docs-tooling

```sh
npx doc-kit generate \
-t web \
-t html \
-t orama-db \
-i "path/to/node/doc/api/*.md" \
-o out \
Expand Down
2 changes: 1 addition & 1 deletion docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ export default {
// Targets, alternatively supplied by command line flags. Each entry is
// either a built-in shorthand name or an import specifier resolving to a
// generator module (e.g. '@my-scope/my-package/my-generator').
target: ['orama-db', 'web'],
target: ['orama-db', 'html'],
global: {
version: '20.0.0',
minify: true,
Expand Down
2 changes: 1 addition & 1 deletion eslint.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ export default defineConfig([
ignores: [
'www/out',
'out/',
'packages/core/src/generators/api-links/__tests__/fixtures/',
'packages/node/src/api-links/__tests__/fixtures/',
],
},
{
Expand Down
17 changes: 16 additions & 1 deletion package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 0 additions & 4 deletions packages/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,9 @@
"main": "./src/generators.mjs",
"exports": {
".": "./src/generators.mjs",
"./addon-verify": "./src/generators/addon-verify/index.mjs",
"./api-links": "./src/generators/api-links/index.mjs",
"./ast": "./src/generators/ast/index.mjs",
"./ast-js": "./src/generators/ast-js/index.mjs",
"./json-simple": "./src/generators/json-simple/index.mjs",
"./man-page": "./src/generators/man-page/index.mjs",
"./metadata": "./src/generators/metadata/index.mjs",
"./package.json": "./package.json",
"./shiki.config.mjs": "./shiki.config.mjs",
Expand Down Expand Up @@ -52,7 +49,6 @@
"commander": "^15.0.0",
"cosmiconfig": "^9.0.2",
"dedent": "^1.7.2",
"estree-util-visit": "^2.0.0",
"github-slugger": "^2.0.0",
"glob-parent": "^6.0.2",
"hastscript": "^9.0.1",
Expand Down
6 changes: 3 additions & 3 deletions packages/core/src/generators/index.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@ export const publicGenerators = {
'json-simple': '@node-core/doc-kit/json-simple',
'legacy-html': '@doc-kittens/legacy/legacy-html',
'legacy-html-all': '@doc-kittens/legacy/legacy-html-all',
'man-page': '@node-core/doc-kit/man-page',
'man-page': '@doc-kittens/node/man-page',
'legacy-json': '@doc-kittens/legacy/legacy-json',
'legacy-json-all': '@doc-kittens/legacy/legacy-json-all',
'addon-verify': '@node-core/doc-kit/addon-verify',
'api-links': '@node-core/doc-kit/api-links',
'addon-verify': '@doc-kittens/node/addon-verify',
'api-links': '@doc-kittens/node/api-links',

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Missing node package manifest

High Severity

The new @doc-kittens/node package is registered in the lockfile and wired up via shorthand aliases, but packages/node/package.json is absent. Without a manifest and exports map, imports such as @doc-kittens/node/man-page cannot resolve, so man-page, addon-verify, and api-links fail to load.

Additional Locations (2)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 1043c7e. Configure here.

'orama-db': '@doc-kittens/react/orama-db',
'llms-txt': '@doc-kittens/react/llms-txt',
sitemap: '@doc-kittens/react/sitemap',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import { mkdir } from 'node:fs/promises';
import { join } from 'node:path';

import getConfig from '@node-core/doc-kit/utils/configuration/index.mjs';
import { writeFile } from '@node-core/doc-kit/utils/file.mjs';
import { visit } from 'unist-util-visit';

import { EXTRACT_CODE_FILENAME_COMMENT } from './constants.mjs';
Expand All @@ -12,8 +14,6 @@ import {
isBuildableSection,
normalizeSectionName,
} from './utils/section.mjs';
import getConfig from '../../utils/configuration/index.mjs';
import { writeFile } from '../../utils/file.mjs';

/**
* Generates a file list from code blocks.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import type { MetadataEntry } from '../metadata/types';
import type { MetadataEntry } from '@node-core/doc-kit/generators/metadata/types';

export type Generator = GeneratorMetadata<
{},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import dedent from 'dedent';
const updateJsRequirePaths = content => {
return dedent`
'use strict';
const common = require('../../common');
const common = require('@node-core/doc-kit/generators/common');

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wrong require in generated tests

High Severity

updateJsRequirePaths now embeds require('@node-core/doc-kit/generators/common') into generated addon test.js files. Those files run under Node.js's test/addons tree and need the relative ../../common helper for common.buildType, so addon verification will fail to resolve the module.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 1043c7e. Configure here.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤦 Find + Replace always has quirks

${content.replace(
"'./build/Release/addon'",
'`./build/${common.buildType}/addon`'
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import { basename, join, relative, sep } from 'node:path';
import { after, before, describe, it } from 'node:test';

import { generate as astJsGenerate } from '@node-core/doc-kit/generators/ast-js/generate.mjs';
import { loadGenerator } from '@node-core/doc-kit/generators/loader.mjs';
import createWorkerPool from '@node-core/doc-kit/threading/index.mjs';
import createParallelWorker from '@node-core/doc-kit/threading/parallel.mjs';
import { setConfig } from '@node-core/doc-kit/utils/configuration/index.mjs';
import { globSync } from 'tinyglobby';

import { loadGenerator } from '../../../generators/loader.mjs';
import createWorkerPool from '../../../threading/index.mjs';
import createParallelWorker from '../../../threading/parallel.mjs';
import { setConfig } from '../../../utils/configuration/index.mjs';
import { generate as astJsGenerate } from '../../ast-js/generate.mjs';
import { generate as apiLinksGenerate } from '../generate.mjs';

const relativePath = relative(process.cwd(), import.meta.dirname);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,13 @@

import { basename, join } from 'node:path';

import getConfig from '@node-core/doc-kit/utils/configuration/index.mjs';
import { populate } from '@node-core/doc-kit/utils/configuration/templates.mjs';
import { withExt, writeFile } from '@node-core/doc-kit/utils/file.mjs';

import { checkIndirectReferences } from './utils/checkIndirectReferences.mjs';
import { extractExports } from './utils/extractExports.mjs';
import { findDefinitions } from './utils/findDefinitions.mjs';
import getConfig from '../../utils/configuration/index.mjs';
import { populate } from '../../utils/configuration/templates.mjs';
import { withExt, writeFile } from '../../utils/file.mjs';

/**
* Generates the `apilinks.json` file.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
'use strict';

import { GITHUB_BLOB_URL } from '@node-core/doc-kit/utils/configuration/templates.mjs';

import { generate } from './generate.mjs';
import { GITHUB_BLOB_URL } from '../../utils/configuration/templates.mjs';

/**
* This generator is responsible for mapping publicly accessible functions in
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,19 @@
import { readFile } from 'node:fs/promises';
import { join } from 'node:path';

import getConfig from '@node-core/doc-kit/utils/configuration/index.mjs';
import { writeFile } from '@node-core/doc-kit/utils/file.mjs';

import {
convertOptionToMandoc,
convertEnvVarToMandoc,
} from './utils/converter.mjs';
import getConfig from '../../utils/configuration/index.mjs';
import { writeFile } from '../../utils/file.mjs';

/**
* @param {Array<import('../metadata/types').MetadataEntry>} components
* @param {Array<import('@node-core/doc-kit/generators/metadata/types').MetadataEntry>} components
* @param {number} start
* @param {number} end
* @param {(element: import('../metadata/types').MetadataEntry) => string} convert
* @param {(element: import('@node-core/doc-kit/generators/metadata/types').MetadataEntry) => string} convert
* @returns {string}
*/
function extractMandoc(components, start, end, convert) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { MetadataEntry } from '../metadata/types';
import { MetadataEntry } from '@node-core/doc-kit/generators/metadata/types';

export type Generator = GeneratorMetadata<
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ const formatFlag = flag =>
* This function formats command-line options, including flags and descriptions,
* for display in Unix manual pages using Mandoc.
*
* @param {import('../../metadata/types').MetadataEntry} element - The metadata entry containing details about the API option.
* @param {import('@node-core/doc-kit/generators/metadata/types').MetadataEntry} element - The metadata entry containing details about the API option.
* @returns {string} The Mandoc formatted string representing the API option, including flags and content.
*/
export function convertOptionToMandoc(element) {
Expand All @@ -150,7 +150,7 @@ export function convertOptionToMandoc(element) {
* This function formats environment variables for Unix manual pages, converting
* the variable name and value, along with any associated descriptions, into Mandoc.
*
* @param {import('../../metadata/types').MetadataEntry} element - The metadata entry containing details about the environment variable.
* @param {import('@node-core/doc-kit/generators/metadata/types').MetadataEntry} element - The metadata entry containing details about the environment variable.
* @returns {string} The Mandoc formatted representation of the environment variable and its content.
*/
export function convertEnvVarToMandoc(element) {
Expand Down
Loading