umberto 7.0.2 → 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.
- package/CHANGELOG.md +20 -1799
- 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 +99 -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/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 +269 -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 +339 -0
- package/scripts/filter/before-post-render/gloria/render-post-render-pug-components.js +94 -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-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 +172 -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 +67 -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 +9 -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 +5 -5
- package/src/tasks/build-documentation.js +45 -22
- 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/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 +34 -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 +227 -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 +67 -0
- package/themes/umberto/layout/gloria/_components/code-switcher/_style.scss +41 -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 +31 -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 +23 -0
- package/themes/umberto/layout/gloria/{_mixin → _components/nav-tree}/nav-tree-level.pug +31 -11
- 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/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 +38 -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 +20 -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 +43 -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/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/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 +51 -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 +15 -0
- package/themes/umberto/src/gloria/css/base/_links.scss +30 -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 +68 -0
- package/themes/umberto/src/gloria/css/base/_typography.scss +62 -0
- package/themes/umberto/src/gloria/css/components/_api-collapsing-list.scss +148 -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 +55 -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 +126 -0
- package/themes/umberto/src/gloria/css/doc/_typography.scss +5 -0
- package/themes/umberto/src/gloria/css/layout/_base.scss +27 -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 +96 -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 +226 -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 +184 -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/_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
package/LICENSE.md
CHANGED
|
@@ -5,12 +5,51 @@ Copyright (c) 2017-2025, [CKSource](http://cksource.com) Holding sp. z o.o. All
|
|
|
5
5
|
|
|
6
6
|
Licensed under the terms of [MIT License](https://opensource.org/licenses/MIT).
|
|
7
7
|
|
|
8
|
-
Sources of Intellectual Property Included in
|
|
8
|
+
Sources of Intellectual Property Included in Umberto
|
|
9
9
|
-----------------------------------------------------
|
|
10
10
|
|
|
11
|
-
Where not otherwise indicated, all
|
|
11
|
+
Where not otherwise indicated, all Umberto content is authored by CKSource engineers and consists of CKSource-owned intellectual property. In some specific instances, Umberto will incorporate work done by developers outside of CKSource with their express permission.
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
----------
|
|
13
|
+
The following libraries are included in Umberto under the [MIT license](https://opensource.org/licenses/MIT):
|
|
15
14
|
|
|
16
|
-
|
|
15
|
+
* @babel/core - Copyright (c) 2014-present Sebastian McKenzie and other contributors
|
|
16
|
+
* @babel/preset-env - Copyright (c) 2014-present Sebastian McKenzie and other contributors
|
|
17
|
+
* babel-loader - Copyright (c) 2014-2019 Luís Couto <hello@luiscouto.pt>
|
|
18
|
+
* cheerio - Copyright (c) 2022 The Cheerio contributors
|
|
19
|
+
* escape-string-regexp - Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
|
|
20
|
+
* fs-extra - Copyright (c) 2011-2024 JP Richardson
|
|
21
|
+
* hexo - Copyright (c) 2012-present Tommy Chen
|
|
22
|
+
* hexo-generator-archive - Copyright (c) 2014 Tommy Chen
|
|
23
|
+
* hexo-generator-category - Copyright (c) 2014 Tommy Chen
|
|
24
|
+
* hexo-generator-index - Copyright (c) 2014 Tommy Chen
|
|
25
|
+
* hexo-generator-tag - Copyright (c) 2014 Tommy Chen
|
|
26
|
+
* hexo-render-pug - Copyright (c) Max Knee
|
|
27
|
+
* hexo-renderer-markdown-it-plus - Copyright (c) 2017 CHENXCHEN
|
|
28
|
+
* htmlparser2 - Copyright 2010, 2011, Chris Winberry <chris@winberry.net>
|
|
29
|
+
* javascript-stringify - Copyright (c) 2013 Blake Embrey (hello@blakeembrey.com)
|
|
30
|
+
* jquery - Copyright OpenJS Foundation and other contributors, https://openjsf.org/
|
|
31
|
+
* js-beautify - Copyright (c) 2007-2018 Einar Lielmanis, Liam Newman, and contributors.
|
|
32
|
+
* lodash - Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
|
|
33
|
+
* markdown-it - Copyright (c) 2014 Vitaly Puzrin, Alex Kocharin.
|
|
34
|
+
* markdown-it-toc-and-anchor - Copyright (c) 2015 Maxime Thirouin
|
|
35
|
+
* medium-zoom - Copyright (c) 2016-present François Chalifour
|
|
36
|
+
* moment - Copyright (c) JS Foundation and other contributors
|
|
37
|
+
* pug - Copyright (c) 2009-2014 TJ Holowaychuk <tj@vision-media.ca>
|
|
38
|
+
* sass - Copyright (c) 2016, Google Inc.
|
|
39
|
+
* sitemap - Copyright (c) 2011 Eugene Kalinin
|
|
40
|
+
* tippy.js - Copyright (c) 2017-present atomiks
|
|
41
|
+
* tree-model - Copyright (c) 2013 João Nuno Silva
|
|
42
|
+
* upath - Copyright(c) 2014-2020 Angelos Pikoulas (agelos.pikoulas@gmail.com)
|
|
43
|
+
* vnu-jar - Copyright (c) 2007-2016 Mozilla Foundation
|
|
44
|
+
* webpack - Copyright JS Foundation and other contributors
|
|
45
|
+
|
|
46
|
+
The following libraries are included in Umberto under the [Apache License, version 2.0](https://opensource.org/license/apache-2-0/):
|
|
47
|
+
|
|
48
|
+
* fuse.js - Copyright 2017 Kirollos Risk
|
|
49
|
+
|
|
50
|
+
The following libraries are included in Umberto under the [ISC license](https://opensource.org/license/isc-license-txt):
|
|
51
|
+
|
|
52
|
+
* glob - Copyright (c) 2009-2023 Isaac Z. Schlueter and Contributors
|
|
53
|
+
* markdown-it-expand-tabs - Copyright (c) 2016, Revin Guillen
|
|
54
|
+
* minimatch - Copyright (c) 2011-2023 Isaac Z. Schlueter and Contributors
|
|
55
|
+
* nyc - Copyright (c) 2015, Contributors
|
package/README.md
CHANGED
|
@@ -675,6 +675,193 @@ E.g.
|
|
|
675
675
|
MAIN
|
|
676
676
|
```
|
|
677
677
|
|
|
678
|
+
## Pre-rendering components
|
|
679
|
+
|
|
680
|
+
> ⚠️ **Warning**: This feature is only available with the Gloria theme.
|
|
681
|
+
|
|
682
|
+
### Overview
|
|
683
|
+
|
|
684
|
+
Pre-rendering components lets you use XML-like custom component syntax in Markdown files that gets converted to Pug templates. This allows for a more intuitive HTML-like syntax in documentation while leveraging the power of Pug mixins for rendering complex UI components. It also reduces CLS (First Contentful Paint) by pre-rendering components before the page is fully loaded and makes the site more accessible by adding aria attributes to the components.
|
|
685
|
+
|
|
686
|
+
The main implementation can be found in `/scripts/filter/before-post-render/gloria/prerender-xml-pug-components.js`.
|
|
687
|
+
|
|
688
|
+
### How It Works
|
|
689
|
+
|
|
690
|
+
The process works in two steps:
|
|
691
|
+
|
|
692
|
+
1. **Before markdown rendering**: Components are identified, processed, and replaced with markers
|
|
693
|
+
2. **After markdown rendering**: Markers are replaced with the fully rendered components
|
|
694
|
+
|
|
695
|
+
This approach prevents Markdown processors from misinterpreting HTML indentation and nested structures, avoiding unwanted paragraph breaks, incorrect formatting, or stripped content. It's also possible to use Markdown syntax inside the component content and place nested components in the content of the previously defined component.
|
|
696
|
+
|
|
697
|
+
The component syntax is defined with a prefix `ck:`. For example:
|
|
698
|
+
|
|
699
|
+
```html
|
|
700
|
+
<ck:banner variant="primary" label="Get started" href="https://example.com">
|
|
701
|
+
This is a banner with a **link**.
|
|
702
|
+
<ck:button-link variant="secondary" label="Learn more" href="https://example.com/learn-more" />
|
|
703
|
+
</ck:banner>
|
|
704
|
+
```
|
|
705
|
+
|
|
706
|
+
Is translated into:
|
|
707
|
+
|
|
708
|
+
```pug
|
|
709
|
+
+banner({ variant: 'primary', label: 'Get started', href: 'https://example.com' })
|
|
710
|
+
| This is a banner with a **link**.
|
|
711
|
+
+button-link({ variant: 'secondary', label: 'Learn more', href: 'https://example.com/learn-more' })
|
|
712
|
+
```
|
|
713
|
+
|
|
714
|
+
### Component Definition
|
|
715
|
+
|
|
716
|
+
Components are defined in the `COMPONENTS` array in the `prerender-xml-pug-components.js` file. Each component definition includes:
|
|
717
|
+
|
|
718
|
+
* `tag`: The XML-like tag to match in Markdown content
|
|
719
|
+
* `pug`: Configuration for rendering with Pug
|
|
720
|
+
* `mixinName`: The name of the Pug mixin to call
|
|
721
|
+
* `path`: Path to the Pug file containing the mixin
|
|
722
|
+
* `allowMarkdownContent`: Whether to render markdown in the component content
|
|
723
|
+
* `slots`: Optional array of child components that can be nested
|
|
724
|
+
|
|
725
|
+
Example component definition:
|
|
726
|
+
|
|
727
|
+
```javascript
|
|
728
|
+
{
|
|
729
|
+
tag: 'ck:banner',
|
|
730
|
+
mixinName: 'banner',
|
|
731
|
+
requires: [ /* ... */ ],
|
|
732
|
+
allowMarkdownContent: true
|
|
733
|
+
}
|
|
734
|
+
```
|
|
735
|
+
|
|
736
|
+
### Slot components
|
|
737
|
+
|
|
738
|
+
```html
|
|
739
|
+
<ck:tabs>
|
|
740
|
+
<ck:tab id="desktop" label="Desktop" active="true">
|
|
741
|
+
This is the desktop tab content.
|
|
742
|
+
</ck:tab>
|
|
743
|
+
|
|
744
|
+
<ck:tab id="mobile" label="Mobile">
|
|
745
|
+
Use the **main menu button** in the upper-left corner to navigate through the documentation.
|
|
746
|
+
</ck:tab>
|
|
747
|
+
</ck:tabs>
|
|
748
|
+
```
|
|
749
|
+
|
|
750
|
+
which is translated into:
|
|
751
|
+
|
|
752
|
+
```pug
|
|
753
|
+
+tabs
|
|
754
|
+
+tab({ id: 'desktop', label: 'Desktop', active: true })
|
|
755
|
+
| This is the desktop tab content.
|
|
756
|
+
+tab({ id: 'mobile', label: 'Mobile' })
|
|
757
|
+
| Use the **main menu button** in the upper-left corner to navigate through the documentation.
|
|
758
|
+
```
|
|
759
|
+
|
|
760
|
+
The `tab` components is child mixin of the `tabs` component. It's NOT globally available. It means that you cannot use `+tab` outside of the `tabs` component and it can modify internal state of the `tabs` component.
|
|
761
|
+
|
|
762
|
+
They can be defined as follows:
|
|
763
|
+
|
|
764
|
+
```pug
|
|
765
|
+
mixin tabs( options )
|
|
766
|
+
- const tabs = {};
|
|
767
|
+
|
|
768
|
+
mixin tab({ id, label, active } = {})
|
|
769
|
+
-
|
|
770
|
+
tabs[ id ] = {
|
|
771
|
+
label,
|
|
772
|
+
active
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
- block ? block() : undefined;
|
|
776
|
+
|
|
777
|
+
.c-tabs
|
|
778
|
+
each tab, id in tabs
|
|
779
|
+
= tab.label
|
|
780
|
+
|
|
781
|
+
//- ....
|
|
782
|
+
```
|
|
783
|
+
|
|
784
|
+
### Available Components
|
|
785
|
+
|
|
786
|
+
All available components can be found in the Gloria theme's components directory: `/themes/umberto/layout/gloria/_components`.
|
|
787
|
+
|
|
788
|
+
This directory contains all Pug mixins that can be used with the pre-rendering system. Each component typically has its own subdirectory containing:
|
|
789
|
+
|
|
790
|
+
1. The primary `index.pug` file with the mixin definition
|
|
791
|
+
2. Additional files for complex components
|
|
792
|
+
3. Sometimes SCSS styles in a separate file
|
|
793
|
+
|
|
794
|
+
Some of the most commonly used components include:
|
|
795
|
+
|
|
796
|
+
* `banner` - For promotional banners
|
|
797
|
+
* `button` - Button components
|
|
798
|
+
* `callout` - For information, warning, and error callouts (info-box)
|
|
799
|
+
* `code-switcher` - For tabs that switch between code samples
|
|
800
|
+
* `svg` - For inline SVG and spritesheet icons
|
|
801
|
+
* `tabs` - For tabbed content
|
|
802
|
+
|
|
803
|
+
To see all available components and their parameters, browse the directories within the `_components` folder. Each component's implementation can be studied to understand the available options and parameters.
|
|
804
|
+
|
|
805
|
+
## Pre-rendering icons
|
|
806
|
+
|
|
807
|
+
> ⚠️ **Warning**: This feature is only available with the Gloria theme.
|
|
808
|
+
|
|
809
|
+
Icons are implemented using an SVG spritesheet approach for better performance. It means that all icons are combined into a single SVG spritesheet tag somewhere in the document. This reduces the number of HTTP requests and improves loading times. Only used icons are included in the spritesheet. In order to use additional icon you need to preload it using `preload-spritesheet-svg` mixin.
|
|
810
|
+
|
|
811
|
+
### Icon Usage
|
|
812
|
+
|
|
813
|
+
There are three ways to use icons:
|
|
814
|
+
|
|
815
|
+
1. **Using plain svg mixins**
|
|
816
|
+
```pug
|
|
817
|
+
+svg-icon({ icon: 'github', size: 'lg', title: 'GitHub' })
|
|
818
|
+
//- or
|
|
819
|
+
+svg({ file: 'icons/github', fill: 'currentColor' })
|
|
820
|
+
```
|
|
821
|
+
|
|
822
|
+
2. **Using bound component** (used in Markdown):
|
|
823
|
+
```html
|
|
824
|
+
<ck:svg-icon icon="github" size="lg" title="GitHub"></ck:svg-icon>
|
|
825
|
+
<!-- or -->-
|
|
826
|
+
<ck:svg file="icons/github" fill="currentColor" />
|
|
827
|
+
```
|
|
828
|
+
|
|
829
|
+
3. **Web Component** (used in JavaScript):
|
|
830
|
+
```html
|
|
831
|
+
<svg-icon icon="github" size="lg" title="GitHub"></svg-icon>
|
|
832
|
+
```
|
|
833
|
+
|
|
834
|
+
Remember to preload the icon before using it in JavaScript!
|
|
835
|
+
|
|
836
|
+
### Preloading Icons
|
|
837
|
+
|
|
838
|
+
For icons that will be dynamically added via JavaScript and aren't initially visible on the page, you can preload them to ensure they're included in the spritesheet:
|
|
839
|
+
|
|
840
|
+
```html
|
|
841
|
+
<ck:preload-svg-spritesheet-icon icon="menu" />
|
|
842
|
+
<!-- or -->
|
|
843
|
+
<ck:preload-spritesheet-svg file="icons/menu" />
|
|
844
|
+
```
|
|
845
|
+
|
|
846
|
+
Or using the icon mixin:
|
|
847
|
+
|
|
848
|
+
```pug
|
|
849
|
+
+preload-svg-spritesheet-icon({ icon: 'menu' })
|
|
850
|
+
//- or
|
|
851
|
+
+preload-spritesheet-svg({ file: 'icons/menu' })
|
|
852
|
+
```
|
|
853
|
+
|
|
854
|
+
### How icons are loaded
|
|
855
|
+
|
|
856
|
+
1. During the build process, all icons used with `data-spritesheet-svg` are collected
|
|
857
|
+
2. A single SVG spritesheet is created with all these icons as `<symbol>` elements
|
|
858
|
+
3. The spritesheet is injected at the beginning of the `<body>` with `display: none`
|
|
859
|
+
4. When an icon is needed, it references the spritesheet using `<use href="#icon-id"></use>`
|
|
860
|
+
|
|
861
|
+
This approach significantly reduces HTTP requests and improves page performance when multiple icons are used.
|
|
862
|
+
|
|
863
|
+
The spritesheet generator is implemented in `/scripts/filter/after-render/gloria/spritesheet-svg.js`.
|
|
864
|
+
|
|
678
865
|
## Releasing the package
|
|
679
866
|
|
|
680
867
|
CircleCI automates the release process and can release both channels: stable (`X.Y.Z`) and pre-releases (`X.Y.Z-alpha.X`, etc.).
|
|
@@ -683,13 +870,11 @@ Before you start, you need to prepare the changelog entries.
|
|
|
683
870
|
|
|
684
871
|
1. Make sure the `#master` branch is up-to-date: `git fetch && git checkout master && git pull`.
|
|
685
872
|
1. Prepare a release branch: `git checkout -b release-[YYYYMMDD]` where `YYYYMMDD` is the current day.
|
|
686
|
-
1. Generate the changelog entries: `yarn run
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
* This task checks what changed in each package and bumps the version accordingly. It won't create a new changelog entry if nothing changes at all. If changes were irrelevant (e.g., only dependencies), it would make an "_internal changes_" entry.
|
|
693
|
-
* Scan the logs printed by the tool to search for errors (incorrect changelog entries). Incorrect entries (e.g., ones without the type) should be addressed. You may need to create entries for them manually. This is done directly in CHANGELOG.md (in the root directory). Make sure to verify the proposed version after you modify the changelog.
|
|
873
|
+
1. Generate the changelog entries: `yarn run release:prepare-changelog`.
|
|
874
|
+
* You can specify the release date by passing the `--date` option, e.g., `--date=2025-06-11`.
|
|
875
|
+
* By passing the `--dry-run` option, you can check what the script will do without actually modifying the files.
|
|
876
|
+
* Read all the entries, correct poor wording and other issues, wrap code names in backticks to format them, etc.
|
|
877
|
+
* Add the missing `the/a` articles, `()` to method names, "it's" -> "its", etc.
|
|
878
|
+
* A newly introduced feature should have just one changelog entry – something like "The initial implementation of the FOO feature." with a description of what it does.
|
|
694
879
|
1. Commit all changes and prepare a new pull request targeting the `#master` branch.
|
|
695
|
-
1. Ping the `@ckeditor/ckeditor-5-
|
|
880
|
+
1. Ping the `@ckeditor/ckeditor-5-platform` team to review the pull request and trigger the release process.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "umberto",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "8.0.0",
|
|
4
4
|
"description": "CKSource Documentation builder",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"files": [
|
|
@@ -44,6 +44,7 @@
|
|
|
44
44
|
"nyc": "^17.1.0",
|
|
45
45
|
"pug": "^3.0.2",
|
|
46
46
|
"sass": "^1.54.0",
|
|
47
|
+
"shiki": "^3.4.0",
|
|
47
48
|
"sitemap": "^8.0.0",
|
|
48
49
|
"tippy.js": "^6.3.7",
|
|
49
50
|
"tree-model": "^1.0.7",
|
|
@@ -52,7 +53,7 @@
|
|
|
52
53
|
"webpack": "^5.94.0"
|
|
53
54
|
},
|
|
54
55
|
"engines": {
|
|
55
|
-
"node": ">=
|
|
56
|
+
"node": ">=22.0.0"
|
|
56
57
|
},
|
|
57
58
|
"author": "CKSource (http://cksource.com/)",
|
|
58
59
|
"license": "MIT",
|
|
@@ -63,15 +64,10 @@
|
|
|
63
64
|
"url": "https://github.com/cksource/umberto.git"
|
|
64
65
|
},
|
|
65
66
|
"lint-staged": {
|
|
66
|
-
"
|
|
67
|
+
"**/*": [
|
|
67
68
|
"eslint --quiet"
|
|
68
69
|
]
|
|
69
70
|
},
|
|
70
|
-
"eslintIgnore": [
|
|
71
|
-
"build/**",
|
|
72
|
-
"coverage/**",
|
|
73
|
-
"packages/**"
|
|
74
|
-
],
|
|
75
71
|
"hexo": {
|
|
76
72
|
"version": "7.3.0"
|
|
77
73
|
}
|
|
@@ -0,0 +1,99 @@
|
|
|
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
|
+
const renderPugComponent = require( '../../../utils/pug-renderer/render-pug-component' );
|
|
10
|
+
const hexoManager = require( '../../../../src/hexo-manager' );
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Enforce priority 30 to run it after apply design doc classes filter.
|
|
14
|
+
*/
|
|
15
|
+
hexo.extend.filter.register( 'after_post_render', page => {
|
|
16
|
+
if ( page.projectTheme !== 'gloria' ) {
|
|
17
|
+
return page;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
const $ = cheerio.load( page.content, null, false );
|
|
21
|
+
|
|
22
|
+
// Do not process h1 tags as it's processed further by Umberto and may be removed.
|
|
23
|
+
$( 'h2, h3, h4, h5, h6' ).each( ( _, heading ) => {
|
|
24
|
+
const $heading = $( heading );
|
|
25
|
+
|
|
26
|
+
if ( hasClassOrParentWithClass( $heading, 'no-transform' ) ) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
removeAllEmptyAnchors( $, heading );
|
|
31
|
+
|
|
32
|
+
const headingId = $( heading ).attr( 'id' );
|
|
33
|
+
const $container = $( '<div class="doc b-heading"></div>' );
|
|
34
|
+
|
|
35
|
+
// Create the copy button
|
|
36
|
+
const button = renderButton( {
|
|
37
|
+
hexo: hexoManager.hexo,
|
|
38
|
+
page,
|
|
39
|
+
headingId
|
|
40
|
+
} );
|
|
41
|
+
|
|
42
|
+
// Place the heading element before the container in the DOM
|
|
43
|
+
$( heading ).before( $container );
|
|
44
|
+
|
|
45
|
+
$container.append( $( heading ) );
|
|
46
|
+
$container.append( $( button ) );
|
|
47
|
+
} );
|
|
48
|
+
|
|
49
|
+
page.content = $.html();
|
|
50
|
+
|
|
51
|
+
return page;
|
|
52
|
+
}, 30 );
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Renders the button using Pug template.
|
|
56
|
+
*/
|
|
57
|
+
function renderButton( { hexo, page, headingId } ) {
|
|
58
|
+
return renderPugComponent( {
|
|
59
|
+
hexo,
|
|
60
|
+
requires: [
|
|
61
|
+
'_components/svg/index',
|
|
62
|
+
'_components/icon/index',
|
|
63
|
+
'_components/tooltip-popover/index',
|
|
64
|
+
'_components/heading-link/index'
|
|
65
|
+
],
|
|
66
|
+
mixinContextVars: {
|
|
67
|
+
page
|
|
68
|
+
},
|
|
69
|
+
component: 'heading-link',
|
|
70
|
+
componentAttrs: {
|
|
71
|
+
headingId
|
|
72
|
+
}
|
|
73
|
+
} );
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* Removes all empty anchors that were created to hold the heading links buttons.
|
|
78
|
+
*/
|
|
79
|
+
function removeAllEmptyAnchors( $, heading ) {
|
|
80
|
+
$( heading ).find( 'a' ).each( ( _, anchor ) => {
|
|
81
|
+
const $anchor = $( anchor );
|
|
82
|
+
const text = $anchor.text().trim().replace( '#', '' );
|
|
83
|
+
|
|
84
|
+
if ( !$anchor.children().length && !text ) {
|
|
85
|
+
$anchor.remove();
|
|
86
|
+
}
|
|
87
|
+
} );
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Checks if the element itself or any of its parents has the specified class.
|
|
92
|
+
*
|
|
93
|
+
* @param $element - The jQuery element to check.
|
|
94
|
+
* @param className - The class name to look for.
|
|
95
|
+
* @returns True if the element or any parent has the class, false otherwise.
|
|
96
|
+
*/
|
|
97
|
+
function hasClassOrParentWithClass( $element, className ) {
|
|
98
|
+
return $element.hasClass( className ) || $element.parents( `.${ className }` ).length > 0;
|
|
99
|
+
}
|
|
@@ -0,0 +1,145 @@
|
|
|
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
|
+
/**
|
|
11
|
+
* Global mapping of HTML elements to their corresponding design system classes.
|
|
12
|
+
*/
|
|
13
|
+
const ELEMENTS_CLASSES_MAPPINGS = {
|
|
14
|
+
'h1': 'b-h1',
|
|
15
|
+
'h2': 'b-h2',
|
|
16
|
+
'h3': 'b-h3',
|
|
17
|
+
'h4': 'b-h4',
|
|
18
|
+
'h5': 'b-h5',
|
|
19
|
+
'h6': 'b-h6',
|
|
20
|
+
'a': 'b-link',
|
|
21
|
+
|
|
22
|
+
// Text formatting elements
|
|
23
|
+
'p': 'b-paragraph',
|
|
24
|
+
'strong': 'b-bold',
|
|
25
|
+
'b': 'b-bold',
|
|
26
|
+
'em': 'b-italic',
|
|
27
|
+
'i': 'b-italic',
|
|
28
|
+
'code': 'b-inline-code',
|
|
29
|
+
'pre': 'b-code-block',
|
|
30
|
+
'blockquote': 'b-quote',
|
|
31
|
+
'hr': 'b-separator',
|
|
32
|
+
'span': 'b-text',
|
|
33
|
+
'small': 'b-small-text',
|
|
34
|
+
'sub': 'b-subscript',
|
|
35
|
+
'sup': 'b-superscript',
|
|
36
|
+
|
|
37
|
+
// List elements
|
|
38
|
+
'ul': [ 'b-list', 'b-list--unordered' ],
|
|
39
|
+
'ol': [ 'b-list', 'b-list--ordered' ],
|
|
40
|
+
'li': 'b-list__item',
|
|
41
|
+
'dl': 'b-description',
|
|
42
|
+
'dt': 'b-description__term',
|
|
43
|
+
'dd': 'b-description__details',
|
|
44
|
+
|
|
45
|
+
// Details
|
|
46
|
+
'details': 'b-details',
|
|
47
|
+
'summary': [ 'b-reset-button', 'b-details__summary' ],
|
|
48
|
+
|
|
49
|
+
// Table elements
|
|
50
|
+
'table': $element => {
|
|
51
|
+
const variant = $element.data( 'variant' ) || 'striped';
|
|
52
|
+
|
|
53
|
+
return [ 'b-table', `b-table--${ variant }` ];
|
|
54
|
+
},
|
|
55
|
+
'thead': 'b-table__header',
|
|
56
|
+
'tbody': 'b-table__body',
|
|
57
|
+
'tr': 'b-table__row',
|
|
58
|
+
'td': 'b-table__cell',
|
|
59
|
+
'th': [ 'b-table__cell', 'b-table__cell-header' ],
|
|
60
|
+
|
|
61
|
+
// Image and media elements
|
|
62
|
+
'img': 'b-image',
|
|
63
|
+
'figure': 'b-figure',
|
|
64
|
+
'figcaption': 'b-figure-caption',
|
|
65
|
+
'iframe': 'b-iframe',
|
|
66
|
+
|
|
67
|
+
// Accessibility elements
|
|
68
|
+
'kbd': 'c-keyboard-shortcut c-keyboard-shortcut--raised',
|
|
69
|
+
'mark': 'b-highlight'
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
/**
|
|
73
|
+
* Classes that are allowed to be added to elements with existing classes.
|
|
74
|
+
*/
|
|
75
|
+
const ELEMENTS_WITH_WHITELIST_CLASSES = [
|
|
76
|
+
'headerlink'
|
|
77
|
+
];
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Add design system classes to the parsed document elements.
|
|
81
|
+
* It prevents leaking of styling to the embedded third party components such
|
|
82
|
+
* as CKEditor 5, or any other components that are not part of the design system.
|
|
83
|
+
*/
|
|
84
|
+
hexo.extend.filter.register( 'after_post_render', page => {
|
|
85
|
+
if ( page.projectTheme !== 'gloria' ) {
|
|
86
|
+
return page;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
const $ = cheerio.load( page.content, null, false );
|
|
90
|
+
|
|
91
|
+
// Apply classes based on the global mapping
|
|
92
|
+
for ( const [ element, classesOrCallback ] of Object.entries( ELEMENTS_CLASSES_MAPPINGS ) ) {
|
|
93
|
+
const $elements = $( element );
|
|
94
|
+
|
|
95
|
+
$elements.each( ( _, element ) => {
|
|
96
|
+
const $element = $( element );
|
|
97
|
+
|
|
98
|
+
if ( hasClassOrParentWithClass( $element, 'no-transform' ) ) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// Add the 'doc' class to each element that gets styled
|
|
103
|
+
$element.addClass( 'doc' );
|
|
104
|
+
|
|
105
|
+
const classList = ( $element.attr( 'class' )?.split( /\s+/ ) || [] ).filter(
|
|
106
|
+
className => !ELEMENTS_WITH_WHITELIST_CLASSES.includes( className )
|
|
107
|
+
);
|
|
108
|
+
|
|
109
|
+
// Avoid applying classes to elements that already have one.
|
|
110
|
+
if ( classList.length > 1 ) {
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// Add the specified classes
|
|
115
|
+
if ( typeof classesOrCallback === 'function' ) {
|
|
116
|
+
const elementClasses = classesOrCallback( $element );
|
|
117
|
+
|
|
118
|
+
if ( Array.isArray( elementClasses ) ) {
|
|
119
|
+
$element.addClass( elementClasses.join( ' ' ) );
|
|
120
|
+
} else if ( typeof elementClasses === 'string' ) {
|
|
121
|
+
$element.addClass( elementClasses );
|
|
122
|
+
}
|
|
123
|
+
} else if ( Array.isArray( classesOrCallback ) ) {
|
|
124
|
+
$element.addClass( classesOrCallback.join( ' ' ) );
|
|
125
|
+
} else {
|
|
126
|
+
$element.addClass( classesOrCallback );
|
|
127
|
+
}
|
|
128
|
+
} );
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
page.content = $.html();
|
|
132
|
+
|
|
133
|
+
return page;
|
|
134
|
+
}, 40 );
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* Checks if the element itself or any of its parents has the specified class.
|
|
138
|
+
*
|
|
139
|
+
* @param $element - The jQuery element to check.
|
|
140
|
+
* @param className - The class name to look for.
|
|
141
|
+
* @returns True if the element or any parent has the class, false otherwise.
|
|
142
|
+
*/
|
|
143
|
+
function hasClassOrParentWithClass( $element, className ) {
|
|
144
|
+
return $element.hasClass( className ) || $element.parents( `.${ className }` ).length > 0;
|
|
145
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
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
|
+
/**
|
|
11
|
+
* Enforce priority 30 to run it after apply design doc classes filter.
|
|
12
|
+
*/
|
|
13
|
+
hexo.extend.filter.register( 'after_post_render', page => {
|
|
14
|
+
if ( page.projectTheme !== 'gloria' ) {
|
|
15
|
+
return page;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const $ = cheerio.load( page.content, null, false );
|
|
19
|
+
|
|
20
|
+
$( 'table' ).each( ( _, table ) => {
|
|
21
|
+
if ( $( table ).parent().prop( 'tagName' ) !== 'FIGURE' ) {
|
|
22
|
+
// If the table is not wrapped in a figure, wrap it.
|
|
23
|
+
$( table ).wrap( '<figure class="doc b-table-wrapper"></figure>' );
|
|
24
|
+
}
|
|
25
|
+
} );
|
|
26
|
+
|
|
27
|
+
page.content = $.html();
|
|
28
|
+
|
|
29
|
+
return page;
|
|
30
|
+
}, 30 );
|
|
@@ -35,7 +35,7 @@ hexo.extend.filter.register( 'after_post_render', page => {
|
|
|
35
35
|
imgWidth = ` width="${ width }"`;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
return `<img src="${ imgSrc }" data-lightbox="true" alt="${ alt }"${ imgWidth }>`;
|
|
38
|
+
return `<img src="${ imgSrc }" loading="lazy" decoding="async" data-lightbox="true" alt="${ alt }"${ imgWidth }>`;
|
|
39
39
|
} );
|
|
40
40
|
|
|
41
41
|
return page;
|
|
@@ -49,7 +49,7 @@ hexo.extend.filter.register( 'after_post_render', page => {
|
|
|
49
49
|
$( this ).attr( 'href', relativeUrlHelper( page.path, hrefPath ) );
|
|
50
50
|
} );
|
|
51
51
|
|
|
52
|
-
page.content = page.content.replace(
|
|
52
|
+
page.content = page.content.replace( /<p[^>]*>{@errors}<\/p>/g, () => {
|
|
53
53
|
return $.html();
|
|
54
54
|
} );
|
|
55
55
|
}, 39 );
|
|
@@ -51,6 +51,7 @@ hexo.extend.filter.register( 'after_post_render', data => {
|
|
|
51
51
|
snippetsData.get( data.projectName ).add( {
|
|
52
52
|
snippetSources: getSnippetSourcePaths( snippetsBasePath, snippetDetails.name ),
|
|
53
53
|
snippetName: snippetDetails.name,
|
|
54
|
+
snippetSize: snippetDetails.size,
|
|
54
55
|
outputPath,
|
|
55
56
|
basePath: basePathRelative,
|
|
56
57
|
relativeOutputPath,
|
|
@@ -74,9 +75,12 @@ function getSnippetTags( content ) {
|
|
|
74
75
|
let match;
|
|
75
76
|
|
|
76
77
|
while ( ( match = SNIPPET_REGEXP.exec( content ) ) ) {
|
|
78
|
+
const snippetParams = match[ 1 ].split( ' ' );
|
|
79
|
+
|
|
77
80
|
snippetTags.add( {
|
|
78
81
|
snippetHTML: match[ 0 ],
|
|
79
|
-
name:
|
|
82
|
+
name: snippetParams[ 0 ],
|
|
83
|
+
size: snippetParams[ 1 ] || 'normal'
|
|
80
84
|
} );
|
|
81
85
|
}
|
|
82
86
|
|
|
@@ -0,0 +1,14 @@
|
|
|
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 inlineSvg = require( '../../../utils/inline-svg' );
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Inlines SVG icons into HTML elements with data-inline-svg-image attribute.
|
|
12
|
+
* The attribute value should contain the path to the SVG file.
|
|
13
|
+
*/
|
|
14
|
+
hexo.extend.filter.register( 'after_render:html', inlineSvg );
|
|
@@ -0,0 +1,14 @@
|
|
|
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 spritesheetSvg = require( '../../../utils/spritesheet-svg' );
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Creates a spritesheet from SVG files referenced by data-spritesheet-svg attributes
|
|
12
|
+
* and injects it at the beginning of the body with display: none.
|
|
13
|
+
*/
|
|
14
|
+
hexo.extend.filter.register( 'after_render:html', spritesheetSvg );
|