Obsidian Bases Syntax (Beta)
Detailed reference for Obsidian Bases syntax, including filters, formulas, and view types.
Supported Features
Core Sections
- ✅ Filters - Define conditions to narrow down your dataset with
and,or, andnotlogic. A block with no filters includes every page on your site. - ✅ Formulas - Create computed properties using arithmetic operators and built-in functions
- ✅ Properties - Configure display names for your properties
- ✅ Views - Display your data in multiple layouts (List, Table, and Cards views)
Properties
-
✅ Note Properties - Access frontmatter properties from your Markdown files
-
🚧 File Properties - Support for most file metadata:
file.name,file.basename,file.path,file.folder,file.ext,file.sizefile.ctime,file.mtime- creation and last-modified timesfile.tags- frontmatter and inline body tags (matches nested tags, e.g.bookmatchesbook/fiction)file.links,file.backlinks- outgoing and incoming linksfile.hasProperty(),file.inFolder(),file.hasTag(),file.hasLink()
file.ctime/file.mtimereflect when the page was last published, not local file timestamps.file.tagsandfile.hasTag()cover both frontmatter tags and inline#tagsfrom the body — see the Tags reference for the full tag grammar.
Operators
- ✅ Arithmetic Operators -
+,-,*,/,%, and parentheses - ✅ Comparison Operators -
==,!=,>,<,>=,<= - ✅ Boolean Operators -
!,&&,|| - ✅ Date Arithmetic - Add/subtract durations from dates (e.g.
date(start) + "2w"), withy/M/w/d/h/m/sunits and compound values like"1y2M3d"
Functions
Global Functions
- ✅
escapeHTML()- Escape special characters for HTML - ✅
date()- Parse date strings - ✅
duration()- Parse duration strings - ✅
html()- Render HTML snippets - ✅
if()- Conditional logic - ✅
image()- Display images - ✅
icon()- Render Lucide icons - ✅
list()- Create or wrap lists - ✅
max()/min()- Find extremes - ✅
now()/today()- Current date/time - ✅
number()- Type conversion
Type-Specific Functions
- ✅ Any -
isTruthy(),toString() - ✅ Date - All fields (
year,month,day,hour,minute,second,millisecond) and functions (format(),relative(),time(),date(),isEmpty()) - ✅ String - Complete support for all string operations (
contains(),lower(),replace(),split(),trim(), etc.) - ✅ Number - All numeric functions (
abs(),ceil(),floor(),round(),toFixed(),isEmpty()) - 🚧 List - Most methods work (
sort(),contains(),containsAny(),join(),flat(),unique(),reverse(),slice(),isEmpty(),length).map(),filter(), andreduce()are not yet supported (they require per-element expression evaluation). - ✅ Object -
isEmpty(),keys(),values()
View Types
-
✅ Table View - Display files as rows with property columns
- ✅ Built-in summaries (Average, Sum, Min, Max, Median, Stddev, Range)
- ✅ Date summaries (Earliest, Latest, Range)
- ✅ Checkbox summaries (Checked, Unchecked)
- ✅ Generic summaries (Empty, Filled, Unique)
-
✅ Cards View - Gallery-like grid layout
- ✅ Card size configuration
- ✅ Image properties (local attachments and URLs)
- ✅ Image fit options (Cover/Contain)
- ✅ Image aspect ratio control
- ✅ Use hex color codes as card backgrounds
-
✅ List View - Bulleted or numbered list display
Upcoming Features
The following features are planned for future releases:
Core Functionality
- ❌ Custom Summaries - Define your own summary formulas
- ❌
thisContext - Access properties of the embedding file
File Properties
- ❌
file.embeds- Embedded files - ❌
file.properties- Full file properties object
Functions
- ❌
file()- Get file objects from paths - ❌
link()- Create link objects programmatically - ❌ File functions:
asLink() - ❌ Link functions:
asFile(),linksTo() - ❌ List functions:
map(),filter(),reduce() - ❌ Regular Expressions -
matches()and regex literals (e.g./abc/)
View Features
- ❌ Map View - Display files as pins on interactive maps
- ❌ Row Height Control - Customize table row heights