Skip to content
Closed
Show file tree
Hide file tree
Changes from 3 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
3 changes: 3 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,3 +12,6 @@ trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false

[*.yml]
indent_size = 2
10 changes: 1 addition & 9 deletions .github/workflows/jekyll-gh-pages.yml
Original file line number Diff line number Diff line change
@@ -1,28 +1,21 @@
# Sample workflow for building and deploying a Jekyll site to GitHub Pages
name: Deploy Jekyll with GitHub Pages dependencies preinstalled

on:
# Runs on pushes targeting the default branch
pull_request: # TEMPORARY !!!
Copy link

Copilot AI Dec 20, 2025

Choose a reason for hiding this comment

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

The pull_request trigger is marked as "TEMPORARY !!!" but should be removed before merging to production. This trigger will cause the workflow to run on all pull requests, which is generally not desired for a GitHub Pages deployment workflow. Deployment to GitHub Pages should typically only happen on push to the main branch or via manual workflow_dispatch.

Copilot uses AI. Check for mistakes.
push:
branches: ["master"]

# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
permissions:
contents: read
pages: write
id-token: write

# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
concurrency:
group: "pages"
cancel-in-progress: false

jobs:
# Build job
build:
runs-on: ubuntu-latest
steps:
Expand All @@ -38,7 +31,6 @@ jobs:
- name: Upload artifact
uses: actions/upload-pages-artifact@v3

# Deployment job
deploy:
environment:
name: github-pages
Expand Down
6 changes: 2 additions & 4 deletions _config.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
defaults:
- scope:
path: ""
values:
render_with_liquid: false
- scope:
path: ""
Copy link

Copilot AI Dec 20, 2025

Choose a reason for hiding this comment

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

The render_with_liquid: false configuration has been removed from _config.yml. However, this setting was likely intentional to prevent Jekyll/Liquid from processing Markdown files that contain Twig syntax (which uses similar {{ }} and {% %} delimiters). Removing this setting means Jekyll will now try to process all Liquid-like syntax in the documentation.

While the PR adds {% raw %} tags to one specific code block in template-engines.md, there are multiple other Twig code blocks in the same file (lines 19-43, 49-55, 75-87, 90-99) that also contain Liquid-like syntax but are NOT wrapped in {% raw %} tags. These will now be processed by Jekyll and potentially cause build errors or incorrect rendering.

Either the render_with_liquid: false setting should be kept, or ALL Twig code blocks throughout the documentation need to be wrapped with {% raw %}/{% endraw %} tags.

Suggested change
path: ""
path: ""
values:
render_with_liquid: false

Copilot uses AI. Check for mistakes.
23 changes: 19 additions & 4 deletions _translations/guide/po/es/start_workflow.md.po
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2025-10-19 11:32+0000\n"
"POT-Creation-Date: 2025-12-20 13:19+0000\n"
"PO-Revision-Date: 2025-09-04 11:19+0500\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
Expand Down Expand Up @@ -40,7 +40,7 @@ msgstr ""

#. type: Plain text
#: ../../guide/en/start/workflow.md
msgid "The installed application has only the homepage, which displays when you access the URL `http://localhost/`. It shares a common layout that you can reuse on further pages."
msgid "The installed application contains only one page, accessible at `http://localhost/`. It shares a common layout that you can reuse on further pages."
msgstr ""

#. type: Plain text
Expand Down Expand Up @@ -133,9 +133,24 @@ msgstr ""
msgid "The following diagram shows how an application handles a request."
msgstr ""

#. type: Plain text
#. type: Fenced code block (mermaid)
#: ../../guide/en/start/workflow.md
msgid "![Request Lifecycle](img/request-lifecycle.svg)"
#, no-wrap
msgid ""
"flowchart LR\n"
" user[User's client] --> index\n"
" index[index.php] --> DI[Initialize Dependency Container]\n"
" config[configs] -.-> DI\n"
" DI --> RequestFactory[RequestFactory]\n"
" RequestFactory -->|Request| app[Application]\n"
" app -->|Request| middleware[Middleware]\n"
" middleware -->|Request| router[Router]\n"
" router -->|Request| action[Action Handler]\n"
" action -->|Response| emitter[SapiEmitter]\n"
" router -->|Response| emitter\n"
" middleware -->|Response| emitter\n"
" app -->|Response| emitter\n"
" emitter --> user\n"
msgstr ""

