{
  "type": "module",
  "source": "doc/api/packages-typedoc.md",
  "modules": [
    {
      "textRaw": "`@doc-kit/typedoc`",
      "name": "`@doc-kit/typedoc`",
      "type": "module",
      "desc": "<p>An <strong>experimental</strong> <a href=\"https://typedoc.org\">TypeDoc</a> plugin writing the API reference of a TypeScript project as <a href=\"../../docs/specification.html\">doc-kit Markdown</a>: a page per module, namespace and export, with doc-kit's signatures, typed lists, stability indices and source links, which doc-kit then builds into a site.</p>",
      "modules": [
        {
          "textRaw": "Usage",
          "name": "usage",
          "type": "module",
          "desc": "<pre><code class=\"language-sh\">npm install --save-dev typedoc @doc-kit/typedoc\n</code></pre>\n<p>Load the plugin in your TypeDoc configuration, and set where the reference goes:</p>\n<pre><code class=\"language-js\">// typedoc.config.mjs\nimport { load } from '@doc-kit/typedoc';\n\nexport default {\n  plugin: [load],\n  entryPoints: ['src/index.ts'],\n  docKit: 'docs/api',\n};\n</code></pre>\n<p><code>docKit</code> is the <code>doc-kit</code> output's shortcut, like TypeDoc's <code>html</code> and <code>json</code>; <code>outputs: [{ name: 'doc-kit', path: 'docs/api' }]</code> works too. Passing <code>load</code> rather than the package name lets TypeDoc load the plugin from your project, which strict package managers keep apart from TypeDoc's own installation.</p>\n<p>Then generate the reference, and point doc-kit at it:</p>\n<pre><code class=\"language-sh\">npx typedoc --options typedoc.config.mjs\n</code></pre>\n<pre><code class=\"language-js\">// doc-kit.config.mjs\nexport default {\n  global: { input: ['docs/**/*.md'] },\n  metadata: { typeMap: 'docs/api/type-map.json' },\n};\n</code></pre>",
          "displayName": "Usage"
        },
        {
          "textRaw": "Output",
          "name": "output",
          "type": "module",
          "desc": "<p>The output directory receives, following TypeDoc's own layout:</p>\n<ul>\n<li>A page per module and namespace (<code>modules/plugins.md</code>), listing its exports.</li>\n<li>A page per exported class, interface, enum, type alias, function and variable: <code>classes/Watcher.md</code>, <code>functions/build.md</code>, …</li>\n<li>A page per member of the types in <code>docKitMemberPages</code>: <code>interfaces/BuildOptions.input.md</code>, … A type only one of these members uses (<code>boolean | TreeshakeOptions</code>) is documented on its page, and the type's own page links there.</li>\n<li><code>type-map.json</code>, mapping type names to their pages, for doc-kit's <code>typeMap</code> to link <code>{Type}</code> annotations with.</li>\n<li><code>pages.json</code>, listing every page (full name, kind, URL and <code>@category</code>) for the site to build its navigation from, but those of types documented on a member's page.</li>\n</ul>\n<p><code>docKitUrlAdapter</code> adapts these URLs, to keep the URLs of a previous site working. Links between pages are relative <code>.md</code> links, which doc-kit resolves. Source links are relative to TypeDoc's <code>basePath</code> (or <code>displayBasePath</code>); set it to the root of your repository.</p>",
          "displayName": "Output"
        },
        {
          "textRaw": "How comments are rendered",
          "name": "how_comments_are_rendered",
          "type": "module",
          "desc": "<ul>\n<li>Call signatures become doc-kit signatures: a <code>`name(a[, b])`</code> heading and a typed list of the parameters and return value, with <code>@param</code> and <code>@returns</code> descriptions. The properties of object parameters are nested in the list.</li>\n<li>Properties and accessors become entries with a <code>Type:</code> item, and <code>@default</code> values. Object types, including <code>Partial</code>, <code>Readonly</code> and <code>Required</code> ones, have an entry per property.</li>\n<li>A class extending <code>EventEmitter&#x3C;Events></code>, or a typed emitter whose <code>on()</code> takes <code>(...args: Events[E]) => void</code> listeners, gets an <code>Event:</code> entry per member of <code>Events</code>, listing the arguments of its listeners (a tuple per event).</li>\n<li>Members are anchored by their name alone too (<code>#resolveid</code>), besides doc-kit's anchor of their heading, so links to them survive changes of their signature.</li>\n<li><code>@deprecated</code> and <code>@experimental</code> become stability indices.</li>\n<li><code>@example</code>, <code>@see</code> and <code>@throws</code> follow the description. Block tags of your own (declared with TypeDoc's <code>blockTags</code>) are rendered as <code>**Tag:** content</code>.</li>\n<li><code>{@link}</code> and <code>{@linkcode}</code> link to the target's page or entry.</li>\n<li>With several entry points, pages of exports missing from the main one say which entry points export them, by module name (set with <code>@module</code>). The main entry point is the first, or the project itself when merged into it with <code>@mergeModuleWith &#x3C;project></code>, which also leaves the module name out of its exports' URLs.</li>\n</ul>",
          "displayName": "How comments are rendered"
        },
        {
          "textRaw": "Options",
          "name": "options",
          "type": "module",
          "desc": "<ul>\n<li><code>docKit</code> <code class=\"type\"><a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#string_type\" class=\"type-link\">string</a></code> Where to write the reference.</li>\n<li><code>docKitBasePath</code> <code class=\"type\"><a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#string_type\" class=\"type-link\">string</a></code> Where the output directory is under doc-kit's input directory, which the type map and the page list are relative to. <strong>Default:</strong> the output directory's name (<code>api</code>).</li>\n<li><code>docKitTypeMap</code> <code class=\"type\"><a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#string_type\" class=\"type-link\">string</a> | <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#null_type\" class=\"type-link\">null</a></code> The type map's file name, in the output directory. <code>null</code> leaves it out. <strong>Default:</strong> <code>'type-map.json'</code>.</li>\n<li><code>docKitPageList</code> <code class=\"type\"><a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#string_type\" class=\"type-link\">string</a> | <a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#null_type\" class=\"type-link\">null</a></code> The page list's file name, in the output directory. <code>null</code> leaves it out. <strong>Default:</strong> <code>'pages.json'</code>.</li>\n<li><code>docKitMemberPages</code> <code class=\"type\"><a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Data_structures#string_type\" class=\"type-link\">string</a>[]</code> Interfaces and classes whose members are each documented on a page of their own, such as a bundler's options. Their own page, the pages of the types extending them, and the parameters of their type list the members and link to their pages, rather than repeating their documentation. <strong>Default:</strong> <code>[]</code>.</li>\n<li><code>docKitUrlAdapter</code> <code class=\"type\"><a href=\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Function\" class=\"type-link\">Function</a></code> Adapts the URL of each page: called with its default URL, without extension (<code>interfaces/Plugin</code>), and its reflection, it returns the URL to use (<code>Interface.Plugin</code>). Links, the type map and the page list follow it. <strong>Default:</strong> <code>undefined</code>.</li>\n<li><code>docKitReceivers</code> <code class=\"type\"><a href=\"https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object\" class=\"type-link\">Object</a></code> The name members of a type are documented on, by type name: <code>{ \"PluginContext\": \"this\" }</code> documents <code>this.resolve()</code>. <strong>Default:</strong> the type name in camelCase (<code>pluginContext.resolve()</code>).</li>\n</ul>",
          "displayName": "Options"
        }
      ],
      "displayName": "`@doc-kit/typedoc`"
    }
  ]
}