title | description |
---|---|
Expressions |
Reference information for expression in Mannequin Drupal. |
Sometimes, you want to pass in more complex values for your sample variables. To support that, Mannequin provides "expressions" that you can use in your component metadata. Any variable that is prefixed by a ~
is treated as an expression.
The rendered
expression wraps markup strings in a special wrapper. Without wrapping them, they would be escaped by Twig when they are output.
{# @Component
...
samples:
MarkupExample:
text: ~rendered('<i class="icon icon-edit" title="Edit"></i>')
#}
<a>{{ text }}</a>
The asset
expression formulates a path to a local file. Asset paths are searched relative to the .mannequin.php
file.
{# @Component
...
samples:
AssetExample:
img_url: ~asset('img/logo.png')
#}
<img src="{{ img_url }}" />
The sample
expression is a way of rendering a sample from another component in the current component. It is a powerful way to preview how your components will come together. It takes the name of a component, and the name of a sample defined within that component, separated by a "#". Eg:
{# @Component
...
samples:
SampleExample:
cards:
- ~sample('@mytheme/card.html.twig#Medium')
- ~sample('@mytheme/card.html.twig#Large')
#}
<div class="card-grid">
{% for card in cards %}
{{ card }}
{% endfor %}
</div>
Creates a Drupal Attributes
object.
{# @Component
...
samples:
AttributesExample:
content_attributes: "~attributes({class: [ 'foo' ] })"
#}
<div{{ content_attributes }}>
...
</div>