umberto 2.2.0 → 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/hexo-shim.js +1 -1
- package/package.json +2 -1
- 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-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 +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 +4 -4
- package/src/tasks/build-documentation.js +3 -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/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
|
+
*/
|
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
|
|
|
@@ -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
|
|
|
@@ -449,7 +449,6 @@ function buildApis( projectConfigs, options = {} ) {
|
|
|
449
449
|
src: upath.join( config.projectRootPath, config.path, apiConfig.sourceDir ),
|
|
450
450
|
projectDst: upath.join( BASE_PATH, apiConfig.slug ),
|
|
451
451
|
outputDir: hexoManager.getPublicDir().replace( process.cwd(), '' ),
|
|
452
|
-
type: apiConfig.type,
|
|
453
452
|
themePath: hexoManager.getThemePath(),
|
|
454
453
|
BASE_PATH,
|
|
455
454
|
docSearch: options.docSearch,
|
|
@@ -465,7 +464,8 @@ function buildApis( projectConfigs, options = {} ) {
|
|
|
465
464
|
disableSearch: config.docsearch === false,
|
|
466
465
|
repoUrl: config.repoUrl,
|
|
467
466
|
og: config.og,
|
|
468
|
-
projectSlug: config.slug
|
|
467
|
+
projectSlug: config.slug,
|
|
468
|
+
apiType: apiConfig.type
|
|
469
469
|
},
|
|
470
470
|
disableSearch: options.disableSearch,
|
|
471
471
|
googleoptimize: options.googleoptimize,
|
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