#. type: Bullet: '1. '
Expand Down
23 changes: 19 additions & 4 deletions _translations/guide/po/id/start_workflow.md.po
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2025-10-19 11:32+0000\n"
"POT-Creation-Date: 2025-12-20 13:19+0000\n"
"PO-Revision-Date: 2025-09-04 11:19+0500\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
Expand Down Expand Up @@ -39,7 +39,7 @@ msgstr ""

#. type: Plain text
#: ../../guide/en/start/workflow.md
msgid "The installed application has only the homepage, which displays when you access the URL `http://localhost/`. It shares a common layout that you can reuse on further pages."
msgid "The installed application contains only one page, accessible at `http://localhost/`. It shares a common layout that you can reuse on further pages."
msgstr ""

#. type: Plain text
Expand Down Expand Up @@ -132,9 +132,24 @@ msgstr ""
msgid "The following diagram shows how an application handles a request."
msgstr ""

#. type: Plain text
#. type: Fenced code block (mermaid)
#: ../../guide/en/start/workflow.md
msgid "![Request Lifecycle](img/request-lifecycle.svg)"
#, no-wrap
msgid ""
"flowchart LR\n"
" user[User's client] --> index\n"
" index[index.php] --> DI[Initialize Dependency Container]\n"
" config[configs] -.-> DI\n"
" DI --> RequestFactory[RequestFactory]\n"
" RequestFactory -->|Request| app[Application]\n"
" app -->|Request| middleware[Middleware]\n"
" middleware -->|Request| router[Router]\n"
" router -->|Request| action[Action Handler]\n"
" action -->|Response| emitter[SapiEmitter]\n"
" router -->|Response| emitter\n"
" middleware -->|Response| emitter\n"
" app -->|Response| emitter\n"
" emitter --> user\n"
msgstr ""

#. type: Bullet: '1. '
Expand Down
23 changes: 19 additions & 4 deletions _translations/guide/po/ru/start_workflow.md.po
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2025-10-19 11:32+0000\n"
"POT-Creation-Date: 2025-12-20 13:19+0000\n"
"PO-Revision-Date: 2025-09-04 11:19+0500\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
Expand Down Expand Up @@ -41,7 +41,7 @@ msgstr "Определение псевдонимов <span id=\"defining-aliase

#. type: Plain text
#: ../../guide/en/start/workflow.md
msgid "The installed application has only the homepage, which displays when you access the URL `http://localhost/`. It shares a common layout that you can reuse on further pages."
msgid "The installed application contains only one page, accessible at `http://localhost/`. It shares a common layout that you can reuse on further pages."
msgstr ""

#. type: Plain text
Expand Down Expand Up @@ -135,9 +135,24 @@ msgstr "Полезные ссылки <span id=\"references\"></span>"
msgid "The following diagram shows how an application handles a request."
msgstr ""

#. type: Plain text
#. type: Fenced code block (mermaid)
#: ../../guide/en/start/workflow.md
msgid "![Request Lifecycle](img/request-lifecycle.svg)"
#, no-wrap
msgid ""
"flowchart LR\n"
" user[User's client] --> index\n"
" index[index.php] --> DI[Initialize Dependency Container]\n"
" config[configs] -.-> DI\n"
" DI --> RequestFactory[RequestFactory]\n"
" RequestFactory -->|Request| app[Application]\n"
" app -->|Request| middleware[Middleware]\n"
" middleware -->|Request| router[Router]\n"
" router -->|Request| action[Action Handler]\n"
" action -->|Response| emitter[SapiEmitter]\n"
" router -->|Response| emitter\n"
" middleware -->|Response| emitter\n"
" app -->|Response| emitter\n"
" emitter --> user\n"
msgstr ""

#. type: Bullet: '1. '
Expand Down
26 changes: 20 additions & 6 deletions _translations/guide/pot/start_workflow.md.pot
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2025-10-19 11:32+0000\n"
"POT-Creation-Date: 2025-12-20 13:19+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <[email protected]>\n"
Expand Down Expand Up @@ -47,9 +47,8 @@ msgstr ""
#. type: Plain text
#: ../../guide/en/start/workflow.md
msgid ""
"The installed application has only the homepage, which displays when you "
"access the URL `http://localhost/`. It shares a common layout that you can "
"reuse on further pages."
"The installed application contains only one page, accessible at `http://"
"localhost/`. It shares a common layout that you can reuse on further pages."
msgstr ""

