umberto 7.0.2 → 8.0.1

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 (569) hide show
  1. package/CHANGELOG.md +29 -1798
  2. package/LICENSE.md +44 -5
  3. package/README.md +194 -9
  4. package/package.json +4 -8
  5. package/scripts/filter/after-post-render/gloria/append-copy-heading-buttons.js +90 -0
  6. package/scripts/filter/after-post-render/gloria/apply-design-doc-classes.js +145 -0
  7. package/scripts/filter/after-post-render/gloria/wrap-table-into-wrappers.js +30 -0
  8. package/scripts/filter/after-post-render/img-linker.js +1 -1
  9. package/scripts/filter/after-post-render/insert-error-codes.js +1 -1
  10. package/scripts/filter/after-post-render/linker.js +1 -1
  11. package/scripts/filter/after-post-render/parseicontag.js +1 -1
  12. package/scripts/filter/after-post-render/snippets.js +5 -1
  13. package/scripts/filter/after-render/gloria/inline-svg.js +14 -0
  14. package/scripts/filter/after-render/gloria/spritesheet-svg.js +14 -0
  15. package/scripts/filter/before-post-render/add-project-info-to-page.js +1 -1
  16. package/scripts/filter/before-post-render/code-switcher.js +4 -0
  17. package/scripts/filter/before-post-render/execute-and-insert-function-results.js +3 -1
  18. package/scripts/filter/before-post-render/gloria/add-breadcrumbs-data-to-page.js +276 -0
  19. package/scripts/filter/before-post-render/gloria/prerender-admonitions.js +27 -0
  20. package/scripts/filter/before-post-render/gloria/prerender-xml-pug-components.js +352 -0
  21. package/scripts/filter/before-post-render/gloria/render-post-render-pug-components.js +102 -0
  22. package/scripts/filter/before-post-render/set-layout.js +4 -2
  23. package/scripts/helper/parse-href.js +28 -0
  24. package/scripts/helper/u-capitalize.js +13 -0
  25. package/scripts/helper/u-extract-and-cache-title.js +36 -0
  26. package/scripts/helper/u-random-id.js +16 -0
  27. package/scripts/helper/u-remove-indentation.js +13 -0
  28. package/scripts/helper/u-toc.js +2 -63
  29. package/scripts/utils/add-indention.js +16 -0
  30. package/scripts/utils/capitalize.js +17 -0
  31. package/scripts/utils/concat-url-parts.js +19 -0
  32. package/scripts/utils/decode-html-entities.js +25 -0
  33. package/scripts/utils/drop-init-slash.js +14 -0
  34. package/scripts/utils/drop-trailing-slash.js +14 -0
  35. package/scripts/utils/drop-url-protocol.js +10 -0
  36. package/scripts/utils/inline-svg.js +152 -0
  37. package/scripts/utils/measure-call.js +16 -0
  38. package/scripts/utils/parse-href.js +37 -0
  39. package/scripts/utils/parseicontag.js +1 -1
  40. package/scripts/utils/parselinks.js +27 -6
  41. package/scripts/utils/parser-cursor.js +280 -0
  42. package/scripts/utils/pipe.js +17 -0
  43. package/scripts/utils/pug-renderer/create-prerender-pug-template.js +185 -0
  44. package/scripts/utils/pug-renderer/render-pug-component.js +73 -0
  45. package/scripts/utils/pug-to-xml-binding/parser/walk-xml-tree.js +150 -0
  46. package/scripts/utils/pug-to-xml-binding/parser/xml-components-parser.js +414 -0
  47. package/scripts/utils/pug-to-xml-binding/render-xml-pug-components-in-markdown.js +193 -0
  48. package/scripts/utils/pug-to-xml-binding/transform-xml-tree-to-pug.js +144 -0
  49. package/scripts/utils/random-id.js +75 -0
  50. package/scripts/utils/remove-indentation.js +48 -0
  51. package/scripts/utils/spritesheet-svg.js +183 -0
  52. package/scripts/utils/toc.js +71 -0
  53. package/scripts/utils/transform-markdown-admonitions.js +98 -0
  54. package/scripts/utils/uniq-by-last.js +32 -0
  55. package/src/api-builder/api-builder.js +49 -18
  56. package/src/api-builder/classes/description-parser.js +61 -10
  57. package/src/api-builder/classes/doc-data-factory.js +2 -2
  58. package/src/helpers/github-url.js +1 -1
  59. package/src/helpers/templates/scripts/default.js +1 -1
  60. package/src/helpers/templates/scripts/group.js +1 -1
  61. package/src/hexo/filter/project-locals.js +12 -0
  62. package/src/hexo/get-repo-urls.js +1 -1
  63. package/src/hexo/project-globals.js +4 -0
  64. package/src/hexo-manager.js +7 -2
  65. package/src/sdk-builder/sdk-builder.js +4 -4
  66. package/src/tasks/build-api-docs.js +6 -6
  67. package/src/tasks/build-documentation.js +57 -24
  68. package/src/tasks/cache-files.js +2 -2
  69. package/src/tasks/compile-sass.js +12 -0
  70. package/src/tasks/copy-assets.js +4 -0
  71. package/src/tasks/copy-project-icons.js +1 -1
  72. package/src/tasks/get-extra-files.js +1 -1
  73. package/src/tasks/get-project-config.js +1 -1
  74. package/src/tasks/overwrite-api-guides.js +1 -1
  75. package/src/tasks/validate-links.js +211 -39
  76. package/themes/umberto/layout/gloria/404.pug +25 -16
  77. package/themes/umberto/layout/gloria/_api-docs/_header/_style.scss +31 -0
  78. package/themes/umberto/layout/gloria/_api-docs/_header/index.pug +50 -0
  79. package/themes/umberto/layout/gloria/_api-docs/_mixin/_api-see-source.pug +1 -4
  80. package/themes/umberto/layout/gloria/_api-docs/_mixin/_api-tree-item.pug +42 -26
  81. package/themes/umberto/layout/gloria/_api-docs/_mixin/_class-item.pug +20 -13
  82. package/themes/umberto/layout/gloria/_api-docs/_mixin/_dev-names.pug +1 -1
  83. package/themes/umberto/layout/gloria/_api-docs/_mixin/_error.pug +10 -5
  84. package/themes/umberto/layout/gloria/_api-docs/_mixin/_hierarchy-list.pug +1 -1
  85. package/themes/umberto/layout/gloria/_api-docs/_mixin/_link-or-text.pug +1 -1
  86. package/themes/umberto/layout/gloria/_api-docs/_mixin/_method.pug +45 -39
  87. package/themes/umberto/layout/gloria/_api-docs/_mixin/_property.pug +26 -20
  88. package/themes/umberto/layout/gloria/_api-docs/_mixin/_related.pug +1 -1
  89. package/themes/umberto/layout/gloria/_api-docs/_mixin/_toc-list-item.pug +11 -0
  90. package/themes/umberto/layout/gloria/_api-docs/_partial/api-subheader.pug +0 -11
  91. package/themes/umberto/layout/gloria/_api-docs/_partial/api-toc.pug +33 -0
  92. package/themes/umberto/layout/gloria/_api-docs/_partial/classes.pug +5 -4
  93. package/themes/umberto/layout/gloria/_api-docs/_partial/config-options.pug +5 -4
  94. package/themes/umberto/layout/gloria/_api-docs/_partial/constants.pug +1 -1
  95. package/themes/umberto/layout/gloria/_api-docs/_partial/description.pug +2 -2
  96. package/themes/umberto/layout/gloria/_api-docs/_partial/events.pug +5 -4
  97. package/themes/umberto/layout/gloria/_api-docs/_partial/functions.pug +5 -4
  98. package/themes/umberto/layout/gloria/_api-docs/_partial/interfaces.pug +1 -1
  99. package/themes/umberto/layout/gloria/_api-docs/_partial/methods.pug +14 -13
  100. package/themes/umberto/layout/gloria/_api-docs/_partial/namespaces.pug +1 -1
  101. package/themes/umberto/layout/gloria/_api-docs/_partial/navtree.pug +4 -11
  102. package/themes/umberto/layout/gloria/_api-docs/_partial/properties.pug +14 -13
  103. package/themes/umberto/layout/gloria/_api-docs/_partial/type-parameters.pug +15 -12
  104. package/themes/umberto/layout/gloria/_api-docs/_partial/typedefs.pug +5 -4
  105. package/themes/umberto/layout/gloria/_api-docs/_subheader/_style.scss +5 -0
  106. package/themes/umberto/layout/gloria/_api-docs/_subheader/index.pug +10 -0
  107. package/themes/umberto/layout/gloria/_api-docs/_toc/_style.scss +229 -0
  108. package/themes/umberto/layout/gloria/_api-docs/_toc/index.pug +11 -0
  109. package/themes/umberto/layout/gloria/_api-docs/api-base.pug +24 -24
  110. package/themes/umberto/layout/gloria/_api-docs/class.pug +4 -4
  111. package/themes/umberto/layout/gloria/_api-docs/errors.pug +3 -3
  112. package/themes/umberto/layout/gloria/_api-docs/index.pug +3 -0
  113. package/themes/umberto/layout/gloria/_api-docs/interface.pug +4 -4
  114. package/themes/umberto/layout/gloria/_api-docs/mixin.pug +4 -4
  115. package/themes/umberto/layout/gloria/_api-docs/module.pug +4 -4
  116. package/themes/umberto/layout/gloria/_api-docs/namespace.pug +4 -4
  117. package/themes/umberto/layout/gloria/_api-docs/typedef.pug +22 -22
  118. package/themes/umberto/layout/gloria/_components/badge/_style.scss +27 -0
  119. package/themes/umberto/layout/gloria/_components/badge/index.pug +30 -0
  120. package/themes/umberto/layout/gloria/_components/banner/_style.scss +133 -0
  121. package/themes/umberto/layout/gloria/_components/banner/index.pug +3 -0
  122. package/themes/umberto/layout/gloria/_components/button/_style.scss +183 -0
  123. package/themes/umberto/layout/gloria/_components/button/index.pug +140 -0
  124. package/themes/umberto/layout/gloria/_components/callout/_style.scss +56 -0
  125. package/themes/umberto/layout/gloria/_components/callout/index.pug +87 -0
  126. package/themes/umberto/layout/gloria/_components/card/_style.scss +101 -0
  127. package/themes/umberto/layout/gloria/_components/card/index.pug +131 -0
  128. package/themes/umberto/layout/gloria/_components/card-learn-more-links/_style.scss +9 -0
  129. package/themes/umberto/layout/gloria/_components/card-learn-more-links/index.pug +56 -0
  130. package/themes/umberto/layout/gloria/_components/checkbox/_style.scss +117 -0
  131. package/themes/umberto/layout/gloria/_components/checkbox/index.pug +35 -0
  132. package/themes/umberto/layout/gloria/_components/cke5-code-switcher/index.pug +39 -0
  133. package/themes/umberto/layout/gloria/_components/code-block/_style.scss +111 -0
  134. package/themes/umberto/layout/gloria/_components/code-block/index.pug +75 -0
  135. package/themes/umberto/layout/gloria/_components/code-switcher/_style.scss +36 -0
  136. package/themes/umberto/layout/gloria/_components/code-switcher/index.pug +31 -0
  137. package/themes/umberto/layout/gloria/_components/columns/_style.scss +54 -0
  138. package/themes/umberto/layout/gloria/_components/columns/index.pug +30 -0
  139. package/themes/umberto/layout/gloria/_components/divider/_style.scss +6 -0
  140. package/themes/umberto/layout/gloria/_components/divider/index.pug +13 -0
  141. package/themes/umberto/layout/gloria/_components/dropdown/_style.scss +88 -0
  142. package/themes/umberto/layout/gloria/_components/dropdown/index.pug +77 -0
  143. package/themes/umberto/layout/gloria/_components/fake-devtools/_style.scss +233 -0
  144. package/themes/umberto/layout/gloria/_components/fake-devtools/index.pug +27 -0
  145. package/themes/umberto/layout/gloria/_components/heading-badge/index.pug +17 -0
  146. package/themes/umberto/layout/gloria/_components/heading-link/_style.scss +47 -0
  147. package/themes/umberto/layout/gloria/_components/heading-link/index.pug +26 -0
  148. package/themes/umberto/layout/gloria/_components/icon/_style.scss +12 -0
  149. package/themes/umberto/layout/gloria/_components/icon/index.pug +75 -0
  150. package/themes/umberto/layout/gloria/_components/icon-message/_style.scss +13 -0
  151. package/themes/umberto/layout/gloria/_components/icon-message/index.pug +17 -0
  152. package/themes/umberto/layout/gloria/_components/iframe/_style.scss +10 -0
  153. package/themes/umberto/layout/gloria/_components/iframe/index.pug +22 -0
  154. package/themes/umberto/layout/gloria/_components/img/index.pug +17 -0
  155. package/themes/umberto/layout/gloria/_components/index.pug +32 -0
  156. package/themes/umberto/layout/gloria/_components/input/_style.scss +82 -0
  157. package/themes/umberto/layout/gloria/_components/input/index.pug +34 -0
  158. package/themes/umberto/layout/gloria/_components/json-ld/index.pug +3 -0
  159. package/themes/umberto/layout/gloria/_components/keyboard-shortcut/_style.scss +49 -0
  160. package/themes/umberto/layout/gloria/_components/keyboard-shortcut/index.pug +23 -0
  161. package/themes/umberto/layout/gloria/_components/menu-dropdown/_style.scss +27 -0
  162. package/themes/umberto/layout/gloria/_components/menu-dropdown/index.pug +40 -0
  163. package/themes/umberto/layout/gloria/_components/mobile-overlay/_style.scss +70 -0
  164. package/themes/umberto/layout/gloria/_components/mobile-overlay/index.pug +37 -0
  165. package/themes/umberto/layout/gloria/_components/nav-tree/_style.scss +104 -0
  166. package/themes/umberto/layout/gloria/_components/nav-tree/index.pug +6 -0
  167. package/themes/umberto/layout/gloria/_components/nav-tree/nav-tree-item.pug +27 -0
  168. package/themes/umberto/layout/gloria/_components/nav-tree/nav-tree-level.pug +58 -0
  169. package/themes/umberto/layout/gloria/_components/skeleton/_style.scss +22 -0
  170. package/themes/umberto/layout/gloria/_components/skeleton/index.pug +16 -0
  171. package/themes/umberto/layout/gloria/_components/snippet-footer/_style.scss +26 -0
  172. package/themes/umberto/layout/gloria/_components/snippet-footer/index.pug +10 -0
  173. package/themes/umberto/layout/gloria/_components/spacer/_style.scss +9 -0
  174. package/themes/umberto/layout/gloria/_components/spacer/index.pug +19 -0
  175. package/themes/umberto/layout/gloria/_components/svg/index.pug +70 -0
  176. package/themes/umberto/layout/gloria/_components/tabs/_style.scss +80 -0
  177. package/themes/umberto/layout/gloria/_components/tabs/index.pug +81 -0
  178. package/themes/umberto/layout/gloria/_components/tag/_style.scss +79 -0
  179. package/themes/umberto/layout/gloria/_components/tag/index.pug +17 -0
  180. package/themes/umberto/layout/gloria/_components/tooltip-popover/_style.scss +194 -0
  181. package/themes/umberto/layout/gloria/_components/tooltip-popover/index.pug +38 -0
  182. package/themes/umberto/layout/gloria/_head/head-preloads.pug +32 -0
  183. package/themes/umberto/layout/gloria/{_partial → _head}/head.pug +8 -4
  184. package/themes/umberto/layout/gloria/_head/index.pug +1 -0
  185. package/themes/umberto/layout/gloria/_modules/algolia-search/_style.scss +202 -0
  186. package/themes/umberto/layout/gloria/_modules/algolia-search/_third-party.scss +1 -0
  187. package/themes/umberto/layout/gloria/_modules/algolia-search/index.pug +39 -0
  188. package/themes/umberto/layout/gloria/_modules/breadcrumbs/_style.scss +68 -0
  189. package/themes/umberto/layout/gloria/_modules/breadcrumbs/index.pug +18 -0
  190. package/themes/umberto/layout/gloria/_modules/footer/_style.scss +40 -0
  191. package/themes/umberto/layout/gloria/_modules/footer/index.pug +87 -0
  192. package/themes/umberto/layout/gloria/_modules/header/_style.scss +181 -0
  193. package/themes/umberto/layout/gloria/_modules/header/index.pug +70 -0
  194. package/themes/umberto/layout/gloria/_modules/header/nav-link.pug +19 -0
  195. package/themes/umberto/layout/gloria/_modules/header/nav-links.pug +11 -0
  196. package/themes/umberto/layout/gloria/_modules/header/nav-project-select-dropdown.pug +16 -0
  197. package/themes/umberto/layout/gloria/_modules/header/nav-suffix-links.pug +20 -0
  198. package/themes/umberto/layout/gloria/_modules/header-bar/_style.scss +56 -0
  199. package/themes/umberto/layout/gloria/_modules/header-bar/index.pug +40 -0
  200. package/themes/umberto/layout/gloria/_modules/header-legacy-warning/index.pug +11 -0
  201. package/themes/umberto/layout/gloria/_modules/header-nightly-info/index.pug +21 -0
  202. package/themes/umberto/layout/gloria/_modules/header-promobar/index.pug +18 -0
  203. package/themes/umberto/layout/gloria/_modules/index.pug +14 -0
  204. package/themes/umberto/layout/gloria/_modules/main/_style.scss +54 -0
  205. package/themes/umberto/layout/gloria/_modules/main/index.pug +10 -0
  206. package/themes/umberto/layout/gloria/_modules/mobile-nav/_style.scss +106 -0
  207. package/themes/umberto/layout/gloria/_modules/mobile-nav/index.pug +121 -0
  208. package/themes/umberto/layout/gloria/_modules/mobile-nav/slide-parts.pug +67 -0
  209. package/themes/umberto/layout/gloria/_modules/not-found/_style.scss +38 -0
  210. package/themes/umberto/layout/gloria/_modules/not-found/index.pug +16 -0
  211. package/themes/umberto/layout/gloria/_modules/sidebar/_style.scss +147 -0
  212. package/themes/umberto/layout/gloria/_modules/sidebar/index.pug +24 -0
  213. package/themes/umberto/layout/gloria/_modules/sidebar-api/_style.scss +2 -0
  214. package/themes/umberto/layout/gloria/_modules/sidebar-api/index.pug +6 -0
  215. package/themes/umberto/layout/gloria/_modules/toc/_style.scss +201 -0
  216. package/themes/umberto/layout/gloria/_modules/toc/index.pug +10 -0
  217. package/themes/umberto/layout/gloria/_trackers/google-tag-manager.pug +14 -0
  218. package/themes/umberto/layout/gloria/_trackers/index.pug +2 -0
  219. package/themes/umberto/layout/gloria/api.pug +42 -20
  220. package/themes/umberto/layout/gloria/base.pug +23 -32
  221. package/themes/umberto/layout/gloria/index.pug +19 -13
  222. package/themes/umberto/layout/gloria/page.pug +30 -11
  223. package/themes/umberto/layout/gloria/sdk.pug +1 -1
  224. package/themes/umberto/layout/gloria/theme.pug +304 -0
  225. package/themes/umberto/layout/umberto/404.pug +0 -1
  226. package/themes/umberto/layout/umberto/_partial/report-issue-widget.pug +0 -3
  227. package/themes/umberto/source/gloria/assets/_fonts/Lato/Lato-Bold.ttf +0 -0
  228. package/themes/umberto/source/gloria/assets/_fonts/Lato/Lato-Bold.woff2 +0 -0
  229. package/themes/umberto/source/gloria/assets/_fonts/Lato/Lato-BoldItalic.ttf +0 -0
  230. package/themes/umberto/source/gloria/assets/_fonts/Lato/Lato-BoldItalic.woff2 +0 -0
  231. package/themes/umberto/source/gloria/assets/_fonts/Lato/Lato-Italic.ttf +0 -0
  232. package/themes/umberto/source/gloria/assets/_fonts/Lato/Lato-Italic.woff2 +0 -0
  233. package/themes/umberto/source/gloria/assets/_fonts/Lato/Lato-Regular.ttf +0 -0
  234. package/themes/umberto/source/gloria/assets/_fonts/Lato/Lato-Regular.woff2 +0 -0
  235. package/themes/umberto/source/gloria/assets/_fonts/Menlo/Menlo-Regular.ttf +0 -0
  236. package/themes/umberto/source/gloria/assets/_fonts/Menlo/Menlo-Regular.woff +0 -0
  237. package/themes/umberto/source/gloria/assets/_fonts/Mulish/Mulish-Italic-VariableFont_wght.ttf +0 -0
  238. package/themes/umberto/source/gloria/assets/_fonts/Mulish/Mulish-Italic-VariableFont_wght.woff2 +0 -0
  239. package/themes/umberto/source/gloria/assets/_fonts/Mulish/Mulish-VariableFont_wght.ttf +0 -0
  240. package/themes/umberto/source/gloria/assets/_fonts/Mulish/Mulish-VariableFont_wght.woff2 +0 -0
  241. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-Black.ttf +0 -0
  242. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-BlackItalic.ttf +0 -0
  243. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-Bold.ttf +0 -0
  244. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-BoldItalic.ttf +0 -0
  245. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-ExtraBold.ttf +0 -0
  246. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-ExtraBoldItalic.ttf +0 -0
  247. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-ExtraLight.ttf +0 -0
  248. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-ExtraLightItalic.ttf +0 -0
  249. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-Italic.ttf +0 -0
  250. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-Light.ttf +0 -0
  251. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-LightItalic.ttf +0 -0
  252. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-Medium.ttf +0 -0
  253. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-MediumItalic.ttf +0 -0
  254. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-Regular.ttf +0 -0
  255. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-SemiBold.ttf +0 -0
  256. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-SemiBoldItalic.ttf +0 -0
  257. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/PublicSans-Italic-VariableFont_wght.ttf +0 -0
  258. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/PublicSans-Italic-VariableFont_wght.woff2 +0 -0
  259. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/PublicSans-VariableFont_wght.ttf +0 -0
  260. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/PublicSans-VariableFont_wght.woff2 +0 -0
  261. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Black.ttf +0 -0
  262. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-BlackItalic.ttf +0 -0
  263. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Bold.ttf +0 -0
  264. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-BoldItalic.ttf +0 -0
  265. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-ExtraBold.ttf +0 -0
  266. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-ExtraBoldItalic.ttf +0 -0
  267. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-ExtraLight.ttf +0 -0
  268. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-ExtraLightItalic.ttf +0 -0
  269. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Italic.ttf +0 -0
  270. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Light.ttf +0 -0
  271. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-LightItalic.ttf +0 -0
  272. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Medium.ttf +0 -0
  273. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-MediumItalic.ttf +0 -0
  274. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Regular.ttf +0 -0
  275. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-SemiBold.ttf +0 -0
  276. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-SemiBoldItalic.ttf +0 -0
  277. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Thin.ttf +0 -0
  278. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-ThinItalic.ttf +0 -0
  279. package/themes/umberto/source/gloria/assets/_img/404-billboard.svg +181 -0
  280. package/themes/umberto/source/gloria/assets/_img/ckeditor-logo.svg +15 -0
  281. package/themes/umberto/source/gloria/assets/_img/hex-bg-2.svg +10 -0
  282. package/themes/umberto/source/gloria/assets/_img/hex-bg.svg +10 -0
  283. package/themes/umberto/source/gloria/assets/_img/icons/api-class.svg +10 -0
  284. package/themes/umberto/source/gloria/assets/_img/icons/api-folder.svg +3 -0
  285. package/themes/umberto/source/gloria/assets/_img/icons/api-interface.svg +3 -0
  286. package/themes/umberto/source/gloria/assets/_img/icons/api-module.svg +3 -0
  287. package/themes/umberto/source/gloria/assets/_img/icons/api-package.svg +4 -0
  288. package/themes/umberto/source/gloria/assets/_img/icons/api-typedef.svg +3 -0
  289. package/themes/umberto/source/gloria/assets/_img/icons/bulb.svg +3 -0
  290. package/themes/umberto/source/gloria/assets/_img/icons/check-circle.svg +4 -0
  291. package/themes/umberto/source/gloria/assets/_img/icons/check.svg +3 -0
  292. package/themes/umberto/source/gloria/assets/_img/icons/chevron-down.svg +3 -0
  293. package/themes/umberto/source/gloria/assets/_img/icons/chevron-right.svg +3 -0
  294. package/themes/umberto/source/gloria/assets/_img/icons/close-circle.svg +4 -0
  295. package/themes/umberto/source/gloria/assets/_img/icons/close.svg +3 -0
  296. package/themes/umberto/source/gloria/assets/_img/icons/copy.svg +10 -0
  297. package/themes/umberto/source/gloria/assets/_img/icons/dislike.svg +3 -0
  298. package/themes/umberto/source/gloria/assets/_img/icons/download.svg +3 -0
  299. package/themes/umberto/source/gloria/assets/_img/icons/edit.svg +3 -0
  300. package/themes/umberto/source/gloria/assets/_img/icons/exclamation-circle.svg +4 -0
  301. package/themes/umberto/source/gloria/assets/_img/icons/experiment.svg +3 -0
  302. package/themes/umberto/source/gloria/assets/_img/icons/export.svg +4 -0
  303. package/themes/umberto/source/gloria/assets/_img/icons/eye.svg +3 -0
  304. package/themes/umberto/source/gloria/assets/_img/icons/filter.svg +3 -0
  305. package/themes/umberto/source/gloria/assets/_img/icons/github.svg +10 -0
  306. package/themes/umberto/source/gloria/assets/_img/icons/info-circle.svg +4 -0
  307. package/themes/umberto/source/gloria/assets/_img/icons/like.svg +3 -0
  308. package/themes/umberto/source/gloria/assets/_img/icons/link.svg +3 -0
  309. package/themes/umberto/source/gloria/assets/_img/icons/lock.svg +3 -0
  310. package/themes/umberto/source/gloria/assets/_img/icons/menu-fold.svg +3 -0
  311. package/themes/umberto/source/gloria/assets/_img/icons/menu-list.svg +3 -0
  312. package/themes/umberto/source/gloria/assets/_img/icons/menu.svg +3 -0
  313. package/themes/umberto/source/gloria/assets/_img/icons/more.svg +3 -0
  314. package/themes/umberto/source/gloria/assets/_img/icons/notification.svg +3 -0
  315. package/themes/umberto/source/gloria/assets/_img/icons/number.svg +3 -0
  316. package/themes/umberto/source/gloria/assets/_img/icons/premium.svg +3 -0
  317. package/themes/umberto/source/gloria/assets/_img/icons/right.svg +3 -0
  318. package/themes/umberto/source/gloria/assets/_img/icons/search.svg +3 -0
  319. package/themes/umberto/source/gloria/assets/_img/icons/sparkles.svg +1 -0
  320. package/themes/umberto/source/gloria/assets/_img/icons/status.svg +3 -0
  321. package/themes/umberto/source/gloria/assets/_img/icons/trash.svg +3 -0
  322. package/themes/umberto/source/gloria/assets/_img/icons/unordered-list.svg +5 -0
  323. package/themes/umberto/source/gloria/assets/_img/icons/warning.svg +10 -0
  324. package/themes/umberto/src/gloria/css/_fonts.scss +90 -0
  325. package/themes/umberto/src/gloria/css/_layers.scss +1 -0
  326. package/themes/umberto/src/gloria/css/_normalize.scss +118 -0
  327. package/themes/umberto/src/gloria/css/a11y/_focusable.scss +7 -0
  328. package/themes/umberto/src/gloria/css/a11y/_index.scss +4 -0
  329. package/themes/umberto/src/gloria/css/a11y/_mixins.scss +32 -0
  330. package/themes/umberto/src/gloria/css/a11y/_reduce-motion.scss +9 -0
  331. package/themes/umberto/src/gloria/css/a11y/_screen-reader.scss +15 -0
  332. package/themes/umberto/src/gloria/css/base/_buttons.scss +13 -0
  333. package/themes/umberto/src/gloria/css/base/_descriptions-list.scss +33 -0
  334. package/themes/umberto/src/gloria/css/base/_details.scss +7 -0
  335. package/themes/umberto/src/gloria/css/base/_headings.scss +111 -0
  336. package/themes/umberto/src/gloria/css/base/_iframes.scss +7 -0
  337. package/themes/umberto/src/gloria/css/base/_index.scss +12 -0
  338. package/themes/umberto/src/gloria/css/base/_inline-code.scss +16 -0
  339. package/themes/umberto/src/gloria/css/base/_links.scss +31 -0
  340. package/themes/umberto/src/gloria/css/base/_lists.scss +58 -0
  341. package/themes/umberto/src/gloria/css/base/_mixins.scss +3 -0
  342. package/themes/umberto/src/gloria/css/base/_paragraphs.scss +15 -0
  343. package/themes/umberto/src/gloria/css/base/_tables.scss +64 -0
  344. package/themes/umberto/src/gloria/css/base/_typography.scss +62 -0
  345. package/themes/umberto/src/gloria/css/components/_api-collapsing-list.scss +152 -0
  346. package/themes/umberto/src/gloria/css/components/_api-filter-dropdown.scss +17 -0
  347. package/themes/umberto/src/gloria/css/components/_api-item-heading.scss +58 -0
  348. package/themes/umberto/src/gloria/css/components/_api-tree.scss +202 -0
  349. package/themes/umberto/src/gloria/css/components/_hierarchy-list.scss +35 -0
  350. package/themes/umberto/src/gloria/css/components/_image-zoom.scss +13 -0
  351. package/themes/umberto/src/gloria/css/components/_index.scss +56 -0
  352. package/themes/umberto/src/gloria/css/components/_notification.scss +36 -0
  353. package/themes/umberto/src/gloria/css/components/_utils.scss +5 -0
  354. package/themes/umberto/src/gloria/css/doc/_details.scss +11 -0
  355. package/themes/umberto/src/gloria/css/doc/_editor-icons.scss +21 -0
  356. package/themes/umberto/src/gloria/css/doc/_images.scss +9 -0
  357. package/themes/umberto/src/gloria/css/doc/_index.scss +5 -0
  358. package/themes/umberto/src/gloria/css/doc/_snippets.scss +127 -0
  359. package/themes/umberto/src/gloria/css/doc/_typography.scss +5 -0
  360. package/themes/umberto/src/gloria/css/layout/_base.scss +17 -0
  361. package/themes/umberto/src/gloria/css/layout/_breakpoints.scss +88 -0
  362. package/themes/umberto/src/gloria/css/layout/_container.scss +38 -0
  363. package/themes/umberto/src/gloria/css/layout/_index.scss +6 -0
  364. package/themes/umberto/src/gloria/css/layout/_layout.scss +64 -0
  365. package/themes/umberto/src/gloria/css/layout/_mixins.scss +34 -0
  366. package/themes/umberto/src/gloria/css/layout/_zindex.scss +12 -0
  367. package/themes/umberto/src/gloria/css/modules/_index.scss +29 -0
  368. package/themes/umberto/src/gloria/css/modules/_utils.scss +7 -0
  369. package/themes/umberto/src/gloria/css/styles.scss +11 -117
  370. package/themes/umberto/src/gloria/css/theme/_light.scss +344 -0
  371. package/themes/umberto/src/gloria/css/utilities/_animation.scss +32 -0
  372. package/themes/umberto/src/gloria/css/utilities/_colors.scss +14 -0
  373. package/themes/umberto/src/gloria/css/utilities/_display.scss +13 -0
  374. package/themes/umberto/src/gloria/css/utilities/_flex.scss +33 -0
  375. package/themes/umberto/src/gloria/css/utilities/_gap.scss +8 -0
  376. package/themes/umberto/src/gloria/css/utilities/_index.scss +11 -0
  377. package/themes/umberto/src/gloria/css/utilities/_radius.scss +21 -0
  378. package/themes/umberto/src/gloria/css/utilities/_rotation.scss +8 -0
  379. package/themes/umberto/src/gloria/css/utilities/_shadows.scss +13 -0
  380. package/themes/umberto/src/gloria/css/utilities/_spacing.scss +97 -0
  381. package/themes/umberto/src/gloria/css/utilities/_stop-scrolling.scss +9 -0
  382. package/themes/umberto/src/gloria/css/utilities/_text.scss +42 -0
  383. package/themes/umberto/src/gloria/js/app.js +92 -54
  384. package/themes/umberto/src/gloria/js/components/api-nav-tree.js +171 -0
  385. package/themes/umberto/src/gloria/js/components/api-toggle.js +92 -0
  386. package/themes/umberto/src/gloria/js/components/base-component.js +41 -0
  387. package/themes/umberto/src/gloria/js/components/breadcrumbs.js +115 -0
  388. package/themes/umberto/src/gloria/js/components/code-block.js +229 -0
  389. package/themes/umberto/src/gloria/js/components/code-switcher.js +177 -0
  390. package/themes/umberto/src/gloria/js/components/dropdown.js +516 -0
  391. package/themes/umberto/src/gloria/js/components/expandable.js +79 -0
  392. package/themes/umberto/src/gloria/js/components/fake-devtools.js +722 -0
  393. package/themes/umberto/src/gloria/js/components/hash-link.js +60 -0
  394. package/themes/umberto/src/gloria/js/components/heading-link.js +135 -0
  395. package/themes/umberto/src/gloria/js/components/iframe.js +158 -0
  396. package/themes/umberto/src/gloria/js/{_imageModal.js → components/image-zoom.js} +1 -1
  397. package/themes/umberto/src/gloria/js/components/mobile-overlay.js +315 -0
  398. package/themes/umberto/src/gloria/js/components/nav-tree.js +164 -0
  399. package/themes/umberto/src/gloria/js/components/tabs.js +284 -0
  400. package/themes/umberto/src/gloria/js/components/tooltip-popover.js +576 -0
  401. package/themes/umberto/src/gloria/js/helpers/after-dom-ready.js +16 -0
  402. package/themes/umberto/src/gloria/js/helpers/animate-element.js +78 -0
  403. package/themes/umberto/src/gloria/js/helpers/body-scroll.js +22 -0
  404. package/themes/umberto/src/gloria/js/helpers/clamp.js +16 -0
  405. package/themes/umberto/src/gloria/js/helpers/classnames.js +64 -0
  406. package/themes/umberto/src/gloria/js/helpers/copy-to-clipboard.js +19 -0
  407. package/themes/umberto/src/gloria/js/helpers/create-anchor-positioning-watcher.js +46 -0
  408. package/themes/umberto/src/gloria/js/helpers/create-cleanup-registry.js +88 -0
  409. package/themes/umberto/src/gloria/js/helpers/create-hover-manager.js +93 -0
  410. package/themes/umberto/src/gloria/js/helpers/create-keyboard-blur-watcher.js +90 -0
  411. package/themes/umberto/src/gloria/js/helpers/create-keyboard-focus-cycler.js +251 -0
  412. package/themes/umberto/src/gloria/js/helpers/create-mutation-observer.js +49 -0
  413. package/themes/umberto/src/gloria/js/helpers/create-outside-click-watcher.js +39 -0
  414. package/themes/umberto/src/gloria/js/helpers/cubic-bezier.js +55 -0
  415. package/themes/umberto/src/gloria/js/helpers/date-time.js +21 -0
  416. package/themes/umberto/src/gloria/js/helpers/decode-html-entities.js +23 -0
  417. package/themes/umberto/src/gloria/js/helpers/escape-handler.js +59 -0
  418. package/themes/umberto/src/gloria/js/helpers/fetch-stylesheet.js +25 -0
  419. package/themes/umberto/src/gloria/js/helpers/find-code-lang.js +85 -0
  420. package/themes/umberto/src/gloria/js/helpers/focus-first-interactive.js +50 -0
  421. package/themes/umberto/src/gloria/js/helpers/format-html.js +181 -0
  422. package/themes/umberto/src/gloria/js/helpers/get-all-scrollable-parents.js +34 -0
  423. package/themes/umberto/src/gloria/js/helpers/get-parents-until.js +26 -0
  424. package/themes/umberto/src/gloria/js/helpers/highlight-code.js +18 -0
  425. package/themes/umberto/src/gloria/js/helpers/html-builder.js +69 -0
  426. package/themes/umberto/src/gloria/js/helpers/identity.js +8 -0
  427. package/themes/umberto/src/gloria/js/helpers/inject-resource-preload.js +51 -0
  428. package/themes/umberto/src/gloria/js/helpers/inject-script.js +79 -0
  429. package/themes/umberto/src/gloria/js/helpers/inject-stylesheet.js +108 -0
  430. package/themes/umberto/src/gloria/js/helpers/is-element-attached.js +28 -0
  431. package/themes/umberto/src/gloria/js/helpers/is-focusable.js +14 -0
  432. package/themes/umberto/src/gloria/js/helpers/is-hidden-element.js +8 -0
  433. package/themes/umberto/src/gloria/js/helpers/is-mobile.js +8 -0
  434. package/themes/umberto/src/gloria/js/helpers/is-unsafe-key.js +14 -0
  435. package/themes/umberto/src/gloria/js/helpers/lerp.js +27 -0
  436. package/themes/umberto/src/gloria/js/helpers/local-storage-helper.js +133 -0
  437. package/themes/umberto/src/gloria/js/helpers/pipe.js +8 -0
  438. package/themes/umberto/src/gloria/js/helpers/prefers-reduced-motion.js +13 -0
  439. package/themes/umberto/src/gloria/js/helpers/random-id.js +51 -0
  440. package/themes/umberto/src/gloria/js/helpers/sanitize-text.js +27 -0
  441. package/themes/umberto/src/gloria/js/helpers/scroll-to-hash.js +31 -0
  442. package/themes/umberto/src/gloria/js/helpers/take-last.js +19 -0
  443. package/themes/umberto/src/gloria/js/helpers/tap.js +11 -0
  444. package/themes/umberto/src/gloria/js/helpers/throttle.js +46 -0
  445. package/themes/umberto/src/gloria/js/helpers/timeout.js +14 -0
  446. package/themes/umberto/src/gloria/js/helpers/toggle-height.js +46 -0
  447. package/themes/umberto/src/gloria/js/helpers/tween.js +100 -0
  448. package/themes/umberto/src/gloria/js/helpers/wrap-around.js +39 -0
  449. package/themes/umberto/src/gloria/js/modules/algolia-search.js +168 -0
  450. package/themes/umberto/src/gloria/js/modules/api-filter.js +189 -0
  451. package/themes/umberto/src/gloria/js/modules/header-bar.js +154 -0
  452. package/themes/umberto/src/gloria/js/modules/header.js +242 -0
  453. package/themes/umberto/src/gloria/js/modules/links-prefetch.js +196 -0
  454. package/themes/umberto/src/gloria/js/modules/mobile-nav.js +327 -0
  455. package/themes/umberto/src/gloria/js/modules/sidebar.js +114 -0
  456. package/themes/umberto/src/gloria/js/modules/table-of-contents-api.js +214 -0
  457. package/themes/umberto/src/gloria/js/modules/table-of-contents.js +287 -0
  458. package/themes/umberto/src/gloria/js/public-api.js +75 -0
  459. package/themes/umberto/src/gloria/js/web-components/svg-icon.js +117 -0
  460. package/themes/umberto/src/umberto/js/_codeswitcherbuttons.js +1 -1
  461. package/themes/umberto/layout/gloria/_api-docs/_mixin/_api-title.pug +0 -17
  462. package/themes/umberto/layout/gloria/_mixin/nav-tree-item.pug +0 -13
  463. package/themes/umberto/layout/gloria/_mixin/nav-tree-level.pug +0 -38
  464. package/themes/umberto/layout/gloria/_partial/docsearch.pug +0 -21
  465. package/themes/umberto/layout/gloria/_partial/dropdown.pug +0 -12
  466. package/themes/umberto/layout/gloria/_partial/feedback-widget.pug +0 -20
  467. package/themes/umberto/layout/gloria/_partial/footer.pug +0 -6
  468. package/themes/umberto/layout/gloria/_partial/gh-contribute.pug +0 -8
  469. package/themes/umberto/layout/gloria/_partial/google-tag-manager.pug +0 -18
  470. package/themes/umberto/layout/gloria/_partial/header.pug +0 -64
  471. package/themes/umberto/layout/gloria/_partial/nav-tree.pug +0 -9
  472. package/themes/umberto/layout/gloria/_partial/report-issue-widget.pug +0 -26
  473. package/themes/umberto/layout/gloria/_partial/rwd-breadcrumbs.pug +0 -13
  474. package/themes/umberto/layout/gloria/_partial/search-box.pug +0 -6
  475. package/themes/umberto/layout/gloria/_partial/vwo.pug +0 -11
  476. package/themes/umberto/source/gloria/assets/_img/arrows.svg +0 -1
  477. package/themes/umberto/source/gloria/assets/_img/book.svg +0 -1
  478. package/themes/umberto/source/gloria/assets/_img/box-brown.svg +0 -1
  479. package/themes/umberto/source/gloria/assets/_img/box-orange.svg +0 -1
  480. package/themes/umberto/source/gloria/assets/_img/box-red.svg +0 -1
  481. package/themes/umberto/source/gloria/assets/_img/bulb.svg +0 -1
  482. package/themes/umberto/source/gloria/assets/_img/clipboard.svg +0 -1
  483. package/themes/umberto/source/gloria/assets/_img/cog.svg +0 -1
  484. package/themes/umberto/source/gloria/assets/_img/data.svg +0 -1
  485. package/themes/umberto/source/gloria/assets/_img/documentation.svg +0 -1
  486. package/themes/umberto/source/gloria/assets/_img/download.svg +0 -1
  487. package/themes/umberto/source/gloria/assets/_img/edit.svg +0 -2
  488. package/themes/umberto/source/gloria/assets/_img/exclamation-circle.svg +0 -2
  489. package/themes/umberto/source/gloria/assets/_img/eye.svg +0 -1
  490. package/themes/umberto/source/gloria/assets/_img/filter.svg +0 -1
  491. package/themes/umberto/source/gloria/assets/_img/filtering.svg +0 -1
  492. package/themes/umberto/source/gloria/assets/_img/folder.svg +0 -1
  493. package/themes/umberto/source/gloria/assets/_img/github.svg +0 -6
  494. package/themes/umberto/source/gloria/assets/_img/header-info-configs.svg +0 -1
  495. package/themes/umberto/source/gloria/assets/_img/header-info-events.svg +0 -1
  496. package/themes/umberto/source/gloria/assets/_img/header-info-methods.svg +0 -1
  497. package/themes/umberto/source/gloria/assets/_img/header-info-properties.svg +0 -1
  498. package/themes/umberto/source/gloria/assets/_img/heart.svg +0 -1
  499. package/themes/umberto/source/gloria/assets/_img/info-circle.svg +0 -4
  500. package/themes/umberto/source/gloria/assets/_img/info.svg +0 -1
  501. package/themes/umberto/source/gloria/assets/_img/list-nest.svg +0 -1
  502. package/themes/umberto/source/gloria/assets/_img/loupe.svg +0 -1
  503. package/themes/umberto/source/gloria/assets/_img/menu.svg +0 -4
  504. package/themes/umberto/source/gloria/assets/_img/plug.svg +0 -1
  505. package/themes/umberto/source/gloria/assets/_img/star-in-circle.svg +0 -1
  506. package/themes/umberto/source/gloria/assets/_img/tick.svg +0 -1
  507. package/themes/umberto/source/gloria/assets/_img/triangle-down.svg +0 -1
  508. package/themes/umberto/source/gloria/assets/_img/triangle-right.svg +0 -1
  509. package/themes/umberto/src/gloria/css/_api-content.scss +0 -32
  510. package/themes/umberto/src/gloria/css/_api-info-box.scss +0 -86
  511. package/themes/umberto/src/gloria/css/_api-props-filter.scss +0 -106
  512. package/themes/umberto/src/gloria/css/_api-see-source.scss +0 -35
  513. package/themes/umberto/src/gloria/css/_api-subheader.scss +0 -167
  514. package/themes/umberto/src/gloria/css/_api-tree.scss +0 -121
  515. package/themes/umberto/src/gloria/css/_badge.scss +0 -74
  516. package/themes/umberto/src/gloria/css/_code-switcher.scss +0 -61
  517. package/themes/umberto/src/gloria/css/_collapsinglist.scss +0 -262
  518. package/themes/umberto/src/gloria/css/_content.scss +0 -236
  519. package/themes/umberto/src/gloria/css/_docsearch.scss +0 -109
  520. package/themes/umberto/src/gloria/css/_dropdown.scss +0 -63
  521. package/themes/umberto/src/gloria/css/_editor-icon.scss +0 -26
  522. package/themes/umberto/src/gloria/css/_feedback-widget.scss +0 -11
  523. package/themes/umberto/src/gloria/css/_font-external.scss +0 -8
  524. package/themes/umberto/src/gloria/css/_footer.scss +0 -40
  525. package/themes/umberto/src/gloria/css/_formatted.scss +0 -285
  526. package/themes/umberto/src/gloria/css/_guide-content.scss +0 -37
  527. package/themes/umberto/src/gloria/css/_guide-sdk-tree.scss +0 -14
  528. package/themes/umberto/src/gloria/css/_loading-spinner.scss +0 -33
  529. package/themes/umberto/src/gloria/css/_main.scss +0 -59
  530. package/themes/umberto/src/gloria/css/_navigation.scss +0 -35
  531. package/themes/umberto/src/gloria/css/_notice.scss +0 -116
  532. package/themes/umberto/src/gloria/css/_print.scss +0 -20
  533. package/themes/umberto/src/gloria/css/_prism.scss +0 -223
  534. package/themes/umberto/src/gloria/css/_rwd-breadcrumbs.scss +0 -28
  535. package/themes/umberto/src/gloria/css/_rwd-menu.scss +0 -89
  536. package/themes/umberto/src/gloria/css/_secondary-navigation.scss +0 -152
  537. package/themes/umberto/src/gloria/css/_theme-dark.scss +0 -175
  538. package/themes/umberto/src/gloria/css/_toggler.scss +0 -46
  539. package/themes/umberto/src/gloria/css/_top.scss +0 -350
  540. package/themes/umberto/src/gloria/css/_tree.scss +0 -218
  541. package/themes/umberto/src/gloria/css/_warning-banner.scss +0 -46
  542. package/themes/umberto/src/gloria/css/components/_lightbox.scss +0 -12
  543. package/themes/umberto/src/gloria/css/helpers/_color.scss +0 -49
  544. package/themes/umberto/src/gloria/css/helpers/_font.scss +0 -60
  545. package/themes/umberto/src/gloria/css/helpers/_globals.scss +0 -129
  546. package/themes/umberto/src/gloria/css/helpers/_reset.scss +0 -52
  547. package/themes/umberto/src/gloria/css/helpers/_spacing.scss +0 -21
  548. package/themes/umberto/src/gloria/css/pages/_sdk.scss +0 -111
  549. package/themes/umberto/src/gloria/js/_anchors.js +0 -57
  550. package/themes/umberto/src/gloria/js/_apisearch.js +0 -126
  551. package/themes/umberto/src/gloria/js/_apitree.js +0 -67
  552. package/themes/umberto/src/gloria/js/_attachpermalinklistener.js +0 -50
  553. package/themes/umberto/src/gloria/js/_codeswitcherbuttons.js +0 -146
  554. package/themes/umberto/src/gloria/js/_collapsables.js +0 -135
  555. package/themes/umberto/src/gloria/js/_copymobileapinavigation.js +0 -26
  556. package/themes/umberto/src/gloria/js/_devnames.js +0 -37
  557. package/themes/umberto/src/gloria/js/_dropdowns.js +0 -55
  558. package/themes/umberto/src/gloria/js/_filtering.js +0 -139
  559. package/themes/umberto/src/gloria/js/_pagenavigation.js +0 -93
  560. package/themes/umberto/src/gloria/js/_prism.js +0 -104
  561. package/themes/umberto/src/gloria/js/_rwdmenu.js +0 -15
  562. package/themes/umberto/src/gloria/js/_samplecode.js +0 -23
  563. package/themes/umberto/src/gloria/js/_sidenavigation.js +0 -59
  564. package/themes/umberto/src/gloria/js/_toc.js +0 -93
  565. package/themes/umberto/src/gloria/js/_tooltips.js +0 -39
  566. package/themes/umberto/src/gloria/js/_warningbanner.js +0 -18
  567. package/themes/umberto/src/gloria/js/vendor/prism.js +0 -45
  568. /package/themes/umberto/layout/gloria/_api-docs/_partial/{api-info-box.pug → api-hierarchy.pug} +0 -0
  569. /package/themes/umberto/layout/gloria/{_partial → _trackers}/google-analytics.pug +0 -0
