Blutui IntellisenseBlutui IntelliSense enhances the Blutui development experience. This is by providing Visual Studio Code users with advanced features like syntax highlighting and snippets for Blutui's Canvas templating language. FeaturesSyntax highlightingSyntax highlighting for SnippetsThis gives access to the main tags, functions, filters, and tests of Canvas, Blutui's templating language, including Canopy Blocks. This allows users quick and easy writing with autocomplete of snippets. Tags (
|
| Prefix | Expands to |
|---|---|
apply |
{% apply %} block |
autoescape |
{% autoescape %} block |
block |
{% block %} block |
canopy |
Canopy Block template (config/template sections) |
deprecated |
{% deprecated '...' %} notice |
do |
{% do %} expression |
embed |
{% embed %} block |
extends |
{% extends %} |
for |
{% for %} loop |
!for-collections |
{% for %} loop over a collection, sorted |
form |
{% form %} block |
from |
{% from %} macro import |
if |
{% if %} block |
import |
{% import %} macro import |
include |
{% include %} |
macro |
{% macro %} definition |
set |
{% set %} assignment |
use |
{% use %} (horizontal reuse) |
verbatim |
{% verbatim %} block |
with |
{% with %} block |
Functions (src/snippets/functions.code-snippets)
| Prefix | Expands to |
|---|---|
agent |
agent().is('...') |
asset |
asset('...') |
attribute |
attribute(object, method) |
block |
block('...') |
canopy.blocks |
canopy.blocks('...') — render a group in its stored order |
canopy.blocks.seed |
canopy.blocks('...', ['...', '...']) — seed a zone with an explicit template list |
canopy.blocks.locked |
canopy.blocks('...', ['...'], { locked: true }) — seeded zone, structure locked |
canopy.blocks.shared |
canopy.blocks('...', { shared: true }) — group shared across the whole site |
canopy.blocks.limit |
canopy.blocks('...', { limit: ... }) — cap the number of blocks a zone accepts |
canopy.render |
canopy.render('...') |
canopy.head |
canopy.head('...') |
canopy.scripts |
canopy.scripts('...') |
cms.blog |
cms.blog('...') |
cms.collection |
cms.collection('...') |
cms.form |
cms.form('...') |
cms.menu |
cms.menu('...') |
constant |
constant('...') |
cycle |
cycle([...], position) |
date |
date('now') |
dump |
dump(var) |
honeypot_field |
honeypot_field() |
include |
include('...') |
max |
max(...) |
min |
min(...) |
parent |
parent() |
random |
random([...]) |
range |
{% for %} over range(...) |
recaptcha |
recaptcha() |
source |
source('...') |
cms_button (deprecated) |
legacy Canopy button element — use Canopy Blocks |
cms_code (deprecated) |
legacy Canopy code element — use Canopy Blocks |
cms_heading (deprecated) |
legacy Canopy heading element — use Canopy Blocks |
cms_image (deprecated) |
legacy Canopy image element — use Canopy Blocks |
cms_list (deprecated) |
legacy Canopy list element — use Canopy Blocks |
cms_quote (deprecated) |
legacy Canopy quote element — use Canopy Blocks |
cms_text (deprecated) |
legacy Canopy text element — use Canopy Blocks |
Filters (src/snippets/filters.code-snippets)
Trigger with the filter name or |name (e.g. slug or |slug).
| Prefix | Description |
|---|---|
abs |
Absolute value |
batch |
Batch items into a list of lists |
capitalize |
Capitalize the first character |
column |
Pluck a column from an array |
convert_encoding |
Convert string encoding |
date |
Format a date |
date_modify |
Modify a date with a modifier string |
default |
Fallback value if undefined/empty |
escape / e |
Escape a string for the given context |
filter |
Filter a sequence/mapping with an arrow function |
first |
First element of a sequence/mapping/string |
format |
Replace %s-style placeholders |
group_by |
Group array items by a key |
image_tag |
Generate an <img> tag |
image_url |
Generate a CDN URL for an image |
join |
Join a sequence into a string |
json_encode |
JSON representation of a value |
keys |
Keys of an array |
last |
Last element of a sequence/mapping/string |
length |
Number of items / string length |
lower |
Lowercase |
map |
Map a sequence/mapping with an arrow function |
merge |
Merge two arrays/hashes |
nl2br |
Insert <br> before newlines |
number_format |
Format a number |
raw |
Mark a value as safe (skip escaping) |
reading_time |
Estimate reading time |
reduce |
Reduce a sequence/mapping to a single value |
replace |
Replace placeholders in a string |
reverse |
Reverse a sequence/mapping/string |
round |
Round a number to a precision |
slice |
Extract a slice of a sequence/mapping/string |
slug |
URL-friendly slug |
sort |
Sort an array |
spaceless |
Remove whitespace between HTML tags |
split |
Split a string into a list |
striptags |
Strip SGML/XML tags |
title |
Titlecase a string |
trim |
Strip whitespace/characters |
upper |
Uppercase |
url_encode |
Percent-encode a string/array as a URL segment or query string |
sort_by (deprecated) |
Sort by key — use sort instead |
Tests (src/snippets/tests.code-snippets)
Used after is in expressions, e.g. {% if foo is defined %}.
| Prefix | Checks |
|---|---|
is constant |
Value equals a given constant |
is defined |
Variable is defined |
is not defined |
Variable is not defined |
is divisible by |
Number is divisible by another |
is empty |
Empty string/array/hash, false, or null |
is even |
Number is even |
is odd |
Number is odd |
is iterable |
Value is an array or traversable object |
is null |
Value is null (or none) |
is same as |
Strict comparison to another value |
Templates & misc (src/snippets/auto.code-snippets)
| Prefix | Expands to |
|---|---|
!form-macro |
A full set of form input macros (input/checkbox/radio/select/errors/field) |
!map |
Google Maps embed boilerplate |
collection (legacy) |
Renders a collection via the legacy collection() function — prefer cms.collection |
form (legacy) |
Renders a form via the legacy form() function — prefer cms.form |
!page |
New page skeleton extending a layout |
!layout |
Layout skeleton wired to Canopy Blocks (canopy.head/.blocks/.scripts) |
See CONTRIBUTING.md for running the extension locally.