#. type: Plain text
Expand Down Expand Up @@ -165,9 +164,24 @@ msgstr ""
msgid "The following diagram shows how an application handles a request."
msgstr ""

#. type: Plain text
#. type: Fenced code block (mermaid)
#: ../../guide/en/start/workflow.md
msgid "![Request Lifecycle](img/request-lifecycle.svg)"
#, no-wrap
msgid ""
"flowchart LR\n"
" user[User's client] --> index\n"
" index[index.php] --> DI[Initialize Dependency Container]\n"
" config[configs] -.-> DI\n"
" DI --> RequestFactory[RequestFactory]\n"
" RequestFactory -->|Request| app[Application]\n"
" app -->|Request| middleware[Middleware]\n"
" middleware -->|Request| router[Router]\n"
" router -->|Request| action[Action Handler]\n"
" action -->|Response| emitter[SapiEmitter]\n"
" router -->|Response| emitter\n"
" middleware -->|Response| emitter\n"
" app -->|Response| emitter\n"
" emitter --> user\n"
msgstr ""

#. type: Bullet: '1. '
Expand Down
2 changes: 2 additions & 0 deletions guide/en/views/template-engines.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Template engines

Yii3 supports multiple template engines through a flexible renderer system. By default, PHP is used as the

Check notice on line 3 in guide/en/views/template-engines.md

View workflow job for this annotation

GitHub Actions / vale

[vale] guide/en/views/template-engines.md#L3

[Microsoft.Passive] 'is used' looks like passive voice.
Raw output
{"message": "[Microsoft.Passive] 'is used' looks like passive voice.", "location": {"path": "guide/en/views/template-engines.md", "range": {"start": {"line": 3, "column": 93}}}, "severity": "INFO"}
template engine, but you can easily add support for other engines like Twig or create your own custom renderers.

Check warning on line 4 in guide/en/views/template-engines.md

View workflow job for this annotation

GitHub Actions / vale

[vale] guide/en/views/template-engines.md#L4

[Microsoft.Adverbs] Remove 'easily' if it's not important to the meaning of the statement.
Raw output
{"message": "[Microsoft.Adverbs] Remove 'easily' if it's not important to the meaning of the statement.", "location": {"path": "guide/en/views/template-engines.md", "range": {"start": {"line": 4, "column": 30}}}, "severity": "WARNING"}

PHP templates were described in the "[View](view.md)" guide section.

Check notice on line 6 in guide/en/views/template-engines.md

View workflow job for this annotation

GitHub Actions / vale

[vale] guide/en/views/template-engines.md#L6

[Microsoft.Passive] 'were described' looks like passive voice.
Raw output
{"message": "[Microsoft.Passive] 'were described' looks like passive voice.", "location": {"path": "guide/en/views/template-engines.md", "range": {"start": {"line": 6, "column": 15}}}, "severity": "INFO"}

## Twig Template Engine

Check notice on line 8 in guide/en/views/template-engines.md

View workflow job for this annotation

GitHub Actions / vale

[vale] guide/en/views/template-engines.md#L8

[Microsoft.Headings] 'Twig Template Engine' should use sentence-style capitalization.
Raw output
{"message": "[Microsoft.Headings] 'Twig Template Engine' should use sentence-style capitalization.", "location": {"path": "guide/en/views/template-engines.md", "range": {"start": {"line": 8, "column": 4}}}, "severity": "INFO"}

