diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 681c45ac..97911d51 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -79,3 +79,17 @@ jobs:
- name: Run tests with phpunit
run: php ./vendor/phpunit/phpunit/phpunit
+ deploy:
+ runs-on: ubuntu-lastest
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions/setup-python@v4
+ with:
+ python-version: 3.x
+ - uses: actions/cache@v2
+ with:
+ key: ${{ github.ref }}
+ path: .cache
+ - run: pip install mkdocs-material
+ - run: mkdocs gh-deploy --force
+
\ No newline at end of file
diff --git a/docs/appendixes/tips.md b/docs/appendixes/tips.md
index cdcc56b1..8e905f90 100644
--- a/docs/appendixes/tips.md
+++ b/docs/appendixes/tips.md
@@ -14,7 +14,7 @@ shorthand way with Smarty, using the
> **Note**
>
> "Undefined variable" errors will show an E\_NOTICE if not disabled in
-> PHP\'s [`error_reporting()`](&url.php-manual;error_reporting) level or
+> PHP\'s [`error_reporting()`](https://www.php.net/error_reporting) level or
> Smarty\'s [`$error_reporting`](#variable.error.reporting) property and
> a variable had not been assigned to Smarty.
@@ -114,7 +114,7 @@ Dates {#tips.dates}
=====
As a rule of thumb, always pass dates to Smarty as
-[timestamps](&url.php-manual;time). This allows template designers to
+[timestamps](https://www.php.net/time). This allows template designers to
use the [`date_format`](#language.modifier.date.format) modifier for
full control over date formatting, and also makes it easy to compare
dates if necessary.
diff --git a/docs/appendixes/troubleshooting.md b/docs/appendixes/troubleshooting.md
index d605dd2b..dc896df6 100644
--- a/docs/appendixes/troubleshooting.md
+++ b/docs/appendixes/troubleshooting.md
@@ -110,7 +110,7 @@ the corresponding error is in the template.
- This means that your application registered a custom error handler
- (using [set\_error\_handler()](&url.php-manual;set_error_handler))
+ (using [set\_error\_handler()](https://www.php.net/set_error_handler))
which is not respecting the given `$errno` as it should. If, for
whatever reason, this is the desired behaviour of your custom error
handler, please call
diff --git a/docs/designers/language-basic-syntax.md b/docs/designers/language-basic-syntax.md
index 2509857c..8c20ef5a 100644
--- a/docs/designers/language-basic-syntax.md
+++ b/docs/designers/language-basic-syntax.md
@@ -2,7 +2,8 @@ Basic Syntax
============
A simple Smarty template could look like this:
-```html
+
+```smarty
{$title|escape}
{foreach $cities as $city}
diff --git a/docs/designers/language-basic-syntax/language-syntax-quotes.md b/docs/designers/language-basic-syntax/language-syntax-quotes.md
index 6fe185c9..8dbd6c79 100644
--- a/docs/designers/language-basic-syntax/language-syntax-quotes.md
+++ b/docs/designers/language-basic-syntax/language-syntax-quotes.md
@@ -4,7 +4,7 @@ Embedding Vars in Double Quotes {#language.syntax.quotes}
- Smarty will recognize [assigned](#api.assign)
[variables](#language.syntax.variables) embedded in \"double
quotes\" so long as the variable name contains only numbers, letters
- and under\_scores. See [naming](&url.php-manual;language.variables)
+ and under\_scores. See [naming](https://www.php.net/language.variables)
for more detail.
- With any other characters, for example a period(.) or
diff --git a/docs/designers/language-basic-syntax/language-syntax-variables.md b/docs/designers/language-basic-syntax/language-syntax-variables.md
index 671ad8bb..01482ffd 100644
--- a/docs/designers/language-basic-syntax/language-syntax-variables.md
+++ b/docs/designers/language-basic-syntax/language-syntax-variables.md
@@ -3,7 +3,7 @@ Variables {#language.syntax.variables}
Template variables start with the \$dollar sign. They can contain
numbers, letters and underscores, much like a [PHP
-variable](&url.php-manual;language.variables). You can reference arrays
+variable](https://www.php.net/language.variables). You can reference arrays
by index numerically or non-numerically. Also reference object
properties and methods.
diff --git a/docs/designers/language-builtin-functions.md b/docs/designers/language-builtin-functions.md
index fcae5010..5b055abe 100644
--- a/docs/designers/language-builtin-functions.md
+++ b/docs/designers/language-builtin-functions.md
@@ -8,7 +8,7 @@ Built-in Functions {#language.builtin.functions}
- [{block}](./language-builtin-functions/language-function-block.md)
- [{call}](./language-builtin-functions/language-function-call.md)
- [{capture}](./language-builtin-functions/language-function-capture.md)
-- [{config_load}](./language-builtin-functions/language-function-config.load)
+- [{config_load}](./language-builtin-functions/language-function-config-load.md)
- [{debug}](./language-builtin-functions/language-function-debug.md)
- [{extends}](./language-builtin-functions/language-function-extends.md)
- [{for}](./language-builtin-functions/language-function-for.md)
diff --git a/docs/designers/language-builtin-functions/language-function-if.md b/docs/designers/language-builtin-functions/language-function-if.md
index 7e48a958..827277c6 100644
--- a/docs/designers/language-builtin-functions/language-function-if.md
+++ b/docs/designers/language-builtin-functions/language-function-if.md
@@ -2,7 +2,7 @@
====================
`{if}` statements in Smarty have much the same flexibility as PHP
-[if](&url.php-manual;if) statements, with a few added features for the
+[if](https://www.php.net/if) statements, with a few added features for the
template engine. Every `{if}` must be paired with a matching `{/if}`.
`{else}` and `{elseif}` are also permitted. All PHP conditionals and
functions are recognized, such as *\|\|*, *or*, *&&*, *and*,
diff --git a/docs/designers/language-builtin-functions/language-function-section.md b/docs/designers/language-builtin-functions/language-function-section.md
index b28bb924..c6183c14 100644
--- a/docs/designers/language-builtin-functions/language-function-section.md
+++ b/docs/designers/language-builtin-functions/language-function-section.md
@@ -37,7 +37,7 @@ be paired with a closing `{/section}` tag.
- The `name` of the `{section}` can be anything you like, made up of
letters, numbers and underscores, like [PHP
- variables](&url.php-manual;language.variables).
+ variables](https://www.php.net/language.variables).
- {section}\'s can be nested, and the nested `{section}` names must be
unique from each other.
@@ -124,7 +124,7 @@ The above example will output:
The `name` of the `{section}` can be anything you like, see [PHP
-variables](&url.php-manual;language.variables). It is used to reference
+variables](https://www.php.net/language.variables). It is used to reference
the data within the `{section}`.
diff --git a/docs/designers/language-builtin-functions/language-function-while.md b/docs/designers/language-builtin-functions/language-function-while.md
index 755c091f..64deabaf 100644
--- a/docs/designers/language-builtin-functions/language-function-while.md
+++ b/docs/designers/language-builtin-functions/language-function-while.md
@@ -2,7 +2,7 @@
=======
`{while}` loops in Smarty have much the same flexibility as PHP
-[while](&url.php-manual;while) statements, with a few added features for
+[while](https://www.php.net/while) statements, with a few added features for
the template engine. Every `{while}` must be paired with a matching
`{/while}`. All PHP conditionals and functions are recognized, such as
*\|\|*, *or*, *&&*, *and*, *is\_array()*, etc.
diff --git a/docs/designers/language-custom-functions/language-function-html-options.md b/docs/designers/language-custom-functions/language-function-html-options.md
index b7c04e94..9c9a00a1 100644
--- a/docs/designers/language-custom-functions/language-function-html-options.md
+++ b/docs/designers/language-custom-functions/language-function-html-options.md
@@ -74,7 +74,7 @@ Output of the above example would be:
The above arrays would be output with the following template (note the
-use of the php [`count()`](&url.php-manual;function.count) function as a
+use of the php [`count()`](https://www.php.net/function.count) function as a
modifier to set the select size).
diff --git a/docs/designers/language-custom-functions/language-function-html-select-date.md b/docs/designers/language-custom-functions/language-function-html-select-date.md
index b46eb041..80c7fdfb 100644
--- a/docs/designers/language-custom-functions/language-function-html-select-date.md
+++ b/docs/designers/language-custom-functions/language-function-html-select-date.md
@@ -9,7 +9,7 @@ name/value-pairs inside the `