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.
- package/CHANGELOG.md +29 -1798
- package/LICENSE.md +44 -5
- package/README.md +194 -9
- package/package.json +4 -8
- package/scripts/filter/after-post-render/gloria/append-copy-heading-buttons.js +90 -0
- package/scripts/filter/after-post-render/gloria/apply-design-doc-classes.js +145 -0
- package/scripts/filter/after-post-render/gloria/wrap-table-into-wrappers.js +30 -0
- package/scripts/filter/after-post-render/img-linker.js +1 -1
- package/scripts/filter/after-post-render/insert-error-codes.js +1 -1
- package/scripts/filter/after-post-render/linker.js +1 -1
- package/scripts/filter/after-post-render/parseicontag.js +1 -1
- package/scripts/filter/after-post-render/snippets.js +5 -1
- package/scripts/filter/after-render/gloria/inline-svg.js +14 -0
- package/scripts/filter/after-render/gloria/spritesheet-svg.js +14 -0
- package/scripts/filter/before-post-render/add-project-info-to-page.js +1 -1
- package/scripts/filter/before-post-render/code-switcher.js +4 -0
- package/scripts/filter/before-post-render/execute-and-insert-function-results.js +3 -1
- package/scripts/filter/before-post-render/gloria/add-breadcrumbs-data-to-page.js +276 -0
- package/scripts/filter/before-post-render/gloria/prerender-admonitions.js +27 -0
- package/scripts/filter/before-post-render/gloria/prerender-xml-pug-components.js +352 -0
- package/scripts/filter/before-post-render/gloria/render-post-render-pug-components.js +102 -0
- package/scripts/filter/before-post-render/set-layout.js +4 -2
- package/scripts/helper/parse-href.js +28 -0
- package/scripts/helper/u-capitalize.js +13 -0
- package/scripts/helper/u-extract-and-cache-title.js +36 -0
- package/scripts/helper/u-random-id.js +16 -0
- package/scripts/helper/u-remove-indentation.js +13 -0
- package/scripts/helper/u-toc.js +2 -63
- package/scripts/utils/add-indention.js +16 -0
- package/scripts/utils/capitalize.js +17 -0
- package/scripts/utils/concat-url-parts.js +19 -0
- package/scripts/utils/decode-html-entities.js +25 -0
- package/scripts/utils/drop-init-slash.js +14 -0
- package/scripts/utils/drop-trailing-slash.js +14 -0
- package/scripts/utils/drop-url-protocol.js +10 -0
- package/scripts/utils/inline-svg.js +152 -0
- package/scripts/utils/measure-call.js +16 -0
- package/scripts/utils/parse-href.js +37 -0
- package/scripts/utils/parseicontag.js +1 -1
- package/scripts/utils/parselinks.js +27 -6
- package/scripts/utils/parser-cursor.js +280 -0
- package/scripts/utils/pipe.js +17 -0
- package/scripts/utils/pug-renderer/create-prerender-pug-template.js +185 -0
- package/scripts/utils/pug-renderer/render-pug-component.js +73 -0
- package/scripts/utils/pug-to-xml-binding/parser/walk-xml-tree.js +150 -0
- package/scripts/utils/pug-to-xml-binding/parser/xml-components-parser.js +414 -0
- package/scripts/utils/pug-to-xml-binding/render-xml-pug-components-in-markdown.js +193 -0
- package/scripts/utils/pug-to-xml-binding/transform-xml-tree-to-pug.js +144 -0
- package/scripts/utils/random-id.js +75 -0
- package/scripts/utils/remove-indentation.js +48 -0
- package/scripts/utils/spritesheet-svg.js +183 -0
- package/scripts/utils/toc.js +71 -0
- package/scripts/utils/transform-markdown-admonitions.js +98 -0
- package/scripts/utils/uniq-by-last.js +32 -0
- package/src/api-builder/api-builder.js +49 -18
- package/src/api-builder/classes/description-parser.js +61 -10
- package/src/api-builder/classes/doc-data-factory.js +2 -2
- package/src/helpers/github-url.js +1 -1
- package/src/helpers/templates/scripts/default.js +1 -1
- package/src/helpers/templates/scripts/group.js +1 -1
- package/src/hexo/filter/project-locals.js +12 -0
- package/src/hexo/get-repo-urls.js +1 -1
- package/src/hexo/project-globals.js +4 -0
- package/src/hexo-manager.js +7 -2
- package/src/sdk-builder/sdk-builder.js +4 -4
- package/src/tasks/build-api-docs.js +6 -6
- package/src/tasks/build-documentation.js +57 -24
- package/src/tasks/cache-files.js +2 -2
- package/src/tasks/compile-sass.js +12 -0
- package/src/tasks/copy-assets.js +4 -0
- package/src/tasks/copy-project-icons.js +1 -1
- package/src/tasks/get-extra-files.js +1 -1
- package/src/tasks/get-project-config.js +1 -1
- package/src/tasks/overwrite-api-guides.js +1 -1
- package/src/tasks/validate-links.js +211 -39
- package/themes/umberto/layout/gloria/404.pug +25 -16
- package/themes/umberto/layout/gloria/_api-docs/_header/_style.scss +31 -0
- package/themes/umberto/layout/gloria/_api-docs/_header/index.pug +50 -0
- package/themes/umberto/layout/gloria/_api-docs/_mixin/_api-see-source.pug +1 -4
- package/themes/umberto/layout/gloria/_api-docs/_mixin/_api-tree-item.pug +42 -26
- package/themes/umberto/layout/gloria/_api-docs/_mixin/_class-item.pug +20 -13
- package/themes/umberto/layout/gloria/_api-docs/_mixin/_dev-names.pug +1 -1
- package/themes/umberto/layout/gloria/_api-docs/_mixin/_error.pug +10 -5
- package/themes/umberto/layout/gloria/_api-docs/_mixin/_hierarchy-list.pug +1 -1
- package/themes/umberto/layout/gloria/_api-docs/_mixin/_link-or-text.pug +1 -1
- package/themes/umberto/layout/gloria/_api-docs/_mixin/_method.pug +45 -39
- package/themes/umberto/layout/gloria/_api-docs/_mixin/_property.pug +26 -20
- package/themes/umberto/layout/gloria/_api-docs/_mixin/_related.pug +1 -1
- package/themes/umberto/layout/gloria/_api-docs/_mixin/_toc-list-item.pug +11 -0
- package/themes/umberto/layout/gloria/_api-docs/_partial/api-subheader.pug +0 -11
- package/themes/umberto/layout/gloria/_api-docs/_partial/api-toc.pug +33 -0
- package/themes/umberto/layout/gloria/_api-docs/_partial/classes.pug +5 -4
- package/themes/umberto/layout/gloria/_api-docs/_partial/config-options.pug +5 -4
- package/themes/umberto/layout/gloria/_api-docs/_partial/constants.pug +1 -1
- package/themes/umberto/layout/gloria/_api-docs/_partial/description.pug +2 -2
- package/themes/umberto/layout/gloria/_api-docs/_partial/events.pug +5 -4
- package/themes/umberto/layout/gloria/_api-docs/_partial/functions.pug +5 -4
- package/themes/umberto/layout/gloria/_api-docs/_partial/interfaces.pug +1 -1
- package/themes/umberto/layout/gloria/_api-docs/_partial/methods.pug +14 -13
- package/themes/umberto/layout/gloria/_api-docs/_partial/namespaces.pug +1 -1
- package/themes/umberto/layout/gloria/_api-docs/_partial/navtree.pug +4 -11
- package/themes/umberto/layout/gloria/_api-docs/_partial/properties.pug +14 -13
- package/themes/umberto/layout/gloria/_api-docs/_partial/type-parameters.pug +15 -12
- package/themes/umberto/layout/gloria/_api-docs/_partial/typedefs.pug +5 -4
- package/themes/umberto/layout/gloria/_api-docs/_subheader/_style.scss +5 -0
- package/themes/umberto/layout/gloria/_api-docs/_subheader/index.pug +10 -0
- package/themes/umberto/layout/gloria/_api-docs/_toc/_style.scss +229 -0
- package/themes/umberto/layout/gloria/_api-docs/_toc/index.pug +11 -0
- package/themes/umberto/layout/gloria/_api-docs/api-base.pug +24 -24
- package/themes/umberto/layout/gloria/_api-docs/class.pug +4 -4
- package/themes/umberto/layout/gloria/_api-docs/errors.pug +3 -3
- package/themes/umberto/layout/gloria/_api-docs/index.pug +3 -0
- package/themes/umberto/layout/gloria/_api-docs/interface.pug +4 -4
- package/themes/umberto/layout/gloria/_api-docs/mixin.pug +4 -4
- package/themes/umberto/layout/gloria/_api-docs/module.pug +4 -4
- package/themes/umberto/layout/gloria/_api-docs/namespace.pug +4 -4
- package/themes/umberto/layout/gloria/_api-docs/typedef.pug +22 -22
- package/themes/umberto/layout/gloria/_components/badge/_style.scss +27 -0
- package/themes/umberto/layout/gloria/_components/badge/index.pug +30 -0
- package/themes/umberto/layout/gloria/_components/banner/_style.scss +133 -0
- package/themes/umberto/layout/gloria/_components/banner/index.pug +3 -0
- package/themes/umberto/layout/gloria/_components/button/_style.scss +183 -0
- package/themes/umberto/layout/gloria/_components/button/index.pug +140 -0
- package/themes/umberto/layout/gloria/_components/callout/_style.scss +56 -0
- package/themes/umberto/layout/gloria/_components/callout/index.pug +87 -0
- package/themes/umberto/layout/gloria/_components/card/_style.scss +101 -0
- package/themes/umberto/layout/gloria/_components/card/index.pug +131 -0
- package/themes/umberto/layout/gloria/_components/card-learn-more-links/_style.scss +9 -0
- package/themes/umberto/layout/gloria/_components/card-learn-more-links/index.pug +56 -0
- package/themes/umberto/layout/gloria/_components/checkbox/_style.scss +117 -0
- package/themes/umberto/layout/gloria/_components/checkbox/index.pug +35 -0
- package/themes/umberto/layout/gloria/_components/cke5-code-switcher/index.pug +39 -0
- package/themes/umberto/layout/gloria/_components/code-block/_style.scss +111 -0
- package/themes/umberto/layout/gloria/_components/code-block/index.pug +75 -0
- package/themes/umberto/layout/gloria/_components/code-switcher/_style.scss +36 -0
- package/themes/umberto/layout/gloria/_components/code-switcher/index.pug +31 -0
- package/themes/umberto/layout/gloria/_components/columns/_style.scss +54 -0
- package/themes/umberto/layout/gloria/_components/columns/index.pug +30 -0
- package/themes/umberto/layout/gloria/_components/divider/_style.scss +6 -0
- package/themes/umberto/layout/gloria/_components/divider/index.pug +13 -0
- package/themes/umberto/layout/gloria/_components/dropdown/_style.scss +88 -0
- package/themes/umberto/layout/gloria/_components/dropdown/index.pug +77 -0
- package/themes/umberto/layout/gloria/_components/fake-devtools/_style.scss +233 -0
- package/themes/umberto/layout/gloria/_components/fake-devtools/index.pug +27 -0
- package/themes/umberto/layout/gloria/_components/heading-badge/index.pug +17 -0
- package/themes/umberto/layout/gloria/_components/heading-link/_style.scss +47 -0
- package/themes/umberto/layout/gloria/_components/heading-link/index.pug +26 -0
- package/themes/umberto/layout/gloria/_components/icon/_style.scss +12 -0
- package/themes/umberto/layout/gloria/_components/icon/index.pug +75 -0
- package/themes/umberto/layout/gloria/_components/icon-message/_style.scss +13 -0
- package/themes/umberto/layout/gloria/_components/icon-message/index.pug +17 -0
- package/themes/umberto/layout/gloria/_components/iframe/_style.scss +10 -0
- package/themes/umberto/layout/gloria/_components/iframe/index.pug +22 -0
- package/themes/umberto/layout/gloria/_components/img/index.pug +17 -0
- package/themes/umberto/layout/gloria/_components/index.pug +32 -0
- package/themes/umberto/layout/gloria/_components/input/_style.scss +82 -0
- package/themes/umberto/layout/gloria/_components/input/index.pug +34 -0
- package/themes/umberto/layout/gloria/_components/json-ld/index.pug +3 -0
- package/themes/umberto/layout/gloria/_components/keyboard-shortcut/_style.scss +49 -0
- package/themes/umberto/layout/gloria/_components/keyboard-shortcut/index.pug +23 -0
- package/themes/umberto/layout/gloria/_components/menu-dropdown/_style.scss +27 -0
- package/themes/umberto/layout/gloria/_components/menu-dropdown/index.pug +40 -0
- package/themes/umberto/layout/gloria/_components/mobile-overlay/_style.scss +70 -0
- package/themes/umberto/layout/gloria/_components/mobile-overlay/index.pug +37 -0
- package/themes/umberto/layout/gloria/_components/nav-tree/_style.scss +104 -0
- package/themes/umberto/layout/gloria/_components/nav-tree/index.pug +6 -0
- package/themes/umberto/layout/gloria/_components/nav-tree/nav-tree-item.pug +27 -0
- package/themes/umberto/layout/gloria/_components/nav-tree/nav-tree-level.pug +58 -0
- package/themes/umberto/layout/gloria/_components/skeleton/_style.scss +22 -0
- package/themes/umberto/layout/gloria/_components/skeleton/index.pug +16 -0
- package/themes/umberto/layout/gloria/_components/snippet-footer/_style.scss +26 -0
- package/themes/umberto/layout/gloria/_components/snippet-footer/index.pug +10 -0
- package/themes/umberto/layout/gloria/_components/spacer/_style.scss +9 -0
- package/themes/umberto/layout/gloria/_components/spacer/index.pug +19 -0
- package/themes/umberto/layout/gloria/_components/svg/index.pug +70 -0
- package/themes/umberto/layout/gloria/_components/tabs/_style.scss +80 -0
- package/themes/umberto/layout/gloria/_components/tabs/index.pug +81 -0
- package/themes/umberto/layout/gloria/_components/tag/_style.scss +79 -0
- package/themes/umberto/layout/gloria/_components/tag/index.pug +17 -0
- package/themes/umberto/layout/gloria/_components/tooltip-popover/_style.scss +194 -0
- package/themes/umberto/layout/gloria/_components/tooltip-popover/index.pug +38 -0
- package/themes/umberto/layout/gloria/_head/head-preloads.pug +32 -0
- package/themes/umberto/layout/gloria/{_partial → _head}/head.pug +8 -4
- package/themes/umberto/layout/gloria/_head/index.pug +1 -0
- package/themes/umberto/layout/gloria/_modules/algolia-search/_style.scss +202 -0
- package/themes/umberto/layout/gloria/_modules/algolia-search/_third-party.scss +1 -0
- package/themes/umberto/layout/gloria/_modules/algolia-search/index.pug +39 -0
- package/themes/umberto/layout/gloria/_modules/breadcrumbs/_style.scss +68 -0
- package/themes/umberto/layout/gloria/_modules/breadcrumbs/index.pug +18 -0
- package/themes/umberto/layout/gloria/_modules/footer/_style.scss +40 -0
- package/themes/umberto/layout/gloria/_modules/footer/index.pug +87 -0
- package/themes/umberto/layout/gloria/_modules/header/_style.scss +181 -0
- package/themes/umberto/layout/gloria/_modules/header/index.pug +70 -0
- package/themes/umberto/layout/gloria/_modules/header/nav-link.pug +19 -0
- package/themes/umberto/layout/gloria/_modules/header/nav-links.pug +11 -0
- package/themes/umberto/layout/gloria/_modules/header/nav-project-select-dropdown.pug +16 -0
- package/themes/umberto/layout/gloria/_modules/header/nav-suffix-links.pug +20 -0
- package/themes/umberto/layout/gloria/_modules/header-bar/_style.scss +56 -0
- package/themes/umberto/layout/gloria/_modules/header-bar/index.pug +40 -0
- package/themes/umberto/layout/gloria/_modules/header-legacy-warning/index.pug +11 -0
- package/themes/umberto/layout/gloria/_modules/header-nightly-info/index.pug +21 -0
- package/themes/umberto/layout/gloria/_modules/header-promobar/index.pug +18 -0
- package/themes/umberto/layout/gloria/_modules/index.pug +14 -0
- package/themes/umberto/layout/gloria/_modules/main/_style.scss +54 -0
- package/themes/umberto/layout/gloria/_modules/main/index.pug +10 -0
- package/themes/umberto/layout/gloria/_modules/mobile-nav/_style.scss +106 -0
- package/themes/umberto/layout/gloria/_modules/mobile-nav/index.pug +121 -0
- package/themes/umberto/layout/gloria/_modules/mobile-nav/slide-parts.pug +67 -0
- package/themes/umberto/layout/gloria/_modules/not-found/_style.scss +38 -0
- package/themes/umberto/layout/gloria/_modules/not-found/index.pug +16 -0
- package/themes/umberto/layout/gloria/_modules/sidebar/_style.scss +147 -0
- package/themes/umberto/layout/gloria/_modules/sidebar/index.pug +24 -0
- package/themes/umberto/layout/gloria/_modules/sidebar-api/_style.scss +2 -0
- package/themes/umberto/layout/gloria/_modules/sidebar-api/index.pug +6 -0
- package/themes/umberto/layout/gloria/_modules/toc/_style.scss +201 -0
- package/themes/umberto/layout/gloria/_modules/toc/index.pug +10 -0
- package/themes/umberto/layout/gloria/_trackers/google-tag-manager.pug +14 -0
- package/themes/umberto/layout/gloria/_trackers/index.pug +2 -0
- package/themes/umberto/layout/gloria/api.pug +42 -20
- package/themes/umberto/layout/gloria/base.pug +23 -32
- package/themes/umberto/layout/gloria/index.pug +19 -13
- package/themes/umberto/layout/gloria/page.pug +30 -11
- package/themes/umberto/layout/gloria/sdk.pug +1 -1
- package/themes/umberto/layout/gloria/theme.pug +304 -0
- package/themes/umberto/layout/umberto/404.pug +0 -1
- package/themes/umberto/layout/umberto/_partial/report-issue-widget.pug +0 -3
- package/themes/umberto/source/gloria/assets/_fonts/Lato/Lato-Bold.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Lato/Lato-Bold.woff2 +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Lato/Lato-BoldItalic.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Lato/Lato-BoldItalic.woff2 +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Lato/Lato-Italic.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Lato/Lato-Italic.woff2 +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Lato/Lato-Regular.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Lato/Lato-Regular.woff2 +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Menlo/Menlo-Regular.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Menlo/Menlo-Regular.woff +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Mulish/Mulish-Italic-VariableFont_wght.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Mulish/Mulish-Italic-VariableFont_wght.woff2 +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Mulish/Mulish-VariableFont_wght.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Mulish/Mulish-VariableFont_wght.woff2 +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-Black.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-BlackItalic.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-Bold.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-BoldItalic.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-ExtraBold.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-ExtraBoldItalic.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-ExtraLight.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-ExtraLightItalic.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-Italic.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-Light.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-LightItalic.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-Medium.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-MediumItalic.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-Regular.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-SemiBold.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Mulish/static/Mulish-SemiBoldItalic.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/PublicSans-Italic-VariableFont_wght.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/PublicSans-Italic-VariableFont_wght.woff2 +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/PublicSans-VariableFont_wght.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/PublicSans-VariableFont_wght.woff2 +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Black.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-BlackItalic.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Bold.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-BoldItalic.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-ExtraBold.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-ExtraBoldItalic.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-ExtraLight.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-ExtraLightItalic.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Italic.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Light.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-LightItalic.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Medium.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-MediumItalic.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Regular.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-SemiBold.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-SemiBoldItalic.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-Thin.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_fonts/Public_Sans/static/PublicSans-ThinItalic.ttf +0 -0
- package/themes/umberto/source/gloria/assets/_img/404-billboard.svg +181 -0
- package/themes/umberto/source/gloria/assets/_img/ckeditor-logo.svg +15 -0
- package/themes/umberto/source/gloria/assets/_img/hex-bg-2.svg +10 -0
- package/themes/umberto/source/gloria/assets/_img/hex-bg.svg +10 -0
- package/themes/umberto/source/gloria/assets/_img/icons/api-class.svg +10 -0
- package/themes/umberto/source/gloria/assets/_img/icons/api-folder.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/api-interface.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/api-module.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/api-package.svg +4 -0
- package/themes/umberto/source/gloria/assets/_img/icons/api-typedef.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/bulb.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/check-circle.svg +4 -0
- package/themes/umberto/source/gloria/assets/_img/icons/check.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/chevron-down.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/chevron-right.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/close-circle.svg +4 -0
- package/themes/umberto/source/gloria/assets/_img/icons/close.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/copy.svg +10 -0
- package/themes/umberto/source/gloria/assets/_img/icons/dislike.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/download.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/edit.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/exclamation-circle.svg +4 -0
- package/themes/umberto/source/gloria/assets/_img/icons/experiment.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/export.svg +4 -0
- package/themes/umberto/source/gloria/assets/_img/icons/eye.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/filter.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/github.svg +10 -0
- package/themes/umberto/source/gloria/assets/_img/icons/info-circle.svg +4 -0
- package/themes/umberto/source/gloria/assets/_img/icons/like.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/link.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/lock.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/menu-fold.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/menu-list.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/menu.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/more.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/notification.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/number.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/premium.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/right.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/search.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/sparkles.svg +1 -0
- package/themes/umberto/source/gloria/assets/_img/icons/status.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/trash.svg +3 -0
- package/themes/umberto/source/gloria/assets/_img/icons/unordered-list.svg +5 -0
- package/themes/umberto/source/gloria/assets/_img/icons/warning.svg +10 -0
- package/themes/umberto/src/gloria/css/_fonts.scss +90 -0
- package/themes/umberto/src/gloria/css/_layers.scss +1 -0
- package/themes/umberto/src/gloria/css/_normalize.scss +118 -0
- package/themes/umberto/src/gloria/css/a11y/_focusable.scss +7 -0
- package/themes/umberto/src/gloria/css/a11y/_index.scss +4 -0
- package/themes/umberto/src/gloria/css/a11y/_mixins.scss +32 -0
- package/themes/umberto/src/gloria/css/a11y/_reduce-motion.scss +9 -0
- package/themes/umberto/src/gloria/css/a11y/_screen-reader.scss +15 -0
- package/themes/umberto/src/gloria/css/base/_buttons.scss +13 -0
- package/themes/umberto/src/gloria/css/base/_descriptions-list.scss +33 -0
- package/themes/umberto/src/gloria/css/base/_details.scss +7 -0
- package/themes/umberto/src/gloria/css/base/_headings.scss +111 -0
- package/themes/umberto/src/gloria/css/base/_iframes.scss +7 -0
- package/themes/umberto/src/gloria/css/base/_index.scss +12 -0
- package/themes/umberto/src/gloria/css/base/_inline-code.scss +16 -0
- package/themes/umberto/src/gloria/css/base/_links.scss +31 -0
- package/themes/umberto/src/gloria/css/base/_lists.scss +58 -0
- package/themes/umberto/src/gloria/css/base/_mixins.scss +3 -0
- package/themes/umberto/src/gloria/css/base/_paragraphs.scss +15 -0
- package/themes/umberto/src/gloria/css/base/_tables.scss +64 -0
- package/themes/umberto/src/gloria/css/base/_typography.scss +62 -0
- package/themes/umberto/src/gloria/css/components/_api-collapsing-list.scss +152 -0
- package/themes/umberto/src/gloria/css/components/_api-filter-dropdown.scss +17 -0
- package/themes/umberto/src/gloria/css/components/_api-item-heading.scss +58 -0
- package/themes/umberto/src/gloria/css/components/_api-tree.scss +202 -0
- package/themes/umberto/src/gloria/css/components/_hierarchy-list.scss +35 -0
- package/themes/umberto/src/gloria/css/components/_image-zoom.scss +13 -0
- package/themes/umberto/src/gloria/css/components/_index.scss +56 -0
- package/themes/umberto/src/gloria/css/components/_notification.scss +36 -0
- package/themes/umberto/src/gloria/css/components/_utils.scss +5 -0
- package/themes/umberto/src/gloria/css/doc/_details.scss +11 -0
- package/themes/umberto/src/gloria/css/doc/_editor-icons.scss +21 -0
- package/themes/umberto/src/gloria/css/doc/_images.scss +9 -0
- package/themes/umberto/src/gloria/css/doc/_index.scss +5 -0
- package/themes/umberto/src/gloria/css/doc/_snippets.scss +127 -0
- package/themes/umberto/src/gloria/css/doc/_typography.scss +5 -0
- package/themes/umberto/src/gloria/css/layout/_base.scss +17 -0
- package/themes/umberto/src/gloria/css/layout/_breakpoints.scss +88 -0
- package/themes/umberto/src/gloria/css/layout/_container.scss +38 -0
- package/themes/umberto/src/gloria/css/layout/_index.scss +6 -0
- package/themes/umberto/src/gloria/css/layout/_layout.scss +64 -0
- package/themes/umberto/src/gloria/css/layout/_mixins.scss +34 -0
- package/themes/umberto/src/gloria/css/layout/_zindex.scss +12 -0
- package/themes/umberto/src/gloria/css/modules/_index.scss +29 -0
- package/themes/umberto/src/gloria/css/modules/_utils.scss +7 -0
- package/themes/umberto/src/gloria/css/styles.scss +11 -117
- package/themes/umberto/src/gloria/css/theme/_light.scss +344 -0
- package/themes/umberto/src/gloria/css/utilities/_animation.scss +32 -0
- package/themes/umberto/src/gloria/css/utilities/_colors.scss +14 -0
- package/themes/umberto/src/gloria/css/utilities/_display.scss +13 -0
- package/themes/umberto/src/gloria/css/utilities/_flex.scss +33 -0
- package/themes/umberto/src/gloria/css/utilities/_gap.scss +8 -0
- package/themes/umberto/src/gloria/css/utilities/_index.scss +11 -0
- package/themes/umberto/src/gloria/css/utilities/_radius.scss +21 -0
- package/themes/umberto/src/gloria/css/utilities/_rotation.scss +8 -0
- package/themes/umberto/src/gloria/css/utilities/_shadows.scss +13 -0
- package/themes/umberto/src/gloria/css/utilities/_spacing.scss +97 -0
- package/themes/umberto/src/gloria/css/utilities/_stop-scrolling.scss +9 -0
- package/themes/umberto/src/gloria/css/utilities/_text.scss +42 -0
- package/themes/umberto/src/gloria/js/app.js +92 -54
- package/themes/umberto/src/gloria/js/components/api-nav-tree.js +171 -0
- package/themes/umberto/src/gloria/js/components/api-toggle.js +92 -0
- package/themes/umberto/src/gloria/js/components/base-component.js +41 -0
- package/themes/umberto/src/gloria/js/components/breadcrumbs.js +115 -0
- package/themes/umberto/src/gloria/js/components/code-block.js +229 -0
- package/themes/umberto/src/gloria/js/components/code-switcher.js +177 -0
- package/themes/umberto/src/gloria/js/components/dropdown.js +516 -0
- package/themes/umberto/src/gloria/js/components/expandable.js +79 -0
- package/themes/umberto/src/gloria/js/components/fake-devtools.js +722 -0
- package/themes/umberto/src/gloria/js/components/hash-link.js +60 -0
- package/themes/umberto/src/gloria/js/components/heading-link.js +135 -0
- package/themes/umberto/src/gloria/js/components/iframe.js +158 -0
- package/themes/umberto/src/gloria/js/{_imageModal.js → components/image-zoom.js} +1 -1
- package/themes/umberto/src/gloria/js/components/mobile-overlay.js +315 -0
- package/themes/umberto/src/gloria/js/components/nav-tree.js +164 -0
- package/themes/umberto/src/gloria/js/components/tabs.js +284 -0
- package/themes/umberto/src/gloria/js/components/tooltip-popover.js +576 -0
- package/themes/umberto/src/gloria/js/helpers/after-dom-ready.js +16 -0
- package/themes/umberto/src/gloria/js/helpers/animate-element.js +78 -0
- package/themes/umberto/src/gloria/js/helpers/body-scroll.js +22 -0
- package/themes/umberto/src/gloria/js/helpers/clamp.js +16 -0
- package/themes/umberto/src/gloria/js/helpers/classnames.js +64 -0
- package/themes/umberto/src/gloria/js/helpers/copy-to-clipboard.js +19 -0
- package/themes/umberto/src/gloria/js/helpers/create-anchor-positioning-watcher.js +46 -0
- package/themes/umberto/src/gloria/js/helpers/create-cleanup-registry.js +88 -0
- package/themes/umberto/src/gloria/js/helpers/create-hover-manager.js +93 -0
- package/themes/umberto/src/gloria/js/helpers/create-keyboard-blur-watcher.js +90 -0
- package/themes/umberto/src/gloria/js/helpers/create-keyboard-focus-cycler.js +251 -0
- package/themes/umberto/src/gloria/js/helpers/create-mutation-observer.js +49 -0
- package/themes/umberto/src/gloria/js/helpers/create-outside-click-watcher.js +39 -0
- package/themes/umberto/src/gloria/js/helpers/cubic-bezier.js +55 -0
- package/themes/umberto/src/gloria/js/helpers/date-time.js +21 -0
- package/themes/umberto/src/gloria/js/helpers/decode-html-entities.js +23 -0
- package/themes/umberto/src/gloria/js/helpers/escape-handler.js +59 -0
- package/themes/umberto/src/gloria/js/helpers/fetch-stylesheet.js +25 -0
- package/themes/umberto/src/gloria/js/helpers/find-code-lang.js +85 -0
- package/themes/umberto/src/gloria/js/helpers/focus-first-interactive.js +50 -0
- package/themes/umberto/src/gloria/js/helpers/format-html.js +181 -0
- package/themes/umberto/src/gloria/js/helpers/get-all-scrollable-parents.js +34 -0
- package/themes/umberto/src/gloria/js/helpers/get-parents-until.js +26 -0
- package/themes/umberto/src/gloria/js/helpers/highlight-code.js +18 -0
- package/themes/umberto/src/gloria/js/helpers/html-builder.js +69 -0
- package/themes/umberto/src/gloria/js/helpers/identity.js +8 -0
- package/themes/umberto/src/gloria/js/helpers/inject-resource-preload.js +51 -0
- package/themes/umberto/src/gloria/js/helpers/inject-script.js +79 -0
- package/themes/umberto/src/gloria/js/helpers/inject-stylesheet.js +108 -0
- package/themes/umberto/src/gloria/js/helpers/is-element-attached.js +28 -0
- package/themes/umberto/src/gloria/js/helpers/is-focusable.js +14 -0
- package/themes/umberto/src/gloria/js/helpers/is-hidden-element.js +8 -0
- package/themes/umberto/src/gloria/js/helpers/is-mobile.js +8 -0
- package/themes/umberto/src/gloria/js/helpers/is-unsafe-key.js +14 -0
- package/themes/umberto/src/gloria/js/helpers/lerp.js +27 -0
- package/themes/umberto/src/gloria/js/helpers/local-storage-helper.js +133 -0
- package/themes/umberto/src/gloria/js/helpers/pipe.js +8 -0
- package/themes/umberto/src/gloria/js/helpers/prefers-reduced-motion.js +13 -0
- package/themes/umberto/src/gloria/js/helpers/random-id.js +51 -0
- package/themes/umberto/src/gloria/js/helpers/sanitize-text.js +27 -0
- package/themes/umberto/src/gloria/js/helpers/scroll-to-hash.js +31 -0
- package/themes/umberto/src/gloria/js/helpers/take-last.js +19 -0
- package/themes/umberto/src/gloria/js/helpers/tap.js +11 -0
- package/themes/umberto/src/gloria/js/helpers/throttle.js +46 -0
- package/themes/umberto/src/gloria/js/helpers/timeout.js +14 -0
- package/themes/umberto/src/gloria/js/helpers/toggle-height.js +46 -0
- package/themes/umberto/src/gloria/js/helpers/tween.js +100 -0
- package/themes/umberto/src/gloria/js/helpers/wrap-around.js +39 -0
- package/themes/umberto/src/gloria/js/modules/algolia-search.js +168 -0
- package/themes/umberto/src/gloria/js/modules/api-filter.js +189 -0
- package/themes/umberto/src/gloria/js/modules/header-bar.js +154 -0
- package/themes/umberto/src/gloria/js/modules/header.js +242 -0
- package/themes/umberto/src/gloria/js/modules/links-prefetch.js +196 -0
- package/themes/umberto/src/gloria/js/modules/mobile-nav.js +327 -0
- package/themes/umberto/src/gloria/js/modules/sidebar.js +114 -0
- package/themes/umberto/src/gloria/js/modules/table-of-contents-api.js +214 -0
- package/themes/umberto/src/gloria/js/modules/table-of-contents.js +287 -0
- package/themes/umberto/src/gloria/js/public-api.js +75 -0
- package/themes/umberto/src/gloria/js/web-components/svg-icon.js +117 -0
- package/themes/umberto/src/umberto/js/_codeswitcherbuttons.js +1 -1
- package/themes/umberto/layout/gloria/_api-docs/_mixin/_api-title.pug +0 -17
- package/themes/umberto/layout/gloria/_mixin/nav-tree-item.pug +0 -13
- package/themes/umberto/layout/gloria/_mixin/nav-tree-level.pug +0 -38
- package/themes/umberto/layout/gloria/_partial/docsearch.pug +0 -21
- package/themes/umberto/layout/gloria/_partial/dropdown.pug +0 -12
- package/themes/umberto/layout/gloria/_partial/feedback-widget.pug +0 -20
- package/themes/umberto/layout/gloria/_partial/footer.pug +0 -6
- package/themes/umberto/layout/gloria/_partial/gh-contribute.pug +0 -8
- package/themes/umberto/layout/gloria/_partial/google-tag-manager.pug +0 -18
- package/themes/umberto/layout/gloria/_partial/header.pug +0 -64
- package/themes/umberto/layout/gloria/_partial/nav-tree.pug +0 -9
- package/themes/umberto/layout/gloria/_partial/report-issue-widget.pug +0 -26
- package/themes/umberto/layout/gloria/_partial/rwd-breadcrumbs.pug +0 -13
- package/themes/umberto/layout/gloria/_partial/search-box.pug +0 -6
- package/themes/umberto/layout/gloria/_partial/vwo.pug +0 -11
- package/themes/umberto/source/gloria/assets/_img/arrows.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/book.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/box-brown.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/box-orange.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/box-red.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/bulb.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/clipboard.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/cog.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/data.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/documentation.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/download.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/edit.svg +0 -2
- package/themes/umberto/source/gloria/assets/_img/exclamation-circle.svg +0 -2
- package/themes/umberto/source/gloria/assets/_img/eye.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/filter.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/filtering.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/folder.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/github.svg +0 -6
- package/themes/umberto/source/gloria/assets/_img/header-info-configs.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/header-info-events.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/header-info-methods.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/header-info-properties.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/heart.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/info-circle.svg +0 -4
- package/themes/umberto/source/gloria/assets/_img/info.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/list-nest.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/loupe.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/menu.svg +0 -4
- package/themes/umberto/source/gloria/assets/_img/plug.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/star-in-circle.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/tick.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/triangle-down.svg +0 -1
- package/themes/umberto/source/gloria/assets/_img/triangle-right.svg +0 -1
- package/themes/umberto/src/gloria/css/_api-content.scss +0 -32
- package/themes/umberto/src/gloria/css/_api-info-box.scss +0 -86
- package/themes/umberto/src/gloria/css/_api-props-filter.scss +0 -106
- package/themes/umberto/src/gloria/css/_api-see-source.scss +0 -35
- package/themes/umberto/src/gloria/css/_api-subheader.scss +0 -167
- package/themes/umberto/src/gloria/css/_api-tree.scss +0 -121
- package/themes/umberto/src/gloria/css/_badge.scss +0 -74
- package/themes/umberto/src/gloria/css/_code-switcher.scss +0 -61
- package/themes/umberto/src/gloria/css/_collapsinglist.scss +0 -262
- package/themes/umberto/src/gloria/css/_content.scss +0 -236
- package/themes/umberto/src/gloria/css/_docsearch.scss +0 -109
- package/themes/umberto/src/gloria/css/_dropdown.scss +0 -63
- package/themes/umberto/src/gloria/css/_editor-icon.scss +0 -26
- package/themes/umberto/src/gloria/css/_feedback-widget.scss +0 -11
- package/themes/umberto/src/gloria/css/_font-external.scss +0 -8
- package/themes/umberto/src/gloria/css/_footer.scss +0 -40
- package/themes/umberto/src/gloria/css/_formatted.scss +0 -285
- package/themes/umberto/src/gloria/css/_guide-content.scss +0 -37
- package/themes/umberto/src/gloria/css/_guide-sdk-tree.scss +0 -14
- package/themes/umberto/src/gloria/css/_loading-spinner.scss +0 -33
- package/themes/umberto/src/gloria/css/_main.scss +0 -59
- package/themes/umberto/src/gloria/css/_navigation.scss +0 -35
- package/themes/umberto/src/gloria/css/_notice.scss +0 -116
- package/themes/umberto/src/gloria/css/_print.scss +0 -20
- package/themes/umberto/src/gloria/css/_prism.scss +0 -223
- package/themes/umberto/src/gloria/css/_rwd-breadcrumbs.scss +0 -28
- package/themes/umberto/src/gloria/css/_rwd-menu.scss +0 -89
- package/themes/umberto/src/gloria/css/_secondary-navigation.scss +0 -152
- package/themes/umberto/src/gloria/css/_theme-dark.scss +0 -175
- package/themes/umberto/src/gloria/css/_toggler.scss +0 -46
- package/themes/umberto/src/gloria/css/_top.scss +0 -350
- package/themes/umberto/src/gloria/css/_tree.scss +0 -218
- package/themes/umberto/src/gloria/css/_warning-banner.scss +0 -46
- package/themes/umberto/src/gloria/css/components/_lightbox.scss +0 -12
- package/themes/umberto/src/gloria/css/helpers/_color.scss +0 -49
- package/themes/umberto/src/gloria/css/helpers/_font.scss +0 -60
- package/themes/umberto/src/gloria/css/helpers/_globals.scss +0 -129
- package/themes/umberto/src/gloria/css/helpers/_reset.scss +0 -52
- package/themes/umberto/src/gloria/css/helpers/_spacing.scss +0 -21
- package/themes/umberto/src/gloria/css/pages/_sdk.scss +0 -111
- package/themes/umberto/src/gloria/js/_anchors.js +0 -57
- package/themes/umberto/src/gloria/js/_apisearch.js +0 -126
- package/themes/umberto/src/gloria/js/_apitree.js +0 -67
- package/themes/umberto/src/gloria/js/_attachpermalinklistener.js +0 -50
- package/themes/umberto/src/gloria/js/_codeswitcherbuttons.js +0 -146
- package/themes/umberto/src/gloria/js/_collapsables.js +0 -135
- package/themes/umberto/src/gloria/js/_copymobileapinavigation.js +0 -26
- package/themes/umberto/src/gloria/js/_devnames.js +0 -37
- package/themes/umberto/src/gloria/js/_dropdowns.js +0 -55
- package/themes/umberto/src/gloria/js/_filtering.js +0 -139
- package/themes/umberto/src/gloria/js/_pagenavigation.js +0 -93
- package/themes/umberto/src/gloria/js/_prism.js +0 -104
- package/themes/umberto/src/gloria/js/_rwdmenu.js +0 -15
- package/themes/umberto/src/gloria/js/_samplecode.js +0 -23
- package/themes/umberto/src/gloria/js/_sidenavigation.js +0 -59
- package/themes/umberto/src/gloria/js/_toc.js +0 -93
- package/themes/umberto/src/gloria/js/_tooltips.js +0 -39
- package/themes/umberto/src/gloria/js/_warningbanner.js +0 -18
- package/themes/umberto/src/gloria/js/vendor/prism.js +0 -45
- /package/themes/umberto/layout/gloria/_api-docs/_partial/{api-info-box.pug → api-hierarchy.pug} +0 -0
- /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, '<' )
|
|
40
|
+
.replace( />/g, '>' );
|
|
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.
|
|
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 ) }
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
364
|
-
|
|
365
|
-
const begin = /<code> {4}/.exec( code );
|
|
389
|
+
if ( theme === 'gloria' ) {
|
|
390
|
+
const $code = $( 'pre code' );
|
|
366
391
|
|
|
367
|
-
if (
|
|
368
|
-
|
|
369
|
-
return match.replace( ' ', '' );
|
|
370
|
-
} );
|
|
392
|
+
if ( !$code.length ) {
|
|
393
|
+
return null;
|
|
371
394
|
}
|
|
372
395
|
|
|
373
|
-
|
|
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
|
};
|
|
@@ -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
|
};
|
|
@@ -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
|
package/src/hexo-manager.js
CHANGED
|
@@ -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 ) {
|
|
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
|
-
}
|
|
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 ) {
|
|
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
|
-
}
|
|
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(
|
|
69
|
-
const buildInfo = apiBuilder.buildApi();
|
|
70
|
-
console.timeEnd(
|
|
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.` );
|