Twig is a modern template engine that provides a more designer-friendly syntax. To use Twig in your Yii3 application,
you need to install the Twig extension.
Expand Down Expand Up @@ -42,7 +42,7 @@
</div>
```

### Twig Features

Check notice on line 45 in guide/en/views/template-engines.md

View workflow job for this annotation

GitHub Actions / vale

[vale] guide/en/views/template-engines.md#L45

[Microsoft.Headings] 'Twig Features' should use sentence-style capitalization.
Raw output
{"message": "[Microsoft.Headings] 'Twig Features' should use sentence-style capitalization.", "location": {"path": "guide/en/views/template-engines.md", "range": {"start": {"line": 45, "column": 5}}}, "severity": "INFO"}

**Automatic Escaping**: Twig automatically escapes variables for HTML context:

Expand All @@ -56,6 +56,7 @@

**Filters and Functions**: Twig provides many built-in filters and functions:

{% raw %}
```twig
{# Date formatting #}
<time>{{ post.createdAt|date('Y-m-d H:i') }}</time>
Expand All @@ -66,6 +67,7 @@
{# URL generation #}
<a href="{{ path('user.profile', {'id': user.id}) }}">Profile</a>
```
{% endraw %}

**Template Inheritance**: Twig supports template inheritance:

Expand Down Expand Up @@ -96,7 +98,7 @@
{% endblock %}
```

### Rendering Twig Templates

Check notice on line 101 in guide/en/views/template-engines.md

View workflow job for this annotation

GitHub Actions / vale

[vale] guide/en/views/template-engines.md#L101

[Microsoft.Headings] 'Rendering Twig Templates' should use sentence-style capitalization.
Raw output
{"message": "[Microsoft.Headings] 'Rendering Twig Templates' should use sentence-style capitalization.", "location": {"path": "guide/en/views/template-engines.md", "range": {"start": {"line": 101, "column": 5}}}, "severity": "INFO"}

Use Twig templates the same way as PHP templates:

Expand All @@ -111,7 +113,7 @@
}
```

## Custom Template Engines

Check notice on line 116 in guide/en/views/template-engines.md

View workflow job for this annotation

GitHub Actions / vale

[vale] guide/en/views/template-engines.md#L116

[Microsoft.Headings] 'Custom Template Engines' should use sentence-style capitalization.
Raw output
{"message": "[Microsoft.Headings] 'Custom Template Engines' should use sentence-style capitalization.", "location": {"path": "guide/en/views/template-engines.md", "range": {"start": {"line": 116, "column": 4}}}, "severity": "INFO"}

You can create custom template engines by implementing the `TemplateRendererInterface`:

Expand Down Expand Up @@ -170,13 +172,13 @@
- Feature 3
```

## Choosing the Right Template Engine

Check notice on line 175 in guide/en/views/template-engines.md

View workflow job for this annotation

GitHub Actions / vale

[vale] guide/en/views/template-engines.md#L175

[Microsoft.Headings] 'Choosing the Right Template Engine' should use sentence-style capitalization.
Raw output
{"message": "[Microsoft.Headings] 'Choosing the Right Template Engine' should use sentence-style capitalization.", "location": {"path": "guide/en/views/template-engines.md", "range": {"start": {"line": 175, "column": 4}}}, "severity": "INFO"}

**Use PHP templates when:**
- You need maximum flexibility and performance
- Your team is comfortable with PHP
- You want to leverage existing PHP knowledge
- You need complex logic in templates (though this should be minimized)

Check notice on line 181 in guide/en/views/template-engines.md

View workflow job for this annotation

GitHub Actions / vale

[vale] guide/en/views/template-engines.md#L181

[Microsoft.Passive] 'be minimized' looks like passive voice.
Raw output
{"message": "[Microsoft.Passive] 'be minimized' looks like passive voice.", "location": {"path": "guide/en/views/template-engines.md", "range": {"start": {"line": 181, "column": 59}}}, "severity": "INFO"}

**Use Twig templates when:**
- You want stricter separation between logic and presentation
Expand All @@ -189,10 +191,10 @@
- You're working with specialized content formats
- You need integration with external template systems

## Best Practices

Check notice on line 194 in guide/en/views/template-engines.md

View workflow job for this annotation

GitHub Actions / vale

[vale] guide/en/views/template-engines.md#L194

[Microsoft.Headings] 'Best Practices' should use sentence-style capitalization.
Raw output
{"message": "[Microsoft.Headings] 'Best Practices' should use sentence-style capitalization.", "location": {"path": "guide/en/views/template-engines.md", "range": {"start": {"line": 194, "column": 4}}}, "severity": "INFO"}

1. **Keep templates simple**: Move complex logic to controllers or services
2. **Always escape output**: Prevent XSS attacks by properly escaping variables

Check warning on line 197 in guide/en/views/template-engines.md

View workflow job for this annotation

GitHub Actions / vale

[vale] guide/en/views/template-engines.md#L197

[Microsoft.Adverbs] Remove 'properly' if it's not important to the meaning of the statement.
Raw output
{"message": "[Microsoft.Adverbs] Remove 'properly' if it's not important to the meaning of the statement.", "location": {"path": "guide/en/views/template-engines.md", "range": {"start": {"line": 197, "column": 53}}}, "severity": "WARNING"}
3. **Use meaningful names**: Name your templates and variables clearly
4. **Organize templates**: Group related templates in subdirectories
5. **Document variables**: Always add type hints for better IDE support
Expand Down
23 changes: 19 additions & 4 deletions guide/es/start/workflow.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ you need.

## Functionality <span id="functionality"></span>

The installed application has only the homepage, which displays when you
access the URL `http://localhost/`. It shares a common layout that you can
reuse on further pages.
The installed application contains only one page, accessible at
`http://localhost/`. It shares a common layout that you can reuse on
further pages.

<!--
You should also see a toolbar at the bottom of the browser window.
Expand Down Expand Up @@ -86,7 +86,22 @@ documentation](https://github.com/yiisoft/app/blob/master/README.md).

The following diagram shows how an application handles a request.

![Request Lifecycle](img/request-lifecycle.svg)
```mermaid
flowchart LR
user[User's client] --> index
index[index.php] --> DI[Initialize Dependency Container]
config[configs] -.-> DI
DI --> RequestFactory[RequestFactory]
RequestFactory -->|Request| app[Application]
app -->|Request| middleware[Middleware]
middleware -->|Request| router[Router]
router -->|Request| action[Action Handler]
action -->|Response| emitter[SapiEmitter]
router -->|Response| emitter
middleware -->|Response| emitter
app -->|Response| emitter
emitter --> user
```

1. A user makes a request to the [entry
script](../structure/entry-script.md) `public/index.php`.
Expand Down
23 changes: 19 additions & 4 deletions guide/id/start/workflow.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ you need.

## Functionality <span id="functionality"></span>

The installed application has only the homepage, which displays when you
access the URL `http://localhost/`. It shares a common layout that you can
reuse on further pages.
The installed application contains only one page, accessible at
`http://localhost/`. It shares a common layout that you can reuse on
further pages.

<!--
You should also see a toolbar at the bottom of the browser window.
Expand Down Expand Up @@ -86,7 +86,22 @@ documentation](https://github.com/yiisoft/app/blob/master/README.md).

The following diagram shows how an application handles a request.

![Request Lifecycle](img/request-lifecycle.svg)
```mermaid
flowchart LR
user[User's client] --> index
index[index.php] --> DI[Initialize Dependency Container]
config[configs] -.-> DI
DI --> RequestFactory[RequestFactory]
RequestFactory -->|Request| app[Application]
app -->|Request| middleware[Middleware]
middleware -->|Request| router[Router]
router -->|Request| action[Action Handler]
action -->|Response| emitter[SapiEmitter]
router -->|Response| emitter
middleware -->|Response| emitter
app -->|Response| emitter
emitter --> user
```

1. A user makes a request to the [entry
script](../structure/entry-script.md) `public/index.php`.
Expand Down
23 changes: 19 additions & 4 deletions guide/ru/start/workflow.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ you need.

## Functionality <span id="functionality"></span>

The installed application has only the homepage, which displays when you
access the URL `http://localhost/`. It shares a common layout that you can
reuse on further pages.
The installed application contains only one page, accessible at
`http://localhost/`. It shares a common layout that you can reuse on
further pages.

<!--
You should also see a toolbar at the bottom of the browser window.
Expand Down Expand Up @@ -86,7 +86,22 @@ documentation](https://github.com/yiisoft/app/blob/master/README.md).

The following diagram shows how an application handles a request.

![Request Lifecycle](img/request-lifecycle.svg)
```mermaid
flowchart LR
user[User's client] --> index
index[index.php] --> DI[Initialize Dependency Container]
config[configs] -.-> DI
DI --> RequestFactory[RequestFactory]
RequestFactory -->|Request| app[Application]
app -->|Request| middleware[Middleware]
middleware -->|Request| router[Router]
router -->|Request| action[Action Handler]
action -->|Response| emitter[SapiEmitter]
router -->|Response| emitter
middleware -->|Response| emitter
app -->|Response| emitter
emitter --> user
```

1. A user makes a request to the [entry
script](../structure/entry-script.md) `public/index.php`.
Expand Down
Loading