Skip to content

Functions Reference

Global Functions

Function Signature Description
date() date(string): date Parse string to date. Format: YYYY-MM-DD HH:mm:ss
duration() duration(string): duration Parse duration string
now() now(): date Current date and time
today() today(): date Current date (time = 00:00:00)
if() if(condition, trueResult, falseResult?) Conditional
min() min(n1, n2, ...): number Smallest number
max() max(n1, n2, ...): number Largest number
number() number(any): number Convert to number
link() link(path, display?): Link Create a link
list() list(element): List Wrap in list if not already
file() file(path): file Get file object
image() image(path): image Create image for rendering
icon() icon(name): icon Lucide icon by name
html() html(string): html Render as HTML
escapeHTML() escapeHTML(string): string Escape HTML characters

Any Type Functions

Function Signature Description
isTruthy() any.isTruthy(): boolean Coerce to boolean
isType() any.isType(type): boolean Check type
toString() any.toString(): string Convert to string

Date Functions & Fields

Fields: date.year, date.month, date.day, date.hour, date.minute, date.second, date.millisecond

Function Signature Description
date() date.date(): date Remove time portion
format() date.format(string): string Format with Moment.js pattern
time() date.time(): string Get time as string
relative() date.relative(): string Human-readable relative time
isEmpty() date.isEmpty(): boolean Always false for dates

Duration Type

When subtracting two dates, the result is a Duration type (not a number). Duration has its own properties and methods.

Duration Fields: | Field | Type | Description | |-------|------|-------------| | duration.days | Number | Total days in duration | | duration.hours | Number | Total hours in duration | | duration.minutes | Number | Total minutes in duration | | duration.seconds | Number | Total seconds in duration | | duration.milliseconds | Number | Total milliseconds in duration |

IMPORTANT: Duration does NOT support .round(), .floor(), .ceil() directly. You must access a numeric field first (like .days), then apply number functions.

# CORRECT: Calculate days between dates
"(date(due_date) - today()).days"                    # Returns number of days
"(now() - file.ctime).days"                          # Days since created

# CORRECT: Round the numeric result if needed
"(date(due_date) - today()).days.round(0)"           # Rounded days
"(now() - file.ctime).hours.round(0)"                # Rounded hours

# WRONG - will cause error:
# "((date(due) - today()) / 86400000).round(0)"      # Duration doesn't support division then round

Date Arithmetic

# Duration units: y/year/years, M/month/months, d/day/days,
#                 w/week/weeks, h/hour/hours, m/minute/minutes, s/second/seconds

# Add/subtract durations
"date + \"1M\""           # Add 1 month
"date - \"2h\""           # Subtract 2 hours
"now() + \"1 day\""       # Tomorrow
"today() + \"7d\""        # A week from today

# Subtract dates returns Duration type
"now() - file.ctime"                    # Returns Duration
"(now() - file.ctime).days"             # Get days as number
"(now() - file.ctime).hours"            # Get hours as number

# Complex duration arithmetic
"now() + (duration('1d') * 2)"

String Functions

Field: string.length

Function Signature Description
contains() string.contains(value): boolean Check substring
containsAll() string.containsAll(...values): boolean All substrings present
containsAny() string.containsAny(...values): boolean Any substring present
startsWith() string.startsWith(query): boolean Starts with query
endsWith() string.endsWith(query): boolean Ends with query
isEmpty() string.isEmpty(): boolean Empty or not present
lower() string.lower(): string To lowercase
title() string.title(): string To Title Case
trim() string.trim(): string Remove whitespace
replace() string.replace(pattern, replacement): string Replace pattern
repeat() string.repeat(count): string Repeat string
reverse() string.reverse(): string Reverse string
slice() string.slice(start, end?): string Substring
split() string.split(separator, n?): list Split to list

Number Functions

Function Signature Description
abs() number.abs(): number Absolute value
ceil() number.ceil(): number Round up
floor() number.floor(): number Round down
round() number.round(digits?): number Round to digits
toFixed() number.toFixed(precision): string Fixed-point notation
isEmpty() number.isEmpty(): boolean Not present

List Functions

Field: list.length

Function Signature Description
contains() list.contains(value): boolean Element exists
containsAll() list.containsAll(...values): boolean All elements exist
containsAny() list.containsAny(...values): boolean Any element exists
filter() list.filter(expression): list Filter by condition (uses value, index)
map() list.map(expression): list Transform elements (uses value, index)
reduce() list.reduce(expression, initial): any Reduce to single value (uses value, index, acc)
flat() list.flat(): list Flatten nested lists
join() list.join(separator): string Join to string
reverse() list.reverse(): list Reverse order
slice() list.slice(start, end?): list Sublist
sort() list.sort(): list Sort ascending
unique() list.unique(): list Remove duplicates
isEmpty() list.isEmpty(): boolean No elements

File Functions

Function Signature Description
asLink() file.asLink(display?): Link Convert to link
hasLink() file.hasLink(otherFile): boolean Has link to file
hasTag() file.hasTag(...tags): boolean Has any of the tags
hasProperty() file.hasProperty(name): boolean Has property
inFolder() file.inFolder(folder): boolean In folder or subfolder
Function Signature Description
asFile() link.asFile(): file Get file object
linksTo() link.linksTo(file): boolean Links to file

Object Functions

Function Signature Description
isEmpty() object.isEmpty(): boolean No properties
keys() object.keys(): list List of keys
values() object.values(): list List of values

Regular Expression Functions

Function Signature Description
matches() regexp.matches(string): boolean Test if matches

2026 Galyarder Labs. Galyarder Framework.