typedoc 0.26.11 → 0.27.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/bin/package.json +3 -0
  2. package/bin/typedoc +1 -1
  3. package/dist/index.d.ts +23 -13
  4. package/dist/index.js +22 -81
  5. package/dist/lib/application-events.js +1 -4
  6. package/dist/lib/application.d.ts +26 -16
  7. package/dist/lib/application.js +222 -242
  8. package/dist/lib/cli.js +3 -40
  9. package/dist/lib/converter/comments/blockLexer.d.ts +1 -1
  10. package/dist/lib/converter/comments/blockLexer.js +24 -30
  11. package/dist/lib/converter/comments/declarationReference.js +10 -21
  12. package/dist/lib/converter/comments/declarationReferenceResolver.d.ts +2 -2
  13. package/dist/lib/converter/comments/declarationReferenceResolver.js +40 -36
  14. package/dist/lib/converter/comments/discovery.d.ts +4 -4
  15. package/dist/lib/converter/comments/discovery.js +154 -172
  16. package/dist/lib/converter/comments/index.d.ts +4 -4
  17. package/dist/lib/converter/comments/index.js +39 -50
  18. package/dist/lib/converter/comments/lexer.d.ts +1 -1
  19. package/dist/lib/converter/comments/lexer.js +2 -5
  20. package/dist/lib/converter/comments/lineLexer.d.ts +1 -1
  21. package/dist/lib/converter/comments/lineLexer.js +12 -15
  22. package/dist/lib/converter/comments/linkResolver.d.ts +2 -2
  23. package/dist/lib/converter/comments/linkResolver.js +14 -21
  24. package/dist/lib/converter/comments/parser.d.ts +6 -6
  25. package/dist/lib/converter/comments/parser.js +69 -96
  26. package/dist/lib/converter/comments/rawLexer.d.ts +1 -1
  27. package/dist/lib/converter/comments/rawLexer.js +13 -16
  28. package/dist/lib/converter/comments/tagName.js +1 -4
  29. package/dist/lib/converter/comments/textParser.d.ts +4 -4
  30. package/dist/lib/converter/comments/textParser.js +28 -30
  31. package/dist/lib/converter/components.d.ts +2 -3
  32. package/dist/lib/converter/components.js +2 -7
  33. package/dist/lib/converter/context.d.ts +9 -9
  34. package/dist/lib/converter/context.js +54 -44
  35. package/dist/lib/converter/convert-expression.js +16 -23
  36. package/dist/lib/converter/converter-events.d.ts +1 -0
  37. package/dist/lib/converter/converter-events.js +2 -4
  38. package/dist/lib/converter/converter.d.ts +16 -13
  39. package/dist/lib/converter/converter.js +210 -238
  40. package/dist/lib/converter/factories/index-signature.d.ts +1 -1
  41. package/dist/lib/converter/factories/index-signature.js +11 -17
  42. package/dist/lib/converter/factories/signature.d.ts +2 -2
  43. package/dist/lib/converter/factories/signature.js +95 -106
  44. package/dist/lib/converter/index.d.ts +6 -7
  45. package/dist/lib/converter/index.js +3 -11
  46. package/dist/lib/converter/jsdoc.d.ts +1 -1
  47. package/dist/lib/converter/jsdoc.js +34 -41
  48. package/dist/lib/converter/plugins/CategoryPlugin.d.ts +6 -21
  49. package/dist/lib/converter/plugins/CategoryPlugin.js +57 -139
  50. package/dist/lib/converter/plugins/CommentPlugin.d.ts +3 -5
  51. package/dist/lib/converter/plugins/CommentPlugin.js +153 -163
  52. package/dist/lib/converter/plugins/GroupPlugin.d.ts +10 -9
  53. package/dist/lib/converter/plugins/GroupPlugin.js +87 -124
  54. package/dist/lib/converter/plugins/ImplementsPlugin.d.ts +3 -5
  55. package/dist/lib/converter/plugins/ImplementsPlugin.js +255 -321
  56. package/dist/lib/converter/plugins/IncludePlugin.d.ts +11 -0
  57. package/dist/lib/converter/plugins/IncludePlugin.js +72 -0
  58. package/dist/lib/converter/plugins/InheritDocPlugin.d.ts +4 -3
  59. package/dist/lib/converter/plugins/InheritDocPlugin.js +41 -72
  60. package/dist/lib/converter/plugins/LinkResolverPlugin.d.ts +5 -5
  61. package/dist/lib/converter/plugins/LinkResolverPlugin.js +37 -58
  62. package/dist/lib/converter/plugins/MergeModuleWithPlugin.d.ts +12 -0
  63. package/dist/lib/converter/plugins/MergeModuleWithPlugin.js +49 -0
  64. package/dist/lib/converter/plugins/PackagePlugin.d.ts +4 -3
  65. package/dist/lib/converter/plugins/PackagePlugin.js +62 -111
  66. package/dist/lib/converter/plugins/SourcePlugin.d.ts +3 -5
  67. package/dist/lib/converter/plugins/SourcePlugin.js +69 -110
  68. package/dist/lib/converter/plugins/TypePlugin.d.ts +4 -6
  69. package/dist/lib/converter/plugins/TypePlugin.js +95 -158
  70. package/dist/lib/converter/plugins/index.d.ts +10 -9
  71. package/dist/lib/converter/plugins/index.js +10 -21
  72. package/dist/lib/converter/symbols.d.ts +1 -1
  73. package/dist/lib/converter/symbols.js +234 -227
  74. package/dist/lib/converter/types.d.ts +2 -2
  75. package/dist/lib/converter/types.js +252 -237
  76. package/dist/lib/converter/utils/nodes.js +5 -13
  77. package/dist/lib/converter/utils/reflections.d.ts +1 -1
  78. package/dist/lib/converter/utils/reflections.js +4 -7
  79. package/dist/lib/converter/utils/repository.d.ts +1 -1
  80. package/dist/lib/converter/utils/repository.js +103 -97
  81. package/dist/lib/converter/utils/symbols.js +3 -9
  82. package/dist/lib/internationalization/index.d.ts +3 -4
  83. package/dist/lib/internationalization/index.js +3 -8
  84. package/dist/lib/internationalization/internationalization.d.ts +5 -4
  85. package/dist/lib/internationalization/internationalization.js +97 -103
  86. package/dist/lib/internationalization/locale-utils.cjs +8 -0
  87. package/dist/lib/internationalization/locale-utils.d.cts +8 -0
  88. package/dist/lib/internationalization/locales/en.cjs +366 -2
  89. package/dist/lib/internationalization/locales/en.d.cts +339 -2
  90. package/dist/lib/internationalization/locales/jp.cjs +8 -11
  91. package/dist/lib/internationalization/locales/jp.d.cts +310 -1
  92. package/dist/lib/internationalization/locales/ko.cjs +7 -9
  93. package/dist/lib/internationalization/locales/ko.d.cts +223 -1
  94. package/dist/lib/internationalization/locales/zh.cjs +7 -10
  95. package/dist/lib/internationalization/locales/zh.d.cts +381 -1
  96. package/dist/lib/internationalization/translatable.d.ts +4 -327
  97. package/dist/lib/internationalization/translatable.js +2 -360
  98. package/dist/lib/models/FileRegistry.d.ts +20 -9
  99. package/dist/lib/models/FileRegistry.js +54 -45
  100. package/dist/lib/models/ReflectionCategory.d.ts +2 -2
  101. package/dist/lib/models/ReflectionCategory.js +16 -12
  102. package/dist/lib/models/ReflectionGroup.d.ts +3 -3
  103. package/dist/lib/models/ReflectionGroup.js +23 -14
  104. package/dist/lib/models/comments/comment.d.ts +23 -37
  105. package/dist/lib/models/comments/comment.js +388 -325
  106. package/dist/lib/models/comments/index.d.ts +2 -2
  107. package/dist/lib/models/comments/index.js +1 -6
  108. package/dist/lib/models/index.d.ts +7 -7
  109. package/dist/lib/models/index.js +7 -23
  110. package/dist/lib/models/reflections/ReflectionSymbolId.d.ts +2 -2
  111. package/dist/lib/models/reflections/ReflectionSymbolId.js +42 -34
  112. package/dist/lib/models/reflections/abstract.d.ts +17 -20
  113. package/dist/lib/models/reflections/abstract.js +249 -256
  114. package/dist/lib/models/reflections/container.d.ts +7 -7
  115. package/dist/lib/models/reflections/container.js +43 -16
  116. package/dist/lib/models/reflections/declaration.d.ts +15 -12
  117. package/dist/lib/models/reflections/declaration.js +150 -29
  118. package/dist/lib/models/reflections/document.d.ts +3 -3
  119. package/dist/lib/models/reflections/document.js +26 -13
  120. package/dist/lib/models/reflections/index.d.ts +15 -15
  121. package/dist/lib/models/reflections/index.js +12 -31
  122. package/dist/lib/models/reflections/kind.d.ts +1 -1
  123. package/dist/lib/models/reflections/kind.js +3 -6
  124. package/dist/lib/models/reflections/parameter.d.ts +5 -4
  125. package/dist/lib/models/reflections/parameter.js +11 -13
  126. package/dist/lib/models/reflections/project.d.ts +14 -9
  127. package/dist/lib/models/reflections/project.js +104 -56
  128. package/dist/lib/models/reflections/reference.d.ts +3 -3
  129. package/dist/lib/models/reflections/reference.js +6 -9
  130. package/dist/lib/models/reflections/signature.d.ts +8 -8
  131. package/dist/lib/models/reflections/signature.js +35 -14
  132. package/dist/lib/models/reflections/type-parameter.d.ts +5 -5
  133. package/dist/lib/models/reflections/type-parameter.js +9 -10
  134. package/dist/lib/models/reflections/utils.js +1 -4
  135. package/dist/lib/models/reflections/variant.d.ts +8 -7
  136. package/dist/lib/models/reflections/variant.js +1 -2
  137. package/dist/lib/models/sources/file.d.ts +2 -2
  138. package/dist/lib/models/sources/file.js +22 -5
  139. package/dist/lib/models/sources/index.d.ts +1 -1
  140. package/dist/lib/models/sources/index.js +1 -5
  141. package/dist/lib/models/types.d.ts +26 -13
  142. package/dist/lib/models/types.js +236 -151
  143. package/dist/lib/output/components.d.ts +5 -11
  144. package/dist/lib/output/components.js +84 -125
  145. package/dist/lib/output/events.d.ts +3 -3
  146. package/dist/lib/output/events.js +128 -94
  147. package/dist/lib/output/formatter.d.ts +84 -0
  148. package/dist/lib/output/formatter.js +619 -0
  149. package/dist/lib/output/index.d.ts +9 -8
  150. package/dist/lib/output/index.js +7 -19
  151. package/dist/lib/output/models/UrlMapping.d.ts +2 -2
  152. package/dist/lib/output/models/UrlMapping.js +4 -5
  153. package/dist/lib/output/output.d.ts +13 -0
  154. package/dist/lib/output/output.js +72 -0
  155. package/dist/lib/output/plugins/AssetsPlugin.d.ts +7 -8
  156. package/dist/lib/output/plugins/AssetsPlugin.js +62 -80
  157. package/dist/lib/output/plugins/IconsPlugin.d.ts +3 -2
  158. package/dist/lib/output/plugins/IconsPlugin.js +28 -84
  159. package/dist/lib/output/plugins/JavascriptIndexPlugin.d.ts +9 -2
  160. package/dist/lib/output/plugins/JavascriptIndexPlugin.js +90 -96
  161. package/dist/lib/output/plugins/NavigationPlugin.d.ts +3 -2
  162. package/dist/lib/output/plugins/NavigationPlugin.js +22 -102
  163. package/dist/lib/output/plugins/SitemapPlugin.d.ts +3 -2
  164. package/dist/lib/output/plugins/SitemapPlugin.js +60 -120
  165. package/dist/lib/output/plugins/index.d.ts +6 -6
  166. package/dist/lib/output/plugins/index.js +6 -15
  167. package/dist/lib/output/renderer.d.ts +14 -13
  168. package/dist/lib/output/renderer.js +129 -185
  169. package/dist/lib/output/theme.d.ts +9 -5
  170. package/dist/lib/output/theme.js +14 -62
  171. package/dist/lib/output/themes/MarkedPlugin.d.ts +8 -9
  172. package/dist/lib/output/themes/MarkedPlugin.js +152 -117
  173. package/dist/lib/output/themes/default/DefaultTheme.d.ts +17 -29
  174. package/dist/lib/output/themes/default/DefaultTheme.js +334 -310
  175. package/dist/lib/output/themes/default/DefaultThemeRenderContext.d.ts +63 -48
  176. package/dist/lib/output/themes/default/DefaultThemeRenderContext.js +119 -95
  177. package/dist/lib/output/themes/default/Slugger.d.ts +13 -0
  178. package/dist/lib/output/themes/default/Slugger.js +46 -0
  179. package/dist/lib/output/themes/default/layouts/default.d.ts +5 -5
  180. package/dist/lib/output/themes/default/layouts/default.js +47 -36
  181. package/dist/lib/output/themes/default/partials/anchor-icon.d.ts +2 -2
  182. package/dist/lib/output/themes/default/partials/anchor-icon.js +4 -7
  183. package/dist/lib/output/themes/default/partials/breadcrumb.d.ts +3 -3
  184. package/dist/lib/output/themes/default/partials/breadcrumb.js +4 -8
  185. package/dist/lib/output/themes/default/partials/comment.d.ts +6 -4
  186. package/dist/lib/output/themes/default/partials/comment.js +52 -29
  187. package/dist/lib/output/themes/default/partials/footer.d.ts +2 -2
  188. package/dist/lib/output/themes/default/partials/footer.js +11 -14
  189. package/dist/lib/output/themes/default/partials/header.d.ts +4 -4
  190. package/dist/lib/output/themes/default/partials/header.js +9 -13
  191. package/dist/lib/output/themes/default/partials/hierarchy.d.ts +3 -3
  192. package/dist/lib/output/themes/default/partials/hierarchy.js +9 -12
  193. package/dist/lib/output/themes/default/partials/icon.d.ts +4 -4
  194. package/dist/lib/output/themes/default/partials/icon.js +78 -73
  195. package/dist/lib/output/themes/default/partials/index.d.ts +3 -3
  196. package/dist/lib/output/themes/default/partials/index.js +19 -22
  197. package/dist/lib/output/themes/default/partials/member.d.ts +3 -3
  198. package/dist/lib/output/themes/default/partials/member.declaration.d.ts +3 -3
  199. package/dist/lib/output/themes/default/partials/member.declaration.js +18 -61
  200. package/dist/lib/output/themes/default/partials/member.getterSetter.d.ts +3 -3
  201. package/dist/lib/output/themes/default/partials/member.getterSetter.js +10 -26
  202. package/dist/lib/output/themes/default/partials/member.js +19 -24
  203. package/dist/lib/output/themes/default/partials/member.signature.body.d.ts +3 -3
  204. package/dist/lib/output/themes/default/partials/member.signature.body.js +17 -21
  205. package/dist/lib/output/themes/default/partials/member.signature.title.d.ts +4 -7
  206. package/dist/lib/output/themes/default/partials/member.signature.title.js +8 -35
  207. package/dist/lib/output/themes/default/partials/member.signatures.d.ts +3 -3
  208. package/dist/lib/output/themes/default/partials/member.signatures.js +9 -13
  209. package/dist/lib/output/themes/default/partials/member.sources.d.ts +3 -3
  210. package/dist/lib/output/themes/default/partials/member.sources.js +13 -17
  211. package/dist/lib/output/themes/default/partials/members.d.ts +3 -3
  212. package/dist/lib/output/themes/default/partials/members.js +10 -42
  213. package/dist/lib/output/themes/default/partials/moduleReflection.d.ts +5 -0
  214. package/dist/lib/output/themes/default/partials/moduleReflection.js +62 -0
  215. package/dist/lib/output/themes/default/partials/navigation.d.ts +4 -4
  216. package/dist/lib/output/themes/default/partials/navigation.js +51 -62
  217. package/dist/lib/output/themes/default/partials/reflectionPreview.d.ts +3 -3
  218. package/dist/lib/output/themes/default/partials/reflectionPreview.js +12 -15
  219. package/dist/lib/output/themes/default/partials/toolbar.d.ts +4 -4
  220. package/dist/lib/output/themes/default/partials/toolbar.js +16 -20
  221. package/dist/lib/output/themes/default/partials/type.d.ts +4 -6
  222. package/dist/lib/output/themes/default/partials/type.js +8 -388
  223. package/dist/lib/output/themes/default/partials/typeAndParent.d.ts +3 -3
  224. package/dist/lib/output/themes/default/partials/typeAndParent.js +11 -15
  225. package/dist/lib/output/themes/default/partials/typeDetails.d.ts +8 -0
  226. package/dist/lib/output/themes/default/partials/typeDetails.js +221 -0
  227. package/dist/lib/output/themes/default/partials/typeParameters.d.ts +3 -3
  228. package/dist/lib/output/themes/default/partials/typeParameters.js +14 -17
  229. package/dist/lib/output/themes/default/templates/document.d.ts +4 -4
  230. package/dist/lib/output/themes/default/templates/document.js +3 -7
  231. package/dist/lib/output/themes/default/templates/hierarchy.d.ts +4 -4
  232. package/dist/lib/output/themes/default/templates/hierarchy.js +10 -13
  233. package/dist/lib/output/themes/default/templates/index.d.ts +4 -4
  234. package/dist/lib/output/themes/default/templates/index.js +3 -7
  235. package/dist/lib/output/themes/default/templates/reflection.d.ts +4 -4
  236. package/dist/lib/output/themes/default/templates/reflection.js +31 -34
  237. package/dist/lib/output/themes/lib.d.ts +17 -3
  238. package/dist/lib/output/themes/lib.js +110 -49
  239. package/dist/lib/serialization/components.d.ts +2 -5
  240. package/dist/lib/serialization/components.js +1 -2
  241. package/dist/lib/serialization/deserializer.d.ts +21 -7
  242. package/dist/lib/serialization/deserializer.js +138 -123
  243. package/dist/lib/serialization/events.d.ts +2 -2
  244. package/dist/lib/serialization/events.js +6 -5
  245. package/dist/lib/serialization/index.d.ts +5 -5
  246. package/dist/lib/serialization/index.js +4 -33
  247. package/dist/lib/serialization/schema.d.ts +8 -2
  248. package/dist/lib/serialization/schema.js +2 -2
  249. package/dist/lib/serialization/serializer.d.ts +11 -5
  250. package/dist/lib/serialization/serializer.js +32 -25
  251. package/dist/lib/utils/array.d.ts +3 -0
  252. package/dist/lib/utils/array.js +26 -27
  253. package/dist/lib/utils/component.d.ts +2 -44
  254. package/dist/lib/utils/component.js +10 -102
  255. package/dist/lib/utils/entry-point.d.ts +3 -4
  256. package/dist/lib/utils/entry-point.js +114 -85
  257. package/dist/lib/utils/enum.js +6 -14
  258. package/dist/lib/utils/events.js +6 -12
  259. package/dist/lib/utils/fs.js +50 -91
  260. package/dist/lib/utils/general.d.ts +2 -1
  261. package/dist/lib/utils/general.js +50 -40
  262. package/dist/lib/utils/highlighter.js +30 -57
  263. package/dist/lib/utils/hooks.js +7 -13
  264. package/dist/lib/utils/html-entities.d.ts +8926 -0
  265. package/dist/lib/utils/html-entities.js +2329 -0
  266. package/dist/lib/utils/html.d.ts +8 -0
  267. package/dist/lib/utils/html.js +81 -34
  268. package/dist/lib/utils/index.d.ts +22 -22
  269. package/dist/lib/utils/index.js +20 -91
  270. package/dist/lib/utils/jsx.d.ts +12 -5
  271. package/dist/lib/utils/jsx.elements.js +1 -4
  272. package/dist/lib/utils/jsx.js +53 -20
  273. package/dist/lib/utils/loggers.d.ts +3 -3
  274. package/dist/lib/utils/loggers.js +36 -46
  275. package/dist/lib/utils/map.js +6 -13
  276. package/dist/lib/utils/minimalSourceFile.js +5 -7
  277. package/dist/lib/utils/options/declaration.d.ts +33 -7
  278. package/dist/lib/utils/options/declaration.js +20 -22
  279. package/dist/lib/utils/options/defaults.d.ts +3 -2
  280. package/dist/lib/utils/options/defaults.js +18 -38
  281. package/dist/lib/utils/options/help.d.ts +2 -2
  282. package/dist/lib/utils/options/help.js +7 -10
  283. package/dist/lib/utils/options/index.d.ts +6 -6
  284. package/dist/lib/utils/options/index.js +4 -18
  285. package/dist/lib/utils/options/options.d.ts +8 -5
  286. package/dist/lib/utils/options/options.js +47 -71
  287. package/dist/lib/utils/options/readers/arguments.d.ts +2 -2
  288. package/dist/lib/utils/options/readers/arguments.js +15 -17
  289. package/dist/lib/utils/options/readers/index.d.ts +4 -4
  290. package/dist/lib/utils/options/readers/index.js +4 -11
  291. package/dist/lib/utils/options/readers/package-json.d.ts +3 -3
  292. package/dist/lib/utils/options/readers/package-json.js +15 -21
  293. package/dist/lib/utils/options/readers/tsconfig.d.ts +2 -2
  294. package/dist/lib/utils/options/readers/tsconfig.js +54 -63
  295. package/dist/lib/utils/options/readers/typedoc.d.ts +3 -3
  296. package/dist/lib/utils/options/readers/typedoc.js +44 -76
  297. package/dist/lib/utils/options/sources/index.d.ts +1 -1
  298. package/dist/lib/utils/options/sources/index.js +1 -5
  299. package/dist/lib/utils/options/sources/typedoc.d.ts +1 -1
  300. package/dist/lib/utils/options/sources/typedoc.js +220 -196
  301. package/dist/lib/utils/options/tsdoc-defaults.d.ts +3 -3
  302. package/dist/lib/utils/options/tsdoc-defaults.js +16 -12
  303. package/dist/lib/utils/package-manifest.d.ts +1 -1
  304. package/dist/lib/utils/package-manifest.js +15 -19
  305. package/dist/lib/utils/paths.js +9 -15
  306. package/dist/lib/utils/perf.js +6 -11
  307. package/dist/lib/utils/plugins.d.ts +1 -1
  308. package/dist/lib/utils/plugins.js +7 -10
  309. package/dist/lib/utils/reflections.d.ts +1 -1
  310. package/dist/lib/utils/reflections.js +9 -12
  311. package/dist/lib/utils/set.js +2 -6
  312. package/dist/lib/utils/sort.d.ts +3 -3
  313. package/dist/lib/utils/sort.js +20 -24
  314. package/dist/lib/utils/tsconfig.d.ts +1 -1
  315. package/dist/lib/utils/tsconfig.js +13 -21
  316. package/dist/lib/utils/tsutils.d.ts +1 -1
  317. package/dist/lib/utils/tsutils.js +3 -30
  318. package/dist/lib/utils/validation.js +6 -12
  319. package/dist/lib/validation/documentation.d.ts +2 -2
  320. package/dist/lib/validation/documentation.js +26 -29
  321. package/dist/lib/validation/exports.d.ts +2 -2
  322. package/dist/lib/validation/exports.js +9 -11
  323. package/dist/lib/validation/links.d.ts +2 -2
  324. package/dist/lib/validation/links.js +4 -7
  325. package/dist/lib/validation/unusedMergeModuleWith.d.ts +3 -0
  326. package/dist/lib/validation/unusedMergeModuleWith.js +11 -0
  327. package/package.json +14 -11
  328. package/static/main.js +4 -4
  329. package/static/style.css +91 -2
  330. package/tsdoc.json +30 -0
  331. package/dist/lib/output/themes/default/partials/member.reference.d.ts +0 -4
  332. package/dist/lib/output/themes/default/partials/member.reference.js +0 -30
  333. package/dist/lib/output/themes/default/partials/parameter.d.ts +0 -4
  334. package/dist/lib/output/themes/default/partials/parameter.js +0 -79
  335. package/dist/lib/utils/html-entities.json +0 -2326
