# Twig Plugin for Kirby CMS - Adds support for [Twig templates](http://twig.sensiolabs.org/) to [Kirby CMS](https://getkirby.com/) (3.0+). - PHP templates still work, you don’t have to rewrite them if you don’t want to. ## What it looks like Before: ```php

title() ?>

``` After: ```twig {# site/templates/hello.twig #}

{{ page.title }}

``` ## Installation ### Download Download and copy this repository to `/site/plugins/kirby-twig`. ### Git submodule ``` git submodule add https://github.com/amteich/kirby-twig.git site/plugins/kirby-twig ``` ### Composer ``` composer require amteich/kirby-twig ``` **** ## Usage ### Page templates Now that the plugin is installed and active, you can write Twig templates in the `site/templates` directory. For example, if the text file for your articles is named `post.txt`, you could have a `post.twig` template like this: ```twig {% extends 'layout.twig' %} {% block content %}

{{ page.title }}

{{ page.text.kirbytext | raw }}
{% endblock %} ``` See the `{% extends '@templates/layout.twig' %}` and `{% block content %}` parts? They’re a powerful way to manage having a common page layout for many templates, and only changing the core content (and/or other specific parts). Read [our Twig templating guide](doc/guide.md) for more information. ### Hint: Accessing pagemethods instead of public variables Twig calls to specific methods, like for instance `page.children` sometimes return `NULL`. This can occur, if there is also a public variable which is only initialized after calling the corresponding method. `{{ page.children }}` returns `NULL`, because the public variable is returned. Please call the method instead like this: `{{ page.children() }}`. ## Options You can find a full list of options in the [options documentation](doc/options.md). **** ## More documentation - [Twig templating guide for Kirby](doc/guide.md) - [Available options](doc/options.md) - [Using your own functions in templates](doc/functions.md) - [Rendering a template in PHP: the `twig` helper](doc/twighelper.md) - [Displaying Twig errors](doc/errors.md) ## License [MIT](LICENSE.md) ## Credits - Maintainer: [Christian Zehetner](https://github.com/seehat) - Twig library: Fabien Potencier and contributors / [License](https://github.com/twigphp/Twig/blob/3.x/LICENSE) - Twig plugin for Kirby 2: Florens Verschelde