@@ -0,0 +1,71 @@
1
+ /**
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md.
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ const cheerio = require( 'cheerio' );
9
+
10
+ module.exports = function toc( data, options = {} ) {
11
+ const $ = cheerio.load( data, null, false );
12
+
13
+ let usedHeadings = [ 'h2', 'h3', 'h4', 'h5', 'h6' ];
14
+
15
+ if ( options.tocLimit >= 0 ) {
16
+ usedHeadings = usedHeadings.slice( 0, options.tocLimit );
17
+ }
18
+
19
+ usedHeadings = usedHeadings.join( ',' );
20
+
21
+ const headings = $( usedHeadings )
22
+ .filter( function() {
23
+ return !$( this ).parents( '.live-snippet, .collapsing-list__item' ).length;
24
+ } );
25
+ const className = options.class || 'secondary-navigation';
26
+
27
+ if ( !headings.length ) {
28
+ return '';
29
+ }
30
+
31
+ const $r = cheerio.load( `<nav class=${ className }><h3>Table of contents</h3></nav>`, null, false ); // result object
32
+ const tocLastLevels = [ $r( 'nav' ), 0, 0, 0, 0, 0, 0 ];
33
+
34
+ headings.each( function() {
35
+ const hLevel = Number( this.name[ 1 ] );
36
+ const id = $r( this ).attr( 'id' );
37
+ const text = $r( this ).find( '.headerlink' ).remove().end().text().trim()
38
+ // Replace the chevrons with their HTML escape characters to avoid rendering HTML in ToC.
39
+ .replace( /</g, '&lt;' )
40
+ .replace( />/g, '&gt;' );
41
+
42
+ const newItem = `<li><a class="a11y-focusable" href="#${ id }" title="${ text }">${ text }</a></li>`;
43
+
44
+ if ( tocLastLevels[ hLevel ] ) {
45
+ // If there already is a parent node for current heading level, append the new toc item there.
46
+ tocLastLevels[ hLevel ].append( newItem );
47
+ } else {
48
+ // If there's no parent node for current heading level, create it and append.
49
+ if ( $r( 'li' ).length ) {
50
+ $r( 'li' ).last().append( `<ol>${ newItem }</ol>` );
51
+ } else {
52
+ $r( 'nav' ).append( `<ol>${ newItem }</ol>` );
53
+ }
54
+
55
+ // Assign new created <ol> element to the helper array.
56
+ tocLastLevels[ hLevel ] = $r( 'ol' ).last();
57
+ }
58
+
59
+ // After adding new toc item, lower heading levels in helper array must be cleared.
60
+ // If e.g. level 2 <ol> was added, then level 3 nd lower <ol>s are no longer needed because they belong to upper toc nodes.
61
+ clearLowerLevels( tocLastLevels, hLevel );
62
+ } );
63
+
64
+ return $r.html();
65
+ };
66
+
67
+ function clearLowerLevels( levels, current ) {
68
+ for ( let i = current + 1; i < levels.length; i++ ) {
69
+ levels[ i ] = 0;
70
+ }
71
+ }
@@ -0,0 +1,98 @@
1
+ /**
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md.
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ const ParserCursor = require( './parser-cursor' );
9
+
10
+ /**
11
+ * Transforms Github style admonitions in markdown to a rendered callouts.
12
+ *
13
+ * For example:
14
+ *
15
+ * > [!IMPORTANT]
16
+ * > This is an important message.
17
+ * > It should be highlighted.
18
+ *
19
+ * @param mapperFn - A function that takes an admonition object and returns a string.
20
+ * @param str - The string to transform.
21
+ * @returns The transformed string with admonitions replaced by the result of the mapper function.
22
+ */
23
+ function transformMarkdownAdmonitions( mapperFn, str ) {
24
+ const cursor = new ParserCursor( str );
25
+ let acc = '';
26
+
27
+ for ( ; cursor.index < cursor.text.length; ) {
28
+ const ch = cursor.text[ cursor.index ];
29
+
30
+ if ( ch === '>' ) {
31
+ const maybeAdmonition = cursor.try( eatAdmonition );
32
+
33
+ if ( maybeAdmonition ) {
34
+ acc += mapperFn( maybeAdmonition );
35
+ continue;
36
+ }
37
+ }
38
+
39
+ acc += ch;
40
+ cursor.index++;
41
+ }
42
+
43
+ return acc;
44
+ };
45
+
46
+ /**
47
+ * Fast check if the string contains an admonition block.
48
+ */
49
+ function fastCheckIfContainsAdmonition( str ) {
50
+ return str.includes( '> [!' ) && str.includes( ']' );
51
+ }
52
+
53
+ /**
54
+ * Eats an admonition block if it matches the expected pattern.
55
+ *
56
+ * @param cursor - The cursor to use for parsing.
57
+ * @returns An object representing the admonition type and content, or undefined (if not matched)
58
+ */
59
+ function eatAdmonition( cursor ) {
60
+ if ( !cursor.eatTerminals( '> [!' ) ) {
61
+ return;
62
+ }
63
+
64
+ const type = cursor.eatUntilTerminal( ']' ).trim();
65
+
66
+ cursor.eatAllNextTerminals( ' \t\n ' );
67
+
68
+ const content = cursor.accumulateEaters( eatAdmonitionLine );
69
+
70
+ // Let's revert cursor back to the ending newline if it was consumed.
71
+ if ( content.length > 0 && cursor.text[ cursor.index - 1 ] === '\n' ) {
72
+ cursor.index--;
73
+ }
74
+
75
+ return {
76
+ type,
77
+ content
78
+ };
79
+ }
80
+
81
+ /**
82
+ * Eats a line of an admonition block.
83
+ *
84
+ * @param cursor - The cursor to use for parsing.
85
+ * @returns The content of the admonition line, or undefined if not matched.
86
+ */
87
+ function eatAdmonitionLine( cursor ) {
88
+ cursor.eatIndent();
89
+
90
+ if ( !cursor.eatTerminal( '>' ) ) {
91
+ return;
92
+ }
93
+
94
+ return cursor.eatUntilEOL().trim();
95
+ }
96
+
97
+ exports.transformMarkdownAdmonitions = transformMarkdownAdmonitions;
98
+ exports.fastCheckIfContainsAdmonition = fastCheckIfContainsAdmonition;
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
3
+ * For licensing, see LICENSE.md.
4
+ */
5
+
6
+ 'use strict';
7
+
8
+ /**
9
+ * Returns a new array with unique elements based on a specified property.
10
+ * When duplicates are found, the last occurrence is preferred.
11
+ *
12
+ * @param array - The array to process
13
+ * @param key - The property name to check for uniqueness or a function that extracts the value
14
+ * @returns A new array with unique elements
15
+ */
16
+ module.exports = function uniqByLast( key, array ) {
17
+ const seen = new Map();
18
+
19
+ // Process from right to left to keep last occurrences
20
+ return array
21
+ .slice()
22
+ .reverse()
23
+ .filter( item => {
24
+ const value = typeof key === 'function' ? key( item ) : item[ key ];
25
+ if ( seen.has( value ) ) {
26
+ return false;
27
+ }
28
+ seen.set( value, true );
29
+ return true;
30
+ } )
31
+ .reverse();
32
+ };
@@ -19,8 +19,15 @@ const getDocSearchConfig = require( '../helpers/get-docsearch-config' );
19
19
  const splitLongname = require( '../helpers/split-longname' );
