umberto 7.0.1 → 8.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 (555) hide show
  1. package/CHANGELOG.md +20 -1792
  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 +99 -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/snippets.js +5 -1
  12. package/scripts/filter/after-render/gloria/inline-svg.js +14 -0
  13. package/scripts/filter/after-render/gloria/spritesheet-svg.js +14 -0
  14. package/scripts/filter/before-post-render/add-project-info-to-page.js +1 -1
  15. package/scripts/filter/before-post-render/code-switcher.js +4 -0
  16. package/scripts/filter/before-post-render/execute-and-insert-function-results.js +3 -1
  17. package/scripts/filter/before-post-render/gloria/add-breadcrumbs-data-to-page.js +269 -0
  18. package/scripts/filter/before-post-render/gloria/prerender-admonitions.js +27 -0
  19. package/scripts/filter/before-post-render/gloria/prerender-xml-pug-components.js +339 -0
  20. package/scripts/filter/before-post-render/gloria/render-post-render-pug-components.js +94 -0
  21. package/scripts/filter/before-post-render/set-layout.js +4 -2
  22. package/scripts/helper/parse-href.js +28 -0
  23. package/scripts/helper/u-capitalize.js +13 -0
  24. package/scripts/helper/u-random-id.js +16 -0
  25. package/scripts/helper/u-remove-indentation.js +13 -0
  26. package/scripts/helper/u-toc.js +2 -63
  27. package/scripts/utils/add-indention.js +16 -0
  28. package/scripts/utils/capitalize.js +17 -0
  29. package/scripts/utils/concat-url-parts.js +19 -0
  30. package/scripts/utils/decode-html-entities.js +25 -0
  31. package/scripts/utils/drop-init-slash.js +14 -0
  32. package/scripts/utils/drop-trailing-slash.js +14 -0
  33. package/scripts/utils/drop-url-protocol.js +10 -0
  34. package/scripts/utils/inline-svg.js +152 -0
  35. package/scripts/utils/measure-call.js +16 -0
  36. package/scripts/utils/parse-href.js +37 -0
  37. package/scripts/utils/parseicontag.js +1 -1
  38. package/scripts/utils/parselinks.js +27 -6
  39. package/scripts/utils/parser-cursor.js +280 -0
  40. package/scripts/utils/pipe.js +17 -0
  41. package/scripts/utils/pug-renderer/create-prerender-pug-template.js +172 -0
  42. package/scripts/utils/pug-renderer/render-pug-component.js +73 -0
  43. package/scripts/utils/pug-to-xml-binding/parser/walk-xml-tree.js +150 -0
  44. package/scripts/utils/pug-to-xml-binding/parser/xml-components-parser.js +414 -0
  45. package/scripts/utils/pug-to-xml-binding/render-xml-pug-components-in-markdown.js +193 -0
  46. package/scripts/utils/pug-to-xml-binding/transform-xml-tree-to-pug.js +144 -0
  47. package/scripts/utils/random-id.js +67 -0
  48. package/scripts/utils/remove-indentation.js +48 -0
  49. package/scripts/utils/spritesheet-svg.js +183 -0
  50. package/scripts/utils/toc.js +71 -0
  51. package/scripts/utils/transform-markdown-admonitions.js +98 -0
  52. package/scripts/utils/uniq-by-last.js +32 -0
  53. package/src/api-builder/api-builder.js +49 -18
  54. package/src/api-builder/classes/description-parser.js +61 -10
  55. package/src/api-builder/classes/doc-data-factory.js +2 -2
  56. package/src/helpers/github-url.js +1 -1
  57. package/src/helpers/templates/scripts/default.js +1 -1
  58. package/src/helpers/templates/scripts/group.js +1 -1
  59. package/src/hexo/filter/project-locals.js +9 -0
  60. package/src/hexo/get-repo-urls.js +1 -1
  61. package/src/hexo/project-globals.js +4 -0
  62. package/src/hexo-manager.js +7 -2
  63. package/src/sdk-builder/sdk-builder.js +4 -4
  64. package/src/tasks/build-api-docs.js +5 -5
  65. package/src/tasks/build-documentation.js +45 -22
  66. package/src/tasks/cache-files.js +2 -2
  67. package/src/tasks/compile-sass.js +12 -0
  68. package/src/tasks/copy-assets.js +4 -0
  69. package/src/tasks/copy-project-icons.js +1 -1
  70. package/src/tasks/create-sitemap-index.js +12 -5
  71. package/src/tasks/get-extra-files.js +1 -1
  72. package/src/tasks/get-project-config.js +1 -1
  73. package/src/tasks/overwrite-api-guides.js +1 -1
  74. package/themes/umberto/layout/gloria/404.pug +25 -16
  75. package/themes/umberto/layout/gloria/_api-docs/_header/_style.scss +31 -0
  76. package/themes/umberto/layout/gloria/_api-docs/_header/index.pug +50 -0
  77. package/themes/umberto/layout/gloria/_api-docs/_mixin/_api-see-source.pug +1 -4
  78. package/themes/umberto/layout/gloria/_api-docs/_mixin/_api-tree-item.pug +34 -26
  79. package/themes/umberto/layout/gloria/_api-docs/_mixin/_class-item.pug +20 -13
  80. package/themes/umberto/layout/gloria/_api-docs/_mixin/_dev-names.pug +1 -1
  81. package/themes/umberto/layout/gloria/_api-docs/_mixin/_error.pug +10 -5
  82. package/themes/umberto/layout/gloria/_api-docs/_mixin/_hierarchy-list.pug +1 -1
  83. package/themes/umberto/layout/gloria/_api-docs/_mixin/_link-or-text.pug +1 -1
  84. package/themes/umberto/layout/gloria/_api-docs/_mixin/_method.pug +45 -39
  85. package/themes/umberto/layout/gloria/_api-docs/_mixin/_property.pug +26 -20
  86. package/themes/umberto/layout/gloria/_api-docs/_mixin/_related.pug +1 -1
  87. package/themes/umberto/layout/gloria/_api-docs/_mixin/_toc-list-item.pug +11 -0
  88. package/themes/umberto/layout/gloria/_api-docs/_partial/api-subheader.pug +0 -11
  89. package/themes/umberto/layout/gloria/_api-docs/_partial/api-toc.pug +33 -0
  90. package/themes/umberto/layout/gloria/_api-docs/_partial/classes.pug +5 -4
  91. package/themes/umberto/layout/gloria/_api-docs/_partial/config-options.pug +5 -4
  92. package/themes/umberto/layout/gloria/_api-docs/_partial/constants.pug +1 -1
  93. package/themes/umberto/layout/gloria/_api-docs/_partial/description.pug +2 -2
  94. package/themes/umberto/layout/gloria/_api-docs/_partial/events.pug +5 -4
  95. package/themes/umberto/layout/gloria/_api-docs/_partial/functions.pug +5 -4
  96. package/themes/umberto/layout/gloria/_api-docs/_partial/interfaces.pug +1 -1
  97. package/themes/umberto/layout/gloria/_api-docs/_partial/methods.pug +14 -13
  98. package/themes/umberto/layout/gloria/_api-docs/_partial/namespaces.pug +1 -1
  99. package/themes/umberto/layout/gloria/_api-docs/_partial/navtree.pug +4 -11
  100. package/themes/umberto/layout/gloria/_api-docs/_partial/properties.pug +14 -13
  101. package/themes/umberto/layout/gloria/_api-docs/_partial/type-parameters.pug +15 -12
  102. package/themes/umberto/layout/gloria/_api-docs/_partial/typedefs.pug +5 -4
  103. package/themes/umberto/layout/gloria/_api-docs/_subheader/_style.scss +5 -0
  104. package/themes/umberto/layout/gloria/_api-docs/_subheader/index.pug +10 -0
  105. package/themes/umberto/layout/gloria/_api-docs/_toc/_style.scss +227 -0
  106. package/themes/umberto/layout/gloria/_api-docs/_toc/index.pug +11 -0
  107. package/themes/umberto/layout/gloria/_api-docs/api-base.pug +24 -24
  108. package/themes/umberto/layout/gloria/_api-docs/class.pug +4 -4
  109. package/themes/umberto/layout/gloria/_api-docs/errors.pug +3 -3
  110. package/themes/umberto/layout/gloria/_api-docs/index.pug +3 -0
  111. package/themes/umberto/layout/gloria/_api-docs/interface.pug +4 -4
  112. package/themes/umberto/layout/gloria/_api-docs/mixin.pug +4 -4
  113. package/themes/umberto/layout/gloria/_api-docs/module.pug +4 -4
  114. package/themes/umberto/layout/gloria/_api-docs/namespace.pug +4 -4
  115. package/themes/umberto/layout/gloria/_api-docs/typedef.pug +22 -22
  116. package/themes/umberto/layout/gloria/_components/badge/_style.scss +27 -0
  117. package/themes/umberto/layout/gloria/_components/badge/index.pug +30 -0
  118. package/themes/umberto/layout/gloria/_components/banner/_style.scss +133 -0
  119. package/themes/umberto/layout/gloria/_components/banner/index.pug +3 -0
  120. package/themes/umberto/layout/gloria/_components/button/_style.scss +183 -0
  121. package/themes/umberto/layout/gloria/_components/button/index.pug +140 -0
  122. package/themes/umberto/layout/gloria/_components/callout/_style.scss +56 -0
  123. package/themes/umberto/layout/gloria/_components/callout/index.pug +87 -0
  124. package/themes/umberto/layout/gloria/_components/card/_style.scss +101 -0
  125. package/themes/umberto/layout/gloria/_components/card/index.pug +131 -0
  126. package/themes/umberto/layout/gloria/_components/card-learn-more-links/_style.scss +9 -0
  127. package/themes/umberto/layout/gloria/_components/card-learn-more-links/index.pug +56 -0
  128. package/themes/umberto/layout/gloria/_components/checkbox/_style.scss +117 -0
  129. package/themes/umberto/layout/gloria/_components/checkbox/index.pug +35 -0
  130. package/themes/umberto/layout/gloria/_components/cke5-code-switcher/index.pug +39 -0
  131. package/themes/umberto/layout/gloria/_components/code-block/_style.scss +111 -0
  132. package/themes/umberto/layout/gloria/_components/code-block/index.pug +67 -0
  133. package/themes/umberto/layout/gloria/_components/code-switcher/_style.scss +41 -0
  134. package/themes/umberto/layout/gloria/_components/code-switcher/index.pug +31 -0
  135. package/themes/umberto/layout/gloria/_components/columns/_style.scss +54 -0
  136. package/themes/umberto/layout/gloria/_components/columns/index.pug +30 -0
  137. package/themes/umberto/layout/gloria/_components/divider/_style.scss +6 -0
  138. package/themes/umberto/layout/gloria/_components/divider/index.pug +13 -0
  139. package/themes/umberto/layout/gloria/_components/dropdown/_style.scss +88 -0
  140. package/themes/umberto/layout/gloria/_components/dropdown/index.pug +77 -0
  141. package/themes/umberto/layout/gloria/_components/fake-devtools/_style.scss +233 -0
  142. package/themes/umberto/layout/gloria/_components/fake-devtools/index.pug +27 -0
  143. package/themes/umberto/layout/gloria/_components/heading-badge/index.pug +17 -0
  144. package/themes/umberto/layout/gloria/_components/heading-link/_style.scss +47 -0
  145. package/themes/umberto/layout/gloria/_components/heading-link/index.pug +26 -0
  146. package/themes/umberto/layout/gloria/_components/icon/_style.scss +12 -0
  147. package/themes/umberto/layout/gloria/_components/icon/index.pug +75 -0
  148. package/themes/umberto/layout/gloria/_components/icon-message/_style.scss +13 -0
  149. package/themes/umberto/layout/gloria/_components/icon-message/index.pug +17 -0
  150. package/themes/umberto/layout/gloria/_components/iframe/_style.scss +10 -0
  151. package/themes/umberto/layout/gloria/_components/iframe/index.pug +22 -0
  152. package/themes/umberto/layout/gloria/_components/img/index.pug +17 -0
  153. package/themes/umberto/layout/gloria/_components/index.pug +31 -0
  154. package/themes/umberto/layout/gloria/_components/input/_style.scss +82 -0
  155. package/themes/umberto/layout/gloria/_components/input/index.pug +34 -0
  156. package/themes/umberto/layout/gloria/_components/json-ld/index.pug +3 -0
  157. package/themes/umberto/layout/gloria/_components/keyboard-shortcut/_style.scss +49 -0
  158. package/themes/umberto/layout/gloria/_components/keyboard-shortcut/index.pug +23 -0
  159. package/themes/umberto/layout/gloria/_components/menu-dropdown/_style.scss +27 -0
  160. package/themes/umberto/layout/gloria/_components/menu-dropdown/index.pug +40 -0
  161. package/themes/umberto/layout/gloria/_components/mobile-overlay/_style.scss +70 -0
  162. package/themes/umberto/layout/gloria/_components/mobile-overlay/index.pug +37 -0
  163. package/themes/umberto/layout/gloria/_components/nav-tree/_style.scss +104 -0
  164. package/themes/umberto/layout/gloria/_components/nav-tree/index.pug +6 -0
  165. package/themes/umberto/layout/gloria/_components/nav-tree/nav-tree-item.pug +23 -0
  166. package/themes/umberto/layout/gloria/{_mixin → _components/nav-tree}/nav-tree-level.pug +31 -11
  167. package/themes/umberto/layout/gloria/_components/skeleton/_style.scss +22 -0
  168. package/themes/umberto/layout/gloria/_components/skeleton/index.pug +16 -0
  169. package/themes/umberto/layout/gloria/_components/spacer/_style.scss +9 -0
  170. package/themes/umberto/layout/gloria/_components/spacer/index.pug +19 -0
  171. package/themes/umberto/layout/gloria/_components/svg/index.pug +70 -0
  172. package/themes/umberto/layout/gloria/_components/tabs/_style.scss +80 -0
  173. package/themes/umberto/layout/gloria/_components/tabs/index.pug +81 -0
  174. package/themes/umberto/layout/gloria/_components/tag/_style.scss +79 -0
  175. package/themes/umberto/layout/gloria/_components/tag/index.pug +17 -0
  176. package/themes/umberto/layout/gloria/_components/tooltip-popover/_style.scss +194 -0
  177. package/themes/umberto/layout/gloria/_components/tooltip-popover/index.pug +38 -0
  178. package/themes/umberto/layout/gloria/_head/head-preloads.pug +32 -0
  179. package/themes/umberto/layout/gloria/{_partial → _head}/head.pug +8 -4
  180. package/themes/umberto/layout/gloria/_head/index.pug +1 -0
  181. package/themes/umberto/layout/gloria/_modules/algolia-search/_style.scss +202 -0
  182. package/themes/umberto/layout/gloria/_modules/algolia-search/_third-party.scss +1 -0
  183. package/themes/umberto/layout/gloria/_modules/algolia-search/index.pug +38 -0
  184. package/themes/umberto/layout/gloria/_modules/breadcrumbs/_style.scss +68 -0
  185. package/themes/umberto/layout/gloria/_modules/breadcrumbs/index.pug +18 -0
  186. package/themes/umberto/layout/gloria/_modules/footer/_style.scss +40 -0
  187. package/themes/umberto/layout/gloria/_modules/footer/index.pug +87 -0
  188. package/themes/umberto/layout/gloria/_modules/header/_style.scss +181 -0
  189. package/themes/umberto/layout/gloria/_modules/header/index.pug +70 -0
  190. package/themes/umberto/layout/gloria/_modules/header/nav-link.pug +19 -0
  191. package/themes/umberto/layout/gloria/_modules/header/nav-links.pug +11 -0
  192. package/themes/umberto/layout/gloria/_modules/header/nav-project-select-dropdown.pug +16 -0
  193. package/themes/umberto/layout/gloria/_modules/header/nav-suffix-links.pug +20 -0
  194. package/themes/umberto/layout/gloria/_modules/header-bar/_style.scss +56 -0
  195. package/themes/umberto/layout/gloria/_modules/header-bar/index.pug +40 -0
  196. package/themes/umberto/layout/gloria/_modules/header-legacy-warning/index.pug +11 -0
  197. package/themes/umberto/layout/gloria/_modules/header-nightly-info/index.pug +20 -0
  198. package/themes/umberto/layout/gloria/_modules/header-promobar/index.pug +18 -0
  199. package/themes/umberto/layout/gloria/_modules/index.pug +14 -0
  200. package/themes/umberto/layout/gloria/_modules/main/_style.scss +54 -0
  201. package/themes/umberto/layout/gloria/_modules/main/index.pug +10 -0
  202. package/themes/umberto/layout/gloria/_modules/mobile-nav/_style.scss +106 -0
  203. package/themes/umberto/layout/gloria/_modules/mobile-nav/index.pug +121 -0
  204. package/themes/umberto/layout/gloria/_modules/mobile-nav/slide-parts.pug +67 -0
  205. package/themes/umberto/layout/gloria/_modules/not-found/_style.scss +38 -0
  206. package/themes/umberto/layout/gloria/_modules/not-found/index.pug +16 -0
  207. package/themes/umberto/layout/gloria/_modules/sidebar/_style.scss +147 -0
  208. package/themes/umberto/layout/gloria/_modules/sidebar/index.pug +24 -0
  209. package/themes/umberto/layout/gloria/_modules/sidebar-api/_style.scss +2 -0
  210. package/themes/umberto/layout/gloria/_modules/sidebar-api/index.pug +6 -0
  211. package/themes/umberto/layout/gloria/_modules/toc/_style.scss +201 -0
  212. package/themes/umberto/layout/gloria/_modules/toc/index.pug +10 -0
  213. package/themes/umberto/layout/gloria/_trackers/google-tag-manager.pug +14 -0
  214. package/themes/umberto/layout/gloria/_trackers/index.pug +2 -0
  215. package/themes/umberto/layout/gloria/api.pug +43 -20
  216. package/themes/umberto/layout/gloria/base.pug +23 -32
  217. package/themes/umberto/layout/gloria/index.pug +19 -13
  218. package/themes/umberto/layout/gloria/page.pug +30 -11
  219. package/themes/umberto/layout/gloria/sdk.pug +1 -1
  220. package/themes/umberto/layout/gloria/theme.pug +304 -0
  221. package/themes/umberto/layout/umberto/404.pug +0 -1
  222. package/themes/umberto/layout/umberto/_partial/report-issue-widget.pug +0 -3
  223. package/themes/umberto/source/gloria/assets/_fonts/Menlo/Menlo-Regular.ttf +0 -0
  224. package/themes/umberto/source/gloria/assets/_fonts/Menlo/Menlo-Regular.woff +0 -0
  225. package/themes/umberto/source/gloria/assets/_fonts/Mulish/Mulish-Italic-VariableFont_wght.ttf +0 -0
  226. package/themes/umberto/source/gloria/assets/_fonts/Mulish/Mulish-Italic-VariableFont_wght.woff2 +0 -0
  227. package/themes/umberto/source/gloria/assets/_fonts/Mulish/Mulish-VariableFont_wght.ttf +0 -0
  228. package/themes/umberto/source/gloria/assets/_fonts/Mulish/Mulish-VariableFont_wght.woff2 +0 -0
  229. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-Black.ttf +0 -0
  230. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-BlackItalic.ttf +0 -0
  231. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-Bold.ttf +0 -0
  232. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-BoldItalic.ttf +0 -0
  233. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-ExtraBold.ttf +0 -0
  234. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-ExtraBoldItalic.ttf +0 -0
  235. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-ExtraLight.ttf +0 -0
  236. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-ExtraLightItalic.ttf +0 -0
  237. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-Italic.ttf +0 -0
  238. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-Light.ttf +0 -0
  239. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-LightItalic.ttf +0 -0
  240. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-Medium.ttf +0 -0
  241. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-MediumItalic.ttf +0 -0
  242. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-Regular.ttf +0 -0
  243. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-SemiBold.ttf +0 -0
  244. package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-SemiBoldItalic.ttf +0 -0
  245. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/PublicSans-Italic-VariableFont_wght.ttf +0 -0
  246. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/PublicSans-Italic-VariableFont_wght.woff2 +0 -0
  247. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/PublicSans-VariableFont_wght.ttf +0 -0
  248. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/PublicSans-VariableFont_wght.woff2 +0 -0
  249. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Black.ttf +0 -0
  250. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-BlackItalic.ttf +0 -0
  251. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Bold.ttf +0 -0
  252. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-BoldItalic.ttf +0 -0
  253. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-ExtraBold.ttf +0 -0
  254. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-ExtraBoldItalic.ttf +0 -0
  255. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-ExtraLight.ttf +0 -0
  256. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-ExtraLightItalic.ttf +0 -0
  257. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Italic.ttf +0 -0
  258. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Light.ttf +0 -0
  259. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-LightItalic.ttf +0 -0
  260. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Medium.ttf +0 -0
  261. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-MediumItalic.ttf +0 -0
  262. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Regular.ttf +0 -0
  263. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-SemiBold.ttf +0 -0
  264. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-SemiBoldItalic.ttf +0 -0
  265. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Thin.ttf +0 -0
  266. package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-ThinItalic.ttf +0 -0
  267. package/themes/umberto/source/gloria/assets/_img/404-billboard.svg +181 -0
  268. package/themes/umberto/source/gloria/assets/_img/ckeditor-logo.svg +15 -0
  269. package/themes/umberto/source/gloria/assets/_img/hex-bg-2.svg +10 -0
  270. package/themes/umberto/source/gloria/assets/_img/hex-bg.svg +10 -0
  271. package/themes/umberto/source/gloria/assets/_img/icons/api-class.svg +10 -0
  272. package/themes/umberto/source/gloria/assets/_img/icons/api-folder.svg +3 -0
  273. package/themes/umberto/source/gloria/assets/_img/icons/api-interface.svg +3 -0
  274. package/themes/umberto/source/gloria/assets/_img/icons/api-module.svg +3 -0
  275. package/themes/umberto/source/gloria/assets/_img/icons/api-package.svg +4 -0
  276. package/themes/umberto/source/gloria/assets/_img/icons/api-typedef.svg +3 -0
  277. package/themes/umberto/source/gloria/assets/_img/icons/bulb.svg +3 -0
  278. package/themes/umberto/source/gloria/assets/_img/icons/check-circle.svg +4 -0
  279. package/themes/umberto/source/gloria/assets/_img/icons/check.svg +3 -0
  280. package/themes/umberto/source/gloria/assets/_img/icons/chevron-down.svg +3 -0
  281. package/themes/umberto/source/gloria/assets/_img/icons/chevron-right.svg +3 -0
  282. package/themes/umberto/source/gloria/assets/_img/icons/close-circle.svg +4 -0
  283. package/themes/umberto/source/gloria/assets/_img/icons/close.svg +3 -0
  284. package/themes/umberto/source/gloria/assets/_img/icons/copy.svg +10 -0
  285. package/themes/umberto/source/gloria/assets/_img/icons/dislike.svg +3 -0
  286. package/themes/umberto/source/gloria/assets/_img/icons/download.svg +3 -0
  287. package/themes/umberto/source/gloria/assets/_img/icons/edit.svg +3 -0
  288. package/themes/umberto/source/gloria/assets/_img/icons/exclamation-circle.svg +4 -0
  289. package/themes/umberto/source/gloria/assets/_img/icons/experiment.svg +3 -0
  290. package/themes/umberto/source/gloria/assets/_img/icons/export.svg +4 -0
  291. package/themes/umberto/source/gloria/assets/_img/icons/eye.svg +3 -0
  292. package/themes/umberto/source/gloria/assets/_img/icons/filter.svg +3 -0
  293. package/themes/umberto/source/gloria/assets/_img/icons/github.svg +10 -0
  294. package/themes/umberto/source/gloria/assets/_img/icons/info-circle.svg +4 -0
  295. package/themes/umberto/source/gloria/assets/_img/icons/like.svg +3 -0
  296. package/themes/umberto/source/gloria/assets/_img/icons/link.svg +3 -0
  297. package/themes/umberto/source/gloria/assets/_img/icons/lock.svg +3 -0
  298. package/themes/umberto/source/gloria/assets/_img/icons/menu-fold.svg +3 -0
  299. package/themes/umberto/source/gloria/assets/_img/icons/menu-list.svg +3 -0
  300. package/themes/umberto/source/gloria/assets/_img/icons/menu.svg +3 -0
  301. package/themes/umberto/source/gloria/assets/_img/icons/more.svg +3 -0
  302. package/themes/umberto/source/gloria/assets/_img/icons/notification.svg +3 -0
  303. package/themes/umberto/source/gloria/assets/_img/icons/number.svg +3 -0
  304. package/themes/umberto/source/gloria/assets/_img/icons/premium.svg +3 -0
  305. package/themes/umberto/source/gloria/assets/_img/icons/right.svg +3 -0
  306. package/themes/umberto/source/gloria/assets/_img/icons/search.svg +3 -0
  307. package/themes/umberto/source/gloria/assets/_img/icons/status.svg +3 -0
  308. package/themes/umberto/source/gloria/assets/_img/icons/trash.svg +3 -0
  309. package/themes/umberto/source/gloria/assets/_img/icons/unordered-list.svg +5 -0
  310. package/themes/umberto/source/gloria/assets/_img/icons/warning.svg +10 -0
  311. package/themes/umberto/src/gloria/css/_fonts.scss +51 -0
  312. package/themes/umberto/src/gloria/css/_layers.scss +1 -0
  313. package/themes/umberto/src/gloria/css/_normalize.scss +118 -0
  314. package/themes/umberto/src/gloria/css/a11y/_focusable.scss +7 -0
  315. package/themes/umberto/src/gloria/css/a11y/_index.scss +4 -0
  316. package/themes/umberto/src/gloria/css/a11y/_mixins.scss +32 -0
  317. package/themes/umberto/src/gloria/css/a11y/_reduce-motion.scss +9 -0
  318. package/themes/umberto/src/gloria/css/a11y/_screen-reader.scss +15 -0
  319. package/themes/umberto/src/gloria/css/base/_buttons.scss +13 -0
  320. package/themes/umberto/src/gloria/css/base/_descriptions-list.scss +33 -0
  321. package/themes/umberto/src/gloria/css/base/_details.scss +7 -0
  322. package/themes/umberto/src/gloria/css/base/_headings.scss +111 -0
  323. package/themes/umberto/src/gloria/css/base/_iframes.scss +7 -0
  324. package/themes/umberto/src/gloria/css/base/_index.scss +12 -0
  325. package/themes/umberto/src/gloria/css/base/_inline-code.scss +15 -0
  326. package/themes/umberto/src/gloria/css/base/_links.scss +30 -0
  327. package/themes/umberto/src/gloria/css/base/_lists.scss +58 -0
  328. package/themes/umberto/src/gloria/css/base/_mixins.scss +3 -0
  329. package/themes/umberto/src/gloria/css/base/_paragraphs.scss +15 -0
  330. package/themes/umberto/src/gloria/css/base/_tables.scss +68 -0
  331. package/themes/umberto/src/gloria/css/base/_typography.scss +62 -0
  332. package/themes/umberto/src/gloria/css/components/_api-collapsing-list.scss +148 -0
  333. package/themes/umberto/src/gloria/css/components/_api-filter-dropdown.scss +17 -0
  334. package/themes/umberto/src/gloria/css/components/_api-item-heading.scss +58 -0
  335. package/themes/umberto/src/gloria/css/components/_api-tree.scss +202 -0
  336. package/themes/umberto/src/gloria/css/components/_hierarchy-list.scss +35 -0
  337. package/themes/umberto/src/gloria/css/components/_image-zoom.scss +13 -0
  338. package/themes/umberto/src/gloria/css/components/_index.scss +55 -0
  339. package/themes/umberto/src/gloria/css/components/_notification.scss +36 -0
  340. package/themes/umberto/src/gloria/css/components/_utils.scss +5 -0
  341. package/themes/umberto/src/gloria/css/doc/_details.scss +11 -0
  342. package/themes/umberto/src/gloria/css/doc/_editor-icons.scss +21 -0
  343. package/themes/umberto/src/gloria/css/doc/_images.scss +9 -0
  344. package/themes/umberto/src/gloria/css/doc/_index.scss +5 -0
  345. package/themes/umberto/src/gloria/css/doc/_snippets.scss +126 -0
  346. package/themes/umberto/src/gloria/css/doc/_typography.scss +5 -0
  347. package/themes/umberto/src/gloria/css/layout/_base.scss +27 -0
  348. package/themes/umberto/src/gloria/css/layout/_breakpoints.scss +88 -0
  349. package/themes/umberto/src/gloria/css/layout/_container.scss +38 -0
  350. package/themes/umberto/src/gloria/css/layout/_index.scss +6 -0
  351. package/themes/umberto/src/gloria/css/layout/_layout.scss +64 -0
  352. package/themes/umberto/src/gloria/css/layout/_mixins.scss +34 -0
  353. package/themes/umberto/src/gloria/css/layout/_zindex.scss +12 -0
  354. package/themes/umberto/src/gloria/css/modules/_index.scss +29 -0
  355. package/themes/umberto/src/gloria/css/modules/_utils.scss +7 -0
  356. package/themes/umberto/src/gloria/css/styles.scss +11 -117
  357. package/themes/umberto/src/gloria/css/theme/_light.scss +344 -0
  358. package/themes/umberto/src/gloria/css/utilities/_animation.scss +32 -0
  359. package/themes/umberto/src/gloria/css/utilities/_colors.scss +14 -0
  360. package/themes/umberto/src/gloria/css/utilities/_display.scss +13 -0
  361. package/themes/umberto/src/gloria/css/utilities/_flex.scss +33 -0
  362. package/themes/umberto/src/gloria/css/utilities/_gap.scss +8 -0
  363. package/themes/umberto/src/gloria/css/utilities/_index.scss +11 -0
  364. package/themes/umberto/src/gloria/css/utilities/_radius.scss +21 -0
  365. package/themes/umberto/src/gloria/css/utilities/_rotation.scss +8 -0
  366. package/themes/umberto/src/gloria/css/utilities/_shadows.scss +13 -0
  367. package/themes/umberto/src/gloria/css/utilities/_spacing.scss +96 -0
  368. package/themes/umberto/src/gloria/css/utilities/_stop-scrolling.scss +9 -0
  369. package/themes/umberto/src/gloria/css/utilities/_text.scss +42 -0
  370. package/themes/umberto/src/gloria/js/app.js +92 -54
  371. package/themes/umberto/src/gloria/js/components/api-nav-tree.js +171 -0
  372. package/themes/umberto/src/gloria/js/components/api-toggle.js +92 -0
  373. package/themes/umberto/src/gloria/js/components/base-component.js +41 -0
  374. package/themes/umberto/src/gloria/js/components/breadcrumbs.js +115 -0
  375. package/themes/umberto/src/gloria/js/components/code-block.js +226 -0
  376. package/themes/umberto/src/gloria/js/components/code-switcher.js +177 -0
  377. package/themes/umberto/src/gloria/js/components/dropdown.js +516 -0
  378. package/themes/umberto/src/gloria/js/components/expandable.js +79 -0
  379. package/themes/umberto/src/gloria/js/components/fake-devtools.js +722 -0
  380. package/themes/umberto/src/gloria/js/components/hash-link.js +60 -0
  381. package/themes/umberto/src/gloria/js/components/heading-link.js +135 -0
  382. package/themes/umberto/src/gloria/js/components/iframe.js +158 -0
  383. package/themes/umberto/src/gloria/js/{_imageModal.js → components/image-zoom.js} +1 -1
  384. package/themes/umberto/src/gloria/js/components/mobile-overlay.js +315 -0
  385. package/themes/umberto/src/gloria/js/components/nav-tree.js +164 -0
  386. package/themes/umberto/src/gloria/js/components/tabs.js +284 -0
  387. package/themes/umberto/src/gloria/js/components/tooltip-popover.js +576 -0
  388. package/themes/umberto/src/gloria/js/helpers/after-dom-ready.js +16 -0
  389. package/themes/umberto/src/gloria/js/helpers/animate-element.js +78 -0
  390. package/themes/umberto/src/gloria/js/helpers/body-scroll.js +22 -0
  391. package/themes/umberto/src/gloria/js/helpers/clamp.js +16 -0
  392. package/themes/umberto/src/gloria/js/helpers/classnames.js +64 -0
  393. package/themes/umberto/src/gloria/js/helpers/copy-to-clipboard.js +19 -0
  394. package/themes/umberto/src/gloria/js/helpers/create-anchor-positioning-watcher.js +46 -0
  395. package/themes/umberto/src/gloria/js/helpers/create-cleanup-registry.js +88 -0
  396. package/themes/umberto/src/gloria/js/helpers/create-hover-manager.js +93 -0
  397. package/themes/umberto/src/gloria/js/helpers/create-keyboard-blur-watcher.js +90 -0
  398. package/themes/umberto/src/gloria/js/helpers/create-keyboard-focus-cycler.js +251 -0
  399. package/themes/umberto/src/gloria/js/helpers/create-mutation-observer.js +49 -0
  400. package/themes/umberto/src/gloria/js/helpers/create-outside-click-watcher.js +39 -0
  401. package/themes/umberto/src/gloria/js/helpers/cubic-bezier.js +55 -0
  402. package/themes/umberto/src/gloria/js/helpers/date-time.js +21 -0
  403. package/themes/umberto/src/gloria/js/helpers/decode-html-entities.js +23 -0
  404. package/themes/umberto/src/gloria/js/helpers/escape-handler.js +59 -0
  405. package/themes/umberto/src/gloria/js/helpers/fetch-stylesheet.js +25 -0
  406. package/themes/umberto/src/gloria/js/helpers/find-code-lang.js +85 -0
  407. package/themes/umberto/src/gloria/js/helpers/focus-first-interactive.js +50 -0
  408. package/themes/umberto/src/gloria/js/helpers/format-html.js +181 -0
  409. package/themes/umberto/src/gloria/js/helpers/get-all-scrollable-parents.js +34 -0
  410. package/themes/umberto/src/gloria/js/helpers/get-parents-until.js +26 -0
  411. package/themes/umberto/src/gloria/js/helpers/highlight-code.js +18 -0
  412. package/themes/umberto/src/gloria/js/helpers/html-builder.js +69 -0
  413. package/themes/umberto/src/gloria/js/helpers/identity.js +8 -0
  414. package/themes/umberto/src/gloria/js/helpers/inject-resource-preload.js +51 -0
  415. package/themes/umberto/src/gloria/js/helpers/inject-script.js +79 -0
  416. package/themes/umberto/src/gloria/js/helpers/inject-stylesheet.js +108 -0
  417. package/themes/umberto/src/gloria/js/helpers/is-element-attached.js +28 -0
  418. package/themes/umberto/src/gloria/js/helpers/is-focusable.js +14 -0
  419. package/themes/umberto/src/gloria/js/helpers/is-hidden-element.js +8 -0
  420. package/themes/umberto/src/gloria/js/helpers/is-mobile.js +8 -0
  421. package/themes/umberto/src/gloria/js/helpers/is-unsafe-key.js +14 -0
  422. package/themes/umberto/src/gloria/js/helpers/lerp.js +27 -0
  423. package/themes/umberto/src/gloria/js/helpers/local-storage-helper.js +133 -0
  424. package/themes/umberto/src/gloria/js/helpers/pipe.js +8 -0
  425. package/themes/umberto/src/gloria/js/helpers/prefers-reduced-motion.js +13 -0
  426. package/themes/umberto/src/gloria/js/helpers/random-id.js +51 -0
  427. package/themes/umberto/src/gloria/js/helpers/sanitize-text.js +27 -0
  428. package/themes/umberto/src/gloria/js/helpers/scroll-to-hash.js +31 -0
  429. package/themes/umberto/src/gloria/js/helpers/take-last.js +19 -0
  430. package/themes/umberto/src/gloria/js/helpers/tap.js +11 -0
  431. package/themes/umberto/src/gloria/js/helpers/throttle.js +46 -0
  432. package/themes/umberto/src/gloria/js/helpers/timeout.js +14 -0
  433. package/themes/umberto/src/gloria/js/helpers/toggle-height.js +46 -0
  434. package/themes/umberto/src/gloria/js/helpers/tween.js +100 -0
  435. package/themes/umberto/src/gloria/js/helpers/wrap-around.js +39 -0
  436. package/themes/umberto/src/gloria/js/modules/algolia-search.js +168 -0
  437. package/themes/umberto/src/gloria/js/modules/api-filter.js +184 -0
  438. package/themes/umberto/src/gloria/js/modules/header-bar.js +154 -0
  439. package/themes/umberto/src/gloria/js/modules/header.js +242 -0
  440. package/themes/umberto/src/gloria/js/modules/links-prefetch.js +196 -0
  441. package/themes/umberto/src/gloria/js/modules/mobile-nav.js +327 -0
  442. package/themes/umberto/src/gloria/js/modules/sidebar.js +114 -0
  443. package/themes/umberto/src/gloria/js/modules/table-of-contents-api.js +214 -0
  444. package/themes/umberto/src/gloria/js/modules/table-of-contents.js +287 -0
  445. package/themes/umberto/src/gloria/js/public-api.js +75 -0
  446. package/themes/umberto/src/gloria/js/web-components/svg-icon.js +117 -0
  447. package/themes/umberto/src/umberto/js/_codeswitcherbuttons.js +1 -1
  448. package/themes/umberto/layout/gloria/_api-docs/_mixin/_api-title.pug +0 -17
  449. package/themes/umberto/layout/gloria/_mixin/nav-tree-item.pug +0 -13
  450. package/themes/umberto/layout/gloria/_partial/docsearch.pug +0 -21
  451. package/themes/umberto/layout/gloria/_partial/dropdown.pug +0 -12
  452. package/themes/umberto/layout/gloria/_partial/feedback-widget.pug +0 -20
  453. package/themes/umberto/layout/gloria/_partial/footer.pug +0 -6
  454. package/themes/umberto/layout/gloria/_partial/gh-contribute.pug +0 -8
  455. package/themes/umberto/layout/gloria/_partial/google-tag-manager.pug +0 -18
  456. package/themes/umberto/layout/gloria/_partial/header.pug +0 -64
  457. package/themes/umberto/layout/gloria/_partial/nav-tree.pug +0 -9
  458. package/themes/umberto/layout/gloria/_partial/report-issue-widget.pug +0 -26
  459. package/themes/umberto/layout/gloria/_partial/rwd-breadcrumbs.pug +0 -13
  460. package/themes/umberto/layout/gloria/_partial/search-box.pug +0 -6
  461. package/themes/umberto/layout/gloria/_partial/vwo.pug +0 -11
  462. package/themes/umberto/source/gloria/assets/_img/arrows.svg +0 -1
  463. package/themes/umberto/source/gloria/assets/_img/book.svg +0 -1
  464. package/themes/umberto/source/gloria/assets/_img/box-brown.svg +0 -1
  465. package/themes/umberto/source/gloria/assets/_img/box-orange.svg +0 -1
  466. package/themes/umberto/source/gloria/assets/_img/box-red.svg +0 -1
  467. package/themes/umberto/source/gloria/assets/_img/bulb.svg +0 -1
  468. package/themes/umberto/source/gloria/assets/_img/clipboard.svg +0 -1
  469. package/themes/umberto/source/gloria/assets/_img/cog.svg +0 -1
  470. package/themes/umberto/source/gloria/assets/_img/data.svg +0 -1
  471. package/themes/umberto/source/gloria/assets/_img/documentation.svg +0 -1
  472. package/themes/umberto/source/gloria/assets/_img/download.svg +0 -1
  473. package/themes/umberto/source/gloria/assets/_img/edit.svg +0 -2
  474. package/themes/umberto/source/gloria/assets/_img/exclamation-circle.svg +0 -2
  475. package/themes/umberto/source/gloria/assets/_img/eye.svg +0 -1
  476. package/themes/umberto/source/gloria/assets/_img/filter.svg +0 -1
  477. package/themes/umberto/source/gloria/assets/_img/filtering.svg +0 -1
  478. package/themes/umberto/source/gloria/assets/_img/folder.svg +0 -1
  479. package/themes/umberto/source/gloria/assets/_img/github.svg +0 -6
  480. package/themes/umberto/source/gloria/assets/_img/header-info-configs.svg +0 -1
  481. package/themes/umberto/source/gloria/assets/_img/header-info-events.svg +0 -1
  482. package/themes/umberto/source/gloria/assets/_img/header-info-methods.svg +0 -1
  483. package/themes/umberto/source/gloria/assets/_img/header-info-properties.svg +0 -1
  484. package/themes/umberto/source/gloria/assets/_img/heart.svg +0 -1
  485. package/themes/umberto/source/gloria/assets/_img/info-circle.svg +0 -4
  486. package/themes/umberto/source/gloria/assets/_img/info.svg +0 -1
  487. package/themes/umberto/source/gloria/assets/_img/list-nest.svg +0 -1
  488. package/themes/umberto/source/gloria/assets/_img/loupe.svg +0 -1
  489. package/themes/umberto/source/gloria/assets/_img/menu.svg +0 -4
  490. package/themes/umberto/source/gloria/assets/_img/plug.svg +0 -1
  491. package/themes/umberto/source/gloria/assets/_img/star-in-circle.svg +0 -1
  492. package/themes/umberto/source/gloria/assets/_img/tick.svg +0 -1
  493. package/themes/umberto/source/gloria/assets/_img/triangle-down.svg +0 -1
  494. package/themes/umberto/source/gloria/assets/_img/triangle-right.svg +0 -1
  495. package/themes/umberto/src/gloria/css/_api-content.scss +0 -32
  496. package/themes/umberto/src/gloria/css/_api-info-box.scss +0 -86
  497. package/themes/umberto/src/gloria/css/_api-props-filter.scss +0 -106
  498. package/themes/umberto/src/gloria/css/_api-see-source.scss +0 -35
  499. package/themes/umberto/src/gloria/css/_api-subheader.scss +0 -167
  500. package/themes/umberto/src/gloria/css/_api-tree.scss +0 -121
  501. package/themes/umberto/src/gloria/css/_badge.scss +0 -74
  502. package/themes/umberto/src/gloria/css/_code-switcher.scss +0 -61
  503. package/themes/umberto/src/gloria/css/_collapsinglist.scss +0 -262
  504. package/themes/umberto/src/gloria/css/_content.scss +0 -236
  505. package/themes/umberto/src/gloria/css/_docsearch.scss +0 -109
  506. package/themes/umberto/src/gloria/css/_dropdown.scss +0 -63
  507. package/themes/umberto/src/gloria/css/_editor-icon.scss +0 -26
  508. package/themes/umberto/src/gloria/css/_feedback-widget.scss +0 -11
  509. package/themes/umberto/src/gloria/css/_font-external.scss +0 -8
  510. package/themes/umberto/src/gloria/css/_footer.scss +0 -40
  511. package/themes/umberto/src/gloria/css/_formatted.scss +0 -285
  512. package/themes/umberto/src/gloria/css/_guide-content.scss +0 -37
  513. package/themes/umberto/src/gloria/css/_guide-sdk-tree.scss +0 -14
  514. package/themes/umberto/src/gloria/css/_loading-spinner.scss +0 -33
  515. package/themes/umberto/src/gloria/css/_main.scss +0 -59
  516. package/themes/umberto/src/gloria/css/_navigation.scss +0 -35
  517. package/themes/umberto/src/gloria/css/_notice.scss +0 -116
  518. package/themes/umberto/src/gloria/css/_print.scss +0 -20
  519. package/themes/umberto/src/gloria/css/_prism.scss +0 -223
  520. package/themes/umberto/src/gloria/css/_rwd-breadcrumbs.scss +0 -28
  521. package/themes/umberto/src/gloria/css/_rwd-menu.scss +0 -89
  522. package/themes/umberto/src/gloria/css/_secondary-navigation.scss +0 -152
  523. package/themes/umberto/src/gloria/css/_theme-dark.scss +0 -175
  524. package/themes/umberto/src/gloria/css/_toggler.scss +0 -46
  525. package/themes/umberto/src/gloria/css/_top.scss +0 -350
  526. package/themes/umberto/src/gloria/css/_tree.scss +0 -218
  527. package/themes/umberto/src/gloria/css/_warning-banner.scss +0 -46
  528. package/themes/umberto/src/gloria/css/components/_lightbox.scss +0 -12
  529. package/themes/umberto/src/gloria/css/helpers/_color.scss +0 -49
  530. package/themes/umberto/src/gloria/css/helpers/_font.scss +0 -60
  531. package/themes/umberto/src/gloria/css/helpers/_globals.scss +0 -129
  532. package/themes/umberto/src/gloria/css/helpers/_reset.scss +0 -52
  533. package/themes/umberto/src/gloria/css/helpers/_spacing.scss +0 -21
  534. package/themes/umberto/src/gloria/css/pages/_sdk.scss +0 -111
  535. package/themes/umberto/src/gloria/js/_anchors.js +0 -57
  536. package/themes/umberto/src/gloria/js/_apisearch.js +0 -126
  537. package/themes/umberto/src/gloria/js/_apitree.js +0 -67
  538. package/themes/umberto/src/gloria/js/_attachpermalinklistener.js +0 -50
  539. package/themes/umberto/src/gloria/js/_codeswitcherbuttons.js +0 -146
  540. package/themes/umberto/src/gloria/js/_collapsables.js +0 -135
  541. package/themes/umberto/src/gloria/js/_copymobileapinavigation.js +0 -26
  542. package/themes/umberto/src/gloria/js/_devnames.js +0 -37
  543. package/themes/umberto/src/gloria/js/_dropdowns.js +0 -55
  544. package/themes/umberto/src/gloria/js/_filtering.js +0 -139
  545. package/themes/umberto/src/gloria/js/_pagenavigation.js +0 -93
  546. package/themes/umberto/src/gloria/js/_prism.js +0 -104
  547. package/themes/umberto/src/gloria/js/_rwdmenu.js +0 -15
  548. package/themes/umberto/src/gloria/js/_samplecode.js +0 -23
  549. package/themes/umberto/src/gloria/js/_sidenavigation.js +0 -59
  550. package/themes/umberto/src/gloria/js/_toc.js +0 -93
  551. package/themes/umberto/src/gloria/js/_tooltips.js +0 -39
  552. package/themes/umberto/src/gloria/js/_warningbanner.js +0 -18
  553. package/themes/umberto/src/gloria/js/vendor/prism.js +0 -45
  554. /package/themes/umberto/layout/gloria/_api-docs/_partial/{api-info-box.pug → api-hierarchy.pug} +0 -0
  555. /package/themes/umberto/layout/gloria/{_partial → _trackers}/google-analytics.pug +0 -0
