diff --git a/.github/workflows/check-md.yml b/.github/workflows/check-md.yml
new file mode 100644
index 0000000000..59a3ffefc4
--- /dev/null
+++ b/.github/workflows/check-md.yml
@@ -0,0 +1,19 @@
+name: Check Markdown links
+
+on:
+ pull_request:
+ branches:
+ - main
+ - 'release/*'
+
+jobs:
+ markdown-link-check:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@master
+ - uses: gaurav-nelson/github-action-markdown-link-check@v1
+ with:
+ config-file: '.github/workflows/markdown.links.config.json'
+ check-modified-files-only: 'no' # TODO: set to 'yes' before merging
+ use-verbose-mode: 'yes'
+ use-quiet-mode: 'yes'
diff --git a/.github/workflows/markdown.links.config.json b/.github/workflows/markdown.links.config.json
new file mode 100644
index 0000000000..a343b0b81e
--- /dev/null
+++ b/.github/workflows/markdown.links.config.json
@@ -0,0 +1,8 @@
+{
+ "replacementPatterns": [
+ {
+ "pattern": "/%40",
+ "replacement": "/@"
+ }
+ ]
+}
diff --git a/docs/README.md b/docs/README.md
index 4cd3b3c3db..88d16805f1 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -18,7 +18,7 @@ The documentation is sorted by topic but in the table below, you shall find the
| @o3r/extractors | Utilities to extract your application metadata to interact with your CMS | @o3r/core
@o3r/dev-tools | |
| @o3r/forms | Utilities to enhance angular form (asynchronous decorator, additional validator, error store...) | @o3r/core
@o3r/dev-tools | [README](./forms/README.md)
[FORM_ERRORS](./forms/FORM_ERRORS.md)
[FORM_STRUCTURE](./forms/FORM_STRUCTURE.md)
[FORM_SUBMIT_AND_INTERCOMMUNICATION](./forms/FORM_SUBMIT_AND_INTERCOMMUNICATION.md)
[FORM_VALIDATION](./forms/FORM_VALIDATION.md) |
| @o3r/localization | Provide a fallback language/translation support and debug tools | @o3r/core
@o3r/dev-tools | [LOCALIZATION](./localization/LOCALIZATION.md)
[CMS_ADAPTERS](./cms-adapters/CMS_ADAPTERS.md) |
-| @o3r/logger | Bridge to target different logger (logrocket, fullstory, smartlook) with a common interface | N/A | [LOGS](./logger/LOGS.md) |
+| @o3r/logger | Bridge to target different logger (logrocket, fullstory, smartlook) with a common interface | N/A | [LOGS](./logger/LOGS.md) |
| @o3r/mobile | Helpers and store to integrate Capacitor into your Otter application.
Integration with the pCloudy API for e2e testing on real devices. | @o3r/core
@o3r/logger | |
| @o3r/routing | Module to configure an Otter application's routing (POST parameter management, preloading strategy, guard recommendation) | @o3r/core
@o3r/dev-tools | [REQUEST_PARAMETERS_SERVICE](./routing/REQUEST_PARAMETERS_SERVICE.md)
[ROUTING](./routing/ROUTING.md)
[APP_SERVER_ROUTING](./routing/APP_SERVER_ROUTING.md) |
| @o3r/rules-engine | Rule engine executed on your Otter application to customize your application translations, placeholders and configs based on a json file generated by your CMS | @o3r/components
@o3r/configuration
@o3r/core
@o3r/dev-tools
@o3r/dynamic-content
@o3r/extractors
@o3r/localization
@o3r/logger
@o3r/styling | [how-it-works](./rules-engine/how-it-works.md)
[how-to-use](./rules-engine/how-to-use.md)
[examples](./rules-engine/examples.md)
[facts](./rules-engine/facts.md)
[operators](./rules-engine/operators.md)
[rule](./rules-engine/rule.md)
[ruleset](./rules-engine/ruleset.md)
[CMS_ADAPTERS](./cms-adapters/CMS_ADAPTERS.md) |
@@ -28,5 +28,5 @@ The documentation is sorted by topic but in the table below, you shall find the
| @o3r/styling | Styling framework to apply a theme on an Otter application at build time and runtime to support CMS customization | @o3r/core
@o3r/dynamic-content
@o3r/extractors
@o3r/schematics | [THEME](./styling/THEME.md)
[TYPOGRAPHY](./styling/TYPOGRAPHY.md)
[CMS_ADAPTERS](./cms-adapters/CMS_ADAPTERS.md) |
| @o3r/testing | Testing (e2e, unit test) utilities to help you build your own E2E pipeline integrating visual testing | @o3r/localization
@o3r/schematics | [POST_MESSAGE_INTERCEPTOR](./testing/POST_MESSAGE_INTERCEPTOR.md)
[UNIT_TESTS_SETUP](./testing/UNIT_TESTS_SETUP.md) |
| @o3r/third-party | Bridge to communicate with third parties via an iFrame solution | N/A | [A/B Testing](./ab-testing/AB_TESTING.md) |
-| @o3r/vscode-extension | Various in house VSCode extensions to help you with the development of your Otter application with this IDE (automated generated Otter components etc.) | N/A | [vscode-extension](./vscode-extension.md) |
-| @o3r/eslint-config-otter | Recommended eslint configuration for Otter project | @o3r/eslint-plugin | [eslint-config](./linter/eslint-config.md) |
+| @o3r/vscode-extension | Various in house VSCode extensions to help you with the development of your Otter application with this IDE (automated generated Otter components etc.) | N/A | [vscode-extension](../apps/vscode-extension/README.md) |
+| @o3r/eslint-config-otter | Recommended eslint configuration for Otter project | @o3r/eslint-plugin | [eslint-config](./linter/eslint-config.md) |
diff --git a/docs/rules-engine/how-to-use/performance-metrics.md b/docs/rules-engine/how-to-use/performance-metrics.md
index dba19c99fe..33ae40d30d 100644
--- a/docs/rules-engine/how-to-use/performance-metrics.md
+++ b/docs/rules-engine/how-to-use/performance-metrics.md
@@ -18,7 +18,7 @@ The marks names are formatted as following:
## Performance reporting API configuration
-By default, if the rules engine is running in a browser, the performance metrics are reported via the [Performance Timeline API](https://developer.mozilla.org/en-US/docs/Web/API/Performance_Timeline). If the rules engine is running in a Node, there is no default performance reporting mechanism.
+By default, if the rules engine is running in a browser, the performance metrics are reported via the [Performance API](https://developer.mozilla.org/en-US/docs/Web/API/Performance_API). If the rules engine is running in a Node, there is no default performance reporting mechanism.
The reporting of the performance metrics can be configured via the rules engine `performance` option.
The following example shows how to configure the reporting of the performance metrics in a Node application context :
diff --git a/tools/github-actions/download-build-output/readme.md b/tools/github-actions/download-build-output/readme.md
index ffb929fcb5..c4873c4945 100644
--- a/tools/github-actions/download-build-output/readme.md
+++ b/tools/github-actions/download-build-output/readme.md
@@ -4,7 +4,7 @@
Download and restore the `dist` folders from GitHub artifact (check [Upload build output](../upload-build-output/readme.md))
## Task options
-See [Action specifications](tools/github-actions/download-build-output/action.yml) directly for more information about the supported parameters.
+See [Action specifications](./action.yml) directly for more information about the supported parameters.
## Usage example
```yaml
diff --git a/tools/github-actions/setup/readme.md b/tools/github-actions/setup/readme.md
index 1a7be2a101..32e7c62d53 100644
--- a/tools/github-actions/setup/readme.md
+++ b/tools/github-actions/setup/readme.md
@@ -9,7 +9,7 @@ Including :
## Task options
-See [Action specifications](tools/github-actions/setup/action.yml) directly for more information about the supported parameters.
+See [Action specifications](./action.yml) directly for more information about the supported parameters.
## Usage example
diff --git a/tools/github-actions/upload-build-output/readme.md b/tools/github-actions/upload-build-output/readme.md
index 19c3f3aeed..b2336d1886 100644
--- a/tools/github-actions/upload-build-output/readme.md
+++ b/tools/github-actions/upload-build-output/readme.md
@@ -8,7 +8,7 @@ You can then use the download build output action for the download (check [Downl
## Task options
-See [Action specifications](tools/github-actions/upload-build-output/action.yml) directly for more information about the supported parameters.
+See [Action specifications](./action.yml) directly for more information about the supported parameters.
## Usage example