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
8 changes: 4 additions & 4 deletions .markdownlint-cli2.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,17 +29,17 @@ config:
# ol-prefix: one_or_ordered
# list-marker-space: true
# blanks-around-fences: true
# blanks-around-lists: true
blanks-around-lists: true
# single-title: true
# no-trailing-punctuation:
# punctuation: [".", ":", ";",]
no-trailing-punctuation:
punctuation: [".", ":", ";",]
# no-multiple-space-atx: true
# blanks-around-headings: true
# heading-increment: true
# ul-style: dash
# ul-indent:
# indent: 4
# no-trailing-spaces: true
no-trailing-spaces: true
no-multiple-blanks: true
commands-show-output: true

Expand Down
2 changes: 1 addition & 1 deletion docs/administration/back_office/integrated_help.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Integrated help is contextual, therefore, apart from user documentation, release

## Install package

Integrated help is optional.
Integrated help is optional.
To enable it, run the following command:

```bash
Expand Down
2 changes: 1 addition & 1 deletion docs/administration/back_office/subitems_list.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ It provides an interface for listing the sub-items of any location.

## Create custom sub-items list view

You can extend the Sub-items List module to replace an existing view or add your own.
You can extend the Sub-items List module to replace an existing view or add your own.
The example below adds a new timeline view to highlight the modification date.

![Sub-items List module using the new Timeline view](img/subitems/timeline_view.png "Sub-items List module using the new Timeline view")
Expand Down
4 changes: 2 additions & 2 deletions docs/ai_actions/extend_ai_actions.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@

You can pass the Action Handler directly to the `ActionServiceInterface::execute()` method, which overrides all the other ways of selecting the Action Handler.
You can also specify the Action Handler by including it in the provided [Action Configuration](#action-configurations).
In other cases, the Action Handler is selected automatically.
In other cases, the Action Handler is selected automatically.

Check notice on line 35 in docs/ai_actions/extend_ai_actions.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/ai_actions/extend_ai_actions.md#L35

[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/extend_ai_actions.md", "range": {"start": {"line": 35, "column": 36}}}, "severity": "INFO"}
You can affect this choice by creating your own class implementing the [ActionHandlerResolverInterface](/api/php_api/php_api_reference/classes/Ibexa-Contracts-ConnectorAi-Action-ActionHandlerResolverInterface.html) or by listening to the [ResolveActionHandlerEvent](/api/php_api/php_api_reference/classes/Ibexa-Contracts-ConnectorAi-Events-ResolveActionHandlerEvent.html) Event sent by the default implementation.

You can influence the execution of an Action with two events:
Expand Down Expand Up @@ -106,7 +106,7 @@

When creating an Action Handler for [[= product_name_connect =]], add the new handler identifier to the [`Ibexa AI handler` custom property](configure_ai_actions.md#initiate-integration) in [[= product_name_connect =]] user interface.

### Register a custom Action Handler in the system.
### Register a custom Action Handler in the system

Check notice on line 109 in docs/ai_actions/extend_ai_actions.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/ai_actions/extend_ai_actions.md#L109

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

Check notice on line 109 in docs/ai_actions/extend_ai_actions.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/ai_actions/extend_ai_actions.md#L109

[Ibexa.ArticlesInHeadings] Avoid articles in headings.
Raw output
{"message": "[Ibexa.ArticlesInHeadings] Avoid articles in headings.", "location": {"path": "docs/ai_actions/extend_ai_actions.md", "range": {"start": {"line": 109, "column": 14}}}, "severity": "INFO"}

Check notice on line 109 in docs/ai_actions/extend_ai_actions.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/ai_actions/extend_ai_actions.md#L109

[Ibexa.ArticlesInHeadings] Avoid articles in headings.
Raw output
{"message": "[Ibexa.ArticlesInHeadings] Avoid articles in headings.", "location": {"path": "docs/ai_actions/extend_ai_actions.md", "range": {"start": {"line": 109, "column": 41}}}, "severity": "INFO"}

Create a class implementing the [ActionHandlerInterface](/api/php_api/php_api_reference/classes/Ibexa-Contracts-ConnectorAi-Action-ActionHandlerInterface.html) and register it as a service:

Expand Down
1 change: 1 addition & 0 deletions docs/cdp/cdp_activation/cdp_data_export.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@ Go to the **Audience Builder** and select **Build new audience**.
When naming the audience remember, you need to find it in a drop-down list during activation.
There, you can choose conditions from `did`, `did not` or `have`.
The conditions `did` and `did not` allow you to use events like buy, visit or add to a cart from online tracking.

- `have` conditions are tied to personal characteristics and can be used to track the sum of all buys or top-visited categories.

In the Audience Builder, you can also connect created audiences to the activations.
Expand Down
6 changes: 3 additions & 3 deletions docs/cdp/cdp_data_customization.md
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ The interface is plain and has two methods that you need to provide:
- **process** - takes `Field` instance and then returns a flat array of scalar values that are combined with the payload data.
A common field type is serialized to:

```json
{
"field_measurement_simple_id": 1792,
Expand Down Expand Up @@ -109,13 +109,13 @@ To customize export of field type values, provide your own [`\Ibexa\Contracts\Cd
New implementation has to be registered as a service manually or by using autoconfiguration.
The service has to use the tag `ibexa.cdp.export.content.field_value_processor`.
You can also provide `priority` property to override other Field Value Processors.

* `FieldValueProcessorInterface::process` - takes `Field` instance and returns an `array` with scalar values that are applied to export data payload.
If the field type returns a single value, provides a `value` key in the array.
You can return multiple values.

* `FieldValueProcessorInterface::supports` - decides whether `FieldValueProcessor` can work with the `Field`.

### Built in Field Value Processors for custom field types
Several system Field Value Processors either work by default or can be registered for custom field types:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ provided by the `ibexa/fieldtype-address` package.

## PHP API field type

### Inputs:
### Inputs

| Type | Description | Example |
|----------|-----------------------------------------------|-------------------|
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@

For general field type documentation, see [field type](field_types.md).

Custom field types have to be programmed in PHP.
Custom field types have to be programmed in PHP.

Check notice on line 21 in docs/content_management/field_types/field_type_reference/field_type_reference.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/content_management/field_types/field_type_reference/field_type_reference.md#L21

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/content_management/field_types/field_type_reference/field_type_reference.md", "range": {"start": {"line": 21, "column": 28}}}, "severity": "INFO"}
However, the built-in field types are usually enough for typical scenarios.
The following table gives an overview of the supported field types that come with [[= product_name =]].

Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Measurement field type

The Measurement field type represents measurement information.
The Measurement field type represents measurement information.
It stores the unit of measure, and either a single measurement value, or a pair of top and bottom values that defines a range.

| Name | Internal name | Expected input type |
Expand All @@ -12,8 +12,8 @@ It stores the unit of measure, and either a single measurement value, or a pair
### Input expectations

To create a value, you use a service that implements `Ibexa\Contracts\Measurement\MeasurementServiceInterface`.
You must inject the service directly with [dependency injection](php_api.md#service-container).
The service contains the following API endpoints:
You must inject the service directly with [dependency injection](php_api.md#service-container).
The service contains the following API endpoints:

- `buildSimpleValue` that is used to handle a single value
- `buildRangeValue` that is used to handle a range
Expand All @@ -37,7 +37,7 @@ The Value class of this field type contains the following properties:

##### Constructor

The `Measurement\Value` constructor for this value object initializes a new value object with the value provided.
The `Measurement\Value` constructor for this value object initializes a new value object with the value provided.
As its first argument it accepts an object of `Ibexa\Contracts\Measurement\Value\ValueInterface` type.

Depending on the selected input type, the object resembles the following examples:
Expand Down
2 changes: 1 addition & 1 deletion docs/content_management/forms/create_form_attribute.md
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@

## Create submission converter

The new field is based on a checkbox, so to display the submissions of this field, you can use the `BooleanFieldSubmissionConverter`.
The new field is based on a checkbox, so to display the submissions of this field, you can use the `BooleanFieldSubmissionConverter`.

Check notice on line 109 in docs/content_management/forms/create_form_attribute.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/content_management/forms/create_form_attribute.md#L109

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/content_management/forms/create_form_attribute.md", "range": {"start": {"line": 109, "column": 15}}}, "severity": "INFO"}

Create a `src/FormBuilder/FormSubmission/Converter/RichtextDescriptionFieldSubmissionConverter.php` file.

Expand Down
2 changes: 1 addition & 1 deletion docs/content_management/forms/work_with_forms.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ For information about available options, see [Gregwar/CaptchaBundle's documentat

## Form submission purging

You can purge all submissions of a given form.
You can purge all submissions of a given form.
To do this, run the following command, where `form-id` stands for Content ID of the form for which you want to purge data:

```bash
Expand Down
2 changes: 1 addition & 1 deletion docs/content_management/images/add_image_asset_from_dam.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@
The tab and its corresponding panel are a service created by combining existing components, like in the case of other [back office tabs](back_office_tabs.md).

The `commons_search_tab` service uses the `GenericSearchTab` class as a base, and the `GenericSearchType` form for search input.
It is linked to the `commons` DAM source and uses the identifier `commons`.
It is linked to the `commons` DAM source and uses the identifier `commons`.

Check notice on line 160 in docs/content_management/images/add_image_asset_from_dam.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/content_management/images/add_image_asset_from_dam.md#L160

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/content_management/images/add_image_asset_from_dam.md", "range": {"start": {"line": 160, "column": 4}}}, "severity": "INFO"}
The DAM search tab is registered in the `connector-dam-search` [tab group](back_office_tabs.md#tab-groups) using the `ibexa.admin_ui.tab` tag.

```yaml
Expand Down
6 changes: 3 additions & 3 deletions docs/content_management/images/images.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@
With [image variations](image_variations.md) (image aliases) you can define and use different versions of the same image.
You generate variations based on [filters](image_variations.md#available-variation-filters) that modify aspects such as size and proportions, quality or effects.

Image variations are generated with [LiipImagineBundle](https://github.com/liip/LiipImagineBundle), by using the underlying [Imagine library](https://imagine.readthedocs.io/en/latest/). 
The LiipImagineBundle bundle supports GD (default), Imagick or Gmagick PHP extensions, and enables you to define flexible filters in PHP. 
Image variations are generated with [LiipImagineBundle](https://github.com/liip/LiipImagineBundle), by using the underlying [Imagine library](https://imagine.readthedocs.io/en/latest/).

Check notice on line 54 in docs/content_management/images/images.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/content_management/images/images.md#L54

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/content_management/images/images.md", "range": {"start": {"line": 54, "column": 18}}}, "severity": "INFO"}
The LiipImagineBundle bundle supports GD (default), Imagick or Gmagick PHP extensions, and enables you to define flexible filters in PHP.
Image files are stored by using the `IOService,` and are completely independent from the Image field type.
They're generated only once and cleared on demand, for example, on content removal).

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

If there is no configuration assigned to the `binary_handler`, the placeholder generation is disabled.

##### Configuration examples:
##### Configuration examples

**Example 1 - placeholders with basic information about original image**

Expand Down
2 changes: 1 addition & 1 deletion docs/content_management/pages/page_builder_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -206,7 +206,7 @@ Additionally, if you feel comfortable with your technical skills, you can config

### Increase sales with highly personalized campaigns

Personalized campaigns are one of the factors that can increase your sales.
Personalized campaigns are one of the factors that can increase your sales.
With Page Builder you can achieve it, by using customization and time Scheduler.
Anytime you can edit your page and change a position of a block to enhance visibility.
Additionally, Page Builder offers you a selection of ready-to-use page blocks that can help you to create content tailored to each individual customer:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ edition: experience

# Create custom RichText block

A RichText block is a specific example of a [custom block](create_custom_page_block.md) that you can use when you create a page.
A RichText block is a specific example of a [custom block](create_custom_page_block.md) that you can use when you create a page.
To create a custom block, you must define the block's layout, provide templates, add a subscriber, and register the subscriber as a service.

Follow the procedure below to create a RichText page block.

First, provide the block configuration under the `ibexa_page_fieldtype.blocks` [configuration key](configuration.md#configuration-files).
First, provide the block configuration under the `ibexa_page_fieldtype.blocks` [configuration key](configuration.md#configuration-files).
The following code defines a new block, its view and configuration templates.
It also sets the attribute type to `richtext` (line 15):

Expand Down
18 changes: 9 additions & 9 deletions docs/content_management/rich_text/extend_online_editor.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@

[[= product_name =]] users edit the contents of RichText fields, for example, in the Content box of a Page, by using the Online Editor.

You can extend the Online Editor by adding custom tags and styles, defining custom data attributes, re-arranging existing buttons, grouping buttons into custom toolbar,
You can extend the Online Editor by adding custom tags and styles, defining custom data attributes, re-arranging existing buttons, grouping buttons into custom toolbar,
and creating [custom buttons](https://ckeditor.com/docs/ckeditor4/latest/guide/widget_sdk_tutorial_1.html#widget-toolbar-button) and [custom plugins](https://ckeditor.com/docs/ckeditor4/latest/guide/dev_plugins.html).

Online Editor is based on the CKEditor5.
Expand All @@ -20,7 +20,7 @@
With custom tags, you can enhance the Online Editor with features that go beyond the built-in ones.
You configure custom tags under the `ibexa_richtext` key.

Start preparing the tag by adding a configuration file:
Start preparing the tag by adding a configuration file:

```yaml
[[= include_file('code_samples/back_office/online_editor/custom_tags/factbox/config/packages/custom_tags.yaml') =]]
Expand All @@ -32,7 +32,7 @@
`choice` requires that you provide a list of options in the `choices` key.

You must provide your own files for the Twig template and the icon.
Place the `factbox.html.twig` template in the
Place the `factbox.html.twig` template in the
`templates/themes/<your-theme>/field_type/ibexa_richtext/custom_tags` directory:

```html+twig
Expand Down Expand Up @@ -71,7 +71,7 @@
```

`is_inline` is an optional key.
The default value is `false`, therefore, if it's not set, the custom tag is
The default value is `false`, therefore, if it's not set, the custom tag is

Check notice on line 74 in docs/content_management/rich_text/extend_online_editor.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/content_management/rich_text/extend_online_editor.md#L74

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/content_management/rich_text/extend_online_editor.md", "range": {"start": {"line": 74, "column": 74}}}, "severity": "INFO"}
treated as a block tag.

### Use cases
Expand Down Expand Up @@ -107,7 +107,7 @@
In the back office, create or edit a content item that has a RichText field type.
In the Online Editor's toolbar, click **Show more items**, and from the list of available tags select the Link tag icon.

![Link Tag](custom_tag_link.png "Link Tag in the Online Editor")
![Link Tag](custom_tag_link.png "Link Tag in the Online Editor")

#### Acronym

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

### Rendering

The `template` key points to the template that is used to render the custom style.
The `template` key points to the template that is used to render the custom style.

Check notice on line 170 in docs/content_management/rich_text/extend_online_editor.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/content_management/rich_text/extend_online_editor.md#L170

[Ibexa.Passive] Try to avoid passive tense, when possible.
Raw output
{"message": "[Ibexa.Passive] Try to avoid passive tense, when possible.", "location": {"path": "docs/content_management/rich_text/extend_online_editor.md", "range": {"start": {"line": 170, "column": 48}}}, "severity": "INFO"}
It's recommended that you use the [design engine](design_engine.md).

The template files for the front end could look as follows:
Expand Down Expand Up @@ -198,7 +198,7 @@
[[= include_file('code_samples/back_office/online_editor/config/packages/custom_styles_note_box.yaml') =]]
```

The `note_box.html.twig` template wraps the content of the selected text
The `note_box.html.twig` template wraps the content of the selected text
(`{{ content }}`) in a custom CSS class:

``` html+twig
Expand Down Expand Up @@ -240,7 +240,7 @@
[[= include_file('code_samples/back_office/online_editor/config/packages/custom_styles_highlight.yaml') =]]
```

The `highlight.html.twig` template wraps the content of the selected text
The `highlight.html.twig` template wraps the content of the selected text
(`{{ content }}`) in a custom CSS class:

``` html+twig
Expand Down Expand Up @@ -335,7 +335,7 @@
``` yaml
[[= include_file('code_samples/back_office/online_editor/config/packages/custom_classes.yaml') =]]
```

!!! note "Label translations"

If there are many custom attributes, to provide label translations for these attributes, you can use the `ez_online_editor_attributes` translation extractor to get a full list of all custom attributes for all elements in all scopes.
Expand Down
4 changes: 2 additions & 2 deletions docs/content_management/rich_text/online_editor_guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@ Online Editor is available in all supported [[= product_name =]] versions and ed

## How to get started

Online Editor is the default editing interface for all RichText fields.
Online Editor is the default editing interface for all RichText fields.
To start using it, create any content item with a RichText field (for example, based on the built-in Article content type) and edit this field.

## Capabilities

### Rich Text editor

Online Editor covers all fundamental formatting options for rich text, such as headings, lists, tables, inline text formatting, anchors, and links.
Online Editor covers all fundamental formatting options for rich text, such as headings, lists, tables, inline text formatting, anchors, and links.
It also allows embedding other content from the repository, but also from Facebook, Twitter, or YouTube.

<!--ARCADE EMBED START--><div style="position: relative; padding-bottom: calc(51.27314814814815% + 41px); height: 0; width: 100%;"><iframe src="https://demo.arcade.software/wkdL1r9PRunTeF6hPtEs?embed&embed_mobile=tab&embed_desktop=inline&show_copy_link=true" title="Online Editor - work in Rich Text field" frameborder="0" loading="lazy" webkitallowfullscreen mozallowfullscreen allowfullscreen allow="clipboard-write" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; color-scheme: light;" ></iframe></div><!--ARCADE EMBED END-->
Expand Down
2 changes: 1 addition & 1 deletion docs/content_management/taxonomy/taxonomy.md
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@

Once you enable the Taxonomy suggestions feature, you must [configure an AI action]([[= user_doc =]]/ai_actions/work_with_ai_actions/#create-ai-actions-that-control-taxonomy-suggestions) that handles the generation of embeddings for newly created or edited content items or products.

That's where you decide which exact fields from which content type should be used as input for embedding generation, how many suggestions are being presenter to the editor, and so on.
That's where you decide which exact fields from which content type should be used as input for embedding generation, how many suggestions are being presenter to the editor, and so on.

Check notice on line 176 in docs/content_management/taxonomy/taxonomy.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/content_management/taxonomy/taxonomy.md#L176

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

Check warning on line 176 in docs/content_management/taxonomy/taxonomy.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/content_management/taxonomy/taxonomy.md#L176

[Ibexa.Wordy] Remove 'and so on'. Try to use 'like' and provide examples instead.
Raw output
{"message": "[Ibexa.Wordy] Remove 'and so on'. Try to use 'like' and provide examples instead.", "location": {"path": "docs/content_management/taxonomy/taxonomy.md", "range": {"start": {"line": 176, "column": 174}}}, "severity": "WARNING"}

After you do it, your users are be able to assign tags and/or product categories by using suggestions provided by an AI engine.

Expand Down
6 changes: 3 additions & 3 deletions docs/content_management/workflow/workflow.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
For example, an editorial workflow can pass a content item from draft stage through design and proofreading.

By default, [[= product_name =]] comes pre-configured with a Quick Review workflow.
You can disable the default workflow and define different workflows in configuration.
You can disable the default workflow and define different workflows in configuration.
Workflows are permission-aware.

## Workflow configuration
Expand All @@ -32,7 +32,7 @@
`content_type` contains an array of content type identifiers that use this workflow.

`content_status` lists the statuses of content items which fall under this workflow.
The available values are: `draft` and `published`.
The available values are: `draft` and `published`.

If set to `draft`, applies for new content (newly created).

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

#### Draft locking

You can configure draft assignment in a way that when a user sends a draft to review, only the first editor of the draft can either edit the draft or unlock it for editing, and no other user can take it over.
You can configure draft assignment in a way that when a user sends a draft to review, only the first editor of the draft can either edit the draft or unlock it for editing, and no other user can take it over.

Check notice on line 94 in docs/content_management/workflow/workflow.md

View workflow job for this annotation

GitHub Actions / vale

[vale] docs/content_management/workflow/workflow.md#L94

[Ibexa.SentenceLength] Keep your sentences to less than 30 words.
Raw output
{"message": "[Ibexa.SentenceLength] Keep your sentences to less than 30 words.", "location": {"path": "docs/content_management/workflow/workflow.md", "range": {"start": {"line": 94, "column": 1}}}, "severity": "INFO"}

Use the [Version Lock limitation](limitation_reference.md#version-lock-limitation), set to "Assigned only", together with the `content/edit` and `content/unlock` policies to prevent users from editing and unlocking drafts that are locked by another user.

Expand Down
Loading
Loading