80 lines
1.9 KiB
Markdown
80 lines
1.9 KiB
Markdown
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:
|
||
|
||
```template
|
||
There are **{{count({page})}}** pages in this space.
|
||
```
|
||
|
||
## at(list, index)
|
||
Returns the `index`th element of `list` (starting from 0 of course).
|
||
|
||
```template
|
||
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
|
||
{{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).
|
||
|
||
```template
|
||
The current page object: {{json(@page)}}
|
||
```
|
||
|
||
## yaml(obj)
|
||
Convert the argument to a YAML string (for debugging purposes).
|
||
|
||
```template
|
||
The current page object:
|
||
~~~yaml
|
||
{{yaml(@page)}}
|
||
~~~
|
||
```
|
||
|
||
# Space related
|
||
## pageExists(name)
|
||
Checks if the page `name` exists:
|
||
|
||
```template
|
||
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. |