umberto 2.1.7 → 2.2.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/README.md +1 -0
- package/package.json +11 -8
- package/scripts-dev/postinstall.js +18 -0
- package/src/hexo/filter/project-locals.js +3 -0
- package/src/index.js +1 -0
- package/src/tasks/build-documentation.js +6 -0
- package/src/tasks/get-project-config.js +1 -1
- package/themes/umberto/layout/_api-docs/_mixin/_class-item.pug +5 -4
- package/themes/umberto/layout/_api-docs/_mixin/_dev-names.pug +1 -1
- package/themes/umberto/layout/_api-docs/_mixin/_method.pug +8 -6
- package/themes/umberto/layout/_api-docs/_mixin/_property.pug +5 -5
- package/themes/umberto/layout/_partial/google-optimize.pug +15 -0
- package/themes/umberto/layout/_partial/head.pug +1 -1
- package/themes/umberto/layout/_partial/report-issue-widget.pug +1 -1
- package/themes/umberto/src/css/_collapsinglist.scss +13 -5
package/README.md
CHANGED
|
@@ -108,6 +108,7 @@ You can also have a look at [CKEditor5](https://github.com/ckeditor/ckeditor5/tr
|
|
|
108
108
|
| `path` | Path where to look for documentation source files (Markdown files, images etc.). The path is relative to the location of `umberto.json`. |
|
|
109
109
|
| `startPage` | Path to page linked in drop down menu. If there is nothing provided, then `index.html` (from main project directory) is used. |
|
|
110
110
|
| `redirects` | Object where as a key is stored string representing `old-url` and as a value is stored string representing `new-url`. (_Currently redirects are used only in deployment scripts of big-bang docs._) |
|
|
111
|
+
| `googleoptimize` | `domains` - Array of whitelisted domains from which GO can be used; `id` - container ID |
|
|
111
112
|
| `googletagmanager` | `domains` - Array of whitelisted domains from which GA can be used; `gtm` - container ID |
|
|
112
113
|
| `googleanalytics` | `domains` - Array of whitelisted domains from which GA can be used; `config` - options passed to ga('create') method |
|
|
113
114
|
| `feedbackWidget` | `domains` - Array of whitelisted domains from which feedback widget can be used; `apiKey` - unique key for widget |
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "umberto",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "CKSource Documentation builder",
|
|
5
5
|
"main": "src/index.js",
|
|
6
6
|
"files": [
|
|
@@ -10,13 +10,14 @@
|
|
|
10
10
|
".editorconfig",
|
|
11
11
|
".eslintrc.js",
|
|
12
12
|
"hexo-config.json",
|
|
13
|
-
"hexo-shim.js"
|
|
13
|
+
"hexo-shim.js",
|
|
14
|
+
"scripts-dev/postinstall.js"
|
|
14
15
|
],
|
|
15
16
|
"dependencies": {
|
|
16
17
|
"@babel/core": "^7.18.10",
|
|
17
18
|
"@babel/polyfill": "^7.12.1",
|
|
18
19
|
"@babel/preset-env": "^7.18.10",
|
|
19
|
-
"@ckeditor/jsdoc-plugins": "^
|
|
20
|
+
"@ckeditor/jsdoc-plugins": "^32.0.1",
|
|
20
21
|
"babel-loader": "^8.2.5",
|
|
21
22
|
"chalk": "^4.1.0",
|
|
22
23
|
"cheerio": "^1.0.0-rc.12",
|
|
@@ -54,13 +55,15 @@
|
|
|
54
55
|
"webpack": "^5.74.0"
|
|
55
56
|
},
|
|
56
57
|
"devDependencies": {
|
|
57
|
-
"@ckeditor/ckeditor5-dev-
|
|
58
|
+
"@ckeditor/ckeditor5-dev-bump-year": "^32.0.1",
|
|
59
|
+
"@ckeditor/ckeditor5-dev-ci": "^32.0.1",
|
|
60
|
+
"@ckeditor/ckeditor5-dev-release-tools": "^32.0.1",
|
|
58
61
|
"browser-sync": "^2.27.10",
|
|
59
62
|
"chai": "^4.3.6",
|
|
60
63
|
"chokidar": "^3.5.3",
|
|
61
64
|
"eslint": "^8.21.0",
|
|
62
65
|
"eslint-config-ckeditor5": "^4.0.1",
|
|
63
|
-
"husky": "^8.0.
|
|
66
|
+
"husky": "^8.0.2",
|
|
64
67
|
"lint-staged": "^13.0.3",
|
|
65
68
|
"mocha": "^10.0.0",
|
|
66
69
|
"mockery": "^2.1.0",
|
|
@@ -71,6 +74,7 @@
|
|
|
71
74
|
"npm": ">=5.7.1"
|
|
72
75
|
},
|
|
73
76
|
"scripts": {
|
|
77
|
+
"postinstall": "node ./scripts-dev/postinstall.js",
|
|
74
78
|
"dev:build-single": "node ./scripts-dev/build-single.js",
|
|
75
79
|
"dev:build-multi": "node ./scripts-dev/build-multi.js",
|
|
76
80
|
"dev:serve": "node ./scripts-dev/serve.js",
|
|
@@ -79,8 +83,7 @@
|
|
|
79
83
|
"coverage": "nyc --reporter=lcov --reporter=text-summary --cache false npm run test",
|
|
80
84
|
"changelog": "node ./scripts-dev/changelog.js",
|
|
81
85
|
"release:bump-version": "node ./scripts-dev/bump-version.js",
|
|
82
|
-
"release:publish": "node ./scripts-dev/publish.js"
|
|
83
|
-
"prepare": "husky install"
|
|
86
|
+
"release:publish": "node ./scripts-dev/publish.js"
|
|
84
87
|
},
|
|
85
88
|
"author": "CKSource (http://cksource.com/)",
|
|
86
89
|
"license": "MIT",
|
|
@@ -101,6 +104,6 @@
|
|
|
101
104
|
"packages/**"
|
|
102
105
|
],
|
|
103
106
|
"hexo": {
|
|
104
|
-
"version": "6.
|
|
107
|
+
"version": "6.3.0"
|
|
105
108
|
}
|
|
106
109
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license Copyright (c) 2017-2022, CKSource Holding sp. z o.o. All rights reserved.
|
|
3
|
+
* For licensing, see LICENSE.md.
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
'use strict';
|
|
7
|
+
|
|
8
|
+
/* eslint-env node */
|
|
9
|
+
|
|
10
|
+
const path = require( 'path' );
|
|
11
|
+
const fs = require( 'fs' );
|
|
12
|
+
const ROOT_DIRECTORY = path.join( __dirname, '..' );
|
|
13
|
+
|
|
14
|
+
// When installing a repository as a dependency, the `.git` directory does not exist.
|
|
15
|
+
// In such a case, husky should not attach its hooks as npm treats it as a package, not a git repository.
|
|
16
|
+
if ( fs.existsSync( path.join( ROOT_DIRECTORY, '.git' ) ) ) {
|
|
17
|
+
require( 'husky' ).install();
|
|
18
|
+
}
|
|
@@ -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/index.js
CHANGED
|
@@ -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,
|
|
@@ -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,
|
|
@@ -464,6 +468,7 @@ function buildApis( projectConfigs, options = {} ) {
|
|
|
464
468
|
projectSlug: config.slug
|
|
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,
|
|
@@ -368,7 +368,7 @@ function getPackagesPathsInfo( rootPath, slug, directory ) {
|
|
|
368
368
|
// CKEditor 5 can have packages that do not start with `ckeditor5-` prefix.
|
|
369
369
|
const slugOrRegExp = slug === 'ckeditor5' ? /ckeditor5?-/ : `${ slug }-`;
|
|
370
370
|
|
|
371
|
-
return glob.sync( upath.resolve( rootPath, directory
|
|
371
|
+
return glob.sync( upath.resolve( rootPath, directory ) )
|
|
372
372
|
.map( p => {
|
|
373
373
|
const relativePath = p.replace( rootPath + '/', '' );
|
|
374
374
|
|
|
@@ -10,6 +10,11 @@ mixin classItem( item )
|
|
|
10
10
|
li( class="collapsing-list__item collapsing-list__item--visible" )&attributes( attrData )
|
|
11
11
|
div( class="collapsing-list__term" id=item.id )
|
|
12
12
|
h3
|
|
13
|
+
if isNonEmptyArray( item.badges )
|
|
14
|
+
p.badges
|
|
15
|
+
each badge in item.badges
|
|
16
|
+
+badge( badge )
|
|
17
|
+
|
|
13
18
|
code
|
|
14
19
|
+linkOrText( item.longname, {
|
|
15
20
|
doStripLongname: false,
|
|
@@ -18,10 +23,6 @@ mixin classItem( item )
|
|
|
18
23
|
|
|
19
24
|
+devNames( item.longname )
|
|
20
25
|
|
|
21
|
-
if isNonEmptyArray( item.badges )
|
|
22
|
-
p.badges
|
|
23
|
-
each badge in item.badges
|
|
24
|
-
+badge( badge )
|
|
25
26
|
if ( item.description && item.description.excerpt )
|
|
26
27
|
div.collapsing-list__description
|
|
27
28
|
p( class="collapsing-list__excerpt collapsing-list__excerpt--short" )
|
|
@@ -16,6 +16,12 @@ mixin method( met )
|
|
|
16
16
|
- const id = encodeURI( met.id )
|
|
17
17
|
div( class="collapsing-list__term toggler--collapsed" id=id )
|
|
18
18
|
h3
|
|
19
|
+
//- badges
|
|
20
|
+
if isNonEmptyArray( met.badges )
|
|
21
|
+
p.badges
|
|
22
|
+
each badge in met.badges
|
|
23
|
+
+badge( badge )
|
|
24
|
+
|
|
19
25
|
code
|
|
20
26
|
a( class="member-name" href="#" + id ) #{ met.name }
|
|
21
27
|
|
|
@@ -41,13 +47,9 @@ mixin method( met )
|
|
|
41
47
|
if isNonEmptyArray( met.returns[0].types )
|
|
42
48
|
+type( met.returns[0].types )
|
|
43
49
|
|
|
44
|
-
+devNames( met.longname )
|
|
45
50
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
p.badges
|
|
49
|
-
each badge in met.badges
|
|
50
|
-
+badge( badge )
|
|
51
|
+
|
|
52
|
+
+devNames( met.longname )
|
|
51
53
|
|
|
52
54
|
div.collapsing-list__description
|
|
53
55
|
if ( met.description && met.description.excerpt )
|
|
@@ -12,6 +12,11 @@ mixin property( prop )
|
|
|
12
12
|
li( class = itemClasses )&attributes( attrData )
|
|
13
13
|
div( class="collapsing-list__term toggler--collapsed" id=prop.id )
|
|
14
14
|
h3
|
|
15
|
+
if isNonEmptyArray( prop.badges )
|
|
16
|
+
p.badges
|
|
17
|
+
each badge in prop.badges
|
|
18
|
+
+badge( badge )
|
|
19
|
+
|
|
15
20
|
code
|
|
16
21
|
a( class="member-name" href="#" + prop.id ) #{ prop.name }
|
|
17
22
|
|
|
@@ -21,11 +26,6 @@ mixin property( prop )
|
|
|
21
26
|
|
|
22
27
|
+devNames( prop.longname )
|
|
23
28
|
|
|
24
|
-
if isNonEmptyArray( prop.badges )
|
|
25
|
-
p.badges
|
|
26
|
-
each badge in prop.badges
|
|
27
|
-
+badge( badge )
|
|
28
|
-
|
|
29
29
|
div.collapsing-list__description
|
|
30
30
|
if ( prop.description && prop.description.excerpt )
|
|
31
31
|
div.collapsing-list__excerpt
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
if googleoptimize
|
|
2
|
+
|
|
3
|
+
// Google Optimize
|
|
4
|
+
script.
|
|
5
|
+
if (!{ JSON.stringify(googleoptimize.domains) }.indexOf(location.hostname) !== -1) {
|
|
6
|
+
(function (w, d, s, i) {
|
|
7
|
+
var f = d.getElementsByTagName(s)[0],
|
|
8
|
+
j = d.createElement(s);
|
|
9
|
+
j.async = true;
|
|
10
|
+
j.src = 'https://www.googleoptimize.com/optimize.js?id=' + i;
|
|
11
|
+
f.parentNode.insertBefore(j, f);
|
|
12
|
+
})( window, document, 'script', '!{ googleoptimize.id }' );
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// End Google Optimize
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
div.info-box.notice.notice__feedback
|
|
8
8
|
p
|
|
9
|
-
| Every day, we work hard to keep our documentation complete. Have you spotted
|
|
9
|
+
| Every day, we work hard to keep our documentation complete. Have you spotted outdated information? Is something missing?
|
|
10
10
|
| Please report it via our!{' '}
|
|
11
11
|
a( href=githubUrl.toString() id='report-widget-issue-tracker' ) issue tracker
|
|
12
12
|
| .
|
|
@@ -148,10 +148,17 @@ ul.collapsing-list {
|
|
|
148
148
|
|
|
149
149
|
margin-bottom: 0;
|
|
150
150
|
padding-top: 0;
|
|
151
|
+
width: 100%;
|
|
151
152
|
|
|
152
153
|
&:first-of-type {
|
|
153
154
|
flex: 2;
|
|
154
155
|
}
|
|
156
|
+
|
|
157
|
+
.badges {
|
|
158
|
+
text-align: right;
|
|
159
|
+
float: right;
|
|
160
|
+
margin-left: u-spacing( 0 );
|
|
161
|
+
}
|
|
155
162
|
}
|
|
156
163
|
|
|
157
164
|
p {
|
|
@@ -159,11 +166,6 @@ ul.collapsing-list {
|
|
|
159
166
|
padding-top: 0;
|
|
160
167
|
}
|
|
161
168
|
|
|
162
|
-
.badges {
|
|
163
|
-
text-align: right;
|
|
164
|
-
margin-left: u-spacing( 0 );
|
|
165
|
-
}
|
|
166
|
-
|
|
167
169
|
&.hidden {
|
|
168
170
|
&::before {
|
|
169
171
|
display: none;
|
|
@@ -241,6 +243,12 @@ ul.collapsing-list {
|
|
|
241
243
|
color: u-color( 'text', 40% );
|
|
242
244
|
font-size: u-font-size( -1 );
|
|
243
245
|
cursor: default;
|
|
246
|
+
white-space: nowrap;
|
|
247
|
+
overflow: hidden;
|
|
248
|
+
text-overflow: ellipsis;
|
|
249
|
+
direction: rtl;
|
|
250
|
+
text-align: left;
|
|
251
|
+
width: 100%;
|
|
244
252
|
}
|
|
245
253
|
& code {
|
|
246
254
|
display: none;
|