@@ -1,8 +1,8 @@
1
- import { ContextAwareRendererComponent } from "../components";
2
- import { type RendererEvent, MarkdownEvent, type PageEvent } from "../events";
1
+ import { ContextAwareRendererComponent } from "../components.js";
2
+ import { MarkdownEvent, RendererEvent, type PageEvent } from "../events.js";
3
3
  import type { BundledTheme } from "shiki" with { "resolution-mode": "import" };
4
- import type { DefaultThemeRenderContext } from "..";
5
- import { type CommentDisplayPart } from "../../models";
4
+ import type { DefaultThemeRenderContext, Renderer } from "../index.js";
5
+ import { type CommentDisplayPart } from "../../models/index.js";
6
6
  /**
7
7
  * Implements markdown and relativeURL helpers for templates.
8
8
  * @internal
@@ -13,18 +13,16 @@ export declare class MarkedPlugin extends ContextAwareRendererComponent {
13
13
  accessor markdownItOptions: Record<string, unknown>;
14
14
  accessor markdownLinkExternal: boolean;
15
15
  private parser?;
16
+ private renderedRelativeLinks;
16
17
  /**
17
18
  * This needing to be here really feels hacky... probably some nicer way to do this.
18
19
  * Revisit when adding support for arbitrary pages in 0.26.
19
20
  */
20
21
  private renderContext;
21
22
  private lastHeaderSlug;
23
+ constructor(owner: Renderer);
22
24
  /**
23
- * Create a new MarkedPlugin instance.
24
- */
25
- initialize(): void;
26
- /**
27
- * Highlight the syntax of the given text using HighlightJS.
25
+ * Highlight the syntax of the given text using Shiki.
28
26
  *
29
27
  * @param text The text that should be highlighted.
30
28
  * @param lang The language that should be used to highlight the string.
@@ -39,6 +37,7 @@ export declare class MarkedPlugin extends ContextAwareRendererComponent {
39
37
  */
40
38
  parseMarkdown(input: string | readonly CommentDisplayPart[], page: PageEvent<any>, context: DefaultThemeRenderContext): string;
41
39
  private displayPartsToMarkdown;
40
+ private onEnd;
42
41
  /**
43
42
  * Triggered before the renderer starts rendering a project.
44
43
  *
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
3
2
  function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
4
3
  var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
@@ -33,54 +32,20 @@ var __runInitializers = (this && this.__runInitializers) || function (thisArg, i
33
32
  }
34
33
  return useValue ? value : void 0;
35
34
  };
36
- var __setFunctionName = (this && this.__setFunctionName) || function (f, name, prefix) {
37
- if (typeof name === "symbol") name = name.description ? "[".concat(name.description, "]") : "";
38
- return Object.defineProperty(f, "name", { configurable: true, value: prefix ? "".concat(prefix, " ", name) : name });
39
- };
40
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
41
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
42
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
43
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
44
- };
45
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
46
- if (kind === "m") throw new TypeError("Private method is not writable");
47
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
48
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
49
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
50
- };
51
- var __importDefault = (this && this.__importDefault) || function (mod) {
52
- return (mod && mod.__esModule) ? mod : { "default": mod };
53
- };
54
- Object.defineProperty(exports, "__esModule", { value: true });
55
- exports.MarkedPlugin = void 0;
56
- const markdown_it_1 = __importDefault(require("markdown-it"));
57
- const components_1 = require("../components");
58
- const events_1 = require("../events");
59
- const utils_1 = require("../../utils");
60
- const highlighter_1 = require("../../utils/highlighter");
61
- const html_1 = require("../../utils/html");
62
- const DefaultTheme_1 = require("./default/DefaultTheme");
63
- const anchor_icon_1 = require("./default/partials/anchor-icon");
64
- const models_1 = require("../../models");
65
- let defaultSlugger;
66
- function getDefaultSlugger(logger) {
67
- if (!defaultSlugger) {
68
- logger.warn(logger.i18n.custom_theme_does_not_define_getSlugger());
69
- defaultSlugger = new DefaultTheme_1.Slugger();
70
- }
71
- return defaultSlugger;
72
- }
35
+ import MarkdownIt from "markdown-it";
36
+ import { ContextAwareRendererComponent } from "../components.js";
37
+ import { MarkdownEvent, RendererEvent } from "../events.js";
38
+ import { Option, renderElement, assertNever } from "../../utils/index.js";
39
+ import { highlight, isLoadedLanguage, isSupportedLanguage } from "../../utils/highlighter.js";
40
+ import { escapeHtml } from "../../utils/html.js";
41
+ import { anchorIcon } from "./default/partials/anchor-icon.js";
42
+ import { ReflectionKind, } from "../../models/index.js";
73
43
  /**
74
44
  * Implements markdown and relativeURL helpers for templates.
75
45
  * @internal
76
46
  */