20
20
  const githubUrlUtils = require( '../helpers/github-url' );
21
21
  const getReportIssueWidgetUrl = require( '../../scripts/utils/getreportissuewidgeturl' );
22
-
22
+ const getPageGroupHelper = require( '../../src/hexo/helper/get-page-group' );
23
23
  const findTargetDoclet = require( './utils/findtargetdoclet' );
24
+ const writeHtmlFiles = require( '../../src/tasks/write-html-files' );
25
+
26
+ const { randomId } = require( '../../scripts/utils/random-id' );
27
+ const spritesheetSvg = require( '../../scripts/utils/spritesheet-svg' );
28
+ const inlineSvg = require( '../../scripts/utils/inline-svg' );
29
+ const parseHref = require( '../../scripts/utils/parse-href' );
30
+ const hexoManager = require( '../hexo-manager' );
24
31
 
25
32
  /**
26
33
  * Renders HTML for every module, class, mixin etc.
@@ -117,7 +124,7 @@ module.exports = class ApiBuilder {
117
124
  this.macrosVariables = config.macrosVariables;
118
125
 
119
126
  const descriptionParser = new DescriptionParser( this._fileNameManager, this._dataCollection, {
120
- macrosVariables: Object.assign( {}, config.projectConfig.variables, config.macrosVariables )
127
+ macrosVariables: Object.assign( {}, config.projectConfig.variables, config.macrosVariables, config.projectConfig )
121
128
  } );
122
129
 
123
130
  /**
@@ -156,6 +163,19 @@ module.exports = class ApiBuilder {
156
163
  this._tmplCol.addHelper( 'getRealImportPath', this._getRealImportPath );
157
164
  this._tmplCol.addHelper( 'getUrlAddressFromLongname', this._getUrlAddressFromLongname.bind( this ) );
158
165
 
166
+ this._tmplCol.addHelper( 'uParseHref', ( str, data ) => parseHref( str, {
167
+ path: data.path,
168
+ projectName: data.projectName,
169
+ projectGlobals: hexoManager.hexo.projectGlobals,
170
+ BASE_PATH: data.BASE_PATH
171
+ }, hexoManager.hexo, {
172
+ relativeUrlHelper: hexoManager.hexo.extend.helper.store.relative_url,
173
+ isSilentError: true
174
+ } ) );
175
+
176
+ this._tmplCol.addHelper( 'uRandomId', randomId );
177
+ this._tmplCol.addHelper( 'uCapitalize', capitalize );
178
+
159
179
  this.canonicalUrlBeginning = config.canonicalUrlBeginning;
160
180
  }
161
181
 
@@ -163,7 +183,7 @@ module.exports = class ApiBuilder {
163
183
  * Main function of this class. Renders HTML for all API items.
164
184
  * Also creates a JSON file, with entity names, used for additional API docs search.
165
185
  */
