umberto 4.4.2 → 5.0.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 (189) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/LICENSE.md +1 -1
  3. package/hexo-shim.js +1 -1
  4. package/package.json +3 -2
  5. package/scripts/filter/after-post-render/basepath-replacer.js +1 -1
  6. package/scripts/filter/after-post-render/fix-code-samples.js +1 -1
  7. package/scripts/filter/after-post-render/gather-guides.js +1 -1
  8. package/scripts/filter/after-post-render/img-linker.js +1 -1
  9. package/scripts/filter/after-post-render/import-guide.js +1 -1
  10. package/scripts/filter/after-post-render/insert-error-codes.js +1 -1
  11. package/scripts/filter/after-post-render/linker.js +1 -1
  12. package/scripts/filter/after-post-render/parseicontag.js +1 -1
  13. package/scripts/filter/after-post-render/process-variables.js +1 -1
  14. package/scripts/filter/after-post-render/snippets.js +1 -1
  15. package/scripts/filter/after-post-render/time-end.js +1 -1
  16. package/scripts/filter/after-post-render/time-start.js +1 -1
  17. package/scripts/filter/after-post-render/validate-after-render.js +1 -1
  18. package/scripts/filter/before-post-render/add-project-info-to-page.js +1 -1
  19. package/scripts/filter/before-post-render/add-repo-url.js +1 -1
  20. package/scripts/filter/before-post-render/change-output-path.js +1 -1
  21. package/scripts/filter/before-post-render/code-switcher.js +1 -1
  22. package/scripts/filter/before-post-render/execute-and-insert-function-results.js +1 -1
  23. package/scripts/filter/before-post-render/infobox.js +1 -1
  24. package/scripts/filter/before-post-render/insertchangelog.js +1 -1
  25. package/scripts/filter/before-post-render/replace-macros.js +1 -1
  26. package/scripts/filter/before-post-render/set-layout.js +1 -1
  27. package/scripts/filter/before-post-render/validate-page-data.js +1 -1
  28. package/scripts/helper/find-main-category-page.js +1 -1
  29. package/scripts/helper/get-pages-for-nav-tree.js +1 -1
  30. package/scripts/helper/mark-empty-categories.js +1 -1
  31. package/scripts/helper/normalize-badges.js +1 -1
  32. package/scripts/helper/u-split-to-title-and-content.js +1 -1
  33. package/scripts/helper/u-toc.js +1 -1
  34. package/scripts/utils/execute-and-insert-function-results.js +1 -1
  35. package/scripts/utils/findmaincategorypage.js +1 -1
  36. package/scripts/utils/getreportissuewidgeturl.js +1 -1
  37. package/scripts/utils/insertchangelog.js +1 -1
  38. package/scripts/utils/normalizebadges.js +1 -1
  39. package/scripts/utils/parseicontag.js +1 -1
  40. package/scripts/utils/parselinks.js +1 -1
  41. package/scripts/utils/shoulddisplaynewindicator.js +1 -1
  42. package/scripts/utils/transformcodeswitcher.js +1 -1
  43. package/scripts/utils/transforminfobox.js +1 -1
  44. package/src/api-builder/api-builder.js +1 -1
  45. package/src/api-builder/classes/description-parser.js +1 -1
  46. package/src/api-builder/classes/doc-data-factory.js +1 -1
  47. package/src/api-builder/classes/file-name-manager.js +1 -1
  48. package/src/api-builder/classes/html-file.js +1 -1
  49. package/src/api-builder/classes/navigation-tree.js +1 -1
  50. package/src/api-builder/classes/tree-node.js +1 -1
  51. package/src/api-builder/utils/findtargetdoclet.js +1 -1
  52. package/src/api-builder/utils/utils.js +1 -1
  53. package/src/data-converter/converters/jsdoc2umberto.js +1 -1
  54. package/src/data-converter/converters/jsduck2umberto.js +1 -1
  55. package/src/data-converter/converters/typedoc/abstractparser.js +1 -1
  56. package/src/data-converter/converters/typedoc/accessorparser.js +1 -1
  57. package/src/data-converter/converters/typedoc/classparser.js +1 -1
  58. package/src/data-converter/converters/typedoc/computedpropertyparser.js +1 -1
  59. package/src/data-converter/converters/typedoc/constantparser.js +1 -1
  60. package/src/data-converter/converters/typedoc/constructorparser.js +1 -1
  61. package/src/data-converter/converters/typedoc/errorparser.js +1 -1
  62. package/src/data-converter/converters/typedoc/eventparser.js +1 -1
  63. package/src/data-converter/converters/typedoc/functionparser.js +1 -1
  64. package/src/data-converter/converters/typedoc/interfaceparser.js +1 -1
  65. package/src/data-converter/converters/typedoc/methodparser.js +1 -1
  66. package/src/data-converter/converters/typedoc/moduleparser.js +1 -1
  67. package/src/data-converter/converters/typedoc/propertyparser.js +1 -1
  68. package/src/data-converter/converters/typedoc/typedoc.ts +1 -1
  69. package/src/data-converter/converters/typedoc/typedocconverter.js +1 -1
  70. package/src/data-converter/converters/typedoc/typeparser.js +1 -1
  71. package/src/data-converter/converters/typedoc2umberto.js +1 -1
  72. package/src/data-converter/data-collection.js +1 -1
  73. package/src/data-converter/data-provider.js +1 -1
  74. package/src/data-converter/doclet-collection.js +1 -1
  75. package/src/data-converter/middlewares/relation-fixer.js +1 -1
  76. package/src/helpers/capitalize.js +1 -1
  77. package/src/helpers/copy-file.js +1 -1
  78. package/src/helpers/create-filtering-data-attribs.js +1 -1
  79. package/src/helpers/doc-formats.js +1 -1
  80. package/src/helpers/escape-longname.js +1 -1
  81. package/src/helpers/extract-longname.js +1 -1
  82. package/src/helpers/get-api-infobox-tooltip.js +1 -1
  83. package/src/helpers/get-docsearch-config.js +1 -1
  84. package/src/helpers/get-file-patterns-to-process.js +1 -1
  85. package/src/helpers/get-short-module-path.js +1 -1
  86. package/src/helpers/github-url.js +1 -1
  87. package/src/helpers/glob-to-regexp.js +1 -1
  88. package/src/helpers/html-safe.js +1 -1
  89. package/src/helpers/import-module.js +1 -1
  90. package/src/helpers/is-non-empty-array.js +1 -1
  91. package/src/helpers/snippets.js +1 -1
  92. package/src/helpers/split-longname.js +1 -1
  93. package/src/hexo/filter/extend-config.js +1 -1
  94. package/src/hexo/filter/project-locals.js +1 -1
  95. package/src/hexo/get-repo-urls.js +1 -1
  96. package/src/hexo/helper/get-page-group.js +1 -1
  97. package/src/hexo/project-globals.js +1 -1
  98. package/src/hexo-manager.js +1 -1
  99. package/src/index.js +1 -1
  100. package/src/sdk-builder/get-sdk-sources.js +1 -1
  101. package/src/sdk-builder/sdk-builder.js +1 -1
  102. package/src/tasks/build-api-docs.js +1 -1
  103. package/src/tasks/build-documentation.js +1 -1
  104. package/src/tasks/build-sdk.js +1 -1
  105. package/src/tasks/build-snippets.js +1 -1
  106. package/src/tasks/cache-files.js +1 -1
  107. package/src/tasks/compile-sass.js +1 -1
  108. package/src/tasks/copy-assets.js +1 -1
  109. package/src/tasks/copy-files.js +1 -1
  110. package/src/tasks/copy-project-docs.js +1 -1
  111. package/src/tasks/copy-project-icons.js +1 -1
  112. package/src/tasks/create-redirect-page.js +1 -1
  113. package/src/tasks/create-sitemap.js +1 -1
  114. package/src/tasks/create-sym-links.js +1 -1
  115. package/src/tasks/execute-hooks.js +1 -1
  116. package/src/tasks/get-extra-files.js +1 -1
  117. package/src/tasks/get-hexo-config.js +1 -1
  118. package/src/tasks/get-main-config.js +1 -1
  119. package/src/tasks/get-project-config.js +1 -1
  120. package/src/tasks/macro-replacer.js +1 -1
  121. package/src/tasks/overwrite-api-guides.js +1 -1
  122. package/src/tasks/read-doc-sources.js +1 -1
  123. package/src/tasks/run-webpack.js +1 -1
  124. package/src/tasks/validate-html-w3c.js +1 -1
  125. package/src/tasks/validate-links.js +56 -37
  126. package/src/tasks/watcher.js +1 -1
  127. package/src/tasks/write-html-files.js +1 -1
  128. package/src/template/template-collection.js +1 -1
  129. package/themes/umberto/src/css/_api-content.scss +2 -2
  130. package/themes/umberto/src/css/_api-info-box.scss +2 -2
  131. package/themes/umberto/src/css/_api-props-filter.scss +2 -2
  132. package/themes/umberto/src/css/_api-see-source.scss +2 -2
  133. package/themes/umberto/src/css/_api-subheader.scss +2 -2
  134. package/themes/umberto/src/css/_api-tree.scss +2 -2
  135. package/themes/umberto/src/css/_badge.scss +2 -2
  136. package/themes/umberto/src/css/_code-switcher.scss +3 -3
  137. package/themes/umberto/src/css/_collapsinglist.scss +2 -2
  138. package/themes/umberto/src/css/_content.scss +2 -2
  139. package/themes/umberto/src/css/_docsearch.scss +2 -2
  140. package/themes/umberto/src/css/_dropdown.scss +2 -2
  141. package/themes/umberto/src/css/_editor-icon.scss +2 -2
  142. package/themes/umberto/src/css/_feedback-widget.scss +2 -2
  143. package/themes/umberto/src/css/_font-external.scss +2 -2
  144. package/themes/umberto/src/css/_footer.scss +2 -2
  145. package/themes/umberto/src/css/_formatted.scss +2 -2
  146. package/themes/umberto/src/css/_guide-content.scss +2 -2
  147. package/themes/umberto/src/css/_guide-sdk-tree.scss +2 -2
  148. package/themes/umberto/src/css/_loading-spinner.scss +2 -2
  149. package/themes/umberto/src/css/_main.scss +2 -2
  150. package/themes/umberto/src/css/_navigation.scss +2 -2
  151. package/themes/umberto/src/css/_notice.scss +2 -2
  152. package/themes/umberto/src/css/_print.scss +2 -2
  153. package/themes/umberto/src/css/_prism.scss +2 -2
  154. package/themes/umberto/src/css/_rwd-breadcrumbs.scss +2 -2
  155. package/themes/umberto/src/css/_rwd-menu.scss +2 -2
  156. package/themes/umberto/src/css/_secondary-navigation.scss +2 -2
  157. package/themes/umberto/src/css/_theme-dark.scss +2 -2
  158. package/themes/umberto/src/css/_toggler.scss +2 -2
  159. package/themes/umberto/src/css/_top.scss +2 -2
  160. package/themes/umberto/src/css/_tree.scss +2 -2
  161. package/themes/umberto/src/css/_warning-banner.scss +2 -2
  162. package/themes/umberto/src/css/components/_lightbox.scss +2 -2
  163. package/themes/umberto/src/css/helpers/_color.scss +2 -2
  164. package/themes/umberto/src/css/helpers/_font.scss +2 -2
  165. package/themes/umberto/src/css/helpers/_globals.scss +2 -2
  166. package/themes/umberto/src/css/helpers/_reset.scss +2 -2
  167. package/themes/umberto/src/css/helpers/_spacing.scss +2 -2
  168. package/themes/umberto/src/css/pages/_sdk.scss +2 -2
  169. package/themes/umberto/src/css/styles.scss +2 -2
  170. package/themes/umberto/src/js/_anchors.js +1 -1
  171. package/themes/umberto/src/js/_apisearch.js +1 -1
  172. package/themes/umberto/src/js/_apitree.js +1 -1
  173. package/themes/umberto/src/js/_attachpermalinklistener.js +1 -1
  174. package/themes/umberto/src/js/_codeswitcherbuttons.js +1 -1
  175. package/themes/umberto/src/js/_collapsables.js +1 -1
  176. package/themes/umberto/src/js/_copymobileapinavigation.js +1 -1
  177. package/themes/umberto/src/js/_devnames.js +1 -1
  178. package/themes/umberto/src/js/_dropdowns.js +1 -1
  179. package/themes/umberto/src/js/_filtering.js +1 -1
  180. package/themes/umberto/src/js/_imageModal.js +1 -1
  181. package/themes/umberto/src/js/_pagenavigation.js +1 -1
  182. package/themes/umberto/src/js/_prism.js +1 -1
  183. package/themes/umberto/src/js/_rwdmenu.js +1 -1
  184. package/themes/umberto/src/js/_samplecode.js +1 -1
  185. package/themes/umberto/src/js/_sidenavigation.js +1 -1
  186. package/themes/umberto/src/js/_toc.js +1 -1
  187. package/themes/umberto/src/js/_tooltips.js +1 -1
  188. package/themes/umberto/src/js/_warningbanner.js +1 -1
  189. package/themes/umberto/src/js/app.js +1 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
