Download the PHP package tinydots/craft-front-matter without Composer
On this page you can find all versions of the php package tinydots/craft-front-matter. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download tinydots/craft-front-matter
More information about tinydots/craft-front-matter
Files in tinydots/craft-front-matter
Package craft-front-matter
Short Description Extract YAML data from twig templates
License MIT
Informations about the package craft-front-matter
Front Matter for Craft CMS 3.x
Front Matter allows you to extract YAML data from specially-formatted comments at the top of your twig templates. This is especially useful for including a pattern library inside your Craft CMS project.
Requirements
This plugin requires Craft CMS 3.0.0 or later.
Installation
To install the plugin, follow these instructions.
-
Open your terminal and go to your Craft project:
cd /path/to/project
-
Then tell Composer to load the plugin:
composer require tinydots/craft-front-matter
- In the Control Panel, go to Settings -> Plugins and click the “Install” button for Front Matter.
Usage
Defining data
You can add YAML metadata to the top of any twig template by surrounding
it in {#---
and ---#}
tags. Because the YAML data is inside a twig
comment, you can still {% include %}
and {% embed %}
templates as
normal, with or without the plugin installed.
Given a _components/link.html
template for rendering a link, with the
following YAML front matter data:
Accessing data
You can access the YAML data as an array from other templates with
craft.frontMatter.parse(template)
:
Pattern Libraries
The main use-case for embedding YAML data in templates is for creating a style guide or pattern library inside the Craft project itself.
Collections/arrays are available to use as normal so can be used to document the variables the template accepts:
You can output the escaped source of the template without the YAML
data, using craft.frontMatter.source(template)
:
If you use simple strings and arrays as input variables in your template,
you can even embed a few examples of the output by passing them back in to a
normal {% include %}
of the template: