typedoc
Version:
Create api documentation for TypeScript projects.
942 lines • 24.7 kB
JSON
{
"$schema": "https://json-schema.org/draft-07/schema",
"title": "JSON Schema for typedoc.json",
"type": "object",
"properties": {
"options": {
"description": "Specify a json option file that should be loaded. If not specified TypeDoc will look for 'typedoc.json' in the current directory",
"type": "string"
},
"tsconfig": {
"description": "Specify a TypeScript config file that should be loaded. If not specified TypeDoc will look for 'tsconfig.json' in the current directory",
"type": "string"
},
"compilerOptions": {
"description": "Selectively override the TypeScript compiler options used by TypeDoc",
"type": "object",
"markedOptions": "object"
},
"lang": {
"description": "Sets the language to be used in generation and in TypeDoc's messages",
"type": "string",
"default": "en"
},
"locales": {
"description": "Add translations for a specified locale. This option is primarily intended to be used as a stopgap while waiting for official locale support to be added to TypeDoc",
"default": {}
},
"packageOptions": {
"description": "Set options which will be set within each package when entryPointStrategy is set to packages",
"default": {}
},
"entryPoints": {
"description": "The entry points of your documentation",
"type": "array",
"items": {
"type": "string"
},
"default": []
},
"entryPointStrategy": {
"description": "The strategy to be used to convert entry points into documentation modules",
"enum": [
"resolve",
"expand",
"packages",
"merge"
],
"default": "resolve"
},
"alwaysCreateEntryPointModule": {
"description": "When set, TypeDoc will always create a `Module` for entry points, even if only one is provided",
"type": "boolean",
"default": false
},
"projectDocuments": {
"description": "Documents which should be added as children to the root of the generated documentation. Supports globs to match multiple files",
"type": "array",
"items": {
"type": "string"
},
"default": []
},
"exclude": {
"description": "Define patterns to be excluded when expanding a directory that was specified as an entry point",
"type": "array",
"items": {
"type": "string"
},
"default": []
},
"externalPattern": {
"description": "Define patterns for files that should be considered being external",
"type": "array",
"items": {
"type": "string"
},
"default": [
"**/node_modules/**"
]
},
"excludeExternals": {
"description": "Prevent externally resolved symbols from being documented",
"type": "boolean",
"default": false
},
"excludeNotDocumented": {
"description": "Prevent symbols that are not explicitly documented from appearing in the results",
"type": "boolean",
"default": false
},
"excludeNotDocumentedKinds": {
"description": "Specify the type of reflections that can be removed by excludeNotDocumented",
"type": "array",
"items": {
"type": "string"
},
"default": [
"Module",
"Namespace",
"Enum",
"Variable",
"Function",
"Class",
"Interface",
"Constructor",
"Property",
"Method",
"CallSignature",
"IndexSignature",
"ConstructorSignature",
"Accessor",
"GetSignature",
"SetSignature",
"TypeAlias",
"Reference"
]
},
"excludeInternal": {
"description": "Prevent symbols that are marked with @internal from being documented",
"type": "boolean",
"default": false
},
"excludeCategories": {
"description": "Exclude symbols within this category from the documentation",
"type": "array",
"items": {
"type": "string"
},
"default": []
},
"excludePrivate": {
"description": "Ignore members marked with the private keyword and #private class fields, defaults to true.",
"type": "boolean",
"default": true
},
"excludePrivateClassFields": {
"description": "Ignore #private class fields, defaults to true.",
"type": "boolean",
"default": true
},
"excludeProtected": {
"description": "Ignore protected variables and methods",
"type": "boolean",
"default": false
},
"excludeReferences": {
"description": "If a symbol is exported multiple times, ignore all but the first export",
"type": "boolean",
"default": false
},
"externalSymbolLinkMappings": {
"description": "Define custom links for symbols not included in the documentation",
"default": {}
},
"readme": {
"description": "Path to the readme file that should be displayed on the index page. Pass `none` to disable the index page and start the documentation on the globals page",
"type": "string",
"default": ""
},
"basePath": {
"description": "Specifies a path which links may be resolved relative to.",
"type": "string",
"default": ""
},
"outputs": {
"description": "Specify the location the documentation for the default output should be written to. The default output type may be changed by plugins."
},
"out": {
"description": "Specify the location the documentation for the default output should be written to. The default output type may be changed by plugins.",
"type": "string",
"default": "./docs"
},
"html": {
"description": "Specify the location where html documentation should be written to.",
"type": "string",
"default": ""
},
"json": {
"description": "Specify the location and filename a JSON file describing the project is written to",
"type": "string",
"default": ""
},
"pretty": {
"description": "Specify whether the output JSON should be formatted with tabs",
"type": "boolean",
"default": true
},
"emit": {
"description": "Specify what TypeDoc should emit, 'docs', 'both', or 'none'",
"enum": [
"both",
"docs",
"none"
],
"default": "docs"
},
"theme": {
"description": "Specify the theme name to render the documentation with",
"type": "string",
"default": "default"
},
"router": {
"description": "Specify the router name to use to determine file names in the documentation",
"type": "string",
"default": "kind"
},
"lightHighlightTheme": {
"description": "Specify the code highlighting theme in light mode",
"type": "string",
"default": "light-plus"
},
"darkHighlightTheme": {
"description": "Specify the code highlighting theme in dark mode",
"type": "string",
"default": "dark-plus"
},
"highlightLanguages": {
"description": "Specify the languages which will be loaded to highlight code when rendering",
"type": "array",
"items": {
"type": "string"
},
"default": [
"bash",
"console",
"css",
"html",
"javascript",
"json",
"jsonc",
"json5",
"yaml",
"tsx",
"typescript"
]
},
"ignoredHighlightLanguages": {
"description": "Specify languages which will be accepted as valid highlight languages, but will not be highlighted at runtime",
"type": "array",
"items": {
"type": "string"
},
"default": []
},
"typePrintWidth": {
"description": "Width at which to wrap code to a new line when rendering a type",
"type": "number",
"default": 80
},
"customCss": {
"description": "Path to a custom CSS file to for the theme to import",
"type": "string",
"default": ""
},
"customJs": {
"description": "Path to a custom JS file to import",
"type": "string",
"default": ""
},
"markdownItOptions": {
"description": "Specify the options passed to markdown-it, the Markdown parser used by TypeDoc",
"default": {
"html": true,
"linkify": true
}
},
"markdownItLoader": {
"description": "Specify a callback to be called when loading the markdown-it instance. Will be passed the instance of the parser which TypeDoc will use"
},
"maxTypeConversionDepth": {
"description": "Set the maximum depth of types to be converted",
"type": "number",
"default": 10
},
"name": {
"description": "Set the name of the project that will be used in the header of the template",
"type": "string",
"default": ""
},
"includeVersion": {
"description": "Add the package version to the project name",
"type": "boolean",
"default": false
},
"disableSources": {
"description": "Disable setting the source of a reflection when documenting it",
"type": "boolean",
"default": false
},
"sourceLinkTemplate": {
"description": "Specify a link template to be used when generating source urls. If not set, will be automatically created using the git remote. Supports {path}, {line}, {gitRevision} placeholders",
"type": "string",
"default": ""
},
"gitRevision": {
"description": "Use specified revision instead of the last revision for linking to GitHub/Bitbucket source files. Has no effect if disableSources is set",
"type": "string",
"default": ""
},
"gitRemote": {
"description": "Use the specified remote for linking to GitHub/Bitbucket source files. Has no effect if disableGit or disableSources is set",
"type": "string",
"default": "origin"
},
"disableGit": {
"description": "Assume that all can be linked to with the sourceLinkTemplate, sourceLinkTemplate must be set if this is enabled. {path} will be rooted at basePath",
"type": "boolean",
"default": false
},
"displayBasePath": {
"description": "Specifies the base path to be used when displaying file paths. If not specified, basePath is used.",
"type": "string",
"default": ""
},
"cname": {
"description": "Set the CNAME file text, it's useful for custom domains on GitHub Pages",
"type": "string",
"default": ""
},
"favicon": {
"description": "Path to favicon to include as the site icon",
"type": "string",
"default": ""
},
"sourceLinkExternal": {
"description": "Specifies that source links should be treated as external links to be opened in a new tab",
"type": "boolean",
"default": false
},
"markdownLinkExternal": {
"description": "Specifies that http[s]:// links in comments and markdown files should be treated as external links to be opened in a new tab",
"type": "boolean",
"default": true
},
"githubPages": {
"description": "Generate a .nojekyll file to prevent 404 errors in GitHub Pages. Defaults to `true`",
"type": "boolean",
"default": true
},
"hostedBaseUrl": {
"description": "Specify a base URL to be used in generating a sitemap.xml in our output folder and canonical links. If not specified, no sitemap will be generated",
"type": "string",
"default": ""
},
"useHostedBaseUrlForAbsoluteLinks": {
"description": "If set, TypeDoc will produce absolute links to pages on your site using the hostedBaseUrl option",
"type": "boolean",
"default": false
},
"hideGenerator": {
"description": "Do not print the TypeDoc link at the end of the page",
"type": "boolean",
"default": false
},
"customFooterHtml": {
"description": "Custom footer after the TypeDoc link",
"type": "string",
"default": ""
},
"customFooterHtmlDisableWrapper": {
"description": "If set, disables the wrapper element for customFooterHtml",
"type": "boolean",
"default": false
},
"cacheBust": {
"description": "Include the generation time in links to static assets",
"type": "boolean",
"default": false
},
"searchInComments": {
"description": "If set, the search index will also include comments. This will greatly increase the size of the search index",
"type": "boolean",
"default": false
},
"searchInDocuments": {
"description": "If set, the search index will also include documents. This will greatly increase the size of the search index",
"type": "boolean",
"default": false
},
"cleanOutputDir": {
"description": "If set, TypeDoc will remove the output directory before writing output",
"type": "boolean",
"default": true
},
"titleLink": {
"description": "Set the link the title in the header points to. Defaults to the documentation homepage",
"type": "string",
"default": ""
},
"navigationLinks": {
"description": "Defines links to be included in the header",
"default": {}
},
"sidebarLinks": {
"description": "Defines links to be included in the sidebar",
"default": {}
},
"navigationLeaves": {
"description": "Branches of the navigation tree which should not be expanded",
"type": "array",
"items": {
"type": "string"
},
"default": []
},
"navigation": {
"description": "Determines how the navigation sidebar is organized",
"anyOf": [
{
"type": "boolean"
},
{
"type": "object",
"properties": {
"includeCategories": {
"type": "boolean"
},
"includeGroups": {
"type": "boolean"
},
"includeFolders": {
"type": "boolean"
},
"compactFolders": {
"type": "boolean"
},
"excludeReferences": {
"type": "boolean"
}
},
"additionalProperties": false
}
]
},
"headings": {
"description": "Determines which optional headings are rendered",
"anyOf": [
{
"type": "boolean"
},
{
"type": "object",
"properties": {
"readme": {
"type": "boolean"
},
"document": {
"type": "boolean"
}
},
"additionalProperties": false
}
]
},
"sluggerConfiguration": {
"description": "Determines how anchors within rendered HTML are determined.",
"anyOf": [
{
"type": "boolean"
},
{
"type": "object",
"properties": {
"lowercase": {
"type": "boolean"
}
},
"additionalProperties": false
}
]
},
"includeHierarchySummary": {
"description": "If set, a reflections hierarchy summary will be rendered to a summary page. Defaults to `true`",
"type": "boolean",
"default": true
},
"visibilityFilters": {
"description": "Specify the default visibility for builtin filters and additional filters according to modifier tags",
"default": {
"protected": false,
"private": false,
"inherited": true,
"external": false
},
"type": "object",
"properties": {
"protected": {
"type": "boolean"
},
"private": {
"type": "boolean"
},
"inherited": {
"type": "boolean"
},
"external": {
"type": "boolean"
}
},
"patternProperties": {
"^@": {
"type": "boolean"
}
},
"additionalProperties": false
},
"searchCategoryBoosts": {
"description": "Configure search to give a relevance boost to selected categories",
"default": {}
},
"searchGroupBoosts": {
"description": "Configure search to give a relevance boost to selected kinds (eg \"class\")",
"default": {}
},
"useFirstParagraphOfCommentAsSummary": {
"description": "If set and no @summary tag is specified, TypeDoc will use the first paragraph of comments as the short summary in the module/namespace view",
"type": "boolean",
"default": false
},
"jsDocCompatibility": {
"description": "Sets compatibility options for comment parsing that increase similarity with JSDoc comments",
"anyOf": [
{
"type": "boolean"
},
{
"type": "object",
"properties": {
"defaultTag": {
"type": "boolean"
},
"exampleTag": {
"type": "boolean"
},
"inheritDocTag": {
"type": "boolean"
},
"ignoreUnescapedBraces": {
"type": "boolean"
}
},
"additionalProperties": false
}
]
},
"suppressCommentWarningsInDeclarationFiles": {
"description": "Prevents warnings due to unspecified tags from being reported in comments within .d.ts files.",
"type": "boolean",
"default": true
},
"commentStyle": {
"description": "Determines how TypeDoc searches for comments",
"enum": [
"jsdoc",
"block",
"line",
"triple-slash",
"all"
],
"default": "jsdoc"
},
"useTsLinkResolution": {
"description": "Use TypeScript's link resolution when determining where @link tags point. This only applies to JSDoc style comments",
"type": "boolean",
"default": true
},
"preserveLinkText": {
"description": "If set, @link tags without link text will use the text content as the link. If not set, will use the target reflection name",
"type": "boolean",
"default": true
},
"blockTags": {
"description": "Block tags which TypeDoc should recognize when parsing comments",
"type": "array",
"items": {
"type": "string"
},
"default": [
"@defaultValue",
"@deprecated",
"@example",
"@jsx",
"@param",
"@privateRemarks",
"@remarks",
"@returns",
"@see",
"@throws",
"@typeParam",
"@author",
"@callback",
"@category",
"@categoryDescription",
"@default",
"@document",
"@extends",
"@augments",
"@yields",
"@group",
"@groupDescription",
"@import",
"@inheritDoc",
"@license",
"@module",
"@mergeModuleWith",
"@prop",
"@property",
"@return",
"@satisfies",
"@since",
"@sortStrategy",
"@template",
"@this",
"@type",
"@typedef",
"@summary",
"@preventInline",
"@inlineType",
"@preventExpand",
"@expandType"
]
},
"inlineTags": {
"description": "Inline tags which TypeDoc should recognize when parsing comments",
"type": "array",
"items": {
"type": "string"
},
"default": [
"@link",
"@inheritDoc",
"@label",
"@linkcode",
"@linkplain",
"@include",
"@includeCode"
]
},
"modifierTags": {
"description": "Modifier tags which TypeDoc should recognize when parsing comments",
"type": "array",
"items": {
"type": "string"
},
"default": [
"@alpha",
"@beta",
"@eventProperty",
"@experimental",
"@internal",
"@override",
"@packageDocumentation",
"@public",
"@readonly",
"@sealed",
"@virtual",
"@abstract",
"@class",
"@disableGroups",
"@enum",
"@event",
"@expand",
"@hidden",
"@hideCategories",
"@hideconstructor",
"@hideGroups",
"@ignore",
"@inline",
"@interface",
"@namespace",
"@function",
"@overload",
"@private",
"@protected",
"@showCategories",
"@showGroups",
"@useDeclaredType",
"@primaryExport"
]
},
"excludeTags": {
"description": "Remove the listed block/modifier tags from doc comments",
"type": "array",
"items": {
"type": "string"
},
"default": [
"@override",
"@virtual",
"@privateRemarks",
"@satisfies",
"@overload",
"@inline",
"@inlineType"
]
},
"notRenderedTags": {
"description": "Tags which will be preserved in doc comments, but not rendered when creating output",
"type": "array",
"items": {
"type": "string"
},
"default": [
"@showCategories",
"@showGroups",
"@hideCategories",
"@hideGroups",
"@disableGroups",
"@expand",
"@preventExpand",
"@expandType",
"@summary",
"@group",
"@groupDescription",
"@category",
"@categoryDescription"
]
},
"cascadedModifierTags": {
"description": "Modifier tags which should be copied to all children of the parent reflection",
"type": "array",
"items": {
"type": "string"
},
"default": [
"@alpha",
"@beta",
"@experimental"
]
},
"preservedTypeAnnotationTags": {
"description": "Block tags whose type annotations should be preserved in the output.",
"type": "array",
"items": {
"type": "string"
},
"default": []
},
"categorizeByGroup": {
"description": "Specify whether categorization will be done at the group level",
"type": "boolean",
"default": false
},
"groupReferencesByType": {
"description": "If set, references will be grouped with the type they refer to rather than in a 'References' group",
"type": "boolean",
"default": false
},
"defaultCategory": {
"description": "Specify the default category for reflections without a category",
"type": "string",
"default": "Other"
},
"categoryOrder": {
"description": "Specify the order in which categories appear. * indicates the relative order for categories not in the list",
"type": "array",
"items": {
"type": "string"
},
"default": []
},
"groupOrder": {
"description": "Specify the order in which groups appear. * indicates the relative order for groups not in the list",
"type": "array",
"items": {
"type": "string"
},
"default": []
},
"sort": {
"description": "Specify the sort strategy for documented values",
"type": "array",
"items": {
"enum": [
"source-order",
"alphabetical",
"alphabetical-ignoring-documents",
"enum-value-ascending",
"enum-value-descending",
"enum-member-source-order",
"static-first",
"instance-first",
"visibility",
"required-first",
"kind",
"external-last",
"documents-first",
"documents-last"
]
},
"default": [
"kind",
"instance-first",
"alphabetical-ignoring-documents"
]
},
"sortEntryPoints": {
"description": "If set, entry points will be subject to the same sorting rules as other reflections",
"type": "boolean",
"default": true
},
"kindSortOrder": {
"description": "Specify the sort order for reflections when 'kind' is specified",
"type": "array",
"items": {
"type": "string"
},
"default": []
},
"watch": {
"description": "Watch files for changes and rebuild docs on change",
"type": "boolean",
"default": false
},
"preserveWatchOutput": {
"description": "If set, TypeDoc will not clear the screen between compilation runs",
"type": "boolean",
"default": false
},
"skipErrorChecking": {
"description": "Do not run TypeScript's type checking before generating docs",
"type": "boolean",
"default": false
},
"showConfig": {
"description": "Print the resolved configuration and exit",
"type": "boolean",
"default": false
},
"plugin": {
"description": "Specify the npm plugins that should be loaded. Omit to load all installed plugins",
"type": "array",
"items": {
"type": "string"
},
"default": []
},
"logLevel": {
"description": "Specify what level of logging should be used",
"enum": [
"Verbose",
"Info",
"Warn",
"Error",
"None"
],
"default": "Info"
},
"treatWarningsAsErrors": {
"description": "If set, all warnings will be treated as errors",
"type": "boolean",
"default": false
},
"treatValidationWarningsAsErrors": {
"description": "If set, warnings emitted during validation will be treated as errors. This option cannot be used to disable treatWarningsAsErrors for validation warnings",
"type": "boolean",
"default": false
},
"intentionallyNotExported": {
"description": "A list of types which should not produce 'referenced but not documented' warnings",
"type": "array",
"items": {
"type": "string"
},
"default": []
},
"requiredToBeDocumented": {
"description": "A list of reflection kinds that must be documented",
"type": "array",
"items": {
"type": "string"
},
"default": [
"Enum",
"EnumMember",
"Variable",
"Function",
"Class",
"Interface",
"Property",
"Method",
"Accessor",
"TypeAlias"
]
},
"packagesRequiringDocumentation": {
"description": "A list of packages that must be documented",
"type": "array",
"items": {
"type": "string"
},
"default": []
},
"intentionallyNotDocumented": {
"description": "A list of full reflection names which should not produce warnings about not being documented",
"type": "array",
"items": {
"type": "string"
},
"default": []
},
"validation": {
"description": "Specify which validation steps TypeDoc should perform on your generated documentation",
"anyOf": [
{
"type": "boolean"
},
{
"type": "object",
"properties": {
"notExported": {
"type": "boolean"
},
"invalidLink": {
"type": "boolean"
},
"invalidPath": {
"type": "boolean"
},
"rewrittenLink": {
"type": "boolean"
},
"notDocumented": {
"type": "boolean"
},
"unusedMergeModuleWith": {
"type": "boolean"
}
},
"additionalProperties": false
}
]
},
"extends": {
"type": "array",
"items": {
"type": "string"
}
}
},
"allowTrailingCommas": true
}