package/src/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -9,6 +9,7 @@ const upath = require( 'upath' );
9
9
  const fs = require( 'fs-extra' );
10
10
  const glob = require( 'glob' );
11
11
  const chalk = require( 'chalk' );
12
+ const { parseDocument } = require( 'htmlparser2' );
12
13
 
13
14
  module.exports = ( buildPath, options = {} ) => {
14
15
  const pattern = upath.join( buildPath, '**', '*' );
@@ -56,55 +57,53 @@ module.exports = ( buildPath, options = {} ) => {
56
57
  for ( const filePath of pathsToFiles ) {
57
58
  const invalidHrefs = new Set();
58
59
  const content = fs.readFileSync( filePath, 'utf-8' );
59
- const linkRegexp = /<a[^>]*href=["']*([^\s"'>]+)[^>]*>([^<]*)/g;
60
- let linkMatch = linkRegexp.exec( content );
60
+ const linkElements = [];
61
61
 
62
- while ( linkMatch !== null ) {
63
- const fullLink = linkMatch[ 0 ];
64
- let href = linkMatch[ 1 ];
65
- const text = linkMatch[ 2 ];
62
+ processNode( parseDocument( content ), linkElements );
66
63
 
67
- linkMatch = linkRegexp.exec( content );
64
+ for ( let { href, text, skipValidation } of linkElements ) {
68
65
  if (
69
- !( href.match( /[a-z:]*\/\// ) ) &&
70
- !( href.match( /mailto:/ ) ) &&
71
- !fullLink.includes( 'data-skip-validation' )
66
+ href.match( /[a-z:]*\/\// ) ||
67
+ href.match( /mailto:/ ) ||
68
+ skipValidation
72
69
  ) {
73
- if ( href.endsWith( '/' ) && !href.includes( '#' ) ) {
74
- href += 'index.html';
75
- }
70
+ continue;
71
+ }
76
72
 
77
- let resolvedPath = getResolvedPath( href, filePath, { publicDir: options.publicDir } );
73
+ if ( href.endsWith( '/' ) && !href.includes( '#' ) ) {
74
+ href += 'index.html';
75
+ }
78
76
 
79
- if ( options.skipApi && resolvedPath.includes( '/api/' ) ) {
80
- // Sometimes api url are obtained after resolving entire URL.
77
+ let resolvedPath = getResolvedPath( href, filePath, { publicDir: options.publicDir } );
81
78
 
82
- continue;
83
- }
79
+ if ( options.skipApi && resolvedPath.includes( '/api/' ) ) {
80
+ // Sometimes api url are obtained after resolving entire URL.
84
81
 
85
- if ( resolvedPath.includes( 'latest' ) ) {
86
- const projectInfo = options.projectsInfo ?
87
- options.projectsInfo.find( i => resolvedPath.includes( `/${ i.slug }/` ) ) :
88
- null;
89
- const projectVersion = projectInfo ? projectInfo.version : 'latest';
82
+ continue;
83
+ }
90
84
 
91
- resolvedPath = resolvedPath.replace( 'latest', projectVersion );
92
- }
85
+ if ( resolvedPath.includes( 'latest' ) ) {
86
+ const projectInfo = options.projectsInfo ?
87
+ options.projectsInfo.find( i => resolvedPath.includes( `/${ i.slug }/` ) ) :
88
+ null;
89
+ const projectVersion = projectInfo ? projectInfo.version : 'latest';
93
90
 
94
- if ( options.projectsInfo ) {
95
- const isCorrectLocalPath = options.projectsInfo.some( info => {
96
- return resolvedPath.includes( info.basePath );
97
- } );
91
+ resolvedPath = resolvedPath.replace( 'latest', projectVersion );
92
+ }
98
93
 
99
- if ( !isCorrectLocalPath ) {
100
- continue;
101
- }
102
- }
94
+ if ( options.projectsInfo ) {
95
+ const isCorrectLocalPath = options.projectsInfo.some( info => {
96
+ return resolvedPath.includes( info.basePath );
97
+ } );
103
98
 
104
- if ( !links.has( resolvedPath ) ) {
105
- invalidHrefs.add( { href, text } );
99
+ if ( !isCorrectLocalPath ) {
100
+ continue;
106
101
  }
107
102
  }
103
+
104
+ if ( !links.has( resolvedPath ) ) {
105
+ invalidHrefs.add( { href, text } );
106
+ }
108
107
  }
109
108
 
110
109
  if ( invalidHrefs.size ) {
@@ -133,7 +132,7 @@ function getResolvedPath( href, filePath, options ) {
133
132
  if ( href.startsWith( '/' ) ) {
134
133
  const commonPoint = href.match( /^\/[^/]+/ )[ 0 ];
135
134
 
136
- // The `commonPoint` should be removed from the end of the`options.publicDir` string.
135
+ // The `commonPoint` should be removed from the end of the `options.publicDir` string.
137
136
  // It may happen that `commonPoint` is present at the middle of that path and removing it produces invalid results.
138
137
  // See: #909.
139
138
  const regExpCommonPoint = new RegExp( commonPoint + '$' );
@@ -143,3 +142,23 @@ function getResolvedPath( href, filePath, options ) {
143
142
 
144
143
  return upath.resolve( filePath, '..', href );
145
144
  }
145
+
146
+ function processNode( node, linkElements ) {
147
+ if ( node.type === 'tag' && node.name === 'a' ) {
148
+ const text = node.children.find( child => child.type === 'text' )?.data;
149
+ const href = node.attribs?.href;
150
+ const skipValidation = node.attribs?.[ 'data-skip-validation' ] !== undefined;
151
+
152
+ if ( text && href ) {
153
+ linkElements.push( { href, text, skipValidation } );
154
+ }
155
+ }
156
+
157
+ if ( !node.childNodes ) {
158
+ return;
159
+ }
160
+
161
+ for ( const childNode of node.childNodes ) {
162
+ processNode( childNode, linkElements );
163
+ }
164
+ }
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @license Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
3
  * For licensing, see LICENSE.md.
4
4
  */
5
5
 
@@ -1,5 +1,5 @@
1
- // Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
- // For licensing, see LICENSE.md or http://ckeditor.com/license
1
+ // Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
2
+ // For licensing, see LICENSE.md.
3
3
 
4
4
  .main__content--api {
5
5
  .main-description {
@@ -1,5 +1,5 @@
1
- // Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
- // For licensing, see LICENSE.md or http://ckeditor.com/license
1
+ // Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
2
+ // For licensing, see LICENSE.md.
3
3
 
4
4
  @use 'helpers/color';
5
5
  @use 'helpers/globals';
@@ -1,5 +1,5 @@
1
- // Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
- // For licensing, see LICENSE.md or http://ckeditor.com/license
1
+ // Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
2
+ // For licensing, see LICENSE.md.
3
3
 
4
4
  @use 'helpers/color';
5
5
  @use 'helpers/globals';
@@ -1,5 +1,5 @@
1
- // Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
- // For licensing, see LICENSE.md or http://ckeditor.com/license
1
+ // Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
2
+ // For licensing, see LICENSE.md.
3
3
 
4
4
  .main__content--api {
5
5
  .see-source {
@@ -1,5 +1,5 @@
1
- // Copyright (c) 2017-2024, CKSource Holding sp. z o.o. All rights reserved.
2
- // For licensing, see LICENSE.md or http://ckeditor.com/license
1
+ // Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
2
+ // For licensing, see LICENSE.md.
3
3
 
4
4
  @use 'helpers/font';
5
5
  @use 'helpers/globals';