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 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.1.7",
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": "^30.3.5",
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-env": "^30.3.5",
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.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.2.0"
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" )
@@ -1,3 +1,3 @@
1
1
  mixin devNames( name )
2
- span.collapsing-list__dev-names( aria-hidden='true' )
2
+ span.collapsing-list__dev-names( aria-hidden='true', title=name )
3
3
  code #{ name }
@@ -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
- //- badges
47
- if isNonEmptyArray( met.badges )
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
@@ -60,7 +60,7 @@ if projectLocals
60
60
  if page.isSnippetPage
61
61
  //UMBERTO: SNIPPET: CSS
62
62
 
63
+ include google-optimize
63
64
  include google-tag-manager
64
65
  include google-analytics
65
66
 
66
- include feedback-widget
@@ -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 an outdated information? Is something missing?
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;