@@ -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
+ }
@@ -35,6 +35,7 @@ module.exports = ( ctx, {
35
35
  googleoptimize,
36
36
  googletagmanager,
37
37
  googleanalytics,
38
+ promobar,
38
39
  vwo,
39
40
  feedbackWidget,
40
41
  extraStylePaths,
@@ -95,17 +96,25 @@ module.exports = ( ctx, {
95
96
  locals.docSearchConfig = getDocSearchConfig( docSearch );
96
97
  }
97
98
 
99
+ locals.sitemap = config.sitemap;
98
100
  locals.umbertoVersion = umbertoVersion;
99
101
  locals.disableSearch = disableSearch;
100
102
  locals.googleoptimize = googleoptimize;
101
103
  locals.googletagmanager = googletagmanager;
102
104
  locals.googleanalytics = googleanalytics;
105
+ locals.promobar = promobar;
103
106
  locals.vwo = vwo;
104
107
  locals.feedbackWidget = feedbackWidget;
105
108
  locals.mainName = ctx.projectGlobals.common.mainName ? ctx.projectGlobals.common.mainName : '';
106
109
  locals.mainLogo = ctx.projectGlobals.common.mainLogo ? ctx.projectGlobals.common.mainLogo : '';
107
110
  locals.pathJoin = upath.join;
108
111
 
112
+ // `sitemap` entry is not consistent across building methods of Umberto.
113
+ // It's often defined in the API, but it's not always available in the hexo locals.
114
+ // In order to make it available, it's safer to use `docSearch.indexName` which is always defined.
115
+ locals.isLegacy = locals.path.includes( '/legacy/' );
116
+ locals.isNightly = docSearch.indexName?.includes( 'nightly' ) || false;
117
+
109
118
  locals.mainOg = og || {};
110
119
  } );
111
120
  };
