Skip to main content

Link Behavior

The plugin processes inline TypeDoc link tags:

  • @link
  • @linkcode
  • @linkplain

Only path- or module-like targets are changed. A target is considered eligible when it contains a path separator, starts with a package scope, contains a dash, or otherwise looks like a module path.

Rewritten​

{@link src/index.ts#load}
{@link @scope/package#Export | Export label}
{@linkcode ../runtime/cache.ts#CacheStore}

File-oriented targets are matched to source-backed TypeDoc reflections. The first and third examples therefore become real links to the load and CacheStore reflections. The scoped-package example uses @scope/package!Export as its declaration-reference fallback.

TypeDoc interprets text before ! as a literal module name and explicitly does not treat it as a source-file path. The plugin therefore does not depend on an invalid src/index.ts!load reference when it can identify the concrete reflection.

Left alone​

{@link https://example.com/docs#section}
{@link mailto:hello@example.com}
{@link SymbolName}
{@link src/index.ts#}

External URLs, valid URI schemes, empty hash suffixes, and plain symbol names are left unchanged. File-path resolution also requires one unambiguous reflection with the requested name and a matching source file; TypeDoc's normal invalid-link validation remains responsible for reporting unresolved fallbacks.