Tag Kind: Inline
The @include
tag can be used to include external markdown content within
the comment for a member. It is an inline tag which will be replaced with the
contents of the specified file.
For convenience, an @includeCode
inline tag is also recognized, which will
include the referenced file within a code block, using the file extension for
selecting the syntax highlighting language.
/**
* {@include ./doSomething_docs.md}
*
* Quick start:
* {@includeCode ../examples/doSomethingQuickStart.ts}
*
* @example
* This will only work if the jsdocCompatibility.exampleTag option is false
* {@includeCode ../test/doSomething.test.ts}
*/
function doSomething() {}
The @include
and @includeCode
tags can also include only parts of a file by referring to a specific named region.
For example:
{@includeCode ../../example/src/enums.ts#simpleEnum}
Multiple regions may be specified, separated by commas. If multiple regions are specified, TypeDoc will combine them into a single code block.
{@includeCode file.ts#region1,region2}
Regions are specified in the files themselves via comments.
In TypeScript for example, the following would be a valid region:
// #region simpleEnum
export enum SimpleEnum {
/** This order has just been placed and is yet to be processed. */
Pending,
/** A courier is en route delivering this order. */
InProgress,
/** The order has been delivered. */
Complete = "COMPLETE",
}
// #endregion simpleEnum
Result:
export enum SimpleEnum {
/** This order has just been placed and is yet to be processed. */
Pending,
/** A courier is en route delivering this order. */
InProgress,
/** The order has been delivered. */
Complete = "COMPLETE",
}
Language-dependent region syntax is meant to be compatible with VS Code Folding. The following table describes how to define regions in different languages.
Language | Start region | End region |
---|---|---|
Bat | ::#region regionName or REM #region regionName |
::#endregion regionName or REM #endregion regionName |
C# | #region regionName |
#endregion regionName |
C/C++ | #pragma region regionName |
#pragma endregion regionName |
CSS/Less/SCSS | /*#region regionName*/ |
/*#endregion regionName*/ |
Coffeescript | #region regionName |
#endregion regionName |
F# | //#region regionName or (#_region) regionName |
//#endregion regionName or (#_endregion) regionName |
Java | //#region regionName or //<editor-fold> regionName |
//#endregion regionName or //</editor-fold> regionName |
Markdown | <!-- #region regionName --> |
<!-- #endregion regionName --> |
Perl5 | #region regionName or =pod regionName |
#endregion regionName or =cut regionName |
PHP | #region regionName |
#endregion regionName |
PowerShell | #region regionName |
#endregion regionName |
Python | #region regionName or # region regionName |
#endregion regionName or # endregion regionName |
TypeScript/JavaScript | //#region regionName |
//#endregion regionName |
Visual Basic | #Region regionName |
#End Region regionName |
When you can't add comments to define regions (in JSON files, for example) you can use line numbers instead to include a specific region of a file.
Referencing line numbers should be avoided since the reference will likely break when every time the file changes.
{@includeCode ../../package.json:2,6-7}
Result:
"name": "typedoc",
"type": "module",
"exports": {
A colon (:
) separates the file path from the line numbers: a comma-separated list of numbers or ranges of the form <start>-<end>
(6-7
in the example above).
The first line in the file Line 1, not Line 0, just like you would see in most code editors.