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
package/.eslintrc.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
|
|
|
@@ -10,7 +10,7 @@ module.exports = {
|
|
|
10
10
|
rules: {
|
|
11
11
|
'ckeditor5-rules/license-header': [ 'error', { headerLines: [
|
|
12
12
|
'/**',
|
|
13
|
-
' * @license Copyright (c) 2017-
|
|
13
|
+
' * @license Copyright (c) 2017-2023, CKSource Holding sp. z o.o. All rights reserved.',
|
|
14
14
|
' * For licensing, see LICENSE.md.',
|
|
15
15
|
' */'
|
|
16
16
|
] } ]
|
package/LICENSE.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Software License Agreement
|
|
2
2
|
==========================
|
|
3
3
|
|
|
4
|
-
Copyright (c) 2017-
|
|
4
|
+
Copyright (c) 2017-2023, [CKSource](http://cksource.com) Holding sp. z o.o. All rights reserved.
|
|
5
5
|
|
|
6
6
|
Licensed under the terms of [MIT License](https://opensource.org/licenses/MIT).
|
|
7
7
|
|
package/hexo-shim.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "umberto",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0",
|
|
4
4
|
"description": "CKSource Documentation builder",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"files": [
|
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"jquery": "~3.6.0",
|
|
39
39
|
"js-beautify": "^1.14.4",
|
|
40
40
|
"lodash": "^4.17.21",
|
|
41
|
+
"markdown-it": "^13.0.1",
|
|
41
42
|
"markdown-it-expand-tabs": "^1.0.13",
|
|
42
43
|
"markdown-it-toc-and-anchor": "^4.2.0",
|
|
43
44
|
"medium-zoom": "^1.0.6",
|
package/scripts/helper/u-toc.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
|
|
|
@@ -11,6 +11,9 @@ const chalk = require( 'chalk' );
|
|
|
11
11
|
|
|
12
12
|
const LINK_REGEXP = /\\?{(?:@linkapi|@link|@linksdk|@linkexample)\s+[^{]+?({[^}]+})?[^{}]*\\?}/g;
|
|
13
13
|
|
|
14
|
+
const findTargetDoclet = require( '../../src/api-builder/utils/findtargetdoclet' );
|
|
15
|
+
const { hasDedicatedApiPages, LONG_NAME_LABEL_REGEXP } = require( '../../src/api-builder/utils/utils' );
|
|
16
|
+
|
|
14
17
|
/**
|
|
15
18
|
* Converts @link or @linkapi tags into working links to guides or API docs.
|
|
16
19
|
*
|
|
@@ -68,8 +71,9 @@ function linkToApi( str, data, hexo, { relativeUrlHelper, isSilentError } ) {
|
|
|
68
71
|
}
|
|
69
72
|
|
|
70
73
|
const projectName = linkContentMatchResult[ 1 ] || data.projectName;
|
|
71
|
-
const
|
|
72
|
-
|
|
74
|
+
const { name, label } = splitLongname( linkContentMatchResult[ 2 ] );
|
|
75
|
+
const itemName = linkContentMatchResult[ 2 ].replace( LONG_NAME_LABEL_REGEXP, '' );
|
|
76
|
+
let linkText = linkContentMatchResult[ 3 ] || name;
|
|
73
77
|
|
|
74
78
|
// Support link texts with backticks, wrapping them in <code>.
|
|
75
79
|
// TODO - a naive implementation.
|
|
@@ -86,10 +90,25 @@ function linkToApi( str, data, hexo, { relativeUrlHelper, isSilentError } ) {
|
|
|
86
90
|
}
|
|
87
91
|
|
|
88
92
|
const baseItemName = getBaseItemName( itemName );
|
|
89
|
-
|
|
93
|
+
let hashWithoutPrefix = itemName.replace( baseItemName, '' ).slice( 1 );
|
|
90
94
|
const hash = hashWithoutPrefix ? `#${ hashWithoutPrefix }` : '';
|
|
91
95
|
const project = hexo.projectGlobals[ projectName ];
|
|
92
96
|
|
|
97
|
+
if ( hashWithoutPrefix.includes( '-' ) ) {
|
|
98
|
+
let [ type, description ] = hashWithoutPrefix.split( '-' );
|
|
99
|
+
|
|
100
|
+
// JSDuck replaces `$` with `s-`.
|
|
101
|
+
if ( type === 's' ) {
|
|
102
|
+
description = `s-${ description }`;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
if ( type === 'event' ) {
|
|
106
|
+
hashWithoutPrefix = type;
|
|
107
|
+
} else {
|
|
108
|
+
hashWithoutPrefix = description;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
93
112
|
let apiSlug;
|
|
94
113
|
|
|
95
114
|
if ( project && project.config ) {
|
|
@@ -105,49 +124,42 @@ function linkToApi( str, data, hexo, { relativeUrlHelper, isSilentError } ) {
|
|
|
105
124
|
} );
|
|
106
125
|
}
|
|
107
126
|
|
|
108
|
-
const basePath = projectName === data.projectName ?
|
|
109
|
-
data.BASE_PATH :
|
|
110
|
-
`${ projectName }/latest`;
|
|
111
|
-
|
|
127
|
+
const basePath = projectName === data.projectName ? data.BASE_PATH : `${ projectName }/latest`;
|
|
112
128
|
const fileName = getFileName( baseItemName );
|
|
113
129
|
|
|
114
130
|
let href = relativeUrlHelper( data.path, upath.join( basePath, apiSlug, fileName + hash ) );
|
|
115
131
|
|
|
116
|
-
if ( project
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
const docletByExtraId = project.doclets.get( `id:${ itemName }` ).getFirst() ||
|
|
120
|
-
project.doclets.get( `id:${ baseItemName }#constant-${ hashWithoutPrefix }` ).getFirst();
|
|
121
|
-
|
|
122
|
-
// TODO The following code is buggy. E.g. for static method and instance method sharing the same name.
|
|
123
|
-
// Actually the `docletByBaseAndHash` should be just `doclet` - IDK why it was designed this way.
|
|
124
|
-
// This should be fixed in the future with tests on CKE5 and CKE4 codebases.
|
|
125
|
-
const docletByBaseAndHash = project.doclets.get( `ln:${ baseItemName }#${ hashWithoutPrefix }` ).getFirst() ||
|
|
126
|
-
project.doclets.get( `ln:${ baseItemName }.${ hashWithoutPrefix }` ).getFirst() ||
|
|
127
|
-
project.doclets.get( `ln:${ baseItemName }~${ hashWithoutPrefix }` ).getFirst() ||
|
|
128
|
-
project.doclets.get( `ln:${ baseItemName }#event:${ hashWithoutPrefix }` ).getFirst();
|
|
129
|
-
|
|
130
|
-
if ( doclet && [ 'module', 'class', 'typedef', 'mixin', 'interface', 'namespace' ].includes( doclet.kind ) ) {
|
|
131
|
-
// If there is a doclet, having own HTML page (e.g. a class doclet),
|
|
132
|
-
// exactly matching the longname from @link tag, link directly without hash.
|
|
133
|
-
href = relativeUrlHelper( data.path, upath.join( basePath, apiSlug, getFileName( itemName ) ) );
|
|
134
|
-
} else if ( docletByExtraId ) {
|
|
135
|
-
// When link tag follows notation: ...SomeClass#method-methodName.
|
|
136
|
-
href = relativeUrlHelper( data.path, upath.join( basePath, apiSlug, fileName + `#${ docletByExtraId.extraId }` ) );
|
|
137
|
-
} else if ( docletByBaseAndHash ) {
|
|
138
|
-
// When link tag follows notation: ...SomeClass#methodName, then must use 'extraId' as the hash.
|
|
139
|
-
href = relativeUrlHelper( data.path, upath.join( basePath, apiSlug, fileName + `#${ docletByBaseAndHash.extraId }` ) );
|
|
140
|
-
} else {
|
|
141
|
-
return onError( {
|
|
142
|
-
value: str,
|
|
143
|
-
source: data.source,
|
|
144
|
-
isSilent: isSilentError,
|
|
145
|
-
description: 'No doclet found. Link remain not transformed.'
|
|
146
|
-
} );
|
|
147
|
-
}
|
|
132
|
+
if ( !project || !project.doclets ) {
|
|
133
|
+
return getOutputLink( href, linkText, !!linkContentMatchResult[ 3 ] );
|
|
148
134
|
}
|
|
149
135
|
|
|
150
|
-
|
|
136
|
+
const targetDoclet = findTargetDoclet( project.doclets, {
|
|
137
|
+
module: itemName,
|
|
138
|
+
structure: baseItemName,
|
|
139
|
+
member: hashWithoutPrefix,
|
|
140
|
+
label
|
|
141
|
+
} );
|
|
142
|
+
|
|
143
|
+
if ( !targetDoclet ) {
|
|
144
|
+
return onError( {
|
|
145
|
+
value: str, source: data.source, isSilent: isSilentError, description: 'No doclet found. Link remain not transformed.'
|
|
146
|
+
} );
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
if ( hasDedicatedApiPages( targetDoclet ) ) {
|
|
150
|
+
href = relativeUrlHelper( data.path, upath.join( basePath, apiSlug, getFileName( itemName ) ) );
|
|
151
|
+
} else {
|
|
152
|
+
href = [
|
|
153
|
+
relativeUrlHelper( data.path, upath.join( basePath, apiSlug, fileName ) ),
|
|
154
|
+
encodeURI( targetDoclet.extraId )
|
|
155
|
+
].join( '#' );
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
if ( !linkContentMatchResult[ 3 ] && targetDoclet.kind === 'event' ) {
|
|
159
|
+
linkText = `event-${ targetDoclet.name }`;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
return getOutputLink( href, linkText, !!linkContentMatchResult[ 3 ] );
|
|
151
163
|
}
|
|
152
164
|
|
|
153
165
|
/**
|
|
@@ -180,6 +192,14 @@ function getFileName( itemName ) {
|
|
|
180
192
|
return itemName.replace( /[/:.]/g, '_' ).replace( '~', '-' ) + '.html';
|
|
181
193
|
}
|
|
182
194
|
|
|
195
|
+
function getOutputLink( href, description, isCustomDescription ) {
|
|
196
|
+
if ( isCustomDescription ) {
|
|
197
|
+
return `<a href=${ href }>${ description }</a>`;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
return `<a href=${ href }><code>${ description }</code></a>`;
|
|
201
|
+
}
|
|
202
|
+
|
|
183
203
|
/**
|
|
184
204
|
* @param {String} str
|
|
185
205
|
* @param {Object} data
|
|
@@ -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
|
|
|
@@ -20,6 +20,8 @@ const splitLongname = require( '../helpers/split-longname' );
|
|
|
20
20
|
const githubUrlUtils = require( '../helpers/github-url' );
|
|
21
21
|
const getReportIssueWidgetUrl = require( '../../scripts/utils/getreportissuewidgeturl' );
|
|
22
22
|
|
|
23
|
+
const findTargetDoclet = require( './utils/findtargetdoclet' );
|
|
24
|
+
|
|
23
25
|
/**
|
|
24
26
|
* Renders HTML for every module, class, mixin etc.
|
|
25
27
|
*
|
|
@@ -523,15 +525,33 @@ module.exports = class ApiBuilder {
|
|
|
523
525
|
}
|
|
524
526
|
}
|
|
525
527
|
|
|
526
|
-
|
|
527
|
-
|
|
528
|
+
/**
|
|
529
|
+
* @protected
|
|
530
|
+
* @param {LongNameParts} parts
|
|
531
|
+
* @returns {String|null}
|
|
532
|
+
*/
|
|
533
|
+
_getUrlAddressFromLongname( parts ) {
|
|
534
|
+
if ( !parts.longnameBase ) {
|
|
535
|
+
return null;
|
|
536
|
+
}
|
|
528
537
|
|
|
529
|
-
|
|
538
|
+
// Get a doclet to which we link.
|
|
539
|
+
const targetDoclet = findTargetDoclet( this._dataCollection, {
|
|
540
|
+
structure: parts.longnameBase,
|
|
541
|
+
member: parts.name,
|
|
542
|
+
label: parts.label,
|
|
543
|
+
query: {
|
|
544
|
+
memberOnly: true
|
|
545
|
+
}
|
|
546
|
+
} );
|
|
547
|
+
|
|
548
|
+
if ( !targetDoclet ) {
|
|
530
549
|
return null;
|
|
531
|
-
} else if ( [ 'cfg', 'member', 'function', 'event' ].includes( doclet.kind ) ) {
|
|
532
|
-
return `${ doclet.memberof }#${ doclet.extraId }`;
|
|
533
|
-
} else {
|
|
534
|
-
return doclet.longname;
|
|
535
550
|
}
|
|
551
|
+
|
|
552
|
+
return [
|
|
553
|
+
targetDoclet.memberof,
|
|
554
|
+
encodeURI( targetDoclet.extraId )
|
|
555
|
+
].join( parts.isStatic ? '.' : '#' );
|
|
536
556
|
}
|
|
537
557
|
};
|