umberto 9.0.0 → 9.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/CHANGELOG.md +21 -16
  2. package/package.json +8 -13
  3. package/scripts/filter/after-post-render/fix-code-samples.js +82 -18
  4. package/scripts/filter/after-post-render/gloria.js +27 -0
  5. package/scripts/filter/after-post-render/insert-error-codes.js +34 -26
  6. package/scripts/filter/after-post-render/validate-after-render.js +27 -6
  7. package/scripts/filter/after-render/process-svg.js +21 -0
  8. package/scripts/filter/before-post-render/gloria/render-post-render-pug-components.js +46 -18
  9. package/scripts/helper/u-extract-and-cache-title.js +27 -8
  10. package/scripts/helper/u-split-to-title-and-content.js +32 -8
  11. package/scripts/utils/gloria-after-post-render/append-copy-heading-buttons.js +119 -0
  12. package/scripts/utils/gloria-after-post-render/apply-design-doc-classes.js +157 -0
  13. package/scripts/utils/gloria-after-post-render/wrap-table-into-wrappers.js +25 -0
  14. package/scripts/utils/inline-svg.js +63 -94
  15. package/scripts/utils/spritesheet-svg.js +82 -102
  16. package/scripts/utils/toc.js +85 -31
  17. package/src/api-builder/api-builder.js +53 -40
  18. package/src/api-builder/build-page-worker.js +35 -0
  19. package/src/api-builder/classes/description-parser.js +77 -38
  20. package/src/data-converter/converters/jsduck2umberto.js +43 -15
  21. package/src/hexo/filter/project-locals.js +3 -0
  22. package/src/sdk-builder/get-sdk-sources.js +81 -44
  23. package/src/tasks/build-documentation.js +4 -0
  24. package/src/tasks/minify-html.js +1 -1
  25. package/src/tasks/validate-links-collect-worker.js +34 -0
  26. package/src/tasks/validate-links-worker.js +127 -0
  27. package/src/tasks/validate-links.js +61 -259
  28. package/themes/umberto/layout/gloria/_head/head.pug +3 -0
  29. package/themes/umberto/layout/gloria/_modules/index.pug +1 -0
  30. package/themes/umberto/layout/gloria/_modules/kapa/index.pug +0 -1
  31. package/themes/umberto/layout/gloria/_modules/sentry/index.pug +28 -0
  32. package/scripts/filter/after-post-render/gloria/append-copy-heading-buttons.js +0 -90
  33. package/scripts/filter/after-post-render/gloria/apply-design-doc-classes.js +0 -96
  34. package/scripts/filter/after-post-render/gloria/wrap-table-into-wrappers.js +0 -36
  35. package/scripts/filter/after-render/gloria/inline-svg.js +0 -14
  36. package/scripts/filter/after-render/gloria/spritesheet-svg.js +0 -14
  37. package/scripts/utils/apply-design-doc-classes.js +0 -82
  38. /package/src/tasks/{minify-worker.js → minify-html-worker.js} +0 -0
@@ -1,82 +0,0 @@
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
- * Add design system classes to the parsed document elements. If element has 0 CSS classes
12
- * it'll be considered as not styled and the design system classes will be applied.
13
-
14
- * @param options - Options for applying design classes.
15
- * @param options.elementsClassesMappings - Mappings of elements to their classes or
16
- * functions that return classes.
17
- * @param options.elementsWithWhitelistClasses - List of classes that are
18
- * considered as transparent in checks for amount of the classes.
19
- * @param options.content - The HTML content to process.
20
- */
21
- module.exports = function applyDesignDocClasses(
22
- {
23
- elementsClassesMappings,
24
- elementsWithWhitelistClasses,
25
- content
26
- }
27
- ) {
28
- const $ = cheerio.load( content, null, false );
29
-
30
- // Apply classes based on the global mapping
31
- for ( const [ element, classesOrCallback ] of Object.entries( elementsClassesMappings ) ) {
32
- const $elements = $( element );
33
-
34
- $elements.each( ( _, element ) => {
35
- const $element = $( element );
36
-
37
- if ( hasClassOrParentWithClass( $element, 'no-transform' ) ) {
38
- return;
39
- }
40
-
41
- // Add the 'doc' class to each element that gets styled
42
- $element.addClass( 'doc' );
43
-
44
- const classList = ( $element.attr( 'class' )?.split( /\s+/ ) || [] ).filter(
45
- className => !elementsWithWhitelistClasses.includes( className )
46
- );
47
-
48
- // Avoid applying classes to elements that already have one.
49
- if ( classList.length > 1 ) {
50
- return;
51
- }
52
-
53
- // Add the specified classes
54
- if ( typeof classesOrCallback === 'function' ) {
55
- const elementClasses = classesOrCallback( $element );
56
-
57
- if ( Array.isArray( elementClasses ) ) {
58
- $element.addClass( elementClasses.join( ' ' ) );
59
- } else if ( typeof elementClasses === 'string' ) {
60
- $element.addClass( elementClasses );
61
- }
62
- } else if ( Array.isArray( classesOrCallback ) ) {
63
- $element.addClass( classesOrCallback.join( ' ' ) );
64
- } else {
65
- $element.addClass( classesOrCallback );
66
- }
67
- } );
68
- }
69
-
70
- return $.html();
71
- };
72
-
73
- /**
74
- * Checks if the element itself or any of its parents has the specified class.
75
- *
76
- * @param $element - The jQuery element to check.
77
- * @param className - The class name to look for.
78
- * @returns True if the element or any parent has the class, false otherwise.
79
- */
80
- function hasClassOrParentWithClass( $element, className ) {
81
- return $element.hasClass( className ) || $element.parents( `.${ className }` ).length > 0;
82
- }