umberto 4.4.2 → 5.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 +15 -0
- package/LICENSE.md +1 -1
- package/hexo-shim.js +1 -1
- package/package.json +3 -2
- package/scripts/filter/after-post-render/basepath-replacer.js +1 -1
- package/scripts/filter/after-post-render/fix-code-samples.js +1 -1
- package/scripts/filter/after-post-render/gather-guides.js +1 -1
- package/scripts/filter/after-post-render/img-linker.js +1 -1
- package/scripts/filter/after-post-render/import-guide.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/process-variables.js +1 -1
- package/scripts/filter/after-post-render/snippets.js +1 -1
- package/scripts/filter/after-post-render/time-end.js +1 -1
- package/scripts/filter/after-post-render/time-start.js +1 -1
- package/scripts/filter/after-post-render/validate-after-render.js +1 -1
- package/scripts/filter/before-post-render/add-project-info-to-page.js +1 -1
- package/scripts/filter/before-post-render/add-repo-url.js +1 -1
- package/scripts/filter/before-post-render/change-output-path.js +1 -1
- package/scripts/filter/before-post-render/code-switcher.js +1 -1
- package/scripts/filter/before-post-render/execute-and-insert-function-results.js +1 -1
- package/scripts/filter/before-post-render/infobox.js +1 -1
- package/scripts/filter/before-post-render/insertchangelog.js +1 -1
- package/scripts/filter/before-post-render/replace-macros.js +1 -1
- package/scripts/filter/before-post-render/set-layout.js +1 -1
- package/scripts/filter/before-post-render/validate-page-data.js +1 -1
- package/scripts/helper/find-main-category-page.js +1 -1
- package/scripts/helper/get-pages-for-nav-tree.js +1 -1
- package/scripts/helper/mark-empty-categories.js +1 -1
- package/scripts/helper/normalize-badges.js +1 -1
- package/scripts/helper/u-split-to-title-and-content.js +1 -1
- package/scripts/helper/u-toc.js +1 -1
- package/scripts/utils/execute-and-insert-function-results.js +1 -1
- package/scripts/utils/findmaincategorypage.js +1 -1
- package/scripts/utils/getreportissuewidgeturl.js +1 -1
- package/scripts/utils/insertchangelog.js +1 -1
- package/scripts/utils/normalizebadges.js +1 -1
- package/scripts/utils/parseicontag.js +1 -1
- package/scripts/utils/parselinks.js +1 -1
- package/scripts/utils/shoulddisplaynewindicator.js +1 -1
- package/scripts/utils/transformcodeswitcher.js +1 -1
- package/scripts/utils/transforminfobox.js +1 -1
- package/src/api-builder/api-builder.js +1 -1
- package/src/api-builder/classes/description-parser.js +1 -1
- package/src/api-builder/classes/doc-data-factory.js +1 -1
- package/src/api-builder/classes/file-name-manager.js +1 -1
- package/src/api-builder/classes/html-file.js +1 -1
- package/src/api-builder/classes/navigation-tree.js +1 -1
- package/src/api-builder/classes/tree-node.js +1 -1
- package/src/api-builder/utils/findtargetdoclet.js +1 -1
- package/src/api-builder/utils/utils.js +1 -1
- package/src/data-converter/converters/jsdoc2umberto.js +1 -1
- package/src/data-converter/converters/jsduck2umberto.js +1 -1
- package/src/data-converter/converters/typedoc/abstractparser.js +1 -1
- package/src/data-converter/converters/typedoc/accessorparser.js +1 -1
- package/src/data-converter/converters/typedoc/classparser.js +1 -1
- package/src/data-converter/converters/typedoc/computedpropertyparser.js +1 -1
- package/src/data-converter/converters/typedoc/constantparser.js +1 -1
- package/src/data-converter/converters/typedoc/constructorparser.js +1 -1
- package/src/data-converter/converters/typedoc/errorparser.js +1 -1
- package/src/data-converter/converters/typedoc/eventparser.js +1 -1
- package/src/data-converter/converters/typedoc/functionparser.js +1 -1
- package/src/data-converter/converters/typedoc/interfaceparser.js +1 -1
- package/src/data-converter/converters/typedoc/methodparser.js +1 -1
- package/src/data-converter/converters/typedoc/moduleparser.js +1 -1
- package/src/data-converter/converters/typedoc/propertyparser.js +1 -1
- package/src/data-converter/converters/typedoc/typedoc.ts +1 -1
- package/src/data-converter/converters/typedoc/typedocconverter.js +1 -1
- package/src/data-converter/converters/typedoc/typeparser.js +1 -1
- package/src/data-converter/converters/typedoc2umberto.js +1 -1
- package/src/data-converter/data-collection.js +1 -1
- package/src/data-converter/data-provider.js +1 -1
- package/src/data-converter/doclet-collection.js +1 -1
- package/src/data-converter/middlewares/relation-fixer.js +1 -1
- package/src/helpers/capitalize.js +1 -1
- package/src/helpers/copy-file.js +1 -1
- package/src/helpers/create-filtering-data-attribs.js +1 -1
- package/src/helpers/doc-formats.js +1 -1
- package/src/helpers/escape-longname.js +1 -1
- package/src/helpers/extract-longname.js +1 -1
- package/src/helpers/get-api-infobox-tooltip.js +1 -1
- package/src/helpers/get-docsearch-config.js +1 -1
- package/src/helpers/get-file-patterns-to-process.js +1 -1
- package/src/helpers/get-short-module-path.js +1 -1
- package/src/helpers/github-url.js +1 -1
- package/src/helpers/glob-to-regexp.js +1 -1
- package/src/helpers/html-safe.js +1 -1
- package/src/helpers/import-module.js +1 -1
- package/src/helpers/is-non-empty-array.js +1 -1
- package/src/helpers/snippets.js +1 -1
- package/src/helpers/split-longname.js +1 -1
- package/src/hexo/filter/extend-config.js +1 -1
- package/src/hexo/filter/project-locals.js +1 -1
- package/src/hexo/get-repo-urls.js +1 -1
- package/src/hexo/helper/get-page-group.js +1 -1
- package/src/hexo/project-globals.js +1 -1
- package/src/hexo-manager.js +1 -1
- package/src/index.js +1 -1
- package/src/sdk-builder/get-sdk-sources.js +1 -1
- package/src/sdk-builder/sdk-builder.js +1 -1
- package/src/tasks/build-api-docs.js +1 -1
- package/src/tasks/build-documentation.js +1 -1
- package/src/tasks/build-sdk.js +1 -1
- package/src/tasks/build-snippets.js +1 -1
- package/src/tasks/cache-files.js +1 -1
- package/src/tasks/compile-sass.js +1 -1
- package/src/tasks/copy-assets.js +1 -1
- package/src/tasks/copy-files.js +1 -1
- package/src/tasks/copy-project-docs.js +1 -1
- package/src/tasks/copy-project-icons.js +1 -1
- package/src/tasks/create-redirect-page.js +1 -1
- package/src/tasks/create-sitemap.js +1 -1
- package/src/tasks/create-sym-links.js +1 -1
- package/src/tasks/execute-hooks.js +1 -1
- package/src/tasks/get-extra-files.js +1 -1
- package/src/tasks/get-hexo-config.js +1 -1
- package/src/tasks/get-main-config.js +1 -1
- package/src/tasks/get-project-config.js +1 -1
- package/src/tasks/macro-replacer.js +1 -1
- package/src/tasks/overwrite-api-guides.js +1 -1
- package/src/tasks/read-doc-sources.js +1 -1
- package/src/tasks/run-webpack.js +1 -1
- package/src/tasks/validate-html-w3c.js +1 -1
- package/src/tasks/validate-links.js +56 -37
- package/src/tasks/watcher.js +1 -1
- package/src/tasks/write-html-files.js +1 -1
- package/src/template/template-collection.js +1 -1
- package/themes/umberto/src/css/_api-content.scss +2 -2
- package/themes/umberto/src/css/_api-info-box.scss +2 -2
- package/themes/umberto/src/css/_api-props-filter.scss +2 -2
- package/themes/umberto/src/css/_api-see-source.scss +2 -2
- package/themes/umberto/src/css/_api-subheader.scss +2 -2
- package/themes/umberto/src/css/_api-tree.scss +2 -2
- package/themes/umberto/src/css/_badge.scss +2 -2
- package/themes/umberto/src/css/_code-switcher.scss +3 -3
- package/themes/umberto/src/css/_collapsinglist.scss +2 -2
- package/themes/umberto/src/css/_content.scss +2 -2
- package/themes/umberto/src/css/_docsearch.scss +2 -2
- package/themes/umberto/src/css/_dropdown.scss +2 -2
- package/themes/umberto/src/css/_editor-icon.scss +2 -2
- package/themes/umberto/src/css/_feedback-widget.scss +2 -2
- package/themes/umberto/src/css/_font-external.scss +2 -2
- package/themes/umberto/src/css/_footer.scss +2 -2
- package/themes/umberto/src/css/_formatted.scss +2 -2
- package/themes/umberto/src/css/_guide-content.scss +2 -2
- package/themes/umberto/src/css/_guide-sdk-tree.scss +2 -2
- package/themes/umberto/src/css/_loading-spinner.scss +2 -2
- package/themes/umberto/src/css/_main.scss +2 -2
- package/themes/umberto/src/css/_navigation.scss +2 -2
- package/themes/umberto/src/css/_notice.scss +2 -2
- package/themes/umberto/src/css/_print.scss +2 -2
- package/themes/umberto/src/css/_prism.scss +2 -2
- package/themes/umberto/src/css/_rwd-breadcrumbs.scss +2 -2
- package/themes/umberto/src/css/_rwd-menu.scss +2 -2
- package/themes/umberto/src/css/_secondary-navigation.scss +2 -2
- package/themes/umberto/src/css/_theme-dark.scss +2 -2
- package/themes/umberto/src/css/_toggler.scss +2 -2
- package/themes/umberto/src/css/_top.scss +2 -2
- package/themes/umberto/src/css/_tree.scss +2 -2
- package/themes/umberto/src/css/_warning-banner.scss +2 -2
- package/themes/umberto/src/css/components/_lightbox.scss +2 -2
- package/themes/umberto/src/css/helpers/_color.scss +2 -2
- package/themes/umberto/src/css/helpers/_font.scss +2 -2
- package/themes/umberto/src/css/helpers/_globals.scss +2 -2
- package/themes/umberto/src/css/helpers/_reset.scss +2 -2
- package/themes/umberto/src/css/helpers/_spacing.scss +2 -2
- package/themes/umberto/src/css/pages/_sdk.scss +2 -2
- package/themes/umberto/src/css/styles.scss +2 -2
- package/themes/umberto/src/js/_anchors.js +1 -1
- package/themes/umberto/src/js/_apisearch.js +1 -1
- package/themes/umberto/src/js/_apitree.js +1 -1
- package/themes/umberto/src/js/_attachpermalinklistener.js +1 -1
- package/themes/umberto/src/js/_codeswitcherbuttons.js +1 -1
- package/themes/umberto/src/js/_collapsables.js +1 -1
- package/themes/umberto/src/js/_copymobileapinavigation.js +1 -1
- package/themes/umberto/src/js/_devnames.js +1 -1
- package/themes/umberto/src/js/_dropdowns.js +1 -1
- package/themes/umberto/src/js/_filtering.js +1 -1
- package/themes/umberto/src/js/_imageModal.js +1 -1
- package/themes/umberto/src/js/_pagenavigation.js +1 -1
- package/themes/umberto/src/js/_prism.js +1 -1
- package/themes/umberto/src/js/_rwdmenu.js +1 -1
- package/themes/umberto/src/js/_samplecode.js +1 -1
- package/themes/umberto/src/js/_sidenavigation.js +1 -1
- package/themes/umberto/src/js/_toc.js +1 -1
- package/themes/umberto/src/js/_tooltips.js +1 -1
- package/themes/umberto/src/js/_warningbanner.js +1 -1
- package/themes/umberto/src/js/app.js +1 -1
package/src/helpers/copy-file.js
CHANGED
package/src/helpers/html-safe.js
CHANGED
package/src/helpers/snippets.js
CHANGED
package/src/hexo-manager.js
CHANGED
package/src/index.js
CHANGED
package/src/tasks/build-sdk.js
CHANGED
package/src/tasks/cache-files.js
CHANGED
package/src/tasks/copy-assets.js
CHANGED
package/src/tasks/copy-files.js
CHANGED
package/src/tasks/run-webpack.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2017-
|
|
2
|
+
* @license Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md.
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -9,6 +9,7 @@ const upath = require( 'upath' );
|
|
|
9
9
|
const fs = require( 'fs-extra' );
|
|
10
10
|
const glob = require( 'glob' );
|
|
11
11
|
const chalk = require( 'chalk' );
|
|
12
|
+
const { parseDocument } = require( 'htmlparser2' );
|
|
12
13
|
|
|
13
14
|
module.exports = ( buildPath, options = {} ) => {
|
|
14
15
|
const pattern = upath.join( buildPath, '**', '*' );
|
|
@@ -56,55 +57,53 @@ module.exports = ( buildPath, options = {} ) => {
|
|
|
56
57
|
for ( const filePath of pathsToFiles ) {
|
|
57
58
|
const invalidHrefs = new Set();
|
|
58
59
|
const content = fs.readFileSync( filePath, 'utf-8' );
|
|
59
|
-
const
|
|
60
|
-
let linkMatch = linkRegexp.exec( content );
|
|
60
|
+
const linkElements = [];
|
|
61
61
|
|
|
62
|
-
|
|
63
|
-
const fullLink = linkMatch[ 0 ];
|
|
64
|
-
let href = linkMatch[ 1 ];
|
|
65
|
-
const text = linkMatch[ 2 ];
|
|
62
|
+
processNode( parseDocument( content ), linkElements );
|
|
66
63
|
|
|
67
|
-
|
|
64
|
+
for ( let { href, text, skipValidation } of linkElements ) {
|
|
68
65
|
if (
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
66
|
+
href.match( /[a-z:]*\/\// ) ||
|
|
67
|
+
href.match( /mailto:/ ) ||
|
|
68
|
+
skipValidation
|
|
72
69
|
) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}
|
|
70
|
+
continue;
|
|
71
|
+
}
|
|
76
72
|
|
|
77
|
-
|
|
73
|
+
if ( href.endsWith( '/' ) && !href.includes( '#' ) ) {
|
|
74
|
+
href += 'index.html';
|
|
75
|
+
}
|
|
78
76
|
|
|
79
|
-
|
|
80
|
-
// Sometimes api url are obtained after resolving entire URL.
|
|
77
|
+
let resolvedPath = getResolvedPath( href, filePath, { publicDir: options.publicDir } );
|
|
81
78
|
|
|
82
|
-
|
|
83
|
-
|
|
79
|
+
if ( options.skipApi && resolvedPath.includes( '/api/' ) ) {
|
|
80
|
+
// Sometimes api url are obtained after resolving entire URL.
|
|
84
81
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
options.projectsInfo.find( i => resolvedPath.includes( `/${ i.slug }/` ) ) :
|
|
88
|
-
null;
|
|
89
|
-
const projectVersion = projectInfo ? projectInfo.version : 'latest';
|
|
82
|
+
continue;
|
|
83
|
+
}
|
|
90
84
|
|
|
91
|
-
|
|
92
|
-
|
|
85
|
+
if ( resolvedPath.includes( 'latest' ) ) {
|
|
86
|
+
const projectInfo = options.projectsInfo ?
|
|
87
|
+
options.projectsInfo.find( i => resolvedPath.includes( `/${ i.slug }/` ) ) :
|
|
88
|
+
null;
|
|
89
|
+
const projectVersion = projectInfo ? projectInfo.version : 'latest';
|
|
93
90
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
return resolvedPath.includes( info.basePath );
|
|
97
|
-
} );
|
|
91
|
+
resolvedPath = resolvedPath.replace( 'latest', projectVersion );
|
|
92
|
+
}
|
|
98
93
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
}
|
|
94
|
+
if ( options.projectsInfo ) {
|
|
95
|
+
const isCorrectLocalPath = options.projectsInfo.some( info => {
|
|
96
|
+
return resolvedPath.includes( info.basePath );
|
|
97
|
+
} );
|
|
103
98
|
|
|
104
|
-
if ( !
|
|
105
|
-
|
|
99
|
+
if ( !isCorrectLocalPath ) {
|
|
100
|
+
continue;
|
|
106
101
|
}
|
|
107
102
|
}
|
|
103
|
+
|
|
104
|
+
if ( !links.has( resolvedPath ) ) {
|
|
105
|
+
invalidHrefs.add( { href, text } );
|
|
106
|
+
}
|
|
108
107
|
}
|
|
109
108
|
|
|
110
109
|
if ( invalidHrefs.size ) {
|
|
@@ -133,7 +132,7 @@ function getResolvedPath( href, filePath, options ) {
|
|
|
133
132
|
if ( href.startsWith( '/' ) ) {
|
|
134
133
|
const commonPoint = href.match( /^\/[^/]+/ )[ 0 ];
|
|
135
134
|
|
|
136
|
-
// The `commonPoint` should be removed from the end of the`options.publicDir` string.
|
|
135
|
+
// The `commonPoint` should be removed from the end of the `options.publicDir` string.
|
|
137
136
|
// It may happen that `commonPoint` is present at the middle of that path and removing it produces invalid results.
|
|
138
137
|
// See: #909.
|
|
139
138
|
const regExpCommonPoint = new RegExp( commonPoint + '$' );
|
|
@@ -143,3 +142,23 @@ function getResolvedPath( href, filePath, options ) {
|
|
|
143
142
|
|
|
144
143
|
return upath.resolve( filePath, '..', href );
|
|
145
144
|
}
|
|
145
|
+
|
|
146
|
+
function processNode( node, linkElements ) {
|
|
147
|
+
if ( node.type === 'tag' && node.name === 'a' ) {
|
|
148
|
+
const text = node.children.find( child => child.type === 'text' )?.data;
|
|
149
|
+
const href = node.attribs?.href;
|
|
150
|
+
const skipValidation = node.attribs?.[ 'data-skip-validation' ] !== undefined;
|
|
151
|
+
|
|
152
|
+
if ( text && href ) {
|
|
153
|
+
linkElements.push( { href, text, skipValidation } );
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
if ( !node.childNodes ) {
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
for ( const childNode of node.childNodes ) {
|
|
162
|
+
processNode( childNode, linkElements );
|
|
163
|
+
}
|
|
164
|
+
}
|
package/src/tasks/watcher.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// Copyright (c) 2017-
|
|
2
|
-
// For licensing, see LICENSE.md
|
|
1
|
+
// Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
|
|
2
|
+
// For licensing, see LICENSE.md.
|
|
3
3
|
|
|
4
4
|
.main__content--api {
|
|
5
5
|
.main-description {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// Copyright (c) 2017-
|
|
2
|
-
// For licensing, see LICENSE.md
|
|
1
|
+
// Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
|
|
2
|
+
// For licensing, see LICENSE.md.
|
|
3
3
|
|
|
4
4
|
@use 'helpers/color';
|
|
5
5
|
@use 'helpers/globals';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// Copyright (c) 2017-
|
|
2
|
-
// For licensing, see LICENSE.md
|
|
1
|
+
// Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
|
|
2
|
+
// For licensing, see LICENSE.md.
|
|
3
3
|
|
|
4
4
|
@use 'helpers/color';
|
|
5
5
|
@use 'helpers/globals';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// Copyright (c) 2017-
|
|
2
|
-
// For licensing, see LICENSE.md
|
|
1
|
+
// Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
|
|
2
|
+
// For licensing, see LICENSE.md.
|
|
3
3
|
|
|
4
4
|
.main__content--api {
|
|
5
5
|
.see-source {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
// Copyright (c) 2017-
|
|
2
|
-
// For licensing, see LICENSE.md
|
|
1
|
+
// Copyright (c) 2017-2025, CKSource Holding sp. z o.o. All rights reserved.
|
|
2
|
+
// For licensing, see LICENSE.md.
|
|
3
3
|
|
|
4
4
|
@use 'helpers/font';
|
|
5
5
|
@use 'helpers/globals';
|