166
- buildApi() {
186
+ async buildApi() {
167
187
  const modulesData = this._dataCollection.get( 'module' ).getAll();
168
188
  const classesData = this._dataCollection.get( 'class' ).getAll();
169
189
  const interfacesData = this._dataCollection.get( 'interface' ).getAll();
@@ -183,14 +203,15 @@ module.exports = class ApiBuilder {
183
203
  this._registerFilenames( concated );
184
204
  this._buildNavTree( concated );
185
205
  this._filterHtml = this._tmplCol.renderTemplate( '_partial/filter' );
186
- const modules = this._getPages( modulesData, 'module' );
187
- const classes = this._getPages( classesData, 'class' );
188
- const interfaces = this._getPages( interfacesData, 'interface' );
189
- const typedefs = this._getPages( typedefsData, 'typedef' );
190
- const mixins = this._getPages( mixinsData, 'mixin' );
191
- const namespaces = this._getPages( namespacesData, 'namespace' );
192
206
 
193
- this._renderedFiles = [].concat( modules, classes, interfaces, typedefs, mixins, namespaces );
207
+ await this._getPages( modulesData, 'module' );
208
+ await this._getPages( classesData, 'class' );
209
+ await this._getPages( interfacesData, 'interface' );
210
+ await this._getPages( typedefsData, 'typedef' );
211
+ await this._getPages( mixinsData, 'mixin' );
212
+ await this._getPages( namespacesData, 'namespace' );
213
+
214
+ this._renderedFiles = [];
194
215
 
195
216
  // Build API json data for search engine.
196
217
  this._createApiSearchJson( [].concat(
@@ -358,20 +379,20 @@ module.exports = class ApiBuilder {
358
379
  }
359
380
  }
360
381
 
361
- this._navTreeHtml = this._tmplCol.renderTemplate(
382
+ this._navTreeHtml = spritesheetSvg( this._tmplCol.renderTemplate(
362
383
  '_partial/navtree',
363
384
  {
364
385
  projectLocals: {
365
386
  apiTree: this._navTree
366
387
  }
367
388
  }
368
- );
389
+ ), false );
369
390
  }
370
391
 
371
392
  /**
372
393
  * Renders HTML of each API docs page and creates an HtmlFile instance for that page.
373
394
  */
374
- _getPages( items, type ) {
395
+ async _getPages( items, type ) {
375
396
  const views = [];
376
397
 
377
398
  for ( const i of items ) {
@@ -396,7 +417,7 @@ module.exports = class ApiBuilder {
396
417
  if ( data.kind === 'module' ) {
397
418
  title = `${ capitalize( data.kind ) } ${ data.longname.replace( 'module:', '' ) }`;
398
419
  } else {
399
- title = `${ capitalize( data.kind ) } ${ capitalize( split.name ) } (${ data.longname.replace( 'module:', '' ) })`;
420
+ title = `${ capitalize( data.kind ) } ${ capitalize( split.name ) }`;
400
421
  }
401
422
 
402
423
  const $ = data.description ? cheerio.load( data.description.content, null, false ) : cheerio.load( '', null, false );
@@ -404,7 +425,7 @@ module.exports = class ApiBuilder {
404
425
  html.find( 'pre' ).remove();
405
426
  const desc = html.text().trim().replace( /\n/g, ' ' ).replace( / +/g, ' ' );
406
427
 
407
- // eslint-disable-next-line max-len
428
+ // eslint-disable-next-line @stylistic/max-len
408
429
  const metaDescription = `${ this._projectName } API Documentation. The ${ capitalize( data.kind ) } ${ data.kind === 'module' ? data.longname.replace( 'module:', '' ) : capitalize( split.name ) }.${ desc.length ? ' ' + desc : '' }`;
409
430
 
410
431
  // Page properties needed by pug templates. They match page properties of guides generated by hexo.
@@ -442,23 +463,33 @@ module.exports = class ApiBuilder {
442
463
  slug: this._projectSlug,
443
464
  customRanking: this._projectConfig.docsearch ? this._projectConfig.docsearch.customRanking : []
444
465
  } ),
445
- projectVersion: this._projectConfig.version
466
+ projectVersion: this._projectConfig.version,
467
+ getPageGroup: getPageGroupHelper
446
468
  };
469
+
447
470
  const view = new HtmlFile(
448
471
  this._tmplCol.renderTemplate(
449
472
  type,
450
473
  {
451
474
  data,
452
- navTree: this._navTreeHtml,
475
+ navTree: '%%_RENDERED_NAV_TREE_%%',
453
476
  filter: this._filterHtml,
454
477
  page,
455
478
  projectLocals,
479
+ sitemap: this._projectConfig.sitemap,
456
480
  docSearchConfig: getDocSearchConfig( this._docSearch )
457
481
  }
458
482
  ),
459
483
  filePath
460
484
  );
461
- views.push( view );
485
+
486
+ let content = inlineSvg( view.content );
487
+
488
+ content = spritesheetSvg( content );
489
+
490
+ view.content = content.replaceAll( '%%_RENDERED_NAV_TREE_%%', this._navTreeHtml );
491
+
492
+ await writeHtmlFiles( [ view ] );
462
493
  }
463
494
  }
464
495
 
@@ -12,6 +12,25 @@ const macroReplacer = require( '../../tasks/macro-replacer' );
12
12
  const findTargetDoclet = require( '../utils/findtargetdoclet' );
13
13
  const { hasDedicatedApiPages, LONG_NAME_LABEL_REGEXP, LONG_NAME_MEMBER_SEPARATOR_REGEXP } = require( '../utils/utils' );
14
14
  const logCrossProjectReference = require( '../../../scripts/utils/logcrossprojectreference' );
15
+ const createPrerenderPugTemplate = require( '../../../scripts/utils/pug-renderer/create-prerender-pug-template' );
16
+
17
+ const renderCodeBlockPug = createPrerenderPugTemplate( {
18
+ requires: [
19
+ '_components/svg/index',
20
+ '_components/icon/index',
21
+ '_components/tooltip-popover/index',
22
+ '_components/skeleton/index',
23
+ '_components/code-block/index'
24
+ ],
25
+ component: 'code-block',
26
+ componentAttrs: {
27
+ static: {
28
+ copyable: true
29
+ },
30
+ dynamic: [ 'copyable', 'language' ],
31
+ mask: [ 'code' ]
32
+ }
33
+ } );
15
34
 
16
35
  /**
17
36
  * Class responsible for parsing doc descriptions.
@@ -29,6 +48,12 @@ module.exports = class DescriptionParser {
29
48
  return;
30
49
  }
31
50
 
51
+ const theme = {
52
+ theme: this._macrosVariables.slug === 'ckeditor4' ? 'umberto' : 'gloria'
53
+ };
54
+
55
+ Object.assign( options, theme );
56
+
32
57
  return composeFunctions(
33
58
  this._cleanTabs,
34
59
  this._changeHeaders,
@@ -353,25 +378,51 @@ module.exports = class DescriptionParser {
353
378
  * @param str
354
379
  * @returns {String}
355
380
  */
356
- _cleanTabs( str ) {
381
+ _cleanTabs( str, options = {} ) {
357
382
  if ( str.indexOf( '<pre' ) === -1 ) {
358
383
  return str;
359
384
  }
360
385
 
361
386
  const $ = cheerio.load( str, null, false );
387
+ const theme = options.theme;
362
388
 
363
- $( 'pre[class~="source"]' ).each( function() {
364
- let code = $( this ).html();
365
- const begin = /<code> {4}/.exec( code );
389
+ if ( theme === 'gloria' ) {
390
+ const $code = $( 'pre code' );
366
391
 
367
- if ( begin ) {
368
- code = code.replace( /(?:<code>|\n) {4}/g, match => {
369
- return match.replace( ' ', '' );
370
- } );
392
+ if ( !$code.length ) {
393
+ return null;
371
394
  }
372
395
 
373
- $( this ).html( code );
374
- } );
396
+ // Get the language from the class (e.g., "language-js" -> "js")
397
+ const language = $code.attr( 'class' ) ?
398
+ $code.attr( 'class' ).replace( 'doc', '' ).replace( 'language-', '' ).replace( 'ts', 'typescript' ).trim() :
399
+ null;
400
+
401
+ // Get the code content
402
+ const code = $code.html();
403
+
404
+ // Use the render-pug-component utility
405
+ const html = renderCodeBlockPug( {
406
+ language,
407
+ code
408
+ } );
409
+
410
+ $( this ).html( html );
411
+ $( 'pre' ).replaceWith( html );
412
+ } else {
413
+ $( 'pre[class~="source"]' ).each( function() {
414
+ let code = $( this ).html();
415
+ const begin = /<code> {4}/.exec( code );
416
+
417
+ if ( begin ) {
418
+ code = code.replace( /(?:<code>|\n) {4}/g, match => {
419
+ return match.replace( ' ', '' );
420
+ } );
421
+ }
422
+
423
+ $( this ).html( code );
424
+ } );
425
+ }
375
426
 
376
427
  return $.html();
377
428
  }
@@ -188,11 +188,11 @@ module.exports = class DocDataFactory {
188
188
  augmentsNested.reverse();
189
189
  const properties = this._getMembers( doclet.properties, { parentDoclet: doclet } ) || [];
190
190
 
191
- /* eslint-disable max-len */
191
+ /* eslint-disable @stylistic/max-len */
192
192
  // For all "typedef" doclets - copy property name as its id. Thanks to that we will be able to make a directly link to specified property. See #796.
193
193
  // "member-" as a static string must be the same as defined in `addTypedefProperties()` helper in the `@ckeditor/jsdoc-plugins` package.
194
194
  // See: https://github.com/ckeditor/ckeditor5-dev/blob/aa905a702d337db001445efc1036ab2b33069d44/packages/jsdoc-plugins/lib/relation-fixer/addtypedefproperties.js#L95
195
- /* eslint-enable max-len */
195
+ /* eslint-enable @stylistic/max-len */
196
196
  if ( doclet.kind == 'typedef' ) {
197
197
  for ( const property of properties ) {
198
198
  if ( !property.id ) {
@@ -106,7 +106,7 @@ const utils = {
106
106
  return null;
107
107
  }
108
108
 
109
- // eslint-disable-next-line max-len
109
+ // eslint-disable-next-line @stylistic/max-len
110
110
  return `https://github.com/ckeditor/${ projectName }/blob/${ gitHash }${ pathSuffix }#L${ file.lineNr }-L${ file.lineNr + file.len }`;
111
111
  }
112
112
  };
@@ -51,4 +51,4 @@ function defaultScript( hits ) {
51
51
  } );
52
52
 
53
53
  return result;
54
- }
54
+ }
@@ -66,4 +66,4 @@ function groupScript( hits ) {
66
66
  } );
67
67
 
68
68
  return result;
69
- }
69
+ }
@@ -25,6 +25,7 @@ const umbertoVersion = require( '../../../package.json' ).version;
25
25
  * @param {Array} extraStylePaths Paths to extra external css.
26
26
  * @param {Array} extraScriptsPaths Paths to extra external js.
27
27
  * @param {Boolean} disableSearch Extra flag for disabling docsearch if needed.
28
+ * @param {Array} quickNavigationProjects Projects to display in the quick navigation dropdown.
28
29
  * @param {Boolean} navigationShowEmptyCategories If set on true, empty categories will be displayed.
29
30
  * @param {Object} og Open Graph config.
30
31
  */
@@ -35,12 +36,14 @@ module.exports = ( ctx, {
35
36
  googleoptimize,
36
37
  googletagmanager,
37
38
  googleanalytics,
39
+ promobar,
38
40
  vwo,
39
41
  feedbackWidget,
40
42
  extraStylePaths,
41
43
  extraScriptsPaths,
42
44
  disableSearch,
43
45
  og,
46
+ quickNavigationProjects,
44
47
  navigationShowEmptyCategories
45
48
  } = {} ) => {
46
49
  ctx.extend.filter.register( 'template_locals', locals => {
@@ -83,6 +86,7 @@ module.exports = ( ctx, {
83
86
  locals.projectsData = [];
84
87
  }
85
88
 
89
+ locals.quickNavigationProjects = quickNavigationProjects;
86
90
  locals.projectsData.push( {
87
91
  name: projectName,
88
92
  slug: projectSlug,
@@ -95,17 +99,25 @@ module.exports = ( ctx, {
95
99
  locals.docSearchConfig = getDocSearchConfig( docSearch );
96
100
  }
97
101
 
102
+ locals.sitemap = config.sitemap;
98
103
  locals.umbertoVersion = umbertoVersion;
99
104
  locals.disableSearch = disableSearch;
100
105
  locals.googleoptimize = googleoptimize;
101
106
  locals.googletagmanager = googletagmanager;
102
107
  locals.googleanalytics = googleanalytics;
108
+ locals.promobar = promobar;
103
109
  locals.vwo = vwo;
104
110
  locals.feedbackWidget = feedbackWidget;
105
111
  locals.mainName = ctx.projectGlobals.common.mainName ? ctx.projectGlobals.common.mainName : '';
106
112
  locals.mainLogo = ctx.projectGlobals.common.mainLogo ? ctx.projectGlobals.common.mainLogo : '';
107
113
  locals.pathJoin = upath.join;
108
114
 
115
+ // `sitemap` entry is not consistent across building methods of Umberto.
116
+ // It's often defined in the API, but it's not always available in the hexo locals.
117
+ // In order to make it available, it's safer to use `docSearch.indexName` which is always defined.
118
+ locals.isLegacy = locals.path.includes( '/legacy/' );
119
+ locals.isNightly = docSearch.indexName?.includes( 'nightly' ) || false;
120
+
109
121
  locals.mainOg = og || {};
110
122
  } );
111
123
  };
@@ -55,7 +55,7 @@ function getPackageJson( srcDir ) {
55
55
 
56
56
  try {
57
57
  packageJson = require( upath.join( srcDir, 'package.json' ) );
58
- } catch ( err ) {
58
+ } catch {
59
59
  console.warn( `Warning: Cannot read package.json from ${ srcDir }.` );
60
60
  }
61
61
 
@@ -54,6 +54,8 @@ module.exports = ( ctx, {
54
54
  for ( const cat of data.categories ) {
55
55
  const newPathToCategory = upath.join( pathToCategory, cat.slug || '' );
56
56
  projectData.categoryIds.set( cat.id, {
57
+ category: cat,
58
+ parentCategoryId: data.id,
57
59
  groupId,
58
60
  groupSlug,
59
61
  path: newPathToCategory
@@ -66,6 +68,8 @@ module.exports = ( ctx, {
66
68
  for ( const g of groups ) {
67
69
  const pathToCategory = upath.join( basePath, g.slug );
68
70
  projectData.categoryIds.set( g.id, {
71
+ category: null,
72
+ parentCategoryId: null,
69
73
  groupId: g.id,
70
74
  groupSlug: g.slug,
71
75
  path: pathToCategory
@@ -10,6 +10,7 @@ const upath = require( 'upath' );
10
10
  const fs = require( 'fs-extra' );
11
11
  const { globSync } = require( 'glob' );
12
12
  const Hexo = require( '../hexo-shim' );
13
+
13
14
  const getHexoConfig = require( './tasks/get-hexo-config' );
14
15
  const extendConfig = require( './hexo/filter/extend-config' );
15
16
 
@@ -43,6 +44,10 @@ class HexoManager {
43
44
  silent: options.silent,
44
45
  debug: false
45
46
  } );
47
+
48
+ // Enforce hexo to show errors.
49
+ this.hexo.log.level = 50;
50
+
46
51
  extendConfig( this.hexo, this.config );
47
52
  this.isInit = true;
48
53
  }
@@ -96,12 +101,12 @@ class HexoManager {
96
101
  *
97
102
  * @returns {Promise<>}
98
103
  */
99
- generate( { watch = false } = {} ) {
104
+ generate( { watch = false, concurrency } = {} ) {
100
105
  if ( !this.isInit ) {
101
106
  throw new Error( 'Hexo manager is not initialized' );
102
107
  }
103
108
 
104
- return this.hexo.call( 'generate', { watch } )
109
+ return this.hexo.call( 'generate', { watch, concurrency } )
105
110
  .then( () => {
106
111
  return this.hexo.exit();
107
112
  } )
@@ -168,7 +168,7 @@ module.exports = class SdkBuilder {
168
168
  config: this.projectConfig,
169
169
  projectLocals,
170
170
  content: tools.replaceMacros( sdkItem.content ),
171
- getPages: ( function( pages ) { // eslint-disable-line wrap-iife
171
+ getPages: ( function( pages ) {
172
172
  return function( category ) {
173
173
  return pages
174
174
  .filter( element => element.meta && element.meta.category && element.meta.category === category )
@@ -183,7 +183,7 @@ module.exports = class SdkBuilder {
183
183
  }
184
184
  } );
185
185
  };
186
- } )( this.sdkCollection ),
186
+ }( this.sdkCollection ) ),
187
187
  docSearchConfig: getDocSearchConfig( this._docSearch )
188
188
  }
189
189
  ), upath.join( this.destinationPath, slug, sdkItem.name + '.html' ) ) );
@@ -244,7 +244,7 @@ ${ bodyBlocks.join( '\n' ) }
244
244
  {
245
245
  data: this.sdkCollection,
246
246
  config: this.projectConfig,
247
- getPages: ( function( pages ) { // eslint-disable-line wrap-iife
247
+ getPages: ( function( pages ) {
248
248
  return function( category ) {
249
249
  return pages
250
250
  .filter( element => element.meta && element.meta.category && element.meta.category === category )
@@ -259,7 +259,7 @@ ${ bodyBlocks.join( '\n' ) }
259
259
  }
260
260
  } );
261
261
  };
262
- } )( this.sdkCollection )
262
+ }( this.sdkCollection ) )
263
263
  }
264
264
  );
265
265
  }
@@ -18,9 +18,9 @@ const TemplateCollection = require( '../template/template-collection' );
18
18
  * Creates ApiBuilder instance to process doclets and render HTML.
19
19
  *
20
20
  * @param config
21
- * @returns {ApiBuilder}
21
+ * @returns {Promise<ApiBuilder>}
22
22
  */
23
- module.exports = config => {
23
+ module.exports = async config => {
24
24
  const {
25
25
  src,
26
26
  projectDst, // e.g.: ckeditor5/latest/api
@@ -64,10 +64,10 @@ module.exports = config => {
64
64
  }
65
65
  );
66
66
 
67
- console.log( `Building API docs of ${ projectConfig.name }...` );
68
- console.time( 'Built API docs in' );
69
- const buildInfo = apiBuilder.buildApi();
70
- console.timeEnd( 'Built API docs in' );
67
+ console.log( `Building API docs of ${ projectConfig.name } ...` );
68
+ console.time( `Built API docs of ${ projectConfig.name } in` );
69
+ const buildInfo = await apiBuilder.buildApi();
70
+ console.timeEnd( `Built API docs of ${ projectConfig.name } in` );
71
71
 
72
72
  if ( process.argv.includes( '--strict' ) && buildInfo.warningCount > 0 ) {
73
73
  console.log( `There were ${ buildInfo.warningCount } warnings reported in strict mode. Aborting.` );