umberto 2.1.8 → 2.3.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/.eslintrc.js +2 -2
- package/LICENSE.md +1 -1
- package/README.md +1 -0
- package/hexo-shim.js +1 -1
- package/package.json +10 -6
- 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/escape-special-characters.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 +61 -41
- package/scripts/utils/shoulddisplaynewindicator.js +1 -1
- package/scripts/utils/transforminfobox.js +1 -1
- package/{scripts → scripts-dev}/postinstall.js +1 -1
- package/src/api-builder/api-builder.js +28 -8
- package/src/api-builder/classes/description-parser.js +79 -63
- package/src/api-builder/classes/doc-data-factory.js +58 -5
- 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 +84 -0
- package/src/api-builder/utils/utils.js +41 -0
- package/src/data-converter/converters/jsdoc2umberto.js +8 -1
- package/src/data-converter/converters/jsduck2umberto.js +1 -1
- package/src/data-converter/converters/typedoc/abstractparser.js +364 -0
- package/src/data-converter/converters/typedoc/accessorparser.js +64 -0
- package/src/data-converter/converters/typedoc/classparser.js +49 -0
- package/src/data-converter/converters/typedoc/constantparser.js +45 -0
- package/src/data-converter/converters/typedoc/constructorparser.js +34 -0
- package/src/data-converter/converters/typedoc/errorparser.js +44 -0
- package/src/data-converter/converters/typedoc/eventparser.js +57 -0
- package/src/data-converter/converters/typedoc/functionparser.js +61 -0
- package/src/data-converter/converters/typedoc/interfaceparser.js +46 -0
- package/src/data-converter/converters/typedoc/methodparser.js +63 -0
- package/src/data-converter/converters/typedoc/moduleparser.js +31 -0
- package/src/data-converter/converters/typedoc/propertyparser.js +74 -0
- package/src/data-converter/converters/typedoc/typedoc.ts +297 -0
- package/src/data-converter/converters/typedoc/typedocconverter.js +742 -0
- package/src/data-converter/converters/typedoc/typeparser.js +71 -0
- package/src/data-converter/converters/typedoc2umberto.js +52 -0
- package/src/data-converter/data-collection.js +1 -1
- package/src/data-converter/data-provider.js +4 -2
- package/src/data-converter/doclet-collection.js +14 -2
- 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 +3 -2
- 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/is-non-empty-array.js +1 -1
- package/src/helpers/snippets.js +1 -1
- package/src/helpers/split-longname.js +101 -8
- package/src/hexo/filter/extend-config.js +1 -1
- package/src/hexo/filter/project-locals.js +4 -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 +2 -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 +4 -4
- package/src/tasks/build-documentation.js +9 -3
- 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 +3 -3
- 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 +1 -1
- 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/layout/_api-docs/_mixin/_api-see-source.pug +2 -1
- package/themes/umberto/layout/_api-docs/_mixin/_class-item.pug +0 -1
- package/themes/umberto/layout/_api-docs/_mixin/_dev-names.pug +9 -3
- package/themes/umberto/layout/_api-docs/_mixin/_fires-item.pug +2 -2
- package/themes/umberto/layout/_api-docs/_mixin/_hierarchy-item.pug +2 -2
- package/themes/umberto/layout/_api-docs/_mixin/_link-or-text.pug +40 -41
- package/themes/umberto/layout/_api-docs/_mixin/_method.pug +8 -2
- package/themes/umberto/layout/_api-docs/_mixin/_property.pug +1 -1
- package/themes/umberto/layout/_api-docs/_mixin/_related.pug +1 -1
- package/themes/umberto/layout/_api-docs/_mixin/_sidebox-list-item.pug +1 -1
- package/themes/umberto/layout/_api-docs/_mixin/_type.pug +175 -9
- package/themes/umberto/layout/_api-docs/_mixin/type-parameter.pug +18 -0
- package/themes/umberto/layout/_api-docs/_partial/filter.pug +16 -4
- package/themes/umberto/layout/_api-docs/_partial/type-parameters.pug +26 -0
- package/themes/umberto/layout/_api-docs/api-base.pug +2 -0
- package/themes/umberto/layout/_partial/google-optimize.pug +15 -0
- package/themes/umberto/layout/_partial/head.pug +1 -1
- package/themes/umberto/src/css/_api-content.scss +1 -1
- package/themes/umberto/src/css/_api-info-box.scss +1 -1
- package/themes/umberto/src/css/_api-props-filter.scss +1 -1
- package/themes/umberto/src/css/_api-see-source.scss +1 -1
- package/themes/umberto/src/css/_api-subheader.scss +1 -1
- package/themes/umberto/src/css/_api-tree.scss +1 -1
- package/themes/umberto/src/css/_badge.scss +1 -1
- package/themes/umberto/src/css/_collapsinglist.scss +1 -1
- package/themes/umberto/src/css/_content.scss +3 -2
- package/themes/umberto/src/css/_docsearch.scss +1 -1
- package/themes/umberto/src/css/_dropdown.scss +1 -1
- package/themes/umberto/src/css/_editor-icon.scss +1 -1
- package/themes/umberto/src/css/_feedback-widget.scss +1 -1
- package/themes/umberto/src/css/_footer.scss +1 -1
- package/themes/umberto/src/css/_formatted.scss +1 -1
- package/themes/umberto/src/css/_guide-content.scss +1 -1
- package/themes/umberto/src/css/_guide-sdk-tree.scss +1 -1
- package/themes/umberto/src/css/_loading-spinner.scss +1 -1
- package/themes/umberto/src/css/_main.scss +1 -1
- package/themes/umberto/src/css/_navigation.scss +1 -1
- package/themes/umberto/src/css/_notice.scss +1 -1
- package/themes/umberto/src/css/_print.scss +1 -1
- package/themes/umberto/src/css/_prism.scss +1 -1
- package/themes/umberto/src/css/_rwd-breadcrumbs.scss +1 -1
- package/themes/umberto/src/css/_rwd-menu.scss +1 -1
- package/themes/umberto/src/css/_secondary-navigation.scss +1 -1
- package/themes/umberto/src/css/_theme-dark.scss +1 -1
- package/themes/umberto/src/css/_toggler.scss +1 -1
- package/themes/umberto/src/css/_top.scss +1 -1
- package/themes/umberto/src/css/_tree.scss +7 -5
- package/themes/umberto/src/css/_warning-banner.scss +1 -1
- package/themes/umberto/src/css/components/_lightbox.scss +1 -1
- package/themes/umberto/src/css/helpers/_color.scss +1 -1
- package/themes/umberto/src/css/helpers/_font.scss +1 -1
- package/themes/umberto/src/css/helpers/_globals.scss +1 -1
- package/themes/umberto/src/css/helpers/_reset.scss +1 -1
- package/themes/umberto/src/css/helpers/_spacing.scss +1 -1
- package/themes/umberto/src/css/pages/_sdk.scss +1 -1
- package/themes/umberto/src/css/styles.scss +1 -1
- 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/_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 +2 -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
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license Copyright (c) 2017-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
+
* For licensing, see LICENSE.md.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
'use strict';
|
|
7
|
+
|
|
8
|
+
const AbstractParser = require( './abstractparser' );
|
|
9
|
+
|
|
10
|
+
module.exports = class TypeParser extends AbstractParser {
|
|
11
|
+
/**
|
|
12
|
+
* @param {TypedocReflectionMeta} item
|
|
13
|
+
* @returns {Boolean}
|
|
14
|
+
*/
|
|
15
|
+
canParse( item ) {
|
|
16
|
+
return item.kindString === 'Type alias';
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @param {TypedocReflection<'Type alias'>} item
|
|
21
|
+
* @param {String} parentName
|
|
22
|
+
* @returns {Object}
|
|
23
|
+
*/
|
|
24
|
+
parse( item, parentName ) {
|
|
25
|
+
const result = {
|
|
26
|
+
name: item.name,
|
|
27
|
+
memberof: parentName,
|
|
28
|
+
longname: this.getLongName( item, parentName ),
|
|
29
|
+
|
|
30
|
+
scope: 'inner',
|
|
31
|
+
kind: this.getKind( item ),
|
|
32
|
+
extraId: this.getExtraId( item ),
|
|
33
|
+
file: this.getFile( item ),
|
|
34
|
+
skipSource: this.shouldSkipSource( item ),
|
|
35
|
+
description: this.getComment( item ),
|
|
36
|
+
deprecated: this.isDeprecated( item ),
|
|
37
|
+
|
|
38
|
+
// This property will be filled in the post-processing phase.
|
|
39
|
+
typeParameters: null
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
// There are two distinct type definitions that are rendered in own way by Umberto: function type and object type.
|
|
43
|
+
// For function type, its params and return type is displayed. For object, all its properties are shown.
|
|
44
|
+
const isFunctionType = item.type.declaration && item.type.declaration.signatures;
|
|
45
|
+
|
|
46
|
+
if ( isFunctionType ) {
|
|
47
|
+
// Needed for post-processing once all project reflections are converted.
|
|
48
|
+
result._signature = item.type.declaration.signatures[ 0 ];
|
|
49
|
+
|
|
50
|
+
result.description = this.getComment( result._signature );
|
|
51
|
+
result.type = {
|
|
52
|
+
names: [
|
|
53
|
+
'function'
|
|
54
|
+
]
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
// These properties will be filled in the post-processing phase.
|
|
58
|
+
result.returns = null;
|
|
59
|
+
result.params = null;
|
|
60
|
+
} else {
|
|
61
|
+
// Needed for post-processing once all project reflections are converted.
|
|
62
|
+
result._signature = item;
|
|
63
|
+
|
|
64
|
+
// These properties will be filled in the post-processing phase.
|
|
65
|
+
result.properties = null;
|
|
66
|
+
result.type = null;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
71
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license Copyright (c) 2017-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
+
* For licensing, see LICENSE.md.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
'use strict';
|
|
7
|
+
|
|
8
|
+
const TypedocConverter = require( './typedoc/typedocconverter' );
|
|
9
|
+
const ModuleParser = require( './typedoc/moduleparser' );
|
|
10
|
+
const ClassParser = require( './typedoc/classparser' );
|
|
11
|
+
const AccessorParser = require( './typedoc/accessorparser' );
|
|
12
|
+
const InterfaceParser = require( './typedoc/interfaceparser' );
|
|
13
|
+
const ConstantParser = require( './typedoc/constantparser' );
|
|
14
|
+
const TypeParser = require( './typedoc/typeparser' );
|
|
15
|
+
const FunctionParser = require( './typedoc/functionparser' );
|
|
16
|
+
const PropertyParser = require( './typedoc/propertyparser' );
|
|
17
|
+
const MethodParser = require( './typedoc/methodparser' );
|
|
18
|
+
const ConstructorParser = require( './typedoc/constructorparser' );
|
|
19
|
+
const ErrorParser = require( './typedoc/errorparser' );
|
|
20
|
+
const EventParser = require( './typedoc/eventparser' );
|
|
21
|
+
|
|
22
|
+
module.exports = data => {
|
|
23
|
+
const projectReflection = JSON.parse( data );
|
|
24
|
+
|
|
25
|
+
if ( !projectReflection.children ) {
|
|
26
|
+
console.warn( 'No doclets found in passed data.' );
|
|
27
|
+
|
|
28
|
+
return [];
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const typedoc = new TypedocConverter( [
|
|
32
|
+
// Top level. All things belong to a module.
|
|
33
|
+
ModuleParser,
|
|
34
|
+
|
|
35
|
+
// Module's children.
|
|
36
|
+
ClassParser,
|
|
37
|
+
InterfaceParser,
|
|
38
|
+
FunctionParser,
|
|
39
|
+
ConstantParser,
|
|
40
|
+
TypeParser,
|
|
41
|
+
ErrorParser,
|
|
42
|
+
|
|
43
|
+
// Class's and interface's children.
|
|
44
|
+
ConstructorParser,
|
|
45
|
+
MethodParser,
|
|
46
|
+
AccessorParser,
|
|
47
|
+
PropertyParser,
|
|
48
|
+
EventParser
|
|
49
|
+
] );
|
|
50
|
+
|
|
51
|
+
return typedoc.convertToJsDoc( projectReflection );
|
|
52
|
+
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2017-
|
|
2
|
+
* @license Copyright (c) 2017-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md.
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -8,10 +8,12 @@
|
|
|
8
8
|
const DataCollection = require( './data-collection' );
|
|
9
9
|
const jsdoc2umberto = require( './converters/jsdoc2umberto' );
|
|
10
10
|
const jsduck2umberto = require( './converters/jsduck2umberto' );
|
|
11
|
+
const typedoc2umberto = require( './converters/typedoc2umberto' );
|
|
11
12
|
const relationFixer = require( './middlewares/relation-fixer' );
|
|
12
13
|
const converters = new Map( [
|
|
13
14
|
[ 'jsdoc', jsdoc2umberto ],
|
|
14
|
-
[ 'jsduck', jsduck2umberto ]
|
|
15
|
+
[ 'jsduck', jsduck2umberto ],
|
|
16
|
+
[ 'typedoc', typedoc2umberto ]
|
|
15
17
|
] );
|
|
16
18
|
|
|
17
19
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2017-
|
|
2
|
+
* @license Copyright (c) 2017-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md.
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -17,6 +17,14 @@ class DocletCollection {
|
|
|
17
17
|
this._allData = [];
|
|
18
18
|
}
|
|
19
19
|
|
|
20
|
+
get size() {
|
|
21
|
+
return this._allData.length;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
get isEmpty() {
|
|
25
|
+
return this.size === 0;
|
|
26
|
+
}
|
|
27
|
+
|
|
20
28
|
/**
|
|
21
29
|
* Adds doclet to collection. Keeps it sorted by doclet's name.
|
|
22
30
|
*
|
|
@@ -57,7 +65,11 @@ class DocletCollection {
|
|
|
57
65
|
* @returns {Doclet|null}
|
|
58
66
|
*/
|
|
59
67
|
getFirst() {
|
|
60
|
-
return this.
|
|
68
|
+
return this.isEmpty ? null : this.getAll()[ 0 ];
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
getByLabel( label ) {
|
|
72
|
+
return this.getAll().find( doclet => doclet.label === label );
|
|
61
73
|
}
|
|
62
74
|
}
|
|
63
75
|
|
package/src/helpers/copy-file.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2017-
|
|
2
|
+
* @license Copyright (c) 2017-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md.
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -7,5 +7,6 @@
|
|
|
7
7
|
|
|
8
8
|
module.exports = {
|
|
9
9
|
jsdoc: 'json',
|
|
10
|
-
jsduck: 'json'
|
|
10
|
+
jsduck: 'json',
|
|
11
|
+
typedoc: 'json'
|
|
11
12
|
};
|
package/src/helpers/html-safe.js
CHANGED
package/src/helpers/snippets.js
CHANGED
|
@@ -1,26 +1,95 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2017-
|
|
2
|
+
* @license Copyright (c) 2017-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md.
|
|
4
4
|
*/
|
|
5
5
|
|
|
6
6
|
'use strict';
|
|
7
7
|
|
|
8
|
+
const { MEMBER_NAME_REGEXP, LONG_NAME_LABEL_REGEXP } = require( '../api-builder/utils/utils' );
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @param {String} longname
|
|
12
|
+
* @returns {LongNameParts}
|
|
13
|
+
*/
|
|
8
14
|
module.exports = longname => {
|
|
9
15
|
if ( !longname || typeof longname !== 'string' ) {
|
|
10
16
|
return {};
|
|
11
17
|
}
|
|
12
18
|
|
|
19
|
+
// Processing a literal value. Let's return it without modifications.
|
|
20
|
+
if ( longname.startsWith( '\'' ) && longname.endsWith( '\'' ) ) {
|
|
21
|
+
return {
|
|
22
|
+
isSingle: true,
|
|
23
|
+
name: longname,
|
|
24
|
+
longnameBase: '',
|
|
25
|
+
directoryNames: []
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
|
|
13
29
|
const parts = longname.split( '/' );
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
30
|
+
let [ , nameMatch, label ] = MEMBER_NAME_REGEXP.exec( longname ) || [];
|
|
31
|
+
|
|
32
|
+
let name = nameMatch ? nameMatch.replace( 'module:', '' ) : ''; // last part of the longname
|
|
33
|
+
let longnameBase = longname.split( new RegExp( '[#.]' + name ) )[ 0 ];
|
|
34
|
+
|
|
35
|
+
// Remove the label part from a member name.
|
|
36
|
+
name = name.replace( LONG_NAME_LABEL_REGEXP, '' );
|
|
37
|
+
|
|
38
|
+
const isStatic = longname[ longnameBase.length ] === '.' || longnameBase.startsWith( '.' ) || longnameBase.endsWith( '.' );
|
|
39
|
+
|
|
40
|
+
// `longnameBase` might start or end with a symbol. It depends if it is a full or short link.
|
|
41
|
+
longnameBase = longnameBase.replace( /^[#~.]|[#~.]$/g, '' );
|
|
42
|
+
|
|
43
|
+
// Support for links containing a doclet type.
|
|
44
|
+
// E.g., `CKEDITOR.feature#property-allowedContent`.
|
|
45
|
+
if ( name.includes( '-' ) ) {
|
|
46
|
+
let [ type, description ] = name.split( '-' );
|
|
47
|
+
|
|
48
|
+
// JSDuck replaces `$` with `s-`.
|
|
49
|
+
if ( type === 's' ) {
|
|
50
|
+
description = `s-${ description }`;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
// For events, we want to keep the `name` as it is specified.
|
|
54
|
+
if ( type === 'event' ) {
|
|
55
|
+
name = type;
|
|
56
|
+
|
|
57
|
+
// An event within a namespace.
|
|
58
|
+
if ( label ) {
|
|
59
|
+
label = `${ description }:${ label }`;
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
label = description;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
// Otherwise, skip the type. Use the name only.
|
|
66
|
+
else {
|
|
67
|
+
name = description;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
17
70
|
|
|
18
71
|
if ( parts.length === 1 ) {
|
|
72
|
+
// When processing a string that looks like an assignment expression,
|
|
73
|
+
// let's return the original string (do not cut it anywhere).
|
|
74
|
+
// It is useful when processing a generic argument.
|
|
75
|
+
const isTypeAssignment = longname.split( '=' ).length === 2;
|
|
76
|
+
|
|
77
|
+
if ( isTypeAssignment ) {
|
|
78
|
+
return {
|
|
79
|
+
isSingle: true,
|
|
80
|
+
name: longname,
|
|
81
|
+
longnameBase: '',
|
|
82
|
+
directoryNames: []
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
|
|
19
86
|
return {
|
|
20
87
|
isSingle: true,
|
|
21
88
|
name,
|
|
22
89
|
longnameBase,
|
|
23
|
-
directoryNames: []
|
|
90
|
+
directoryNames: [],
|
|
91
|
+
label,
|
|
92
|
+
isStatic
|
|
24
93
|
};
|
|
25
94
|
}
|
|
26
95
|
|
|
@@ -36,11 +105,35 @@ module.exports = longname => {
|
|
|
36
105
|
const directoryNames = parts;
|
|
37
106
|
|
|
38
107
|
return {
|
|
39
|
-
name,
|
|
40
|
-
longnameBase,
|
|
108
|
+
name,
|
|
109
|
+
longnameBase,
|
|
41
110
|
moduleName,
|
|
42
111
|
className,
|
|
43
112
|
packageName,
|
|
44
|
-
directoryNames
|
|
113
|
+
directoryNames,
|
|
114
|
+
label,
|
|
115
|
+
isStatic
|
|
45
116
|
};
|
|
46
117
|
};
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* @typedef {Object} LongNameParts
|
|
121
|
+
*
|
|
122
|
+
* @property {Array.<String>} [directoryNames]
|
|
123
|
+
*
|
|
124
|
+
* @property {Boolean} [isStatic]
|
|
125
|
+
*
|
|
126
|
+
* @property {Boolean} [isSingle]
|
|
127
|
+
*
|
|
128
|
+
* @property {String} [longnameBase]
|
|
129
|
+
*
|
|
130
|
+
* @property {String} [moduleName]
|
|
131
|
+
*
|
|
132
|
+
* @property {String} [className]
|
|
133
|
+
*
|
|
134
|
+
* @property {String} [packageName]
|
|
135
|
+
*
|
|
136
|
+
* @property {String} [name]
|
|
137
|
+
*
|
|
138
|
+
* @property {String} [label]
|
|
139
|
+
*/
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2017-
|
|
2
|
+
* @license Copyright (c) 2017-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md.
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -17,6 +17,7 @@ const umbertoVersion = require( '../../../package.json' ).version;
|
|
|
17
17
|
* @param {String} basePath Project's base path, e.g. 'ckeditor5/1.0.0'.
|
|
18
18
|
* @param {Object} docSearch Algolia's docsearch config.
|
|
19
19
|
* @param {Object} config umberto.json config.
|
|
20
|
+
* @param {Object} googleoptimize Google Optimize config.
|
|
20
21
|
* @param {Object} googletagmanager Google Tag Manager config.
|
|
21
22
|
* @param {Object} googleanalytics Google Analytics config.
|
|
22
23
|
* @param {Object} feedbackWidget Feedback widget config
|
|
@@ -30,6 +31,7 @@ module.exports = ( ctx, {
|
|
|
30
31
|
basePath,
|
|
31
32
|
docSearch = {},
|
|
32
33
|
config,
|
|
34
|
+
googleoptimize,
|
|
33
35
|
googletagmanager,
|
|
34
36
|
googleanalytics,
|
|
35
37
|
feedbackWidget,
|
|
@@ -93,6 +95,7 @@ module.exports = ( ctx, {
|
|
|
93
95
|
|
|
94
96
|
locals.umbertoVersion = umbertoVersion;
|
|
95
97
|
locals.disableSearch = disableSearch;
|
|
98
|
+
locals.googleoptimize = googleoptimize;
|
|
96
99
|
locals.googletagmanager = googletagmanager;
|
|
97
100
|
locals.googleanalytics = googleanalytics;
|
|
98
101
|
locals.feedbackWidget = feedbackWidget;
|
package/src/hexo-manager.js
CHANGED
package/src/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2017-
|
|
2
|
+
* @license Copyright (c) 2017-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md.
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -56,6 +56,7 @@ module.exports = {
|
|
|
56
56
|
mainConfig: {
|
|
57
57
|
projects: [ '.' ],
|
|
58
58
|
docsearch: pConfig.docsearch,
|
|
59
|
+
googleoptimize: pConfig.googleoptimize,
|
|
59
60
|
googletagmanager: pConfig.googletagmanager,
|
|
60
61
|
googleanalytics: pConfig.googleanalytics,
|
|
61
62
|
feedbackWidget: pConfig.feedbackWidget,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2017-
|
|
2
|
+
* @license Copyright (c) 2017-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md.
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -25,7 +25,6 @@ module.exports = config => {
|
|
|
25
25
|
src,
|
|
26
26
|
projectDst, // e.g.: ckeditor5/latest/api
|
|
27
27
|
outputDir, // build/docs
|
|
28
|
-
type, // type of API data (jsdoc, jsduck)
|
|
29
28
|
themePath, // Umberto theme path
|
|
30
29
|
BASE_PATH, // e.g.: ckeditor5/latest
|
|
31
30
|
docSearch, // Algolia's docsearch config
|
|
@@ -37,9 +36,10 @@ module.exports = config => {
|
|
|
37
36
|
|
|
38
37
|
const apiConfig = projectConfig.groups ? projectConfig.groups.find( g => g.id === 'api-reference' ) : null;
|
|
39
38
|
const middlewares = apiConfig ? apiConfig.middlewares : [];
|
|
40
|
-
const
|
|
39
|
+
const apiType = templateLocals.projectLocals.apiType;
|
|
40
|
+
const docSources = readDocSources( src, apiType );
|
|
41
41
|
const dataProvider = new DataProvider();
|
|
42
|
-
const dataCollection = dataProvider.convert(
|
|
42
|
+
const dataCollection = dataProvider.convert( apiType, docSources, { middlewares } );
|
|
43
43
|
const projectName = projectConfig.name;
|
|
44
44
|
|
|
45
45
|
if ( !dataCollection ) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Copyright (c) 2017-
|
|
2
|
+
* @license Copyright (c) 2017-2023, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
3
|
* For licensing, see LICENSE.md.
|
|
4
4
|
*/
|
|
5
5
|
|
|
@@ -135,6 +135,7 @@ module.exports = options => {
|
|
|
135
135
|
dev,
|
|
136
136
|
docSearch: mainConfig.docsearch,
|
|
137
137
|
disableSearch: mainConfig.docsearch === false,
|
|
138
|
+
googleoptimize: mainConfig.googleoptimize,
|
|
138
139
|
googletagmanager: mainConfig.googletagmanager,
|
|
139
140
|
googleanalytics: mainConfig.googleanalytics,
|
|
140
141
|
feedbackWidget: mainConfig.feedbackWidget,
|
|
@@ -305,6 +306,7 @@ function buildProjects( rootPath, projectPaths, options = {} ) {
|
|
|
305
306
|
extraStyles: options.extraStyles,
|
|
306
307
|
extraScripts: options.extraScripts,
|
|
307
308
|
disableSearch: options.disableSearch,
|
|
309
|
+
googleoptimize: options.googleoptimize,
|
|
308
310
|
googletagmanager: options.googletagmanager,
|
|
309
311
|
googleanalytics: options.googleanalytics,
|
|
310
312
|
feedbackWidget: options.feedbackWidget,
|
|
@@ -322,6 +324,7 @@ function buildProjects( rootPath, projectPaths, options = {} ) {
|
|
|
322
324
|
extraStyles: options.extraStyles,
|
|
323
325
|
extraScripts: options.extraScripts,
|
|
324
326
|
disableSearch: options.disableSearch,
|
|
327
|
+
googleoptimize: options.googleoptimize,
|
|
325
328
|
googletagmanager: options.googletagmanager,
|
|
326
329
|
googleanalytics: options.googleanalytics,
|
|
327
330
|
feedbackWidget: options.feedbackWidget,
|
|
@@ -362,6 +365,7 @@ function buildProjects( rootPath, projectPaths, options = {} ) {
|
|
|
362
365
|
basePath,
|
|
363
366
|
docSearch: options.docSearch,
|
|
364
367
|
config,
|
|
368
|
+
googleoptimize: options.googleoptimize,
|
|
365
369
|
googletagmanager: options.googletagmanager,
|
|
366
370
|
googleanalytics: options.googleanalytics,
|
|
367
371
|
feedbackWidget: options.feedbackWidget,
|
|
@@ -445,7 +449,6 @@ function buildApis( projectConfigs, options = {} ) {
|
|
|
445
449
|
src: upath.join( config.projectRootPath, config.path, apiConfig.sourceDir ),
|
|
446
450
|
projectDst: upath.join( BASE_PATH, apiConfig.slug ),
|
|
447
451
|
outputDir: hexoManager.getPublicDir().replace( process.cwd(), '' ),
|
|
448
|
-
type: apiConfig.type,
|
|
449
452
|
themePath: hexoManager.getThemePath(),
|
|
450
453
|
BASE_PATH,
|
|
451
454
|
docSearch: options.docSearch,
|
|
@@ -461,9 +464,11 @@ function buildApis( projectConfigs, options = {} ) {
|
|
|
461
464
|
disableSearch: config.docsearch === false,
|
|
462
465
|
repoUrl: config.repoUrl,
|
|
463
466
|
og: config.og,
|
|
464
|
-
projectSlug: config.slug
|
|
467
|
+
projectSlug: config.slug,
|
|
468
|
+
apiType: apiConfig.type
|
|
465
469
|
},
|
|
466
470
|
disableSearch: options.disableSearch,
|
|
471
|
+
googleoptimize: options.googleoptimize,
|
|
467
472
|
googletagmanager: options.googletagmanager,
|
|
468
473
|
googleanalytics: options.googleanalytics,
|
|
469
474
|
feedbackWidget: options.feedbackWidget,
|
|
@@ -531,6 +536,7 @@ function buildSdks( projectConfigs, options = {} ) {
|
|
|
531
536
|
},
|
|
532
537
|
disableSearch: options.disableSearch,
|
|
533
538
|
projectsData: basicProjectsData,
|
|
539
|
+
googleoptimize: options.googleoptimize,
|
|
534
540
|
googletagmanager: options.googletagmanager,
|
|
535
541
|
googleanalytics: options.googleanalytics,
|
|
536
542
|
feedbackWidget: options.feedbackWidget,
|