/, '') ?>
+
+
+
+
+
+
+
+
+
+##### Extends:
+
+
+
+
+##### Type:
+-
+
+
+
+##### This:
+-
+
+
+
+##### Example 1? 's':'' ?>:
+
+
+
+
+##### Parameters:
+
+
+
+
+##### Requires:
+
+-
+
+
+
+
+##### Fires:
+
+-
+
+
+
+
+##### Listens to Events:
+
+-
+
+
+
+
+##### Listeners of This Event:
+
+-
+
+
+
+
+##### Modifies:
+ 1) { ?>
+
+-
+
+
+
+
+
+
+##### Throws:
+ 1) { ?>
+
+-
+
+
+
+
+
+
+##### Returns:
+ 1) { ?>
+
+-
+
+
+
+
+
+
+##### Yields:
+ 1) { ?>
+
+-
+
+
+
+
diff --git a/internal/documentation/jsdoc/patches/tmpl/modifies.tmpl b/internal/documentation/jsdoc/patches/tmpl/modifies.tmpl
new file mode 100644
index 00000000000..4bba92bb498
--- /dev/null
+++ b/internal/documentation/jsdoc/patches/tmpl/modifies.tmpl
@@ -0,0 +1,7 @@
+
+
+
+**Type:**
+
diff --git a/internal/documentation/jsdoc/patches/tmpl/namespace.tmpl b/internal/documentation/jsdoc/patches/tmpl/namespace.tmpl
new file mode 100644
index 00000000000..348a59d0a53
--- /dev/null
+++ b/internal/documentation/jsdoc/patches/tmpl/namespace.tmpl
@@ -0,0 +1,129 @@
+
+
+
+
+## Constructor
+
+
+####
+
+
+
+
+
+
+
+
+
+##### Extends:
+
+
+
+
+##### Type:
+-
+
+
+
+##### This:
+-
+
+
+
+##### Example 1? 's':'' ?>:
+
+
+
+
+##### Parameters:
+
+
+
+
+##### Requires:
+
+-
+
+
+
+
+##### Fires:
+
+-
+
+
+
+
+##### Listens to Events:
+
+-
+
+
+
+
+##### Listeners of This Event:
+
+-
+
+
+
+
+##### Modifies:
+ 1) { ?>
+
+-
+
+
+
+
+
+
+##### Throws:
+ 1) { ?>
+
+-
+
+
+
+
+
+
+##### Returns:
+ 1) { ?>
+
+-
+
+
+
+
+
+
+##### Yields:
+ 1) { ?>
+
+-
+
+
+
+
diff --git a/internal/documentation/jsdoc/patches/tmpl/params.tmpl b/internal/documentation/jsdoc/patches/tmpl/params.tmpl
new file mode 100644
index 00000000000..97f0e3415ec
--- /dev/null
+++ b/internal/documentation/jsdoc/patches/tmpl/params.tmpl
@@ -0,0 +1,67 @@
+
+| Name | Type | Attributes | Default | Description |
+| --- | --- | --- | --- | --- |
+| `` | | optional, nullable, repeatable | `` | ').replaceAll("```js", "
").replaceAll("```", "") ?>
*Properties:*
+
diff --git a/internal/documentation/jsdoc/patches/tmpl/properties.tmpl b/internal/documentation/jsdoc/patches/tmpl/properties.tmpl
new file mode 100644
index 00000000000..3830cbdad29
--- /dev/null
+++ b/internal/documentation/jsdoc/patches/tmpl/properties.tmpl
@@ -0,0 +1,39 @@
+
| Name | Type | Attributes | Default | Description |
|---|
| | optionalnullable | | ").replaceAll("```js", "").replaceAll("```", "") ?>Properties |
diff --git a/internal/documentation/jsdoc/patches/tmpl/returns.tmpl b/internal/documentation/jsdoc/patches/tmpl/returns.tmpl
new file mode 100644
index 00000000000..bf3e18fc412
--- /dev/null
+++ b/internal/documentation/jsdoc/patches/tmpl/returns.tmpl
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+**Type:**
+
diff --git a/internal/documentation/jsdoc/patches/tmpl/source.tmpl b/internal/documentation/jsdoc/patches/tmpl/source.tmpl
new file mode 100644
index 00000000000..38334dc60e2
--- /dev/null
+++ b/internal/documentation/jsdoc/patches/tmpl/source.tmpl
@@ -0,0 +1,6 @@
+
+```
+
+```
diff --git a/internal/documentation/jsdoc/patches/tmpl/tutorial.tmpl b/internal/documentation/jsdoc/patches/tmpl/tutorial.tmpl
new file mode 100644
index 00000000000..40a160efc8f
--- /dev/null
+++ b/internal/documentation/jsdoc/patches/tmpl/tutorial.tmpl
@@ -0,0 +1,13 @@
+ 0) { ?>
+## Child Tutorials
+
+
+-
+
+
+
+##
+
+
diff --git a/internal/documentation/jsdoc/patches/tmpl/type.tmpl b/internal/documentation/jsdoc/patches/tmpl/type.tmpl
new file mode 100644
index 00000000000..33434d33aa4
--- /dev/null
+++ b/internal/documentation/jsdoc/patches/tmpl/type.tmpl
@@ -0,0 +1,23 @@
+", "");
+ var longname = name.replace("Array.<","").replace(">", "");
+ }
+ }
+ } else {
+ var resolvedName = name;
+ }
+ var link = self.linkto(name, self.htmlsafe(resolvedName));
+ if (longname) {
+ link = link.replace(longname, resolvedName);
+ }
+ ?> \|
\ No newline at end of file
diff --git a/internal/documentation/jsdoc/templates/custom.css b/internal/documentation/jsdoc/templates/custom.css
deleted file mode 100644
index c38efbd9f2f..00000000000
--- a/internal/documentation/jsdoc/templates/custom.css
+++ /dev/null
@@ -1,13 +0,0 @@
-footer {
- display: flex;
-}
-.ui5-footer-item {
- flex-grow: 0;
- margin: auto 0.6rem;
- padding: 0.4rem 0;
- white-space: nowrap;
-}
-.ui5-footer-item-growing {
- flex-grow: 1;
- white-space: normal;
-}
diff --git a/internal/documentation/jsdoc/templates/layout.tmpl b/internal/documentation/jsdoc/templates/layout.tmpl
deleted file mode 100644
index dfec26da012..00000000000
--- a/internal/documentation/jsdoc/templates/layout.tmpl
+++ /dev/null
@@ -1,135 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/internal/documentation/package.json b/internal/documentation/package.json
index dd1b6c824f4..53f0143240f 100644
--- a/internal/documentation/package.json
+++ b/internal/documentation/package.json
@@ -24,14 +24,15 @@
"scripts": {
"start": "vitepress dev --open",
"lint": "eslint .",
- "depcheck": "depcheck --ignores @ui5/documentation,vitepress,docdash,jsdoc,open-cli,handlebars,@types/node,@ui5/webcomponents,autoprefixer,cssnano,@theme/components",
+ "depcheck": "depcheck --ignores @ui5/documentation,vitepress,jsdoc,open-cli,handlebars,@types/node,@ui5/webcomponents,autoprefixer,cssnano,@theme/components,docdash",
"dev": "vitepress dev",
"build:vitepress": "vitepress build",
"build:assets": "sh -c 'DEST_DIR=${1:-./dist}; cp -r ./docs/images \"$DEST_DIR/images\"' --",
"preview": "vitepress preview --port 8080",
+ "prepare-docdash": "./scripts/prepareDocdash.sh",
"jsdoc": "npm run jsdoc-generate && open-cli dist/api/index.html",
- "jsdoc-generate": "jsdoc -c jsdoc/jsdoc-workspace.json -t $(node -p 'path.dirname(require.resolve(\"docdash\"))') ./ || (echo 'Error during JSDoc generation! Check log.' && exit 1)",
- "jsdoc-generate-gh-pages": "jsdoc -c jsdoc/jsdoc.json -t $(node -p 'path.dirname(require.resolve(\"docdash\"))') ./ || (echo 'Error during JSDoc generation! Check log.' && exit 1)",
+ "jsdoc-generate": "npm run prepare-docdash && jsdoc -c jsdoc/jsdoc-workspace.json -t jsdoc/docdash ./ || (echo 'Error during JSDoc generation! Check log.' && exit 1)",
+ "jsdoc-generate-gh-pages": "npm run prepare-docdash && jsdoc -c jsdoc/jsdoc.json -t jsdoc/docdash ./ || (echo 'Error during JSDoc generation! Check log.' && exit 1)",
"generate-cli-doc": "node ./scripts/generateCliDoc.js",
"schema-generate": "node ./scripts/buildSchema.js",
"schema-generate-gh-pages": "node ./scripts/buildSchema.js gh-pages",
@@ -50,7 +51,7 @@
},
"devDependencies": {
"@apidevtools/json-schema-ref-parser": "^14.2.1",
- "docdash": "^2.0.2",
+ "docdash": "2.0.2",
"handlebars": "^4.7.8",
"jsdoc": "^4.0.4",
"open-cli": "^8.0.0",
diff --git a/internal/documentation/scripts/prepareDocdash.sh b/internal/documentation/scripts/prepareDocdash.sh
new file mode 100755
index 00000000000..8f9a19f29a2
--- /dev/null
+++ b/internal/documentation/scripts/prepareDocdash.sh
@@ -0,0 +1,45 @@
+#!/usr/bin/env bash
+#
+# Prepares docdash for jsdoc generation by applying patches for VitePress-compatible Markdown output.
+#
+set -o pipefail
+
+DOCDASH_PATH="$(npm list docdash --parseable)"
+DOCDASH_DESTINATION="jsdoc/docdash"
+
+echo "Preparing docdash for jsdoc generation"
+echo ""
+echo "Docdash Path: $DOCDASH_PATH"
+echo "Docdash Destination: $DOCDASH_DESTINATION"
+echo "Current Directory: $(pwd)"
+echo ""
+
+echo ""
+echo "Clearing docdash destination folder"
+rm -R "$DOCDASH_DESTINATION" -v
+
+echo ""
+echo "Copying docdash to destination"
+cp -Rv "$DOCDASH_PATH" "$DOCDASH_DESTINATION"
+
+echo ""
+echo "Clearing stock docdash templates"
+rm -Rv "$DOCDASH_DESTINATION/tmpl"
+
+echo ""
+echo "Copying modified templates to docdash"
+cp -Rv "jsdoc/patches/tmpl" "$DOCDASH_DESTINATION/tmpl"
+cp -v "$DOCDASH_PATH/publish.js" "$DOCDASH_DESTINATION/"
+cat > jsdoc/docdash/package.json << 'EOF'
+{
+ "type": "commonjs"
+}
+EOF
+
+echo ""
+echo "Removing unneeded files from docdash"
+rm -Rv $DOCDASH_DESTINATION/static
+
+echo ""
+echo "Applying patches to docdash"
+git apply jsdoc/patches/publish.js.patch
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
index 6f8b070454c..874df1d4611 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -7139,6 +7139,30 @@
"url": "https://github.com/sponsors/fb55"
}
},
+ "node_modules/cheerio/node_modules/entities": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
+ "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/cheerio/node_modules/parse5": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
+ "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
+ "license": "MIT",
+ "dependencies": {
+ "entities": "^6.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
"node_modules/chokidar": {
"version": "3.6.0",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
@@ -9161,6 +9185,18 @@
"url": "https://github.com/fb55/encoding-sniffer?sponsor=1"
}
},
+ "node_modules/encoding-sniffer/node_modules/iconv-lite": {
+ "version": "0.6.3",
+ "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz",
+ "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==",
+ "license": "MIT",
+ "dependencies": {
+ "safer-buffer": ">= 2.1.2 < 3.0.0"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
"node_modules/enhance-visitors": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/enhance-visitors/-/enhance-visitors-1.0.0.tgz",
@@ -15916,26 +15952,38 @@
"dev": true,
"license": "MIT"
},
- "node_modules/parse5": {
- "version": "7.3.0",
- "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
- "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
+ "node_modules/parse5-htmlparser2-tree-adapter": {
+ "version": "7.1.0",
+ "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz",
+ "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==",
"license": "MIT",
"dependencies": {
- "entities": "^6.0.0"
+ "domhandler": "^5.0.3",
+ "parse5": "^7.0.0"
},
"funding": {
"url": "https://github.com/inikulin/parse5?sponsor=1"
}
},
- "node_modules/parse5-htmlparser2-tree-adapter": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-7.1.0.tgz",
- "integrity": "sha512-ruw5xyKs6lrpo9x9rCZqZZnIUntICjQAd0Wsmp396Ul9lN/h+ifgVV1x1gZHi8euej6wTfpqX8j+BFQxF0NS/g==",
+ "node_modules/parse5-htmlparser2-tree-adapter/node_modules/entities": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
+ "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.12"
+ },
+ "funding": {
+ "url": "https://github.com/fb55/entities?sponsor=1"
+ }
+ },
+ "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
+ "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
"license": "MIT",
"dependencies": {
- "domhandler": "^5.0.3",
- "parse5": "^7.0.0"
+ "entities": "^6.0.0"
},
"funding": {
"url": "https://github.com/inikulin/parse5?sponsor=1"
@@ -15953,7 +16001,7 @@
"url": "https://github.com/inikulin/parse5?sponsor=1"
}
},
- "node_modules/parse5/node_modules/entities": {
+ "node_modules/parse5-parser-stream/node_modules/entities": {
"version": "6.0.1",
"resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz",
"integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==",
@@ -15965,6 +16013,18 @@
"url": "https://github.com/fb55/entities?sponsor=1"
}
},
+ "node_modules/parse5-parser-stream/node_modules/parse5": {
+ "version": "7.3.0",
+ "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.3.0.tgz",
+ "integrity": "sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==",
+ "license": "MIT",
+ "dependencies": {
+ "entities": "^6.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/inikulin/parse5?sponsor=1"
+ }
+ },
"node_modules/parseurl": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
diff --git a/packages/builder/lib/processors/bundlers/moduleBundler.js b/packages/builder/lib/processors/bundlers/moduleBundler.js
index 843904d6cbd..e4f026e63cc 100644
--- a/packages/builder/lib/processors/bundlers/moduleBundler.js
+++ b/packages/builder/lib/processors/bundlers/moduleBundler.js
@@ -58,7 +58,7 @@ const log = getLogger("builder:processors:bundlers:moduleBundler");
* Excludes should be marked with a leading exclamation mark '!'. The order of filters is relevant; a later
* exclusion overrides an earlier inclusion, and vice versa.
*
- *
List of modules as glob patterns that should be in- or excluded
+ *
Example:
*
* ```js
* // Includes everything from "some/path/to/module/",
diff --git a/packages/builder/lib/tasks/generateResourcesJson.js b/packages/builder/lib/tasks/generateResourcesJson.js
index acd0f747530..aa612455252 100644
--- a/packages/builder/lib/tasks/generateResourcesJson.js
+++ b/packages/builder/lib/tasks/generateResourcesJson.js
@@ -55,7 +55,7 @@ function getCreatorOptions(projectName) {
* Therefore it is also not supported in combination with self-contained build.
*
*
- *
sample resources.json
+ *
sample resources.json
*
* ```js
* const resourcesJson = {