Skip to content
Open
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
111 changes: 111 additions & 0 deletions .github/workflows/link_check.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
name: "Check documentation links"

on:
push:
branches:
- master
- "[0-9]+.[0-9]+"
workflow_dispatch:
inputs:
force_recheck:
description: "Clear lychee cache and recheck all links from scratch"
type: boolean
default: false
devdoc_50_branch:
description: "ibexa/documentation-developer branch for 5.0"
type: string
default: "5.0"
devdoc_46_branch:
description: "ibexa/documentation-developer branch for 4.6"
type: string
default: "4.6"
userdoc_50_branch:
description: "ibexa/documentation-user branch for 5.0"
type: string
default: "5.0"
userdoc_46_branch:
description: "ibexa/documentation-user branch for 4.6"
type: string
default: "4.6"
connect_branch:
description: "ibexa/documentation-connect branch"
type: string
default: "main"
pull_request: ~
schedule:
- cron: "0 6 * * *"

jobs:
link-check:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.13]

steps:
- uses: actions/checkout@v4

- name: Generate token
id: generate_token
uses: actions/create-github-app-token@v2
with:
app-id: ${{ secrets.AUTOMATION_CLIENT_ID }}
private-key: ${{ secrets.AUTOMATION_CLIENT_SECRET }}
owner: ${{ github.repository_owner }}

- name: Configure git credentials for private repositories
run: |
git config --global url."https://x-access-token:${{ steps.generate_token.outputs.token }}@github.com/ibexa/documentation-connect".insteadOf \
"https://github.com/ibexa/documentation-connect"

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}

- name: Install MkDocs dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt

- name: Build documentation
run: mkdocs build --strict

- name: Clone and build versioned repositories for link remap
run: >-
bash tools/clone-repositories.sh
"${{ inputs.devdoc_50_branch || '5.0' }}"
"${{ inputs.devdoc_46_branch || '4.6' }}"
"${{ inputs.userdoc_50_branch || '5.0' }}"
"${{ inputs.userdoc_46_branch || '4.6' }}"
"${{ inputs.connect_branch || 'main' }}"

- name: Restore lychee cache
if: ${{ !inputs.force_recheck }}
uses: actions/cache@v4
with:
path: .lycheecache
key: lychee-${{ github.ref_name }}-${{ github.sha }}
restore-keys: |
lychee-${{ github.ref_name }}-
lychee-

- name: Check links
uses: lycheeverse/lychee-action@e7477775783ea5526144ba13e8db5eec57747ce8 # v2.9.0

Check failure

Code scanning / SonarCloud

External GitHub Actions and workflows should be pinned to a commit hash High

Use full commit SHA hash for this dependency. See more on SonarQube Cloud
with:
args: >-
--config lychee.toml
--cache
--cache-exclude-status "400.."
site
output: lychee-report.md
jobSummary: true
fail: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

- name: Comment broken links
if: always() && github.event_name == 'pull_request'
uses: marocchino/sticky-pull-request-comment@5770ad5eb8f42dd2c4f34da00c94c5381e49af88
with:
path: lychee-report.md
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,13 @@
/vendor/
**/.DS_Store
__pycache__/*
hooks/__pycache__/*
/site/
**/.idea/
/node_modules/
yarn.lock
**.css.map
.lycheecache
lychee.toml
/repositories/
lychee-report.md
3 changes: 3 additions & 0 deletions .lycheeignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Hosts that block automated requests (403)
^https?://help\.openai\.com
^https?://support\.qualifio\.com
43 changes: 43 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,49 @@
After a short while your documentation should be reachable at http://localhost:8000.
If it's not, check the output of the command.

## Checking links