@@ -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
@@ -65,9 +65,9 @@ module.exports = config => {
65
65
  );
66
66
 
67
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' );
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.` );
@@ -28,7 +28,7 @@ const copyProjectIcons = require( './copy-project-icons' );
28
28
  const executeHooks = require( './execute-hooks' );
29
29
  const umbertoVersion = require( '../../package.json' ).version;
30
30
 
31
- const parseLink = require( '../../scripts/utils/parselinks' );
31
+ const { parseLinks } = require( '../../scripts/utils/parselinks' );
32
32
  const getFilePatternsToProcess = require( '../helpers/get-file-patterns-to-process' );
33
33
 
34
34
  /**
@@ -141,6 +141,8 @@ module.exports = options => {
141
141
  googleoptimize: mainConfig.googleoptimize,
142
142
  googletagmanager: mainConfig.googletagmanager,
143
143
  googleanalytics: mainConfig.googleanalytics,
144
+ promobar: mainConfig.promobar,
145
+ sitemap: mainConfig.sitemap,
144
146
  vwo: mainConfig.vwo,
145
147
  feedbackWidget: mainConfig.feedbackWidget,
146
148
  extraStyles,
@@ -153,7 +155,10 @@ module.exports = options => {
153
155
  skipGuides
154
156
  } );
155
157
  } )
156
- .then( () => hexoManager.generate( { watch } ) )
158
+ .then( () => hexoManager.generate( {
159
+ watch,
160
+ concurrency: 50
161
+ } ) )
157
162
  .then( () => buildSnippets( hexoManager.hexo.projectGlobals ) )
158
163
  .then( () => copyProjectIcons( hexoManager.hexo.projectGlobals, hexoManager.getPublicDir() ) )
159
164
  // A workaround for API guides when API generation is skipped.
@@ -252,7 +257,7 @@ async function buildProjects( rootPath, projectPaths, options = {} ) {
252
257
 
253
258
  // If the `guides` (non-empty array) or `skipGuides` options are specified, disable the `{@link...}` validator.
254
259
  if ( options.guides.length || options.skipGuides ) {
255
- hexoManager.hexo.projectGlobals.common._disabledFilters.add( parseLink.name );
260
+ hexoManager.hexo.projectGlobals.common._disabledFilters.add( parseLinks.name );
256
261
  }
257
262
 
258
263
  if ( !options.skipApi ) {
@@ -265,6 +270,8 @@ async function buildProjects( rootPath, projectPaths, options = {} ) {
265
270
  googleoptimize: options.googleoptimize,
266
271
  googletagmanager: options.googletagmanager,
267
272
  googleanalytics: options.googleanalytics,
273
+ promobar: options.promobar,
274
+ sitemap: options.sitemap,
268
275
  vwo: options.vwo,
269
276
  feedbackWidget: options.feedbackWidget,
270
277
  og: options.og,
@@ -284,6 +291,8 @@ async function buildProjects( rootPath, projectPaths, options = {} ) {
284
291
  googleoptimize: options.googleoptimize,
285
292
  googletagmanager: options.googletagmanager,
286
293
  googleanalytics: options.googleanalytics,
294
+ promobar: options.promobar,
295
+ sitemap: options.sitemap,
287
296
  vwo: options.vwo,
288
297
  feedbackWidget: options.feedbackWidget,
289
298
  og: options.og,
@@ -337,6 +346,7 @@ async function buildProjects( rootPath, projectPaths, options = {} ) {
337
346
  googleoptimize: options.googleoptimize,
338
347
  googletagmanager: options.googletagmanager,
339
348
  googleanalytics: options.googleanalytics,
349
+ promobar: options.promobar,
340
350
  vwo: options.vwo,
341
351
  feedbackWidget: options.feedbackWidget,
342
352
  extraStylePaths: extraStyles,
@@ -390,15 +400,16 @@ async function getProjectConfigs( rootPath, projectPaths, options = {} ) {
390
400
  }
391
401
 
392
402
  // Renders API docs HTML. API docs are rendered separate from hexo so hexo filters and helpers are not available.
393
- function buildApis( projectConfigs, options = {} ) {
403
+ async function buildApis( projectConfigs, options = {} ) {
394
404
  // Basic project info like name and BASE_PATH required by templates.
395
405
  const basicProjectsData = getBasicProjectsData( projectConfigs );
396
406
  const promises = [];
407
+ const outputDir = upath.relative( process.cwd(), hexoManager.getPublicDir() );
397
408
 
398
- projectConfigs.forEach( config => {
409
+ for ( const config of projectConfigs ) {
399
410
  // If umberto.json doesn't have a config for API docs, we can skip here.
400
411
  if ( !config.groups || !config.groups.find( group => group.id === 'api-reference' ) ) {
401
- return;
412
+ continue;
402
413
  }
403
414
 
404
415
  const apiConfig = config.groups.find( group => group.id === 'api-reference' );
@@ -418,10 +429,10 @@ function buildApis( projectConfigs, options = {} ) {
418
429
  throw new Error( `Not enough api-reference data in umberto.json, project: ${ config.name }` );
419
430
  }
420
431
 
421
- const apiDocs = buildApi( {
432
+ const apiDocsPromise = buildApi( {
422
433
  src: upath.join( config.projectRootPath, config.path, apiConfig.sourceDir ),
423
434
  projectDst: upath.join( BASE_PATH, apiConfig.slug ),
424
- outputDir: hexoManager.getPublicDir().replace( process.cwd(), '' ),
435
+ outputDir,
425
436
  themePath: hexoManager.getThemePath(),
426
437
  BASE_PATH,
427
438
  docSearch: options.docSearch,
@@ -430,6 +441,7 @@ function buildApis( projectConfigs, options = {} ) {
430
441
  projectsData: basicProjectsData,
431
442
  extraStylePaths: options.extraStyles,
432
443
  extraScriptsPaths: options.extraScripts,
444
+ sitemap: config.sitemap || options.sitemap,
433
445
  umbertoVersion,
434
446
  projectLocals: {
435
447
  extraStylePaths: extraStyles,
@@ -444,25 +456,33 @@ function buildApis( projectConfigs, options = {} ) {
444
456
  googleoptimize: options.googleoptimize,
445
457
  googletagmanager: options.googletagmanager,
446
458
  googleanalytics: options.googleanalytics,
459
+ promobar: options.promobar,
447
460
  vwo: options.vwo,
448
461
  feedbackWidget: options.feedbackWidget,
449
462
  pathJoin: upath.join,
450
- mainOg: options.og || {}
463
+ mainOg: options.og || {},
464
+ isLegacy: false,
465
+ isNightly: options.docSearch?.indexName?.includes( 'nightly' ) || false
451
466
  },
452
467
  projectConfig: config,
453
468
  canonicalUrlBeginning: getCanonicalBeginning( { config, options, hexoManager } )
469
+ } ).then( apiDocs => {
470
+ // API docs navigation tree is rendered once and reused as HTML.
471
+ config.navTree = apiDocs.getNavTree();
472
+ // API errors documentation is stored here so that it's available in guides (and hexo filters).
473
+ config.errorsHtml = apiDocs.getErrors();
474
+ hexoManager.addProjectGlobalData( config.slug, 'doclets', apiDocs.getDataCollection() );
475
+
476
+ bindProjectGlobals( hexoManager.hexo, {
477
+ rootPath: config.projectRootPath,
478
+ basePath: BASE_PATH,
479
+ config,
480
+ errorsHtml: config.errorsHtml
481
+ } );
454
482
  } );
455
483
 
456
- promises.push(
457
- writeHtmlFiles( apiDocs.getFiles() )
458
- );
459
-
460
- // API docs navigation tree is rendered once and reused as HTML.
461
- config.navTree = apiDocs.getNavTree();
462
- // API errors documentation is stored here so that it's available in guides (and hexo filters).
463
- config.errorsHtml = apiDocs.getErrors();
464
- hexoManager.addProjectGlobalData( config.slug, 'doclets', apiDocs.getDataCollection() );
465
- } );
484
+ promises.push( apiDocsPromise );
485
+ }
466
486
 
467
487
  return Promise.all( promises );
468
488
  }
@@ -470,6 +490,7 @@ function buildApis( projectConfigs, options = {} ) {
470
490
  function buildSdks( projectConfigs, options = {} ) {
471
491
  const promises = [];
472
492
  const basicProjectsData = getBasicProjectsData( projectConfigs );
493
+ const outputDir = upath.relative( process.cwd(), hexoManager.getPublicDir() );
473
494
 
474
495
  projectConfigs.forEach( config => {
475
496
  const sdkGroup = config.groups && config.groups.find( group => group.id === 'sdk' );
@@ -491,7 +512,7 @@ function buildSdks( projectConfigs, options = {} ) {
491
512
  );
492
513
 
493
514
  const sdk = buildSdk( {
494
- outputDir: hexoManager.getPublicDir().replace( process.cwd(), '' ),
515
+ outputDir,
495
516
  srcPath: sdkGroup.sourceDir,
496
517
  projectRootPath: config.projectRootPath,
497
518
  projectPath: config.path,
@@ -503,6 +524,7 @@ function buildSdks( projectConfigs, options = {} ) {
503
524
  umbertoVersion,
504
525
  extraStylePaths: options.extraStyles,
505
526
  extraScriptsPaths: options.extraScripts,
527
+ sitemap: config.sitemap || options.sitemap,
506
528
  projectLocals: {
507
529
  disableSearch: config.docsearch === false,
508
530
  extraStylePaths: extraStyles,
@@ -513,6 +535,7 @@ function buildSdks( projectConfigs, options = {} ) {
513
535
  googleoptimize: options.googleoptimize,
514
536
  googletagmanager: options.googletagmanager,
515
537
  googleanalytics: options.googleanalytics,
538
+ promobar: options.promobar,
516
539
  vwo: options.vwo,
517
540
  feedbackWidget: options.feedbackWidget,
518
541
  pathJoin: upath.join,
@@ -529,13 +552,13 @@ function buildSdks( projectConfigs, options = {} ) {
529
552
  // Copy assets
530
553
  copyFiles(
531
554
  upath.join( config.projectRootPath, config.path, sdkGroup.sourceDir, 'assets' ),
532
- upath.join( '.', hexoManager.getPublicDir().replace( process.cwd(), '' ), BASE_PATH, sdkGroup.slug, 'assets' )
555
+ upath.join( '.', outputDir, BASE_PATH, sdkGroup.slug, 'assets' )
533
556
  );
534
557
 
535
558
  // Copy CKEditor from presets
536
559
  copyFiles(
537
560
  upath.join( config.projectRootPath, config.path, sdkGroup.sourceDir, 'vendors' ),
538
- upath.join( '.', hexoManager.getPublicDir().replace( process.cwd(), '' ), 'vendors', config.version )
561
+ upath.join( '.', outputDir, 'vendors', config.version )
539
562
  );
540
563
 
541
564
  config.sdkNavTree = sdk.navigationHtml;
@@ -27,7 +27,7 @@ module.exports = ( src, dst ) => {
27
27
  if ( !fs.existsSync( cachePath ) ) {
28
28
  try {
29
29
  fs.copySync( p, cachePath );
30
- } catch ( err ) {
30
+ } catch {
31
31
  console.error( `Error when caching file ${ p } to ${ cachePath }` );
32
32
  }
33
33
 
@@ -40,7 +40,7 @@ module.exports = ( src, dst ) => {
40
40
  if ( currentStats.size !== cachedStats.size || currentStats.mtime > cachedStats.mtime ) {
41
41
  try {
42
42
  fs.copySync( p, cachePath );
43
- } catch ( err ) {
43
+ } catch {
44
44
  console.error( `Error when caching file ${ p } to ${ cachePath }` );
45
45
  }
46
46