Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion internal/documentation/.vitepress/config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -285,7 +285,7 @@ function guide() {
(() => {
// This function builds the tree for the api docs
const tree = {
text: "API",
text: "📚 API",
collapsed: false,
items: [{
text: "@ui5",
Expand Down
1 change: 0 additions & 1 deletion internal/documentation/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,6 @@ The development server starts at `http://localhost:5173` with hot-reload for liv
| `download-packages` | Downloads the latest published versions of all UI5 CLI packages (`@ui5/builder`, `@ui5/cli`, etc.) via `npm pack` and extracts them to `tmp/packages/`. This enables gh-pages builds to use published npm packages instead of local workspace code. |
| `jsdoc-generate` | Generates API documentation from local workspace package sources (`../../packages/*/lib/**/*.js`). Uses the workspace JSDoc config targeting the current development version (v5). |
| `jsdoc-generate-gh-pages` | Generates API documentation from downloaded packages in `tmp/packages/`. Uses the gh-pages JSDoc config targeting the published version (v4). Requires `download-packages` to run first. |
| `jsdoc` | Generates JSDoc API documentation from the local workspace and opens the result in the browser. Convenience wrapper for local development. |


## Dual-Version Documentation
Expand Down
2 changes: 1 addition & 1 deletion internal/documentation/docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ info ProjectBuilder Executing cleanup tasks...
Most UI5 CLI modules provide JavaScript APIs for direct consumption in other Node.js projects.
This allows you to rely on UI5 CLI for UI5-specific build functionality and project handling, while creating your own tools to perfectly match the needs of your project.

All available APIs are documented in the [UI5 CLI API Reference](https://ui5.github.io/cli/v5/api/index.html).
All available APIs are documented directly within this documentation. Use the sidebar menu and navigate to **📚 API** to browse the API reference for each package.

::: code-group
```js [ESM]
Expand Down
52 changes: 26 additions & 26 deletions internal/documentation/docs/pages/Builder.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ Based on a project's type, the UI5 Builder defines a series of build steps to ex

For every type there is a set of default tasks. You can disable single tasks using the `--exclude-task` [CLI parameter](./CLI.md#ui5-build), and you can include tasks using the `--include-task` parameter.

<div style="margin: 1rem 0;">
<VPButton class="no-decoration" text="📚 API Reference" href="https://ui5.github.io/cli/v5/api/index.html"/>
</div>
::: tip
Browse the API reference for each Builder API by navigating in the sidebar menu to **📚 API -> @ui5/builder**.
:::

## Tasks
Tasks are specific build steps to be executed during build phase.
Expand All @@ -23,31 +23,31 @@ A project can add custom tasks to the build by using the [Custom Tasks Extensibi

### Standard Tasks

All available standard tasks are documented [in the API reference](https://ui5.github.io/cli/v5/api/index.html). Search for `@ui5/builder/tasks/` to filter the API reference for all available tasks. The list below offers the actual order of their execution:
All available standard tasks are documented under **📚 API -> @ui5/builder -> tasks**. Use the sidebar menu to access the respective pages. The list below offers the actual order of their execution:

| Task | Type `application` | Type `component` | Type `library` | Type `theme-library` |
|--------------------------------|:-----------------------:|:-----------------------:|:-----------------------:|:-----------------------:|
| escapeNonAsciiCharacters | enabled | enabled | enabled | |
| replaceCopyright | enabled | enabled | enabled | enabled |
| replaceVersion | enabled | enabled | enabled | enabled |
| replaceBuildtime | | | enabled | |
| generateJsdoc | | | *disabled* <sup>1</sup> | |
| executeJsdocSdkTransformation | | | *disabled* <sup>1</sup> | |
| minify | enabled | enabled | enabled | |
| generateFlexChangesBundle | enabled | enabled | enabled | |
| generateLibraryManifest | | | enabled | |
| enhanceManifest | enabled | enabled | enabled | |
| generateComponentPreload | enabled | enabled | *disabled* <sup>2</sup> | |
| generateLibraryPreload | | | enabled | |
| generateStandaloneAppBundle | *disabled* <sup>3</sup> | | | |
| transformBootstrapHtml | *disabled* <sup>3</sup> | | | |
| generateBundle | *disabled* <sup>4</sup> | *disabled* <sup>4</sup> | *disabled* <sup>4</sup> | |
| buildThemes | | | enabled | enabled |
| generateThemeDesignerResources | | | *disabled* <sup>5</sup> | *disabled* <sup>5</sup> |
| generateVersionInfo | *disabled* <sup>1</sup> | | | |
| generateCachebusterInfo | *disabled* | *disabled* | | |
| generateApiIndex | *disabled* <sup>1</sup> | | | |
| generateResourcesJson | *disabled* | *disabled* | *disabled* | *disabled* |
| [escapeNonAsciiCharacters](../api/module-@ui5_builder_tasks_escapeNonAsciiCharacters) | enabled | enabled | enabled | |
| [replaceCopyright](../api/module-@ui5_builder_tasks_replaceCopyright) | enabled | enabled | enabled | enabled |
| [replaceVersion](../api/module-@ui5_builder_tasks_replaceVersion) | enabled | enabled | enabled | enabled |
| [replaceBuildtime](../api/module-@ui5_builder_tasks_replaceBuildtime) | | | enabled | |
| [generateJsdoc](../api/module-@ui5_builder_tasks_jsdoc_generateJsdoc) | | | *disabled* <sup>1</sup> | |
| [executeJsdocSdkTransformation](../api/module-@ui5_builder_tasks_jsdoc_executeJsdocSdkTransformation) | | | *disabled* <sup>1</sup> | |
| [minify](../api/module-@ui5_builder_tasks_minify) | enabled | enabled | enabled | |
| [generateFlexChangesBundle](../api/module-@ui5_builder_tasks_bundlers_generateFlexChangesBundle) | enabled | enabled | enabled | |
| [generateLibraryManifest](../api/module-@ui5_builder_tasks_generateLibraryManifest) | | | enabled | |
| [enhanceManifest](../api/module-@ui5_builder_tasks_enhanceManifest) | enabled | enabled | enabled | |
| [generateComponentPreload](../api/module-@ui5_builder_tasks_bundlers_generateComponentPreload) | enabled | enabled | *disabled* <sup>2</sup> | |
| [generateLibraryPreload](../api/module-@ui5_builder_tasks_bundlers_generateLibraryPreload) | | | enabled | |
| [generateStandaloneAppBundle](../api/module-@ui5_builder_tasks_bundlers_generateStandaloneAppBundle) | *disabled* <sup>3</sup> | | | |
| transformBootstrapHtml | *disabled* <sup>3</sup> | | | |
| [generateBundle](../api/module-@ui5_builder_tasks_bundlers_generateBundle) | *disabled* <sup>4</sup> | *disabled* <sup>4</sup> | *disabled* <sup>4</sup> | |
| [buildThemes](../api/module-@ui5_builder_tasks_buildThemes) | | | enabled | enabled |
| [generateThemeDesignerResources](../api/module-@ui5_builder_tasks_generateThemeDesignerResources) | | | *disabled* <sup>5</sup> | *disabled* <sup>5</sup> |
| [generateVersionInfo](../api/module-@ui5_builder_tasks_generateVersionInfo) | enabled | *disabled* | *disabled* | *disabled* |
| [generateCachebusterInfo](../api/module-@ui5_builder_tasks_generateCachebusterInfo) | *disabled* | *disabled* | | |
| [generateApiIndex](../api/module-@ui5_builder_tasks_jsdoc_generateApiIndex) | *disabled* <sup>1</sup> | | | |
| [generateResourcesJson](../api/module-@ui5_builder_tasks_generateResourcesJson) | *disabled* | *disabled* | *disabled* | *disabled* |

*Disabled tasks can be activated by certain build modes, the project configuration, or by using the `--include-task` [CLI parameter](./CLI.md#ui5-build). See footnotes where given*

Expand Down Expand Up @@ -157,7 +157,7 @@ Processors work with provided resources. They contain the actual build step logi
Processors can be implemented generically. The string replacer is an example for that.
Since string replacement is a common build step, it can be useful in different contexts, e.g. code, version, date, and copyright replacement. A concrete replacement operation could be achieved by passing a custom configuration to the processor. This way, multiple tasks can make use of the same processor to achieve their build step.

To get a list of all available processors, please visit [the API reference](https://ui5.github.io/cli/v5/api/index.html) and search for `@ui5/builder/processors/`.
To get a list of all available processors, use the sidebar menu and navigate to **📚 API -> @ui5/builder -> processors**.

## Legacy Bundle Tooling (lbt)
JavaScript port of the "legacy" Maven/Java based bundle tooling.
Expand Down
2 changes: 1 addition & 1 deletion internal/documentation/docs/pages/Configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -749,7 +749,7 @@ A list of bundle definitions. A `bundleDefinition` contains of the following opt

- `name`: The module bundle name
- `defaultFileTypes`: List of default file types which should be included in the bundle. Defaults to: `.js`, `.control.xml`, `.fragment.html`, `.fragment.json`, `.fragment.xml`, `.view.html`, `.view.json` and `.view.xml`
- `sections`: A list of module bundle definition sections. Each section specifies an embedding technology (see [API-Reference](https://ui5.github.io/cli/v5/api/module-@ui5_builder_processors_bundlers_moduleBundler.html#~ModuleBundleDefinition)) and lists the resources that should be in- or excluded from the section.
- `sections`: A list of module bundle definition sections. Each section specifies an embedding technology (see [📚 API-Reference](../api/module-@ui5_builder_processors_bundlers_moduleBundler.html#~ModuleBundleDefinition)) and lists the resources that should be in- or excluded from the section.
- `mode`: The embedding technology (e.g. provided, raw, preload, bundleInfo, depCache, require)
- `filters`: List of modules declared as glob patterns (resource name patterns) that are in- or excluded. Similarly to the use of a single `*` or double `**` asterisk, a pattern ending with a slash `/` denotes an arbitrary number of characters or folder names. Excludes have to be marked with a leading exclamation mark `!`. The order of filters is relevant; a later inclusion overrides an earlier exclusion, and vice versa.
- `resolve`: Setting resolve to `true` will also include all (transitive) dependencies of the files
Expand Down
20 changes: 10 additions & 10 deletions internal/documentation/docs/pages/FileSystem.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,17 +6,17 @@ The [UI5 FS](https://github.com/SAP/ui5-fs) provides a UI5-specific file system
import VPButton from "vitepress/dist/client/theme-default/components/VPButton.vue"
</script>

<div style="margin: 1rem 0;">
<VPButton class="no-decoration" text="📚 API Reference" href="https://ui5.github.io/cli/v5/api/"/>
</div>
::: tip
Browse the API reference for each FS API by navigating in the sidebar menu to **📚 API -> @ui5/fs**.
:::

## Overview

The virtual file system "UI5 FS" offers an abstraction layer from the physical file system. Among other features, it can combine a set of scattered file locations into a well-defined virtual structure.

### Resource

A [Resource](https://ui5.github.io/cli/v5/api/@ui5_fs_Resource.html) basically represents a file. Besides providing access to the file content, it also carries metadata like the **virtual path** of the Resource.
A [Resource](../api/@ui5_fs_Resource.html) basically represents a file. Besides providing access to the file content, it also carries metadata like the **virtual path** of the Resource.

Resources are typically created and stored in [Adapters](#adapters). Once read from a physical file system, they are typically kept in memory for further processing in other modules.

Expand All @@ -26,9 +26,9 @@ This ensures a high build performance, as physical read and write access for a h

Adapters abstract access to different resource locations.

The [Memory Adapter](https://ui5.github.io/cli/v5/api/@ui5_fs_adapters_Memory.html) represents a virtual file system which maintains respective [Resources](#resource) inside a virtual data structure.
The [Memory Adapter](../api/@ui5_fs_adapters_Memory.html) represents a virtual file system which maintains respective [Resources](#resource) inside a virtual data structure.

The [File System Adapter](https://ui5.github.io/cli/v5/api/@ui5_fs_adapters_FileSystem.html), on the other hand, has direct access to the physical file system. It maps a "virtual base path" to a given physical path.
The [File System Adapter](../api/@ui5_fs_adapters_FileSystem.html), on the other hand, has direct access to the physical file system. It maps a "virtual base path" to a given physical path.

Both adapters provide APIs to retrieve and persist [Resources](#resource), namely

Expand All @@ -43,10 +43,10 @@ Reader collections allow grouped access to multiple adapters, which might even b

They implement the same API for **retrieving** resources as adapters (`byPath` and `byGlob`). Multiple flavors exist:

* [ReaderCollection](https://ui5.github.io/cli/v5/api/@ui5_fs_ReaderCollection.html): The most basic collection. Allows parallel read access to multiple readers (i.e. adapters or collections)
* [ReaderCollectionPrioritized](https://ui5.github.io/cli/v5/api/@ui5_fs_ReaderCollectionPrioritized.html): Contains a list of readers which are searched in-order. This allows one reader to "overlay" resources of another
* [DuplexCollection](https://ui5.github.io/cli/v5/api/@ui5_fs_DuplexCollection.html): Contains a single reader and a single "writer". It therefore also implements the Adapter API for **persisting** resources (`write()`). When retrieving resources, the writer is prioritized over the reader
* [WriterCollection](https://ui5.github.io/cli/v5/api/@ui5_fs_WriterCollection.html): Contains a set of writers and a mapping for each of them. When writing a resource, the writer is chosen based on the resource's virtual path.
* [ReaderCollection](../api/@ui5_fs_ReaderCollection.html): The most basic collection. Allows parallel read access to multiple readers (i.e. adapters or collections)
* [ReaderCollectionPrioritized](../api/@ui5_fs_ReaderCollectionPrioritized.html): Contains a list of readers which are searched in-order. This allows one reader to "overlay" resources of another
* [DuplexCollection](../api/@ui5_fs_DuplexCollection.html): Contains a single reader and a single "writer". It therefore also implements the Adapter API for **persisting** resources (`write()`). When retrieving resources, the writer is prioritized over the reader
* [WriterCollection](../api/@ui5_fs_WriterCollection.html): Contains a set of writers and a mapping for each of them. When writing a resource, the writer is chosen based on the resource's virtual path.

<style>
.no-decoration {
Expand Down
4 changes: 2 additions & 2 deletions internal/documentation/docs/pages/Overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ dependencies:

By placing this file in the root directory of the `my.app` application project, you can start a server with a local copy of the `my.lib` dependency, located in the same parent directory, using the command `ui5 serve --dependency-definition ./projectDependencies.yaml`.

The structure of the dependency definition file follows that of the [`@ui5/project/graph/providers/DependencyTree~TreeNode`](https://ui5.github.io/cli/v5/api/@ui5_project_graph_providers_DependencyTree.html#~TreeNode) type.
The structure of the dependency definition file follows that of the [`@ui5/project/graph/providers/DependencyTree~TreeNode`](../api/@ui5_project_graph_providers_DependencyTree.html#~TreeNode) type.

## HTTP/2 Development Webserver
The UI5 CLI contains a web server to serve the project via HTTP/2 protocol.
Expand All @@ -124,4 +124,4 @@ This requires an SSL certificate. You are guided through the automatic generatio
## Integration in Other Tools
One of the key features of the UI5 CLI is its modularization. Single parts of UI5 CLI can easily be integrated in other `Node.js`-based tools and frameworks like [Grunt](https://gruntjs.com/) or [Gulp](https://gulpjs.com/).

All JavaScript APIs available for direct consumption are listed [here](https://ui5.github.io/cli/v5/api/index.html). However, for standard UI5 development, the [UI5 CLI](./CLI.md) should always be the first choice.
All JavaScript APIs available for direct consumption are listed in the sidebar menu under **📚 API**. However, for standard UI5 development, the [UI5 CLI](./CLI.md) should always be the first choice.
7 changes: 3 additions & 4 deletions internal/documentation/docs/pages/Project.md
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,9 @@ In the table below you can find the available combinations of project type & out
² Theme libraries in most cases have more than one namespace.
³ Modules have explicit path mappings configured and no namespace concept.


<div style="margin: 1rem 0;">
<VPButton class="no-decoration" text="📚 API Reference" href="https://ui5.github.io/cli/v5/api/@ui5_project_build_ProjectBuilder.html"/>
</div>
::: tip
Browse the API reference for each Project API by navigating in the sidebar menu to **📚 API -> @ui5/project**.
:::

<style>
.no-decoration {
Expand Down
Loading
Loading