External links in the built documentation are checked using [lychee](https://lychee.cli.rs).

### Running the link checker

Check notice on line 42 in README.md

View workflow job for this annotation

GitHub Actions / vale

[vale] README.md#L42

[Ibexa.SentenceCapitalizationInHeadings] Use sentence-style capitalization in headings
Raw output
{"message": "[Ibexa.SentenceCapitalizationInHeadings] Use sentence-style capitalization in headings", "location": {"path": "README.md", "range": {"start": {"line": 42, "column": 4}}}, "severity": "INFO"}

```bash
# 1. Build the main docs site
mkdocs build --strict

# 2. Clone and build versioned repositories, and generate lychee.toml

Check failure on line 48 in README.md

View workflow job for this annotation

GitHub Actions / vale

[vale] README.md#L48

[Ibexa.CodeBlockLanguages] Always provide a language with a code block.
Raw output
{"message": "[Ibexa.CodeBlockLanguages] Always provide a language with a code block.", "location": {"path": "README.md", "range": {"start": {"line": 48, "column": 1}}}, "severity": "ERROR"}
./tools/clone-repositories.sh

# 3. Check links
lychee --config lychee.toml --cache --cache-exclude-status "400.." site

Check notice on line 52 in README.md

View workflow job for this annotation

GitHub Actions / vale

[vale] README.md#L52

[Ibexa.ByUsingStartOfLine] Prefer 'by using' or 'with' to plain 'using'.
Raw output
{"message": "[Ibexa.ByUsingStartOfLine] Prefer 'by using' or 'with' to plain 'using'.", "location": {"path": "README.md", "range": {"start": {"line": 52, "column": 5}}}, "severity": "INFO"}

Check notice on line 52 in README.md

View workflow job for this annotation

GitHub Actions / vale

[vale] README.md#L52

[Ibexa.SentenceCapitalizationInHeadings] Use sentence-style capitalization in headings
Raw output
{"message": "[Ibexa.SentenceCapitalizationInHeadings] Use sentence-style capitalization in headings", "location": {"path": "README.md", "range": {"start": {"line": 52, "column": 5}}}, "severity": "INFO"}
```

Check failure on line 54 in README.md

View workflow job for this annotation

GitHub Actions / vale

[vale] README.md#L54

[Ibexa.Spellcheck] Did you really mean 'VSCode'?
Raw output
{"message": "[Ibexa.Spellcheck] Did you really mean 'VSCode'?", "location": {"path": "README.md", "range": {"start": {"line": 54, "column": 28}}}, "severity": "ERROR"}
After fixing any reported links, run `mkdocs build --strict` before rerunning `lychee`.

#### Using non-standard branches

Check failure on line 57 in README.md

View workflow job for this annotation

GitHub Actions / vale

[vale] README.md#L57

[Ibexa.Spellcheck] Did you really mean 'VSCode'?
Raw output
{"message": "[Ibexa.Spellcheck] Did you really mean 'VSCode'?", "location": {"path": "README.md", "range": {"start": {"line": 57, "column": 12}}}, "severity": "ERROR"}

The script accepts optional branch names before cloning repositories:

Check notice on line 59 in README.md

View workflow job for this annotation

GitHub Actions / vale

[vale] README.md#L59

[Ibexa.ByUsingStartOfLine] Prefer 'by using' or 'with' to plain 'using'.
Raw output
{"message": "[Ibexa.ByUsingStartOfLine] Prefer 'by using' or 'with' to plain 'using'.", "location": {"path": "README.md", "range": {"start": {"line": 59, "column": 5}}}, "severity": "INFO"}

Check notice on line 59 in README.md

View workflow job for this annotation

GitHub Actions / vale

[vale] README.md#L59

[Ibexa.SentenceCapitalizationInHeadings] Use sentence-style capitalization in headings
Raw output
{"message": "[Ibexa.SentenceCapitalizationInHeadings] Use sentence-style capitalization in headings", "location": {"path": "README.md", "range": {"start": {"line": 59, "column": 5}}}, "severity": "INFO"}

```bash
./tools/clone-repositories.sh [DEVDOC_50] [DEVDOC_46] [USERDOC_50] [USERDOC_46] [CONNECT]
```

| Argument | Repository | Default |
|--------------|---------------------------------|---------|

Check notice on line 66 in README.md

View workflow job for this annotation

GitHub Actions / vale

[vale] README.md#L66

[Ibexa.ByUsingStartOfLine] Prefer 'by using' or 'with' to plain 'using'.
Raw output
{"message": "[Ibexa.ByUsingStartOfLine] Prefer 'by using' or 'with' to plain 'using'.", "location": {"path": "README.md", "range": {"start": {"line": 66, "column": 4}}}, "severity": "INFO"}
| `DEVDOC_50` | `ibexa/documentation-developer` | `5.0` |
| `DEVDOC_46` | `ibexa/documentation-developer` | `4.6` |
| `USERDOC_50` | `ibexa/documentation-user` | `5.0` |

Check warning on line 69 in README.md

View workflow job for this annotation

GitHub Actions / vale

[vale] README.md#L69

[Ibexa.FirstPersonPronouns] Do not use first person pronouns unless specifically referring to our company.
Raw output
{"message": "[Ibexa.FirstPersonPronouns] Do not use first person pronouns unless specifically referring to our company.", "location": {"path": "README.md", "range": {"start": {"line": 69, "column": 46}}}, "severity": "WARNING"}
| `USERDOC_46` | `ibexa/documentation-user` | `4.6` |
| `CONNECT` | `ibexa/documentation-connect` | `main` |

Check notice on line 71 in README.md

View workflow job for this annotation

GitHub Actions / vale

[vale] README.md#L71

[Ibexa.ArticlesInHeadings] Avoid articles in headings.
Raw output
{"message": "[Ibexa.ArticlesInHeadings] Avoid articles in headings.", "location": {"path": "README.md", "range": {"start": {"line": 71, "column": 12}}}, "severity": "INFO"}

Example — checking link for release PRs:

```bash
./tools/clone-repositories.sh release-5.0.10 release-4.6.70 4.6 4.6 main
```

The same parameters are available as inputs when triggering the GitHub Actions workflow manually.

## Where to View

https://doc.ibexa.co
2 changes: 1 addition & 1 deletion docs/ai_actions/ai_actions.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
# AI Actions

AI Actions is a set of capabilities that enhance the efficiency and creativity of content editors.
The feature is included in [[= product_name =]] by default but may require some [configuration]([[= developer_doc =]]/ai_actions/configure_ai_actions/) before you can use it.
The feature is included in [[= product_name =]] by default but may require some [configuration]([[= developer_doc =]]/ai/ai_actions/configure_ai_actions/) before you can use it.

Check notice on line 8 in docs/ai_actions/ai_actions.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/ai_actions/ai_actions.md#L8

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/ai_actions/ai_actions.md", "range": {"start": {"line": 8, "column": 13}}}, "severity": "INFO"}

Once AI Actions are configured, content editors with `Action configuration/View` and `Action configuration/Execute` permissions have access to AI-driven tools.
For example, they can [enhance or improve the text](create_edit_content_items.md#ai-assistant) that they have written, or [generate alternative text](upload_images.md#ai) for images.
Expand Down
10 changes: 5 additions & 5 deletions docs/ai_actions/work_with_ai_actions.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,12 @@
- **Refine text** - used by default in [online editor](create_edit_content_items.md#ai-assistant) for refining text, for example: "Rewrite text in formal tone"
- **Generate alternative text** - used by default in the [image asset editing screen](upload_images.md#ai) to generate alternative text, for example: "Generate short alternative description of an image"

It may happen that a set of sample AI actions has been [installed with the AI actions package]([[= developer_doc =]]/ai_actions/install_ai_actions/#install-sample-ai-action-configurations-optional), and there is already a number of existing AI actions that you can modify and clone.
It may happen that a set of sample AI actions has been installed with the AI actions package, and there is already a number of existing AI actions that you can modify and clone.

Check notice on line 29 in docs/ai_actions/work_with_ai_actions.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/ai_actions/work_with_ai_actions.md#L29

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/ai_actions/work_with_ai_actions.md", "range": {"start": {"line": 29, "column": 51}}}, "severity": "INFO"}

Check notice on line 29 in docs/ai_actions/work_with_ai_actions.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/ai_actions/work_with_ai_actions.md#L29

[Ibexa.Wordiness] Avoid using 'a number of'
Raw output
{"message": "[Ibexa.Wordiness] Avoid using 'a number of'", "location": {"path": "docs/ai_actions/work_with_ai_actions.md", "range": {"start": {"line": 29, "column": 116}}}, "severity": "INFO"}

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They were optional in v4.6, but this optional step is not part of v5 where AI Actions is no longer an lts update.


!!! note "Custom action types"

In your specific case, the types available can be different, and your organization's development team can create custom AI action types.
For more information, see [developer documentation]([[= developer_doc =]]/ai_actions/ai_actions/).
For more information, see [developer documentation]([[= developer_doc =]]/ai/ai_actions/ai_actions/).

### View AI action details

Expand Down Expand Up @@ -68,7 +68,7 @@
- **Temperature** - controls the randomness of the response.
Takes a value between 0 and 2, but the usual range is between 0 and 1.
The output is more random at higher temperatures.
For more information, see the parameter's description in [OpenAI API reference](https://platform.openai.com/docs/api-reference/chat/create#chat-create-temperature) or [Anthropic's glossary](https://docs.claude.com/en/docs/about-claude/glossary#temperature)
For more information, see the parameter's description in [Anthropic's glossary](https://docs.claude.com/en/docs/about-claude/glossary#temperature)

Check failure on line 71 in docs/ai_actions/work_with_ai_actions.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/ai_actions/work_with_ai_actions.md#L71

[Ibexa.Spellcheck] Did you really mean 'Anthropic's'?
Raw output
{"message": "[Ibexa.Spellcheck] Did you really mean 'Anthropic's'?", "location": {"path": "docs/ai_actions/work_with_ai_actions.md", "range": {"start": {"line": 71, "column": 59}}}, "severity": "ERROR"}

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Temperature as a parameter is being hidden by model providers, having a single link here is enough


![AI action options](img/ai_action_options.png)

Expand All @@ -82,7 +82,7 @@

Before you can work with AI actions, models must be configured and enabled by your organization's development team.
If there are more AI service connectors available, you might be able to create AI actions that perform the same type of actions but use different models.
For more information, see [developer documentation]([[= developer_doc =]]/ai_actions/ai_actions_guide/#model).
For more information, see [developer documentation]([[= developer_doc =]]/ai/ai_actions/ai_actions_guide/#model).

1. Navigate to the Admin Panel and select **AI actions**.

Expand Down Expand Up @@ -145,7 +145,7 @@

!!! note "[[= product_name_connect =]] configuration required"

To use AI actions that interface with [[= product_name_connect =]], you must first [configure and initiate the connection]([[= developer_doc =]]/ai_actions/install_ai_actions/#configure-access-to-ibexa-connect), and [define templates](https://doc.ibexa.co/projects/connect/en/latest/scenarios/scenario_templates/#creating-templates) and/or [scenarios](https://doc.ibexa.co/projects/connect/en/latest/scenarios/creating_a_scenario/) in [[= product_name_connect =]].
To use AI actions that interface with [[= product_name_connect =]], you must first [configure and initiate the connection]([[= developer_doc =]]/ai/ai_actions/configure_ai_actions/#configure-access-to-ibexa-connect), and [define templates](https://doc.ibexa.co/projects/connect/en/latest/scenarios/scenario_templates/#creating-templates) and/or [scenarios](https://doc.ibexa.co/projects/connect/en/latest/scenarios/creating_a_scenario/) in [[= product_name_connect =]].

1\. Navigate to the Admin Panel and select **AI actions**.

Expand Down
2 changes: 1 addition & 1 deletion docs/content_management/create_edit_pages.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ Page Builder has two main views that you can use while creating a page:
The page layouts that an editor has access to are up to you to choose.

The default, built-in Page layout has only one zone, but developers can create other layouts in configuration.
For more information, see [Configure layout](https://doc.ibexa.co/en/latest/templating/render_content/render_page/#configure-layout).
For more information, see [Configure layout]([[= developer_doc =]]/templating/render_content/render_page/#configure-layout).

While editing, you can switch layout for your page.
To do it, click **Switch layouts** button.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@
On the **Properties** tab, set values in the following fields:

- **Name** - Enter a name for the block.
- **Statuses** - Set the statuses of orders that should be included in the list. Default value = All. The list of statuses depends on configured [order workflow](https://doc.ibexa.co/en/latest/commerce/order_management/configure_order_management/) and can be customized.
- **Statuses** - Set the statuses of orders that should be included in the list. Default value = All. The list of statuses depends on configured [order workflow]([[= developer_doc =]]/commerce/order_management/configure_order_management/) and can be customized.

Check notice on line 68 in docs/getting_started/dashboard/dashboard_block_reference.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/getting_started/dashboard/dashboard_block_reference.md#L68

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/getting_started/dashboard/dashboard_block_reference.md", "range": {"start": {"line": 68, "column": 57}}}, "severity": "INFO"}

Check notice on line 68 in docs/getting_started/dashboard/dashboard_block_reference.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/getting_started/dashboard/dashboard_block_reference.md#L68

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/getting_started/dashboard/dashboard_block_reference.md", "range": {"start": {"line": 68, "column": 248}}}, "severity": "INFO"}
- **Time period** - Set the time period: All time, Last day, Last week, Last month. Default value = Last month.

On the **Design** tab, in the **View** field, select the layout to be used to present a list of orders and submit your changes.
Expand Down
4 changes: 2 additions & 2 deletions docs/ibexa_engage/ibexa_engage.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ You can create, configure, and manage campaigns with [Qualifio Engage](https://d
To access the Qualifio Manager page and create or manage campaigns, click the **Manage campaigns in Qualifio** button under the **Ibexa Engage** menu.
To display your campaign on the website, use one of the available tools - Campaign block or Campaign custom tag.

For more information about creating and managing campaigns, see [Qualifio Engage documentation](https://support.qualifio.com/hc/en-us/categories/202280638-Qualifio-Engage).
For more information about creating and managing campaigns, see [Qualifio Campaigns documentation](https://support.qualifio.com/hc/en-us/categories/202280638-Campaigns).

### Campaign block

Expand All @@ -95,4 +95,4 @@ This list includes all campaigns available on user's Qualifio account which are
You can set the dimensions of the field in which the campaign is displayed. To do it, select units, and provide width and height values in the proper fields.
If size fields are blank, the system sets default template values. It's recommended to adjust them for better results.

![Campaign custom tag](img/campaign_custom_tag.png "Campaign custom tag")
![Campaign custom tag](img/campaign_custom_tag.png "Campaign custom tag")
2 changes: 1 addition & 1 deletion docs/persona_paths/administrator.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ description: Discover administrative tasks that you can perform in the back offi
When you perform administrative duties for your organization, you often are responsible for the configuration and maintenance of [[= product_name =]]-based application, and solving architectural challenges and performance problems.

In [[= product_name =]], most of such tasks are done outside of the UI.
It's described in detail in [Developer Documentation]([[= developer_doc =]]).
It's described in detail in [Developer Documentation]([[= developer_doc =]]/).
However, certain things can be done in the back office.

## What would you like to do today?
Expand Down
2 changes: 1 addition & 1 deletion docs/recent_activity/recent_activity.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ By default, actions on the following items are displayed:

By default, log entries are kept for 30 days.
This time can be modified through configuration.
For more information, see [Developer Documentation]([[= developer_doc =]]/administration/recent_activity/recent_activity/#configuration-and-cronjob).
For more information, see [Developer Documentation]([[= developer_doc =]]/administration/recent_activity/recent_activity/#configuration).

Log entries are grouped by date, then by logical bond (like web request, or migration file).

Expand Down
12 changes: 12 additions & 0 deletions hooks/edit_uri.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import os

def on_config(config, **kwargs):
if os.environ.get("READTHEDOCS_VERSION_TYPE") == "external":
ref = os.environ.get("READTHEDOCS_GIT_COMMIT_HASH")
else:
ref = os.environ.get("GITHUB_HEAD_REF")

if ref:
config["edit_uri"] = f"blob/{ref}/docs/"

return config
Loading
Loading