Here is a list of all functions you can use in SilverBullet’s Expression Language: Lists
count(list)
Count the number of elements in a list:There are **{{count({page})}}** pages in this space.
at(list, index)
Returns the indexth element of list (starting from 0 of course).Index 1 of our count to three is {{at([1, 2, 3], 1)}}
Templates
template(text, value)
Renders a template with an optional value:{{template([[Library/Core/Query/Page]], {"name": "Some page"})}}
Date and time
today()
Today’s date in a YYYY-MM-dd format. tomorrow()
Tomorrow’s date in a YYYY-MM-dd format. yesterday()
Yesterday’s date in YYYY-MM-dd format. niceDate(timestamp)
Convert a unix timestamp to a YYYY-MM-dd format. time()
Current time. String manipulation
replace(str, match, replacement)
Replace text in a string. match can either be a literal string or a regular expression: replace("hello", "ell", "all") would produce “hallo”, and replace("hello", /l/, "b") would produce “hebbo”.This function supports an infinite number of replacements, so you can keep adding more, e.g. replace(str, match1, replacement1, match2, replacement2, match3, replacement3) contains(str, substr)
Returns whether str contains substr as a substring. json(obj)
Convert the argument to a JSON string (for debugging purposes).The current page object: {{json(@page)}}
yaml(obj)
Convert the argument to a YAML string (for debugging purposes).The current page object:
~~~yaml
{{yaml(@page)}}
~~~
Space related
pageExists(name)
Checks if the page name exists:This very page exists: {{pageExists(@page.name)}}
And this one: {{pageExists("non-existing")}}
readPage(name)
Reads in the content of the page name and returns it as a string.