77
47
  let MarkedPlugin = (() => {
78
- var _MarkedPlugin_lightTheme_accessor_storage, _MarkedPlugin_darkTheme_accessor_storage, _MarkedPlugin_markdownItOptions_accessor_storage, _MarkedPlugin_markdownLinkExternal_accessor_storage;
79
- let _classDecorators = [(0, components_1.Component)({ name: "marked" })];
80
- let _classDescriptor;
81
- let _classExtraInitializers = [];
82
- let _classThis;
83
- let _classSuper = components_1.ContextAwareRendererComponent;
48
+ let _classSuper = ContextAwareRendererComponent;
84
49
  let _lightTheme_decorators;
85
50
  let _lightTheme_initializers = [];
86
51
  let _lightTheme_extraInitializers = [];
@@ -93,38 +58,46 @@ let MarkedPlugin = (() => {
93
58
  let _markdownLinkExternal_decorators;
94
59
  let _markdownLinkExternal_initializers = [];
95
60
  let _markdownLinkExternal_extraInitializers = [];
96
- var MarkedPlugin = _classThis = class extends _classSuper {
97
- constructor() {
98
- super(...arguments);
99
- _MarkedPlugin_lightTheme_accessor_storage.set(this, __runInitializers(this, _lightTheme_initializers, void 0));
100
- _MarkedPlugin_darkTheme_accessor_storage.set(this, (__runInitializers(this, _lightTheme_extraInitializers), __runInitializers(this, _darkTheme_initializers, void 0)));
101
- _MarkedPlugin_markdownItOptions_accessor_storage.set(this, (__runInitializers(this, _darkTheme_extraInitializers), __runInitializers(this, _markdownItOptions_initializers, void 0)));
102
- _MarkedPlugin_markdownLinkExternal_accessor_storage.set(this, (__runInitializers(this, _markdownItOptions_extraInitializers), __runInitializers(this, _markdownLinkExternal_initializers, void 0)));
103
- this.parser = __runInitializers(this, _markdownLinkExternal_extraInitializers);
104
- /**
105
- * This needing to be here really feels hacky... probably some nicer way to do this.
106
- * Revisit when adding support for arbitrary pages in 0.26.
107
- */
108
- this.renderContext = null;
109
- this.lastHeaderSlug = "";
61
+ return class MarkedPlugin extends _classSuper {
62
+ static {
63
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
64
+ _lightTheme_decorators = [Option("lightHighlightTheme")];
65
+ _darkTheme_decorators = [Option("darkHighlightTheme")];
66
+ _markdownItOptions_decorators = [Option("markdownItOptions")];
67
+ _markdownLinkExternal_decorators = [Option("markdownLinkExternal")];
68
+ __esDecorate(this, null, _lightTheme_decorators, { kind: "accessor", name: "lightTheme", static: false, private: false, access: { has: obj => "lightTheme" in obj, get: obj => obj.lightTheme, set: (obj, value) => { obj.lightTheme = value; } }, metadata: _metadata }, _lightTheme_initializers, _lightTheme_extraInitializers);
69
+ __esDecorate(this, null, _darkTheme_decorators, { kind: "accessor", name: "darkTheme", static: false, private: false, access: { has: obj => "darkTheme" in obj, get: obj => obj.darkTheme, set: (obj, value) => { obj.darkTheme = value; } }, metadata: _metadata }, _darkTheme_initializers, _darkTheme_extraInitializers);
70
+ __esDecorate(this, null, _markdownItOptions_decorators, { kind: "accessor", name: "markdownItOptions", static: false, private: false, access: { has: obj => "markdownItOptions" in obj, get: obj => obj.markdownItOptions, set: (obj, value) => { obj.markdownItOptions = value; } }, metadata: _metadata }, _markdownItOptions_initializers, _markdownItOptions_extraInitializers);
71
+ __esDecorate(this, null, _markdownLinkExternal_decorators, { kind: "accessor", name: "markdownLinkExternal", static: false, private: false, access: { has: obj => "markdownLinkExternal" in obj, get: obj => obj.markdownLinkExternal, set: (obj, value) => { obj.markdownLinkExternal = value; } }, metadata: _metadata }, _markdownLinkExternal_initializers, _markdownLinkExternal_extraInitializers);
72
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
110
73
  }
111
- get lightTheme() { return __classPrivateFieldGet(this, _MarkedPlugin_lightTheme_accessor_storage, "f"); }
112
- set lightTheme(value) { __classPrivateFieldSet(this, _MarkedPlugin_lightTheme_accessor_storage, value, "f"); }
113
- get darkTheme() { return __classPrivateFieldGet(this, _MarkedPlugin_darkTheme_accessor_storage, "f"); }
114
- set darkTheme(value) { __classPrivateFieldSet(this, _MarkedPlugin_darkTheme_accessor_storage, value, "f"); }
115
- get markdownItOptions() { return __classPrivateFieldGet(this, _MarkedPlugin_markdownItOptions_accessor_storage, "f"); }
116
- set markdownItOptions(value) { __classPrivateFieldSet(this, _MarkedPlugin_markdownItOptions_accessor_storage, value, "f"); }
117
- get markdownLinkExternal() { return __classPrivateFieldGet(this, _MarkedPlugin_markdownLinkExternal_accessor_storage, "f"); }
118
- set markdownLinkExternal(value) { __classPrivateFieldSet(this, _MarkedPlugin_markdownLinkExternal_accessor_storage, value, "f"); }
74
+ #lightTheme_accessor_storage = __runInitializers(this, _lightTheme_initializers, void 0);
75
+ get lightTheme() { return this.#lightTheme_accessor_storage; }
76
+ set lightTheme(value) { this.#lightTheme_accessor_storage = value; }
77
+ #darkTheme_accessor_storage = (__runInitializers(this, _lightTheme_extraInitializers), __runInitializers(this, _darkTheme_initializers, void 0));
78
+ get darkTheme() { return this.#darkTheme_accessor_storage; }
79
+ set darkTheme(value) { this.#darkTheme_accessor_storage = value; }
80
+ #markdownItOptions_accessor_storage = (__runInitializers(this, _darkTheme_extraInitializers), __runInitializers(this, _markdownItOptions_initializers, void 0));
81
+ get markdownItOptions() { return this.#markdownItOptions_accessor_storage; }
82
+ set markdownItOptions(value) { this.#markdownItOptions_accessor_storage = value; }
83
+ #markdownLinkExternal_accessor_storage = (__runInitializers(this, _markdownItOptions_extraInitializers), __runInitializers(this, _markdownLinkExternal_initializers, void 0));
84
+ get markdownLinkExternal() { return this.#markdownLinkExternal_accessor_storage; }
85
+ set markdownLinkExternal(value) { this.#markdownLinkExternal_accessor_storage = value; }
86
+ parser = __runInitializers(this, _markdownLinkExternal_extraInitializers);
87
+ renderedRelativeLinks = [];
119
88
  /**
120
- * Create a new MarkedPlugin instance.
89
+ * This needing to be here really feels hacky... probably some nicer way to do this.
90
+ * Revisit when adding support for arbitrary pages in 0.26.
121
91
  */
122
- initialize() {
123
- super.initialize();
124
- this.owner.on(events_1.MarkdownEvent.PARSE, this.onParseMarkdown.bind(this));
92
+ renderContext = null;
93
+ lastHeaderSlug = "";
94
+ constructor(owner) {
95
+ super(owner);
96
+ this.owner.on(MarkdownEvent.PARSE, this.onParseMarkdown.bind(this));
97
+ this.owner.on(RendererEvent.END, this.onEnd.bind(this));
125
98
  }
126
99
  /**
127
- * Highlight the syntax of the given text using HighlightJS.
100
+ * Highlight the syntax of the given text using Shiki.
128
101
  *
129
102
  * @param text The text that should be highlighted.
130
103
  * @param lang The language that should be used to highlight the string.
@@ -133,15 +106,15 @@ let MarkedPlugin = (() => {
133
106
  getHighlighted(text, lang) {
134
107
  lang = lang || "typescript";
135
108
  lang = lang.toLowerCase();
136
- if (!(0, highlighter_1.isSupportedLanguage)(lang)) {
109
+ if (!isSupportedLanguage(lang)) {
137
110
  this.application.logger.warn(this.application.i18n.unsupported_highlight_language_0_not_highlighted_in_comment_for_1(lang, this.page?.model.getFriendlyFullName() ?? "(unknown)"));
138
111
  return text;
139
112
  }
140
- if (!(0, highlighter_1.isLoadedLanguage)(lang)) {
113
+ if (!isLoadedLanguage(lang)) {
141
114
  this.application.logger.warn(this.application.i18n.unloaded_language_0_not_highlighted_in_comment_for_1(lang, this.page?.model.getFriendlyFullName() ?? "(unknown)"));
142
115
  return text;
143
116
  }
144
- return (0, highlighter_1.highlight)(text, lang);
117
+ return highlight(text, lang);
145
118
  }
146
119
  /**
147
120
  * Parse the given markdown string and return the resulting html.
@@ -155,8 +128,8 @@ let MarkedPlugin = (() => {
155
128
  markdown = this.displayPartsToMarkdown(page, context, markdown);
156
129
  }
157
130
  this.renderContext = context;
158
- const event = new events_1.MarkdownEvent(page, markdown, markdown);
159
- this.owner.trigger(events_1.MarkdownEvent.PARSE, event);
131
+ const event = new MarkdownEvent(page, markdown, markdown);
132
+ this.owner.trigger(MarkdownEvent.PARSE, event);
160
133
  this.renderContext = null;
161
134
  return event.parsedText;
162
135
  }
@@ -187,7 +160,7 @@ let MarkedPlugin = (() => {
187
160
  // No point in trying to resolve a ReflectionSymbolId at this point, we've already
188
161
  // tried and failed during the resolution step.
189
162
  url = context.urlTo(part.target);
190
- kindClass = models_1.ReflectionKind.classString(part.target.kind);
163
+ kindClass = ReflectionKind.classString(part.target.kind);
191
164
  }
192
165
  if (useHtml) {
193
166
  const text = part.tag === "@linkcode" ? `<code>${part.text}</code>` : part.text;
@@ -215,14 +188,29 @@ let MarkedPlugin = (() => {
215
188
  case "relative-link":
216
189
  switch (typeof part.target) {
217
190
  case "number": {
218
- const refl = page.project.files.resolve(part.target);
191
+ const refl = page.project.files.resolve(part.target, page.model.project);
192
+ let url;
219
193
  if (typeof refl === "object") {
220
- result.push(context.urlTo(refl));
221
- break;
194
+ url = context.urlTo(refl);
195
+ }
196
+ else {
197
+ const fileName = page.project.files.getName(part.target);
198
+ if (fileName) {
199
+ url = context.relativeURL(`media/${fileName}`);
200
+ }
222
201
  }
223
- const fileName = page.project.files.getName(part.target);
224
- if (fileName) {
225
- result.push(context.relativeURL(`media/${fileName}`));
202
+ if (url) {
203
+ if (part.targetAnchor) {
204
+ url += "#" + part.targetAnchor;
205
+ if (typeof refl === "object") {
206
+ this.renderedRelativeLinks.push({
207
+ source: this.page.model,
208
+ target: refl,
209
+ link: part,
210
+ });
211
+ }
212
+ }
213
+ result.push(url);
226
214
  break;
227
215
  }
228
216
  }
@@ -233,11 +221,24 @@ let MarkedPlugin = (() => {
233
221
  }
234
222
  break;
235
223
  default:
236
- (0, utils_1.assertNever)(part);
224
+ assertNever(part);
237
225
  }
238
226
  }
239
227
  return result.join("");
240
228
  }
229
+ onEnd() {
230
+ for (const { source, target, link } of this.renderedRelativeLinks) {
231
+ const slugger = this.owner.theme.getSlugger(target);
232
+ if (!slugger.hasAnchor(link.targetAnchor)) {
233
+ this.application.logger.warn(this.application.i18n.reflection_0_links_to_1_but_anchor_does_not_exist_try_2(source.getFriendlyFullName(), link.text, slugger
234
+ .getSimilarAnchors(link.targetAnchor)
235
+ .map((a) => link.text.replace(/#.*/, "#" + a))
236
+ .join("\n\t")));
237
+ }
238
+ }
239
+ // In case we're in watch mode
240
+ this.renderedRelativeLinks = [];
241
+ }
241
242
  /**
242
243
  * Triggered before the renderer starts rendering a project.
243
244
  *
@@ -248,10 +249,7 @@ let MarkedPlugin = (() => {
248
249
  this.setupParser();
249
250
  }
250
251
  getSlugger() {
251
- if ("getSlugger" in this.owner.theme) {
252
- return this.owner.theme.getSlugger(this.page.model);
253
- }
254
- return getDefaultSlugger(this.application.logger);
252
+ return this.owner.theme.getSlugger(this.page.model);
255
253
  }
256
254
  /**
257
255
  * Creates an object with options that are passed to the markdown parser.
@@ -259,7 +257,7 @@ let MarkedPlugin = (() => {
259
257
  * @returns The options object for the markdown parser.
260
258
  */
261
259
  setupParser() {
262
- this.parser = (0, markdown_it_1.default)({
260
+ this.parser = MarkdownIt({
263
261
  ...this.markdownItOptions,
264
262
  highlight: (code, lang) => {
265
263
  code = this.getHighlighted(code, lang || "ts");
@@ -267,9 +265,10 @@ let MarkedPlugin = (() => {
267
265
  if (!lang) {
268
266
  return `<pre><code>${code}</code><button>${this.application.i18n.theme_copy()}</button></pre>\n`;
269
267
  }
270
- return `<pre><code class="${(0, html_1.escapeHtml)(lang)}">${code}</code><button type="button">${this.application.i18n.theme_copy()}</button></pre>\n`;
268
+ return `<pre><code class="${escapeHtml(lang)}">${code}</code><button type="button">${this.application.i18n.theme_copy()}</button></pre>\n`;
271
269
  },
272
270
  });
271
+ githubAlertMarkdownPlugin(this.parser, this.application.i18n);
273
272
  const loader = this.application.options.getValue("markdownItLoader");
274
273
  loader(this.parser);
275
274
  // Add anchor links for headings in readme, and add them to the "On this page" section
@@ -279,22 +278,21 @@ let MarkedPlugin = (() => {
279
278
  const level = token.markup.length;
280
279
  const slug = this.getSlugger().slug(content);
281
280
  this.lastHeaderSlug = slug;
282
- // Prefix the slug with an extra `md:` to prevent conflicts with TypeDoc's anchors.
283
281
  this.page.pageHeadings.push({
284
- link: `#md:${slug}`,
282
+ link: `#${slug}`,
285
283
  text: content,
286
284
  level,
287
285
  });
288
- return `<a id="md:${slug}" class="tsd-anchor"></a><${token.tag} class="tsd-anchor-link">`;
286
+ return `<a id="${slug}" class="tsd-anchor"></a><${token.tag} class="tsd-anchor-link">`;
289
287
  };
290
288
  this.parser.renderer.rules["heading_close"] = (tokens, idx) => {
291
- return `${(0, utils_1.renderElement)((0, anchor_icon_1.anchorIcon)(this.renderContext, `md:${this.lastHeaderSlug}`))}</${tokens[idx].tag}>`;
289
+ return `${renderElement(anchorIcon(this.renderContext, this.lastHeaderSlug))}</${tokens[idx].tag}>`;
292
290
  };
293
291
  // Rewrite anchor links inline in a readme file to links targeting the `md:` prefixed anchors
294
292
  // that TypeDoc creates.
295
293
  this.parser.renderer.rules["link_open"] = (tokens, idx, options, _env, self) => {
296
294
  const token = tokens[idx];
297
- const href = token.attrGet("href")?.replace(/^#(?:md:)?(.+)/, "#md:$1");
295
+ const href = token.attrGet("href");
298
296
  if (href) {
299
297
  // Note: This doesn't catch @link tags to reflections as those
300
298
  // will be relative links. This will likely have to change with
@@ -310,6 +308,11 @@ let MarkedPlugin = (() => {
310
308
  }
311
309
  return self.renderToken(tokens, idx, options);
312
310
  };
311
+ this.parser.renderer.rules["alert_open"] = (tokens, idx) => {
312
+ const icon = this.renderContext.icons[tokens[idx].attrGet("icon")];
313
+ const iconHtml = renderElement(icon());
314
+ return `<div class="${tokens[idx].attrGet("class")}"><div class="tsd-alert-title">${iconHtml}<span>${tokens[idx].attrGet("alert")}</span></div>`;
315
+ };
313
316
  }
314
317
  /**
315
318
  * Triggered when {@link MarkedPlugin} parses a markdown string.
@@ -320,32 +323,64 @@ let MarkedPlugin = (() => {
320
323
  event.parsedText = this.parser.render(event.parsedText);
321
324
  }
322
325
  };
323
- _MarkedPlugin_lightTheme_accessor_storage = new WeakMap();
324
- _MarkedPlugin_darkTheme_accessor_storage = new WeakMap();
325
- _MarkedPlugin_markdownItOptions_accessor_storage = new WeakMap();
326
- _MarkedPlugin_markdownLinkExternal_accessor_storage = new WeakMap();
327
- __setFunctionName(_classThis, "MarkedPlugin");
328
- (() => {
329
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
330
- _lightTheme_decorators = [(0, utils_1.Option)("lightHighlightTheme")];
331
- _darkTheme_decorators = [(0, utils_1.Option)("darkHighlightTheme")];
332
- _markdownItOptions_decorators = [(0, utils_1.Option)("markdownItOptions")];
333
- _markdownLinkExternal_decorators = [(0, utils_1.Option)("markdownLinkExternal")];
334
- __esDecorate(_classThis, null, _lightTheme_decorators, { kind: "accessor", name: "lightTheme", static: false, private: false, access: { has: obj => "lightTheme" in obj, get: obj => obj.lightTheme, set: (obj, value) => { obj.lightTheme = value; } }, metadata: _metadata }, _lightTheme_initializers, _lightTheme_extraInitializers);
335
- __esDecorate(_classThis, null, _darkTheme_decorators, { kind: "accessor", name: "darkTheme", static: false, private: false, access: { has: obj => "darkTheme" in obj, get: obj => obj.darkTheme, set: (obj, value) => { obj.darkTheme = value; } }, metadata: _metadata }, _darkTheme_initializers, _darkTheme_extraInitializers);
336
- __esDecorate(_classThis, null, _markdownItOptions_decorators, { kind: "accessor", name: "markdownItOptions", static: false, private: false, access: { has: obj => "markdownItOptions" in obj, get: obj => obj.markdownItOptions, set: (obj, value) => { obj.markdownItOptions = value; } }, metadata: _metadata }, _markdownItOptions_initializers, _markdownItOptions_extraInitializers);
337
- __esDecorate(_classThis, null, _markdownLinkExternal_decorators, { kind: "accessor", name: "markdownLinkExternal", static: false, private: false, access: { has: obj => "markdownLinkExternal" in obj, get: obj => obj.markdownLinkExternal, set: (obj, value) => { obj.markdownLinkExternal = value; } }, metadata: _metadata }, _markdownLinkExternal_initializers, _markdownLinkExternal_extraInitializers);
338
- __esDecorate(null, _classDescriptor = { value: _classThis }, _classDecorators, { kind: "class", name: _classThis.name, metadata: _metadata }, null, _classExtraInitializers);
339
- MarkedPlugin = _classThis = _classDescriptor.value;
340
- if (_metadata) Object.defineProperty(_classThis, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
341
- __runInitializers(_classThis, _classExtraInitializers);
342
- })();
343
- return MarkedPlugin = _classThis;
344
326
  })();
345
- exports.MarkedPlugin = MarkedPlugin;
327
+ export { MarkedPlugin };
346
328
  function getTokenTextContent(token) {
347
329
  if (token.children) {
348
330
  return token.children.map(getTokenTextContent).join("");
349
331
  }
350
332
  return token.content;
351
333
  }
334
+ const kindNames = ["note", "tip", "important", "warning", "caution"];
335
+ const iconNames = ["alertNote", "alertTip", "alertImportant", "alertWarning", "alertCaution"];
336
+ const kindTranslations = [
337
+ (i18n) => i18n.alert_note(),
338
+ (i18n) => i18n.alert_tip(),
339
+ (i18n) => i18n.alert_important(),
340
+ (i18n) => i18n.alert_warning(),
341
+ (i18n) => i18n.alert_caution(),
342
+ ];
343
+ function githubAlertMarkdownPlugin(md, i18n) {
344
+ md.core.ruler.after("block", "typedoc-github-alert-plugin", (state) => {
345
+ const bqStarts = [];
346
+ for (let i = 0; i < state.tokens.length; ++i) {
347
+ const token = state.tokens[i];
348
+ if (token.type === "blockquote_open") {
349
+ bqStarts.push(i);
350
+ }
351
+ else if (token.type === "blockquote_close") {
352
+ if (bqStarts.length === 1) {
353
+ checkForAlert(state.tokens, bqStarts[0], i, i18n);
354
+ }
355
+ bqStarts.pop();
356
+ }
357
+ }
358
+ });
359
+ }
360
+ function checkForAlert(tokens, start, end, i18n) {
361
+ let alertKind = -1;
362
+ // Search for the first "inline" token. That will be the blockquote text.
363
+ for (let i = start; i < end; ++i) {
364
+ if (tokens[i].type === "inline") {
365
+ // Check for `[!NOTE]`
366
+ const kindString = tokens[i].content.match(/^\[!(\w+)\]/);
367
+ const kindIndex = kindNames.indexOf(kindString?.[1].toLowerCase() || "");
368
+ if (kindIndex !== -1) {
369
+ tokens[i].content = tokens[i].content.substring(kindString[0].length);
370
+ alertKind = kindIndex;
371
+ }
372
+ break;
373
+ }
374
+ }
375
+ // If we found an alert, then replace the blockquote_open and blockquote_close tokens with
376
+ // alert_open and alert_close tokens that can be rendered specially.
377
+ if (alertKind === -1)
378
+ return;
379
+ tokens[start].type = "alert_open";
380
+ tokens[start].tag = "div";
381
+ tokens[start].attrPush(["class", `tsd-alert tsd-alert-${kindNames[alertKind]}`]);
382
+ tokens[start].attrPush(["alert", kindTranslations[alertKind](i18n)]);
383
+ tokens[start].attrPush(["icon", iconNames[alertKind]]);
384
+ tokens[end].type = "alert_close";
385
+ tokens[end].tag = "div";
386
+ }
@@ -1,11 +1,11 @@
1
- import { Theme } from "../../theme";
2
- import type { Renderer } from "../../renderer";
3
- import { ReflectionKind, ProjectReflection, type ContainerReflection, DeclarationReflection, type Reflection, type DocumentReflection } from "../../../models";
4
- import { type RenderTemplate, UrlMapping } from "../../models/UrlMapping";
5
- import type { PageEvent } from "../../events";
6
- import type { MarkedPlugin } from "../../plugins";
7
- import { DefaultThemeRenderContext } from "./DefaultThemeRenderContext";
8
- import { JSX } from "../../../utils";
1
+ import { Theme } from "../../theme.js";
2
+ import type { Renderer } from "../../renderer.js";
3
+ import { ReflectionKind, ProjectReflection, type ContainerReflection, DeclarationReflection, type Reflection, type DocumentReflection } from "../../../models/index.js";
4
+ import { type RenderTemplate, UrlMapping } from "../../models/UrlMapping.js";
5
+ import type { PageEvent } from "../../events.js";
6
+ import type { MarkedPlugin } from "../../plugins/index.js";
7
+ import { DefaultThemeRenderContext } from "./DefaultThemeRenderContext.js";
8
+ import { JSX } from "../../../utils/index.js";
9
9
  export interface NavigationElement {
10
10
  text: string;
11
11
  path?: string;
@@ -13,19 +13,9 @@ export interface NavigationElement {
13
13
  class?: string;
14
14
  children?: NavigationElement[];
15
15
  }
16
- /**
17
- * Responsible for getting a unique anchor for elements within a page.
18
- */
19
- export declare class Slugger {
20
- private seen;
21
- private serialize;
22
- slug(value: string): string;
23
- }
24
- /**
25
- * Default theme implementation of TypeDoc. If a theme does not provide a custom
26
- * {@link Theme} implementation, this theme class will be used.
27
- */
28
16
  export declare class DefaultTheme extends Theme {
17
+ usedFileNames: Set<string>;
18
+ private accessor sluggerConfiguration;
29
19
  /** @internal */
30
20
  markedPlugin: MarkedPlugin;
31
21
  /**
@@ -73,6 +63,11 @@ export declare class DefaultTheme extends Theme {
73
63
  menu: () => JSX.Element;
74
64
  chevronSmall: () => JSX.Element;
75
65
  folder: () => JSX.Element;
66
+ alertNote: () => JSX.Element;
67
+ alertTip: () => JSX.Element;
68
+ alertImportant: () => JSX.Element;
69
+ alertWarning: () => JSX.Element;
70
+ alertCaution: () => JSX.Element;
76
71
  };
77
72
  getRenderContext(pageEvent: PageEvent<Reflection>): DefaultThemeRenderContext;
78
73
  documentTemplate: (pageEvent: PageEvent<DocumentReflection>) => JSX.Element;
@@ -101,14 +96,9 @@ export declare class DefaultTheme extends Theme {
101
96
  */
102
97
  getUrls(project: ProjectReflection): UrlMapping[];
103
98
  /**
104
- * Return a url for the given reflection.
105
- *
106
99
  * @param reflection The reflection the url should be generated for.
107
- * @param relative The parent reflection the url generation should stop on.
108
- * @param separator The separator used to generate the url.
109
- * @returns The generated url.
110
100
  */
111
- static getUrl(reflection: Reflection, relative?: Reflection, separator?: string): string;
101
+ getFileName(reflection: Reflection): string;
112
102
  /**
113
103
  * Return the template mapping for the given reflection.
114
104
  *
@@ -131,13 +121,11 @@ export declare class DefaultTheme extends Theme {
131
121
  */
132
122
  getNavigation(project: ProjectReflection): NavigationElement[];
133
123
  buildNavigation(project: ProjectReflection): NavigationElement[];
134
- private sluggers;
135
- getSlugger(reflection: Reflection): Slugger;
136
124
  /**
137
125
  * Generate an anchor url for the given reflection and all of its children.
138
126
  *
139
127
  * @param reflection The reflection an anchor url should be created for.
140
128
  * @param container The nearest reflection having an own document.
141
129
  */
142
- static applyAnchorUrl(reflection: Reflection, container: Reflection): void;
130
+ applyAnchorUrl(reflection: Reflection, container: Reflection): void;
143
131
  }