{"$schema":"https://doc-kit.nodejs.org/schemas/api-doc/1.0.1.json","id":"specification","path":"/specification","type":"module","module":"specification","title":"Specification","introducedIn":null,"sourceLink":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"**Version**: 1.0.1\n\n**Authored By**: Aviv Keller (<me@aviv.sh>)\n\nThis document specifies the Markdown format consumed by\n[`@doc-kit/core`](https://github.com/nodejs/doc-kit): the structural, syntactic, and semantic rules that\ndocuments MUST follow to be correctly parsed. The format is\n[GitHub Flavored Markdown](https://github.github.com/gfm/) (GFM), itself an extension of\n[CommonMark](https://spec.commonmark.org/0.31.2/), with conventions for API metadata, type annotations,\nstability indicators, and structured parameter lists.\n\nFor a task-oriented introduction to the format, read\n[Writing documentation](./writing-docs.html) first, and come back here for the\nexact rules.","summary":"**Version**: 1.0.1","examples":[],"children":[{"kind":"section","id":"how-to-read-this-specification","name":"How to Read This Specification","title":"How to Read This Specification","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Sections 1 and 2 define the terms used throughout and what makes a document\nconforming. Sections 3 to 11 each cover one construct: its rules, then an\nexample. Requirements are stated with the capitalized key words of\n[§1.1](#11-requirement-level-keywords); examples and the text explaining them are informative. Defined\nterms, such as [entry](#12-definitions), link to their definitions in\n[§1.2](#12-definitions).\n\nEach construct at a glance:\n\n| Construct            | Looks like                                                            | Defined in                                   |\n| -------------------- | --------------------------------------------------------------------- | -------------------------------------------- |\n| Entry heading        | `` ### `fs.readFile(path[, options], callback)` ``                    | [§4](#4-headings), [§5](#5-signature-syntax) |\n| YAML metadata block  | `<!-- YAML`, then YAML lines, then `-->`                              | [§6](#6-yaml-comment-blocks)                 |\n| Simple directive     | `<!--introduced_in=v0.10.0-->`                                        | [§6.2](#62-simple-directives)                |\n| Stability indicator  | `> [Stability: 1](documentation.html#stability-index) - Experimental` | [§7](#7-stability-indicators)                |\n| Type annotation      | `{string}`, `{Promise<Buffer>}`                                       | [§8](#8-type-annotations)                    |\n| Typed list item      | ``* `encoding` {string} **Default:** `'utf8'`.``                      | [§9](#9-typed-parameter-lists)               |\n| Fenced code block    | ` ```js displayName=\"Reading a file\" `                                | [§10](#10-code-blocks)                       |\n| Reference-style link | ``[`fs.readFile()`][]``                                               | [§11](#11-links-and-cross-references)        |\n\n***","summary":"Sections 1 and 2 define the terms used throughout and what makes a document conforming. Sections 3 to 11 each cover one construct: its rules, then an example. Requirements are stated with the capitalized key words of §1.1; examples and the text explaining them are informative. Defined terms, such as entry, link to their definitions in §1.2.","examples":[],"children":[]},{"kind":"section","id":"1-terminology-and-conventions","name":"1. Terminology and Conventions","title":"1. Terminology and Conventions","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"","summary":"","examples":[],"children":[{"kind":"section","id":"11-requirement-level-keywords","name":"1.1. Requirement Level Keywords","title":"1.1. Requirement Level Keywords","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"The key words \"MUST\", \"MUST NOT\", \"REQUIRED\", \"SHALL\", \"SHALL NOT\", \"SHOULD\",\n\"SHOULD NOT\", \"RECOMMENDED\", \"NOT RECOMMENDED\", \"MAY\", and \"OPTIONAL\" in this\ndocument are to be interpreted as described in [BCP 14](https://www.rfc-editor.org/info/bcp14)\n([RFC 2119](https://www.rfc-editor.org/rfc/rfc2119), [RFC 8174](https://www.rfc-editor.org/rfc/rfc8174)) when, and only when, they appear\nin ALL CAPITALS, as shown here.","summary":"The key words \"MUST\", \"MUST NOT\", \"REQUIRED\", \"SHALL\", \"SHALL NOT\", \"SHOULD\", \"SHOULD NOT\", \"RECOMMENDED\", \"NOT RECOMMENDED\", \"MAY\", and \"OPTIONAL\" in this document are to be interpreted as described in BCP 14 (RFC 2119, RFC 8174) when, and only when, they appear in ALL CAPITALS, as shown here.","examples":[],"children":[]},{"kind":"section","id":"12-definitions","name":"1.2. Definitions","title":"1.2. Definitions","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"The following terms are used throughout this specification with the meanings\ngiven below.\n\n**Document.** A single Markdown source file conforming to this specification.\nEach [document](#12-definitions) describes one API module, one conceptual topic,\nor one index listing.\n\n**Entry.** A discrete API element within a [document](#12-definitions). An\n[entry](#12-definitions) begins at a [heading](#4-headings) and extends to the next heading\nof equal or lesser depth, or to the end of the file. An entry comprises a\nheading, optional [YAML metadata](#6-yaml-comment-blocks), an optional\n[stability indicator](#7-stability-indicators), an optional [typed parameter list](#9-typed-parameter-lists), and an\noptional prose body.\n\n**Section.** A contiguous range of [entries](#12-definitions) sharing a common\nparent [heading](#4-headings).\n\n**Typed list.** An unordered list whose items follow the typed parameter\nsyntax defined in [§9](#9-typed-parameter-lists). [Typed lists](#12-definitions) provide structured\n[type](#8-type-annotations), [default-value](#95-default-values), and description metadata for function\nparameters, return values, or object properties.\n\n**Stability indicator.** A blockquote element whose text content begins with\n`Stability: ` followed by a numeric level, indicating the API lifecycle stage\nof the enclosing [entry](#12-definitions). See [§7](#7-stability-indicators).\n\n**YAML metadata block.** An [HTML comment](https://spec.commonmark.org/0.31.2/#html-blocks) whose content\nbegins with the keyword `YAML` and contains [YAML 1.2](https://yaml.org/spec/1.2.2/) data\nproviding version-history and classification metadata for the enclosing\n[entry](#12-definitions). See [§6](#6-yaml-comment-blocks).\n\n**Simple directive.** An [HTML comment](https://spec.commonmark.org/0.31.2/#html-blocks) whose content follows\nthe compact `key=value` pattern, providing [document](#12-definitions)-level or\n[section](#12-definitions)-level metadata. See [§6.2](#62-simple-directives).\n\n**Type annotation.** A [TypeScript](https://www.typescriptlang.org/) type expression enclosed in\nbalanced `{curly braces}` within a [typed list](#12-definitions) item, or in\nprose. It is rendered as a single code fragment whose type names are resolved\nto hyperlinks. See [§8](#8-type-annotations).\n\n***","summary":"The following terms are used throughout this specification with the meanings given below.","examples":[],"children":[]}]},{"kind":"section","id":"2-conformance","name":"2. Conformance","title":"2. Conformance","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"","summary":"","examples":[],"children":[{"kind":"section","id":"21-base-grammar","name":"2.1. Base Grammar","title":"2.1. Base Grammar","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"A conforming [document](#12-definitions) MUST be valid [GitHub Flavored\nMarkdown](https://github.github.com/gfm/) (GFM). This specification layers structure and semantics on\ntop of [GFM](https://github.github.com/gfm/) in two ways:\n\n* It assigns special meaning to some constructs, such as blockquotes used as\n  [stability indicators](#7-stability-indicators) and unordered lists used as\n  [typed parameter lists](#9-typed-parameter-lists). Each special meaning is defined in the relevant\n  section.\n* It restricts others: [Setext headings](#41-style), [indented code\n  blocks](#101-fence-style), and [tab characters](#24-whitespace) MUST NOT be used.\n\nAll other [GFM](https://github.github.com/gfm/) constructs are valid and retain their standard behavior.","summary":"A conforming document MUST be valid GitHub Flavored Markdown (GFM). This specification layers structure and semantics on top of GFM in two ways:","examples":[],"children":[]},{"kind":"section","id":"22-character-encoding","name":"2.2. Character Encoding","title":"2.2. Character Encoding","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Documents MUST be encoded in [UTF-8](https://www.rfc-editor.org/rfc/rfc3629). A byte order mark (BOM) MUST\nNOT be present.","summary":"Documents MUST be encoded in UTF-8. A byte order mark (BOM) MUST NOT be present.","examples":[],"children":[]},{"kind":"section","id":"23-line-endings","name":"2.3. Line Endings","title":"2.3. Line Endings","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Documents SHOULD use LF (`U+000A`) line endings. Both LF and CRLF\n(`U+000D U+000A`) MUST be accepted by a conforming implementation. Documents\nMUST end with a trailing newline.","summary":"Documents SHOULD use LF (`U+000A`) line endings. Both LF and CRLF (`U+000D U+000A`) MUST be accepted by a conforming implementation. Documents MUST end with a trailing newline.","examples":[],"children":[]},{"kind":"section","id":"24-whitespace","name":"2.4. Whitespace","title":"2.4. Whitespace","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Indentation MUST use spaces. Tab characters (`U+0009`) MUST NOT appear in\ndocument source except within [fenced code block](#10-code-blocks) content, where they\nreproduce literal output.\n\n***","summary":"Indentation MUST use spaces. Tab characters (`U+0009`) MUST NOT appear in document source except within fenced code block content, where they reproduce literal output.","examples":[],"children":[]}]},{"kind":"section","id":"3-document-structure","name":"3. Document Structure","title":"3. Document Structure","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"","summary":"","examples":[],"children":[{"kind":"section","id":"31-top-level-ordering","name":"3.1. Top-Level Ordering","title":"3.1. Top-Level Ordering","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"The top-level elements of a [document](#12-definitions) SHOULD appear in the\nfollowing order. Items marked OPTIONAL MAY be omitted entirely.\n\n1. **Title heading** (OPTIONAL, RECOMMENDED) - An\n   [ATX heading](https://spec.commonmark.org/0.31.2/#atx-headings) at depth 1.\n2. **[Simple directives](#62-simple-directives)** (OPTIONAL) - Zero or more\n   [HTML comment](https://spec.commonmark.org/0.31.2/#html-blocks) directives providing\n   [document](#12-definitions)-level metadata. These SHOULD immediately follow\n   the title heading.\n3. **Module-level [stability indicator](#7-stability-indicators)** (OPTIONAL) - A stability\n   blockquote applying to the [document](#12-definitions) as a whole.\n4. **Introductory prose** (OPTIONAL) - Free-form Markdown content.\n5. **API [entry](#12-definitions) [sections](#12-definitions)** (OPTIONAL,\n   REPEATABLE) - One or more [headings](#4-headings) at depth 2 or greater, each\n   introducing an [entry](#12-definitions). Each entry follows the sub-ordering\n   in [§3.2](#32-entry-ordering).\n6. **[Link reference definitions](#116-link-reference-definitions)** (OPTIONAL) - These SHOULD be\n   collected at the end of the file, after all [entry](#12-definitions)\n   [sections](#12-definitions).\n\n```markdown\n# Command-line API\n\n<!--introduced_in=v5.9.1-->\n\n<!--type=misc-->\n\nNode.js comes with a variety of CLI options. These options expose built-in\ndebugging, multiple ways to execute scripts, and other helpful runtime options.\n```","summary":"The top-level elements of a document SHOULD appear in the following order. Items marked OPTIONAL MAY be omitted entirely.","examples":[{"language":"markdown","displayName":null,"code":"# Command-line API\n\n<!--introduced_in=v5.9.1-->\n\n<!--type=misc-->\n\nNode.js comes with a variety of CLI options. These options expose built-in\ndebugging, multiple ways to execute scripts, and other helpful runtime options."}],"children":[]},{"kind":"section","id":"32-entry-ordering","name":"3.2. Entry Ordering","title":"3.2. Entry Ordering","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Within each API [entry](#12-definitions), elements MUST appear in this order:\n\n1. **[Heading](#4-headings)** (REQUIRED) - An [ATX heading](https://spec.commonmark.org/0.31.2/#atx-headings).\n2. **[YAML metadata block](#6-yaml-comment-blocks)** (OPTIONAL) - This SHOULD immediately follow\n   the heading ([§6.7](#67-placement)).\n3. **[Stability indicator](#7-stability-indicators)** (OPTIONAL) - A stability blockquote.\n4. **[Typed parameter list](#9-typed-parameter-lists)** (OPTIONAL) - An unordered list describing\n   parameters, return value, type, or extends clause.\n5. **Prose body** (OPTIONAL) - Free-form Markdown content.\n6. **Code examples** (OPTIONAL) - [Fenced code blocks](#10-code-blocks).\n7. **Sub-[entries](#12-definitions)** (OPTIONAL, REPEATABLE) - Deeper\n   [headings](#4-headings) beginning nested entries, following this same ordering\n   recursively.\n\n***","summary":"Within each API entry, elements MUST appear in this order:","examples":[],"children":[]}]},{"kind":"section","id":"4-headings","name":"4. Headings","title":"4. Headings","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"","summary":"","examples":[],"children":[{"kind":"section","id":"41-style","name":"4.1. Style","title":"4.1. Style","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"All headings MUST use [ATX style](https://spec.commonmark.org/0.31.2/#atx-headings) (`#` prefix).\n[Setext-style headings](https://spec.commonmark.org/0.31.2/#setext-headings) (underline with `=` or `-`) MUST\nNOT be used.","summary":"All headings MUST use ATX style (`#` prefix). Setext-style headings (underline with `=` or `-`) MUST NOT be used.","examples":[],"children":[]},{"kind":"section","id":"42-depth-semantics","name":"4.2. Depth Semantics","title":"4.2. Depth Semantics","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"","summary":"","examples":[],"children":[{"kind":"section","id":"421-depth-1","name":"4.2.1. Depth 1","title":"4.2.1. Depth 1","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"The [document](#12-definitions) title. Exactly one depth-1 heading SHOULD appear\nper document.","summary":"The document title. Exactly one depth-1 heading SHOULD appear per document.","examples":[],"children":[]},{"kind":"section","id":"422-depth-2","name":"4.2.2. Depth 2","title":"4.2.2. Depth 2","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Top-level API [entries](#12-definitions): classes, module-level functions,\nmodule-level properties, module-level events, and major conceptual\n[sections](#12-definitions).","summary":"Top-level API entries: classes, module-level functions, module-level properties, module-level events, and major conceptual sections.","examples":[],"children":[]},{"kind":"section","id":"423-additional-depths","name":"4.2.3. Additional Depths","title":"4.2.3. Additional Depths","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Nested API [entries](#12-definitions): instance methods, instance properties, class\nevents, constructors, static methods, sub-properties, and further nesting.\nStatic methods SHOULD appear at one depth below their class heading.\n\nDocuments SHOULD NOT use heading depths greater than 5.","summary":"Nested API entries: instance methods, instance properties, class events, constructors, static methods, sub-properties, and further nesting. Static methods SHOULD appear at one depth below their class heading.","examples":[],"children":[]}]},{"kind":"section","id":"43-entry-type-classification","name":"4.3. Entry Type Classification","title":"4.3. Entry Type Classification","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Each [heading](#4-headings) is classified into an [entry](#12-definitions) type by testing\nits text against the patterns below, evaluated in the order given. The first\nmatch wins. All pattern matching is performed on the plain text of the heading\nafter stripping the ATX prefix.\n\nEach type has a name, given in its subsection, which the\n[`type` field](#635-type-override) of a YAML metadata block can use to override the\nclassification.","summary":"Each heading is classified into an entry type by testing its text against the patterns below, evaluated in the order given. The first match wins. All pattern matching is performed on the plain text of the heading after stripping the ATX prefix.","examples":[],"children":[{"kind":"section","id":"431-method","name":"4.3.1. Method","title":"4.3.1. Method","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Type name: `method`. The heading text is a backtick-wrapped call: a function\nname, optionally reached through a dotted or bracketed receiver, followed by\nparentheses. The parentheses distinguish methods from [properties](#436-property).\n\n```markdown\n### `fs.readFile(path[, options], callback)`\n### `buf.write(string[, offset[, length]][, encoding])`\n### `request[Symbol.asyncIterator]()`\n### `require(id)`\n```","summary":"Type name: `method`. The heading text is a backtick-wrapped call: a function name, optionally reached through a dotted or bracketed receiver, followed by parentheses. The parentheses distinguish methods from properties.","examples":[{"language":"markdown","displayName":null,"code":"### `fs.readFile(path[, options], callback)`\n### `buf.write(string[, offset[, length]][, encoding])`\n### `request[Symbol.asyncIterator]()`\n### `require(id)`"}],"children":[]},{"kind":"section","id":"432-event","name":"4.3.2. Event","title":"4.3.2. Event","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Type name: `event`. The heading text begins with the literal prefix `Event:`,\na space, and a backtick-wrapped event name, which SHOULD be single-quoted\n([§4.5.2](#452-event-name-quoting)).\n\n```markdown\n### Event: `'close'`\n### Event: `'data'`\n```","summary":"Type name: `event`. The heading text begins with the literal prefix `Event:`, a space, and a backtick-wrapped event name, which SHOULD be single-quoted (§4.5.2).","examples":[{"language":"markdown","displayName":null,"code":"### Event: `'close'`\n### Event: `'data'`"}],"children":[]},{"kind":"section","id":"433-class","name":"4.3.3. Class","title":"4.3.3. Class","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Type name: `class`. The heading text begins with the literal prefix `Class:`,\na space, and a backtick-wrapped class identifier. The class name SHOULD begin\nwith an uppercase ASCII letter.\n\n```markdown\n## Class: `http.Server`\n## Class: `EventEmitterAsyncResource`\n```","summary":"Type name: `class`. The heading text begins with the literal prefix `Class:`, a space, and a backtick-wrapped class identifier. The class name SHOULD begin with an uppercase ASCII letter.","examples":[{"language":"markdown","displayName":null,"code":"## Class: `http.Server`\n## Class: `EventEmitterAsyncResource`"}],"children":[]},{"kind":"section","id":"434-constructor","name":"4.3.4. Constructor","title":"4.3.4. Constructor","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Type name: `ctor`. The heading text is a backtick-wrapped expression beginning\nwith the keyword `new`, followed by whitespace, then an uppercase-initial class\nidentifier and parenthesized [parameters](#5-signature-syntax).\n\n```markdown\n### `new Agent([options])`\n### `new Buffer(size)`\n```","summary":"Type name: `ctor`. The heading text is a backtick-wrapped expression beginning with the keyword `new`, followed by whitespace, then an uppercase-initial class identifier and parenthesized parameters.","examples":[{"language":"markdown","displayName":null,"code":"### `new Agent([options])`\n### `new Buffer(size)`"}],"children":[]},{"kind":"section","id":"435-static-method","name":"4.3.5. Static Method","title":"4.3.5. Static Method","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Type name: `classMethod`. The heading text begins with the literal prefix\n`Static method:`, a space, and a backtick-wrapped qualified method call (with\nparentheses).\n\n```markdown\n#### Static method: `Buffer.alloc(size[, fill[, encoding]])`\n#### Static method: `Buffer.from(string[, encoding])`\n```","summary":"Type name: `classMethod`. The heading text begins with the literal prefix `Static method:`, a space, and a backtick-wrapped qualified method call (with parentheses).","examples":[{"language":"markdown","displayName":null,"code":"#### Static method: `Buffer.alloc(size[, fill[, encoding]])`\n#### Static method: `Buffer.from(string[, encoding])`"}],"children":[]},{"kind":"section","id":"436-property","name":"4.3.6. Property","title":"4.3.6. Property","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Type name: `property`. The heading text is a backtick-wrapped dotted or\nbracketed property access that does not contain parentheses. The absence of\nparentheses distinguishes properties from [methods](#431-method).\n\n```markdown\n### `buf.length`\n### `os.EOL`\n### `http.METHODS`\n```","summary":"Type name: `property`. The heading text is a backtick-wrapped dotted or bracketed property access that does not contain parentheses. The absence of parentheses distinguishes properties from methods.","examples":[{"language":"markdown","displayName":null,"code":"### `buf.length`\n### `os.EOL`\n### `http.METHODS`"}],"children":[]},{"kind":"section","id":"437-default-classification","name":"4.3.7. Default Classification","title":"4.3.7. Default Classification","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"If no pattern matches, the [entry](#12-definitions) has no type and is a\nmiscellaneous [section](#12-definitions).\n\n```markdown\n## Synopsis\n```","summary":"If no pattern matches, the entry has no type and is a miscellaneous section.","examples":[{"language":"markdown","displayName":null,"code":"## Synopsis"}],"children":[]}]},{"kind":"section","id":"44-document-type-and-heading-interpretation","name":"4.4. Document Type and Heading Interpretation","title":"4.4. Document Type and Heading Interpretation","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"The [document](#12-definitions)-level [`type` directive](#622-type) determines how\nclassified [entries](#12-definitions) are interpreted with respect to module\nmembership and export scope. The `type` establishes a **default context** for\nall headings in the file. This context can be overridden at the\n[section](#12-definitions) level or at the individual [entry](#12-definitions) level.","summary":"The document-level `type` directive determines how classified entries are interpreted with respect to module membership and export scope. The `type` establishes a **default context** for all headings in the file. This context can be overridden at the section level or at the individual entry level.","examples":[],"children":[{"kind":"section","id":"441-module-documents","name":"4.4.1. Module Documents","title":"4.4.1. Module Documents","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"When `type` is `module` (or when no `type` directive is present, as `module`\nis the default), classified [entries](#12-definitions) are treated as **exports of\nthe module** identified by the document's filename or\n[`name` simple directive](#626-name).\n\nA single module document MAY describe exports from more than one related\nmodule (e.g., `fs` and `fs/promises`). The module boundary does not affect\nentry classification or rendering; the classification algorithm in [§4.3](#43-entry-type-classification)\noperates identically regardless of which module an entry belongs to. Where the\ndistinction does matter (e.g., for import paths or module-specific rendering),\na [module context override](#444-module-context-override) SHOULD be used.\n\n```markdown\n# File system\n\n<!--type=module-->\n<!--name=fs-->\n```","summary":"When `type` is `module` (or when no `type` directive is present, as `module` is the default), classified entries are treated as **exports of the module** identified by the document's filename or `name` simple directive.","examples":[{"language":"markdown","displayName":null,"code":"# File system\n\n<!--type=module-->\n<!--name=fs-->"}],"children":[]},{"kind":"section","id":"442-miscellaneous-documents","name":"4.4.2. Miscellaneous Documents","title":"4.4.2. Miscellaneous Documents","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"When `type` is `misc`, headings are not assumed to be module exports.\nClassified [entries](#12-definitions) are treated as **conceptual sections** or\nstandalone topics.\n\n```markdown\n# C++ addons\n\n<!--type=misc-->\n```","summary":"When `type` is `misc`, headings are not assumed to be module exports. Classified entries are treated as **conceptual sections** or standalone topics.","examples":[{"language":"markdown","displayName":null,"code":"# C++ addons\n\n<!--type=misc-->"}],"children":[]},{"kind":"section","id":"443-global-documents","name":"4.4.3. Global Documents","title":"4.4.3. Global Documents","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"When `type` is `global`, classified [entries](#12-definitions) are treated as\n**global** APIs, available without an `import` or `require`. Implementations\nMAY render global entries differently from module exports (e.g., omitting a\nmodule prefix).\n\n```markdown\n# Global objects\n\n<!--type=global-->\n```","summary":"When `type` is `global`, classified entries are treated as **global** APIs, available without an `import` or `require`. Implementations MAY render global entries differently from module exports (e.g., omitting a module prefix).","examples":[{"language":"markdown","displayName":null,"code":"# Global objects\n\n<!--type=global-->"}],"children":[]},{"kind":"section","id":"444-module-context-override","name":"4.4.4. Module Context Override","title":"4.4.4. Module Context Override","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"The [`module` simple directive](#625-module) overrides the owning module for all\nsub-entries beneath the heading it is attached to. This allows a single\ndocument to describe exports from multiple modules without splitting into\nseparate files.\n\n```markdown\n## Promises API\n\n<!--module=node:fs/promises-->\n\n### `fsPromises.readFile(path[, options])`\n```\n\nAll headings beneath the annotated heading inherit the overridden module\ncontext until the next heading of equal or lesser depth, or until another\n`module` directive.","summary":"The `module` simple directive overrides the owning module for all sub-entries beneath the heading it is attached to. This allows a single document to describe exports from multiple modules without splitting into separate files.","examples":[{"language":"markdown","displayName":null,"code":"## Promises API\n\n<!--module=node:fs/promises-->\n\n### `fsPromises.readFile(path[, options])`"}],"children":[]},{"kind":"section","id":"445-per-entry-override","name":"4.4.5. Per-Entry Override","title":"4.4.5. Per-Entry Override","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Individual [entries](#12-definitions) MAY override their classification context\nusing the [`type` field](#635-type-override) in a [YAML metadata block](#6-yaml-comment-blocks):\n\n```markdown\n### `globalThis.structuredClone(value[, options])`\n\n<!-- YAML\nadded: v17.0.0\ntype: global\n-->\n```\n\nThis is useful in `module`-type documents that contain isolated global entries,\nor in `misc`-type documents that contain isolated module exports.","summary":"Individual entries MAY override their classification context using the `type` field in a YAML metadata block:","examples":[{"language":"markdown","displayName":null,"code":"### `globalThis.structuredClone(value[, options])`\n\n<!-- YAML\nadded: v17.0.0\ntype: global\n-->"}],"children":[]}]},{"kind":"section","id":"45-heading-text-conventions","name":"4.5. Heading Text Conventions","title":"4.5. Heading Text Conventions","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"","summary":"","examples":[],"children":[{"kind":"section","id":"451-code-spans-in-headings","name":"4.5.1. Code Spans in Headings","title":"4.5.1. Code Spans in Headings","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Programmatic identifiers (method names, property names, class names, event\nnames, flag names) MUST be wrapped in backtick code spans. Prose\n[section](#12-definitions) headings MUST NOT use backticks.\n\n```markdown\n### `buf.length`\n## Synopsis\n```","summary":"Programmatic identifiers (method names, property names, class names, event names, flag names) MUST be wrapped in backtick code spans. Prose section headings MUST NOT use backticks.","examples":[{"language":"markdown","displayName":null,"code":"### `buf.length`\n## Synopsis"}],"children":[]},{"kind":"section","id":"452-event-name-quoting","name":"4.5.2. Event Name Quoting","title":"4.5.2. Event Name Quoting","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Event names SHOULD be wrapped in single quotes inside the backticks:\n\n```markdown\n### Event: `'drain'`\n```","summary":"Event names SHOULD be wrapped in single quotes inside the backticks:","examples":[{"language":"markdown","displayName":null,"code":"### Event: `'drain'`"}],"children":[]},{"kind":"section","id":"453-multiple-forms","name":"4.5.3. Multiple Forms","title":"4.5.3. Multiple Forms","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"When a single API [entry](#12-definitions) has multiple invocation forms (e.g.,\nshort and long flag names), they SHOULD be listed in a single heading\nseparated by `, `:\n\n```markdown\n### `-c`, `--check`\n```\n\n***","summary":"When a single API entry has multiple invocation forms (e.g., short and long flag names), they SHOULD be listed in a single heading separated by `, `:","examples":[{"language":"markdown","displayName":null,"code":"### `-c`, `--check`"}],"children":[]}]}]},{"kind":"section","id":"5-signature-syntax","name":"5. Signature Syntax","title":"5. Signature Syntax","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"[Method](#431-method) and [constructor](#434-constructor) headings encode their call\nsignature directly in the heading text.","summary":"Method and constructor headings encode their call signature directly in the heading text.","examples":[],"children":[{"kind":"section","id":"51-required-parameters","name":"5.1. Required Parameters","title":"5.1. Required Parameters","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Required parameters appear as bare identifiers inside the parentheses:\n\n```markdown\n### `fs.readFile(path, callback)`\n```","summary":"Required parameters appear as bare identifiers inside the parentheses:","examples":[{"language":"markdown","displayName":null,"code":"### `fs.readFile(path, callback)`"}],"children":[]},{"kind":"section","id":"52-optional-parameters","name":"5.2. Optional Parameters","title":"5.2. Optional Parameters","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Optional parameters are wrapped in square brackets:\n\n```markdown\n### `fs.readFile(path[, options], callback)`\n```","summary":"Optional parameters are wrapped in square brackets:","examples":[{"language":"markdown","displayName":null,"code":"### `fs.readFile(path[, options], callback)`"}],"children":[]},{"kind":"section","id":"53-nested-optionals","name":"5.3. Nested Optionals","title":"5.3. Nested Optionals","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Parameters that are only meaningful when a preceding optional parameter is\nprovided use nested brackets:\n\n```markdown\n### `buf.write(string[, offset[, length]][, encoding])`\n```","summary":"Parameters that are only meaningful when a preceding optional parameter is provided use nested brackets:","examples":[{"language":"markdown","displayName":null,"code":"### `buf.write(string[, offset[, length]][, encoding])`"}],"children":[]},{"kind":"section","id":"54-rest-parameters","name":"5.4. Rest Parameters","title":"5.4. Rest Parameters","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Rest parameters use ellipsis notation within square brackets:\n\n```markdown\n### `path.join([...paths])`\n```","summary":"Rest parameters use ellipsis notation within square brackets:","examples":[{"language":"markdown","displayName":null,"code":"### `path.join([...paths])`"}],"children":[]},{"kind":"section","id":"55-constraints","name":"5.5. Constraints","title":"5.5. Constraints","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"[Default values](#95-default-values) MUST NOT appear in the heading signature. Defaults are\ndocumented in the [typed parameter list](#9-typed-parameter-lists) using the `**Default:**` pattern.\n\n[Type annotations](#8-type-annotations) MUST NOT appear in the heading signature. Types are\ndocumented in the [typed parameter list](#9-typed-parameter-lists).\n\n***","summary":"Default values MUST NOT appear in the heading signature. Defaults are documented in the typed parameter list using the `**Default:**` pattern.","examples":[],"children":[]}]},{"kind":"section","id":"6-yaml-comment-blocks","name":"6. YAML Comment Blocks","title":"6. YAML Comment Blocks","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"","summary":"","examples":[],"children":[{"kind":"section","id":"61-block-syntax","name":"6.1. Block Syntax","title":"6.1. Block Syntax","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"[YAML metadata](#12-definitions) is embedded in [HTML comments](https://spec.commonmark.org/0.31.2/#html-blocks).\nThe opening delimiter is `<!-- YAML`, with one space before `YAML`, and the\nclosing delimiter is `-->`. The content between these delimiters MUST\nbe valid [YAML 1.2](https://yaml.org/spec/1.2.2/).\n\n```markdown\n<!-- YAML\nadded: v12.0.0\n-->\n```\n\nThe comment MUST appear on its own lines. A [heading](#4-headings) MAY contain\nmultiple [YAML metadata blocks](#12-definitions) and related HTML comments\nwithin its subtree; such blocks MUST be merged into a single metadata\nobject for that heading.","summary":"YAML metadata is embedded in HTML comments. The opening delimiter is `<!-- YAML`, with one space before `YAML`, and the closing delimiter is `-->`. The content between these delimiters MUST be valid YAML 1.2.","examples":[{"language":"markdown","displayName":null,"code":"<!-- YAML\nadded: v12.0.0\n-->"}],"children":[]},{"kind":"section","id":"62-simple-directives","name":"6.2. Simple Directives","title":"6.2. Simple Directives","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"[Document](#12-definitions)-level and [section](#12-definitions)-level metadata\nuses a compact `key=value` syntax inside [HTML comments](https://spec.commonmark.org/0.31.2/#html-blocks).\nEach directive has the form `<!--key=value-->`.\n\nDocument-level directives (such as `introduced_in` and `type`) SHOULD appear\nimmediately after the depth-1 heading. Section-level directives (see\n[§6.2.5](#625-module)) SHOULD appear immediately after the heading they annotate.\n\n```markdown\n# File System\n\n<!--introduced_in=v0.10.0-->\n<!--type=module-->\n<!--name=fs-->\n<!--source_link=lib/fs.js-->\n```\n\nEach [directive](#12-definitions) occupies exactly one\n[HTML comment](https://spec.commonmark.org/0.31.2/#html-blocks). The following keys are defined:","summary":"Document-level and section-level metadata uses a compact `key=value` syntax inside HTML comments. Each directive has the form `<!--key=value-->`.","examples":[{"language":"markdown","displayName":null,"code":"# File System\n\n<!--introduced_in=v0.10.0-->\n<!--type=module-->\n<!--name=fs-->\n<!--source_link=lib/fs.js-->"}],"children":[{"kind":"section","id":"621-introduced_in","name":"6.2.1. introduced_in","title":"6.2.1. `introduced_in`","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"A [version string](#64-version-strings) indicating when the module was introduced.\n\n* **Example:** `<!--introduced_in=v0.10.0-->`","summary":"A version string indicating when the module was introduced.","examples":[],"children":[]},{"kind":"section","id":"622-type","name":"6.2.2. type","title":"6.2.2. `type`","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"The [document](#12-definitions) classification. Recognized values are `module`,\n`misc`, and `global`. Implementations MAY define additional values. If no\n`type` directive is present, the default is `module`.\n\n* **Example:** `<!--type=misc-->`\n\nSee [§4.4](#44-document-type-and-heading-interpretation) for how document type influences heading interpretation.","summary":"The document classification. Recognized values are `module`, `misc`, and `global`. Implementations MAY define additional values. If no `type` directive is present, the default is `module`.","examples":[],"children":[]},{"kind":"section","id":"623-source_link","name":"6.2.3. source_link","title":"6.2.3. `source_link`","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"A relative file path to the implementation source. Rendered as a link.\n\n* **Example:** `<!--source_link=lib/fs.js-->`","summary":"A relative file path to the implementation source. Rendered as a link.","examples":[],"children":[]},{"kind":"section","id":"624-llm_description","name":"6.2.4. llm_description","title":"6.2.4. `llm_description`","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"A plain-text description optimized for consumption by Large Language Models,\nused in preference to extracted prose where available.\n\n* **Example:** `<!--llm_description=Reads and writes files on disk.-->`","summary":"A plain-text description optimized for consumption by Large Language Models, used in preference to extracted prose where available.","examples":[],"children":[]},{"kind":"section","id":"625-module","name":"6.2.5. module","title":"6.2.5. `module`","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Overrides the owning module for all sub-entries beneath the annotated heading.\nThe value is a module specifier (e.g., `node:fs/promises`). This directive\nis placed immediately after a [heading](#4-headings), not after the depth-1 heading.\n\nSee [§4.4.4](#444-module-context-override) for full semantics.\n\n```markdown\n## Promises API\n\n<!--module=node:fs/promises-->\n```","summary":"Overrides the owning module for all sub-entries beneath the annotated heading. The value is a module specifier (e.g., `node:fs/promises`). This directive is placed immediately after a heading, not after the depth-1 heading.","examples":[{"language":"markdown","displayName":null,"code":"## Promises API\n\n<!--module=node:fs/promises-->"}],"children":[]},{"kind":"section","id":"626-name","name":"6.2.6. name","title":"6.2.6. `name`","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"The identifier of the [entry](#12-definitions) the directive annotates, used\ninstead of the name derived from its heading text. After the depth-1 heading,\nit names the module the [document](#12-definitions) describes.\n\n* **Example:** `<!--name=fs-->`","summary":"The identifier of the entry the directive annotates, used instead of the name derived from its heading text. After the depth-1 heading, it names the module the document describes.","examples":[],"children":[]}]},{"kind":"section","id":"63-yaml-metadata-fields","name":"6.3. YAML Metadata Fields","title":"6.3. YAML Metadata Fields","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"The following fields are defined within [YAML metadata blocks](#12-definitions).\nAny field not listed here is reserved for future specification and MUST be\nignored by conforming implementations that do not recognize it.","summary":"The following fields are defined within YAML metadata blocks. Any field not listed here is reserved for future specification and MUST be ignored by conforming implementations that do not recognize it.","examples":[],"children":[{"kind":"section","id":"631-added","name":"6.3.1. added","title":"6.3.1. `added`","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"The [version(s)](#64-version-strings) in which this entry was first available.\n\n* **Type:** [version string](#64-version-strings), or array of version strings for backports.\n* **Example:** `added: v8.0.0`\n\nWhen an API was backported, the array MUST list versions in descending order.","summary":"The version(s) in which this entry was first available.","examples":[],"children":[]},{"kind":"section","id":"632-deprecated","name":"6.3.2. deprecated","title":"6.3.2. `deprecated`","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"The [version(s)](#64-version-strings) in which this API was deprecated.\n\n* **Type:** [version string](#64-version-strings), or array of version strings.\n* **Example:** `deprecated: v6.0.0`","summary":"The version(s) in which this API was deprecated.","examples":[],"children":[]},{"kind":"section","id":"633-removed","name":"6.3.3. removed","title":"6.3.3. `removed`","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"The [version(s)](#64-version-strings) in which this API was removed.\n\n* **Type:** [version string](#64-version-strings), or array of version strings.\n* **Example:** `removed: v14.0.0`","summary":"The version(s) in which this API was removed.","examples":[],"children":[]},{"kind":"section","id":"634-changes","name":"6.3.4. changes","title":"6.3.4. `changes`","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"A chronological array of change records. Each record MUST contain the\nfollowing properties:\n\n* `version` (REQUIRED) - A [version string](#64-version-strings) or array of version\n  strings.\n* `pr-url` (REQUIRED) - A full URL to the pull request.\n* `description` (REQUIRED) - A human-readable description. Inline Markdown\n  is permitted. Multi-line descriptions use [YAML](https://yaml.org/spec/1.2.2/) block-scalar\n  indentation.\n\n```yaml\nchanges:\n  - version: v18.0.0\n    pr-url: https://github.com/nodejs/node/pull/41678\n    description: Passing an invalid callback now throws\n      `ERR_INVALID_ARG_TYPE`.\n  - version:\n      - v21.7.0\n      - v20.12.0\n    pr-url: https://github.com/nodejs/node/pull/51289\n    description: Added multi-line value support.\n```","summary":"A chronological array of change records. Each record MUST contain the following properties:","examples":[{"language":"yaml","displayName":null,"code":"changes:\n  - version: v18.0.0\n    pr-url: https://github.com/nodejs/node/pull/41678\n    description: Passing an invalid callback now throws\n      `ERR_INVALID_ARG_TYPE`.\n  - version:\n      - v21.7.0\n      - v20.12.0\n    pr-url: https://github.com/nodejs/node/pull/51289\n    description: Added multi-line value support."}],"children":[]},{"kind":"section","id":"635-type-override","name":"6.3.5. type (Override)","title":"6.3.5. `type` (Override)","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"When present in a [YAML block](#12-definitions), this overrides the\n[heading classification type](#43-entry-type-classification) for the enclosing [entry](#12-definitions).\nIt can also override the document-level export/global context as described\nin [§4.4.5](#445-per-entry-override).\n\n* **Type:** string (one of the type names defined in [§4.3](#43-entry-type-classification), or a\n  context value such as `global`).\n* **Example:** `type: method`","summary":"When present in a YAML block, this overrides the heading classification type for the enclosing entry. It can also override the document-level export/global context as described in §4.4.5.","examples":[],"children":[]},{"kind":"section","id":"636-source_link","name":"6.3.6. source_link","title":"6.3.6. `source_link`","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Relative path to the implementation source file. Identical semantics to the\n[simple directive](#623-source_link) of the same name.\n\n* **Example:** `source_link: lib/fs.js`","summary":"Relative path to the implementation source file. Identical semantics to the simple directive of the same name.","examples":[],"children":[]},{"kind":"section","id":"637-llm_description","name":"6.3.7. llm_description","title":"6.3.7. `llm_description`","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Identical semantics to the [simple directive](#624-llm_description) of the same name.\n\n* **Example:** `llm_description: Reads a whole file into memory.`","summary":"Identical semantics to the simple directive of the same name.","examples":[],"children":[]}]},{"kind":"section","id":"64-version-strings","name":"6.4. Version Strings","title":"6.4. Version Strings","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Version strings MUST follow [semantic versioning](https://semver.org/) with a lowercase\n`v` prefix, in the form `v<MAJOR>.<MINOR>.<PATCH>`. Implementations MAY\ndefine additional sentinel values for unreleased features (e.g., placeholder\nstrings that are replaced during a release process).","summary":"Version strings MUST follow semantic versioning with a lowercase `v` prefix, in the form `v<MAJOR>.<MINOR>.<PATCH>`. Implementations MAY define additional sentinel values for unreleased features (e.g., placeholder strings that are replaced during a release process).","examples":[],"children":[]},{"kind":"section","id":"65-plain-tag-comments","name":"6.5. Plain Tag Comments","title":"6.5. Plain Tag Comments","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"[HTML comments](https://spec.commonmark.org/0.31.2/#html-blocks) that do not match the\n[YAML block](#12-definitions) pattern and do not match the\n[simple directive](#12-definitions) pattern are parsed as **tags**. If\nthe content is a simple string, it is stored as a tag on the\n[entry](#12-definitions):\n\n```markdown\n<!-- legacy -->\n```\n\nImplementations MAY define reserved tag values for special purposes such as\ncontent slot markers.","summary":"HTML comments that do not match the YAML block pattern and do not match the simple directive pattern are parsed as **tags**. If the content is a simple string, it is stored as a tag on the entry:","examples":[{"language":"markdown","displayName":null,"code":"<!-- legacy -->"}],"children":[]},{"kind":"section","id":"66-frontmatter-conversion","name":"6.6. Frontmatter Conversion","title":"6.6. Frontmatter Conversion","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Standard [YAML](https://yaml.org/spec/1.2.2/) frontmatter delimited by `---` at the start of a\nfile is converted to a [YAML comment block](#12-definitions) during\npreprocessing. The following two forms are equivalent:\n\n```markdown\n---\nintroduced_in: v0.10.0\n---\n```\n\n```markdown\n<!-- YAML\nintroduced_in: v0.10.0\n-->\n```\n\nDocuments SHOULD use the [HTML comment](https://spec.commonmark.org/0.31.2/#html-blocks) syntax directly.\nFrontmatter is accepted for compatibility.","summary":"Standard YAML frontmatter delimited by `---` at the start of a file is converted to a YAML comment block during preprocessing. The following two forms are equivalent:","examples":[{"language":"markdown","displayName":null,"code":"---\nintroduced_in: v0.10.0\n---"},{"language":"markdown","displayName":null,"code":"<!-- YAML\nintroduced_in: v0.10.0\n-->"}],"children":[]},{"kind":"section","id":"67-placement","name":"6.7. Placement","title":"6.7. Placement","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"A [YAML metadata block](#12-definitions) SHOULD immediately follow the\n[heading](#4-headings) it annotates. This placement is RECOMMENDED for clarity and\nconsistency, but the parser accepts [YAML blocks](#12-definitions) anywhere\nwithin the annotated entry's subtree.\n\n***","summary":"A YAML metadata block SHOULD immediately follow the heading it annotates. This placement is RECOMMENDED for clarity and consistency, but the parser accepts YAML blocks anywhere within the annotated entry's subtree.","examples":[],"children":[]}]},{"kind":"section","id":"7-stability-indicators","name":"7. Stability Indicators","title":"7. Stability Indicators","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"","summary":"","examples":[],"children":[{"kind":"section","id":"71-syntax","name":"7.1. Syntax","title":"7.1. Syntax","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"A [stability indicator](#12-definitions) is a blockquote whose first paragraph\nbegins with `Stability: ` followed by a numeric level, a dash separator\n(`-`), and a textual label. The level is an integer or a decimal\n[sub-level](#73-sub-levels). The description extends to the end of the blockquote.\n\n```markdown\n> Stability: 2 - Stable\n```","summary":"A stability indicator is a blockquote whose first paragraph begins with `Stability: ` followed by a numeric level, a dash separator (`-`), and a textual label. The level is an integer or a decimal sub-level. The description extends to the end of the blockquote.","examples":[{"language":"markdown","displayName":null,"code":"> Stability: 2 - Stable"}],"children":[]},{"kind":"section","id":"72-levels","name":"7.2. Levels","title":"7.2. Levels","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Four [stability](#12-definitions) levels are defined.","summary":"Four stability levels are defined.","examples":[],"children":[{"kind":"section","id":"721-level-0-deprecated","name":"7.2.1. Level 0: Deprecated","title":"7.2.1. Level 0: Deprecated","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"The feature may emit warnings. Backward compatibility is not guaranteed.","summary":"The feature may emit warnings. Backward compatibility is not guaranteed.","examples":[],"children":[]},{"kind":"section","id":"722-level-1-experimental","name":"7.2.2. Level 1: Experimental","title":"7.2.2. Level 1: Experimental","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Not subject to [semantic versioning](https://semver.org/) rules. Non-backward-compatible\nchanges or removal may occur in any future release.","summary":"Not subject to semantic versioning rules. Non-backward-compatible changes or removal may occur in any future release.","examples":[],"children":[]},{"kind":"section","id":"723-level-2-stable","name":"7.2.3. Level 2: Stable","title":"7.2.3. Level 2: Stable","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Compatibility with the ecosystem is a high priority.","summary":"Compatibility with the ecosystem is a high priority.","examples":[],"children":[]},{"kind":"section","id":"724-level-3-legacy","name":"7.2.4. Level 3: Legacy","title":"7.2.4. Level 3: Legacy","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Still covered by [semantic versioning](https://semver.org/) guarantees, but no longer\nactively maintained. Other alternatives are available.","summary":"Still covered by semantic versioning guarantees, but no longer actively maintained. Other alternatives are available.","examples":[],"children":[]}]},{"kind":"section","id":"73-sub-levels","name":"7.3. Sub-Levels","title":"7.3. Sub-Levels","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"[Level 1](#722-level-1-experimental) supports decimal sub-levels indicating maturity within the\nexperimental phase. This specification only defines semantics for decimal\nsub-levels of level 1.\n\n```markdown\n> Stability: 1.1 - Active development\n```","summary":"Level 1 supports decimal sub-levels indicating maturity within the experimental phase. This specification only defines semantics for decimal sub-levels of level 1.","examples":[{"language":"markdown","displayName":null,"code":"> Stability: 1.1 - Active development"}],"children":[{"kind":"section","id":"731-level-10-early-development","name":"7.3.1. Level 1.0: Early Development","title":"7.3.1. Level 1.0: Early Development","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Unfinished and subject to substantial change.","summary":"Unfinished and subject to substantial change.","examples":[],"children":[]},{"kind":"section","id":"732-level-11-active-development","name":"7.3.2. Level 1.1: Active Development","title":"7.3.2. Level 1.1: Active Development","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Nearing minimum viability.","summary":"Nearing minimum viability.","examples":[],"children":[]},{"kind":"section","id":"733-level-12-release-candidate","name":"7.3.3. Level 1.2: Release Candidate","title":"7.3.3. Level 1.2: Release Candidate","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Expected to become stable.","summary":"Expected to become stable.","examples":[],"children":[]}]},{"kind":"section","id":"74-multi-line-indicators","name":"7.4. Multi-Line Indicators","title":"7.4. Multi-Line Indicators","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"The description MAY continue on subsequent blockquote lines:\n\n```markdown\n> Stability: 1 - Experimental. This API is under active development and\n> may change without notice between minor releases.\n```","summary":"The description MAY continue on subsequent blockquote lines:","examples":[{"language":"markdown","displayName":null,"code":"> Stability: 1 - Experimental. This API is under active development and\n> may change without notice between minor releases."}],"children":[]},{"kind":"section","id":"75-inline-content","name":"7.5. Inline Content","title":"7.5. Inline Content","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"The description MAY contain inline Markdown such as links and code spans:\n\n```markdown\n> Stability: 3 - Legacy: Use [`alternative()`][] instead.\n```","summary":"The description MAY contain inline Markdown such as links and code spans:","examples":[{"language":"markdown","displayName":null,"code":"> Stability: 3 - Legacy: Use [`alternative()`][] instead."}],"children":[]},{"kind":"section","id":"76-placement","name":"7.6. Placement","title":"7.6. Placement","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"A [stability indicator](#12-definitions) MUST appear after the\n[YAML metadata block](#6-yaml-comment-blocks) (if present) and before the\n[typed parameter list](#9-typed-parameter-lists) and prose body. An [entry](#12-definitions) SHOULD have\nat most one [stability indicator](#12-definitions):\n\n```markdown\n### `myModule.myMethod()`\n\n<!-- YAML\nadded: v1.2.3\n-->\n\n> Stability: 3 - Legacy: Use [`alternative()`][] instead.\n```\n\nA [stability indicator](#12-definitions) on the depth-1 heading applies to the\n[document](#12-definitions) as a whole.\n\n***","summary":"A stability indicator MUST appear after the YAML metadata block (if present) and before the typed parameter list and prose body. An entry SHOULD have at most one stability indicator:","examples":[{"language":"markdown","displayName":null,"code":"### `myModule.myMethod()`\n\n<!-- YAML\nadded: v1.2.3\n-->\n\n> Stability: 3 - Legacy: Use [`alternative()`][] instead."}],"children":[]}]},{"kind":"section","id":"8-type-annotations","name":"8. Type Annotations","title":"8. Type Annotations","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"","summary":"","examples":[],"children":[{"kind":"section","id":"81-syntax","name":"8.1. Syntax","title":"8.1. Syntax","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"A [type annotation](#12-definitions) is any balanced `{curly brace}`\nspan in text. The content between the braces is a [TypeScript](https://www.typescriptlang.org/)\ntype expression — anything valid on the right-hand side of a TypeScript\n`type X = ...` alias.\n\nAnnotations appear both in [typed parameter lists](#9-typed-parameter-lists) (as part of item\nstructure) and in prose text (as inline references); both forms are parsed\nand rendered identically.\n\n```markdown\n* `data` {string|Buffer} The data to write.\n* Returns: {Promise<void>}\n\nThe callback receives an {Error} or `null`.\n```","summary":"A type annotation is any balanced `{curly brace}` span in text. The content between the braces is a TypeScript type expression — anything valid on the right-hand side of a TypeScript `type X = ...` alias.","examples":[{"language":"markdown","displayName":null,"code":"* `data` {string|Buffer} The data to write.\n* Returns: {Promise<void>}\n\nThe callback receives an {Error} or `null`."}],"children":[]},{"kind":"section","id":"82-parsing","name":"8.2. Parsing","title":"8.2. Parsing","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Implementations MUST parse each annotation whose value is not a whole-value\n[map match](#83-resolution) under the TypeScript type grammar. Implementations SHOULD\ncollect every annotation in a [document](#12-definitions) and parse them in a\nsingle batch.\n\nAn annotation that fails to parse MUST produce a warning identifying the\nsource location, and MUST be rendered as plain, unlinked code.","summary":"Implementations MUST parse each annotation whose value is not a whole-value map match under the TypeScript type grammar. Implementations SHOULD collect every annotation in a document and parse them in a single batch.","examples":[],"children":[]},{"kind":"section","id":"83-resolution","name":"8.3. Resolution","title":"8.3. Resolution","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Each annotation resolves to a set of hyperlinks:\n\n1. **Whole-value lookup.** If the entire annotation value matches a type-map\n   entry verbatim, the whole annotation becomes a single link. This permits\n   display-name keys that are not valid TypeScript identifiers (e.g.\n   `zlib options`).\n2. **Identifier resolution.** Otherwise, every type name in the parsed\n   expression resolves individually: keyword types (`string`, `number`,\n   `boolean`, ...), type-reference names, qualified names (`vm.Module`),\n   `typeof` targets, and `import('mod').X` qualifiers. Structural names —\n   function parameter names, object property keys — are never resolved.\n\nEach name resolves through the following tiers; the first match wins:\n\n1. The configurable type map provided to the toolchain, which associates\n   names with documentation URLs. An example type map is available for\n   viewing [here](https://github.com/nodejs/node/blob/main/doc/type-map.json).\n2. JavaScript primitives and language types, matched case-insensitively:\n   `string`, `number`, `boolean`, `bigint`, `symbol`, `null`, `undefined`,\n   `integer`, `any`, `void`, `this`, `Iterable`, and `AsyncIterable`.\n3. JavaScript built-in objects and Web platform APIs documented on MDN,\n   matched case-insensitively, such as `Array`, `Promise`, and `AbortSignal`.\n4. Dotted-name heuristic: a name made of dotted identifiers links to the\n   [document](#12-definitions) of the module named before the first `.`, at\n   the anchor of the name's own heading. For example, `vm.Module` links to\n   the `vm` document's `Class: vm.Module` heading.\n\nA name that no tier resolves stays plain — this is not an error.","summary":"Each annotation resolves to a set of hyperlinks:","examples":[],"children":[]},{"kind":"section","id":"84-rendering","name":"8.4. Rendering","title":"8.4. Rendering","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"The whole annotation renders as ONE inline code fragment. Each resolved name\nbecomes a hyperlink spanning exactly its character range within the fragment;\nunresolved names remain plain text inside it. Implementations MAY\nsyntax-highlight the fragment as TypeScript.\n\n***","summary":"The whole annotation renders as ONE inline code fragment. Each resolved name becomes a hyperlink spanning exactly its character range within the fragment; unresolved names remain plain text inside it. Implementations MAY syntax-highlight the fragment as TypeScript.","examples":[],"children":[]}]},{"kind":"section","id":"9-typed-parameter-lists","name":"9. Typed Parameter Lists","title":"9. Typed Parameter Lists","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"A [typed list](#12-definitions) is an unordered Markdown list used to\ndefine parameters, properties, or other lists of types.","summary":"A typed list is an unordered Markdown list used to define parameters, properties, or other lists of types.","examples":[],"children":[{"kind":"section","id":"91-identification","name":"9.1. Identification","title":"9.1. Identification","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"A [typed list](#12-definitions) is an unordered Markdown list recognized by\nthe content of its first item. A list is a [typed list](#12-definitions) if\nits first item matches any of these conditions:\n\n1. It begins with text matching one of the [special prefixes](#93-special-prefixes)\n   (`Returns:`, `Extends:`, `Type:`).\n2. It begins with a [type annotation](#8-type-annotations).\n3. It begins with an inline code span (the parameter name) followed by a\n   space and then a [type annotation](#8-type-annotations).","summary":"A typed list is an unordered Markdown list recognized by the content of its first item. A list is a typed list if its first item matches any of these conditions:","examples":[],"children":[]},{"kind":"section","id":"92-item-structure","name":"9.2. Item Structure","title":"9.2. Item Structure","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Each item in a [typed list](#12-definitions) has the form:\n\n```markdown\n* `name` {Type} Description text. **Default:** `value`.\n```\n\nThe components, in order, are:\n\n1. **Bullet marker** - `*`, `+`, or `-`.\n2. **Parameter name** - A backtick code span. REQUIRED for parameter items;\n   absent for [`Returns:`](#931-returns), [`Type:`](#933-type), and\n   [`Extends:`](#932-extends) items.\n3. **[Type annotation](#8-type-annotations)** - A single `{...}` TypeScript type expression\n   (a union belongs inside it, e.g. `{string|Buffer}`). OPTIONAL.\n4. **Description** - Free-form prose. OPTIONAL.\n5. **[Default value](#95-default-values)** - The exact pattern `` **Default:** `value` ``.\n   OPTIONAL.","summary":"Each item in a typed list has the form:","examples":[{"language":"markdown","displayName":null,"code":"* `name` {Type} Description text. **Default:** `value`."}],"children":[]},{"kind":"section","id":"93-special-prefixes","name":"9.3. Special Prefixes","title":"9.3. Special Prefixes","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"","summary":"","examples":[],"children":[{"kind":"section","id":"931-returns","name":"9.3.1. Returns:","title":"9.3.1. `Returns:`","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Denotes the return value of a function:\n\n```markdown\n* Returns: {Promise} The file contents.\n```","summary":"Denotes the return value of a function:","examples":[{"language":"markdown","displayName":null,"code":"* Returns: {Promise} The file contents."}],"children":[]},{"kind":"section","id":"932-extends","name":"9.3.2. Extends:","title":"9.3.2. `Extends:`","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Denotes the superclass of a [class](#433-class):\n\n```markdown\n* Extends: {EventEmitter}\n```\n\n`Extends:` items SHOULD appear as the first item in a [class](#433-class)\n[entry's](#12-definitions) [typed list](#12-definitions).","summary":"Denotes the superclass of a class:","examples":[{"language":"markdown","displayName":null,"code":"* Extends: {EventEmitter}"}],"children":[]},{"kind":"section","id":"933-type","name":"9.3.3. Type:","title":"9.3.3. `Type:`","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Denotes the type of a [property](#436-property) or constant:\n\n```markdown\n* Type: {string}\n```","summary":"Denotes the type of a property or constant:","examples":[{"language":"markdown","displayName":null,"code":"* Type: {string}"}],"children":[]}]},{"kind":"section","id":"94-nested-properties","name":"9.4. Nested Properties","title":"9.4. Nested Properties","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Object parameters document their properties using indented sub-lists:\n\n```markdown\n* `options` {Object}\n  * `encoding` {string} Character encoding. **Default:** `'utf8'`.\n  * `flag` {string} File system flag. **Default:** `'r'`.\n  * `signal` {AbortSignal} Abort signal.\n```\n\nNesting MAY continue to arbitrary depth.","summary":"Object parameters document their properties using indented sub-lists:","examples":[{"language":"markdown","displayName":null,"code":"* `options` {Object}\n  * `encoding` {string} Character encoding. **Default:** `'utf8'`.\n  * `flag` {string} File system flag. **Default:** `'r'`.\n  * `signal` {AbortSignal} Abort signal."}],"children":[]},{"kind":"section","id":"95-default-values","name":"9.5. Default Values","title":"9.5. Default Values","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Optionality is indicated by the `**Default:**` pattern. Parameters with a\ndocumented default are considered optional. The default value MUST be wrapped\nin a backtick code span:\n\n```markdown\n* `encoding` {string} **Default:** `'utf8'`.\n```","summary":"Optionality is indicated by the `**Default:**` pattern. Parameters with a documented default are considered optional. The default value MUST be wrapped in a backtick code span:","examples":[{"language":"markdown","displayName":null,"code":"* `encoding` {string} **Default:** `'utf8'`."}],"children":[]},{"kind":"section","id":"96-placement","name":"9.6. Placement","title":"9.6. Placement","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"A [typed list](#12-definitions) MUST appear after the\n[stability indicator](#7-stability-indicators) (if present) and before the prose body. When\npresent, the list is extracted from the content flow and represented as\nstructured data in output.\n\n***","summary":"A typed list MUST appear after the stability indicator (if present) and before the prose body. When present, the list is extracted from the content flow and represented as structured data in output.","examples":[],"children":[]}]},{"kind":"section","id":"10-code-blocks","name":"10. Code Blocks","title":"10. Code Blocks","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"","summary":"","examples":[],"children":[{"kind":"section","id":"101-fence-style","name":"10.1. Fence Style","title":"10.1. Fence Style","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Code blocks MUST use [fenced syntax](https://spec.commonmark.org/0.31.2/#fenced-code-blocks) (triple backticks).\n[Indented code blocks](https://spec.commonmark.org/0.31.2/#indented-code-blocks) MUST NOT be used.","summary":"Code blocks MUST use fenced syntax (triple backticks). Indented code blocks MUST NOT be used.","examples":[],"children":[]},{"kind":"section","id":"102-info-strings","name":"10.2. Info Strings","title":"10.2. Info Strings","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Every [fenced code block](https://spec.commonmark.org/0.31.2/#fenced-code-blocks) SHOULD include a language\nidentifier in its [info string](https://spec.commonmark.org/0.31.2/#info-string). The language identifier is\nthe first whitespace-delimited token after the opening fence.\n\nCommon language identifiers include: `js`, `cjs`, `mjs`, `json`, `console`,\n`bash`, `text`, `typescript`, `c`, `cpp`, `http`, `markdown`, `diff`.","summary":"Every fenced code block SHOULD include a language identifier in its info string. The language identifier is the first whitespace-delimited token after the opening fence.","examples":[],"children":[]},{"kind":"section","id":"103-the-displayname-attribute","name":"10.3. The displayName Attribute","title":"10.3. The `displayName` Attribute","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"A [fenced code block](https://spec.commonmark.org/0.31.2/#fenced-code-blocks) MAY include a `displayName`\nkey-value attribute after the language identifier in the\n[info string](https://spec.commonmark.org/0.31.2/#info-string). The `displayName` provides a human-readable\nlabel for the code block, used in rendered output. The attribute syntax is\n`displayName=\"value\"` where the value is a double-quoted string.\n\nImplementations MAY support additional [info string](https://spec.commonmark.org/0.31.2/#info-string)\nattributes using the same `key=\"value\"` syntax.\n\n````markdown\n```js displayName=\"Reading a file\"\nconst data = fs.readFileSync('/path/to/file');\n```\n````\n\n***","summary":"A fenced code block MAY include a `displayName` key-value attribute after the language identifier in the info string. The `displayName` provides a human-readable label for the code block, used in rendered output. The attribute syntax is `displayName=\"value\"` where the value is a double-quoted string.","examples":[{"language":"markdown","displayName":null,"code":"```js displayName=\"Reading a file\"\nconst data = fs.readFileSync('/path/to/file');\n```"}],"children":[]}]},{"kind":"section","id":"11-links-and-cross-references","name":"11. Links and Cross-References","title":"11. Links and Cross-References","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"","summary":"","examples":[],"children":[{"kind":"section","id":"111-reference-style-links","name":"11.1. Reference-Style Links","title":"11.1. Reference-Style Links","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"All links SHOULD use collapsed [reference-style links](https://spec.commonmark.org/0.31.2/#link-reference-definitions):\n\n```markdown\nSee [`fs.readFile()`][] for details.\n```\n\nwith corresponding [link reference definitions](#116-link-reference-definitions) at the end of the\n[document](#12-definitions).","summary":"All links SHOULD use collapsed reference-style links:","examples":[{"language":"markdown","displayName":null,"code":"See [`fs.readFile()`][] for details."}],"children":[]},{"kind":"section","id":"112-cross-document-links","name":"11.2. Cross-Document Links","title":"11.2. Cross-Document Links","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"Links to other [documents](#12-definitions) in the same documentation set MUST\nuse relative paths with `.md` extensions in the source. Conforming\nimplementations MUST rewrite the `.md` extension to the appropriate output\nextension (e.g., `.html`) during generation:\n\n```markdown\n[Stream documentation]: stream.md#class-streamreadable\n```","summary":"Links to other documents in the same documentation set MUST use relative paths with `.md` extensions in the source. Conforming implementations MUST rewrite the `.md` extension to the appropriate output extension (e.g., `.html`) during generation:","examples":[{"language":"markdown","displayName":null,"code":"[Stream documentation]: stream.md#class-streamreadable"}],"children":[]},{"kind":"section","id":"113-external-links","name":"11.3. External Links","title":"11.3. External Links","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"External links MUST use full URLs including the protocol:\n\n```markdown\n[MDN Web Docs]: https://developer.mozilla.org/\n```","summary":"External links MUST use full URLs including the protocol:","examples":[{"language":"markdown","displayName":null,"code":"[MDN Web Docs]: https://developer.mozilla.org/"}],"children":[]},{"kind":"section","id":"114-system-call-auto-linking","name":"11.4. System-Call Auto-Linking","title":"11.4. System-Call Auto-Linking","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"References to system calls in the format `name(section)`, such as `open(2)`,\nare automatically converted by conforming implementations to links to the\nmatching manual page, such as the one on man7.org for `open(2)`.\n\n```markdown\nOpens the file with open(2).\n```","summary":"References to system calls in the format `name(section)`, such as `open(2)`, are automatically converted by conforming implementations to links to the matching manual page, such as the one on man7.org for `open(2)`.","examples":[{"language":"markdown","displayName":null,"code":"Opens the file with open(2)."}],"children":[]},{"kind":"section","id":"115-type-auto-linking","name":"11.5. Type Auto-Linking","title":"11.5. Type Auto-Linking","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"[Type annotations](#12-definitions) in prose text ([§8.1](#81-syntax)) are\nparsed ([§8.2](#82-parsing)), resolved ([§8.3](#83-resolution)), and rendered ([§8.4](#84-rendering))\nexactly like annotations in [typed parameter lists](#9-typed-parameter-lists).","summary":"Type annotations in prose text (§8.1) are parsed (§8.2), resolved (§8.3), and rendered (§8.4) exactly like annotations in typed parameter lists.","examples":[],"children":[]},{"kind":"section","id":"116-link-reference-definitions","name":"11.6. Link Reference Definitions","title":"11.6. Link Reference Definitions","scope":"module","overloadOf":null,"stability":null,"added":[],"deprecated":[],"removed":[],"napiVersion":[],"changes":[],"description":"[Link reference definitions](https://spec.commonmark.org/0.31.2/#link-reference-definitions) SHOULD be collected at the end\nof the [document](#12-definitions), after all content\n[sections](#12-definitions):\n\n```markdown\n[`fs.readFile()`]: #fsreadfilepath-options-callback\n[`stream.Readable`]: stream.md#class-streamreadable\n```","summary":"Link reference definitions SHOULD be collected at the end of the document, after all content sections:","examples":[{"language":"markdown","displayName":null,"code":"[`fs.readFile()`]: #fsreadfilepath-options-callback\n[`stream.Readable`]: stream.md#class-streamreadable"}],"children":[]}]}]}