Twig Filters
json_decode
Let's you decode json. Uses PHP's json_decode
. It complements Twig's native json_encode
filter.
Example
{% set data = '{ "title": "hi" }' | json_decode %}
Twig Functions
get_data( path )
Takes the path to a .json
, .yml
, or .yaml
file and returns the data for use in Twig.
Parameters
path
{string} Either absolute path, relative path from CWD, or Twig Namespace path like@namespace/file.json
.
Example
{% set schema = get_data('@bolt-components-headline/headline.schema.yml') %}
pattern_template( patternName )
Takes the name of a component and returns the component's template.
Warning: This function is marked for deprecation in future releases of the Bolt Design System.
Parameters
patternName
{string} Name of the pattern to include, such as "card", "button", or "link".
Example
{% include pattern_template("button_group") with {
"buttons": buttons
} only %}
validate_data_schema( path, _self )
Takes the path to a .json
, .yml
, or .yaml
data schema file and validates the data being used by the twig template file in which the validate function is included. As a standard, this should be the last thing included in a twig template file.
Note: Within the Bolt system, validation is managed by the global enable_json_schema_validation
Parameters
path
{string} Either absolute path, relative path from CWD, or Twig Namespace path like@bolt-components-foo/foo.schema.json
.
Example
{% if enable_json_schema_validation %}
{{ validate_data_schema(bolt.data.components['@bolt-components-button'].schema, _self) | raw }}
{% endif %}
publicpath( fileName )
Takes a file name. If the drupal_get_path
function exists (for example, if Bolt is being used in a Drupal environment), it will return the public path to the file. Otherwise, returns the regular public path to the file.
Parameters
fileName
{string} Name of the file for which the public path is needed.
Example
{# Get the file name based on a provided source url `src` #}
{% set fileName = src|split('.' ~ ext)|first %}
{# Get the public path to the file #}
{% set path = publicpath(fileName) %}
base64( path )
Takes the relative path to an image and generates a low resolution base 64 image. Used to create placeholder images for lazy loading. Only converts .jpg
and .png
files.
Parameters
path
{string} Relative path to an image file.
Example
{% set placeholderImage = base64(sampleImageSrc) %}
bgcolor( path )
Takes the relative path to an image and returns the average color.
Parameters
path
{string} Relative path to an image file.
Example
{% set placeholderImage = base64(sampleImageSrc) %}
ratio( path, ratioType="width" )
Takes the relative path to an image and returns the width to height ratio (default) or the height to width ratio.
Parameters
path
{string} Relative path to an image file.rationType
{string} Optional Either "width" or "height". Allows return of height to width ratio.
Example
{% set width = ratio(src, 'width') %}
{% set height = ratio(src, 'height') %}
Twig Tags
grid
Bolt's grid system. Wraps the custom cell
Parameters
classes
{string} Space separated string of classes to by applied to the grid.
Example
{% grid "o-bolt-grid--center o-bolt-grid--full" %}
...
{% endgrid %}
cell
A cell to be used in the Bolt grid system.
Parameters
classes
{string} Space separated string of classes to by applied to the grid.
Example
{% cell "u-bolt-width-1/1 u-bolt-width-2/3@small" %}
...
{% endcell %}