Workflow: Create Base
Create and edit Obsidian .base database view files.
Steps
- Define purpose - What data to view? (tasks, projects, reading list, etc.)
- Design filters - Which notes to include (tags, folders, properties)
- Design formulas - Computed columns needed
- Choose view type - table, cards, list, or map
- Generate .base YAML via
Tools/BaseBuilder.py create
- Validate the generated YAML
- Place file in appropriate folder
Tool Usage
# Create a project tracker base
python Tools/BaseBuilder.py create \
--name "Active Projects" \
--filter 'file.inFolder("01 - Projects") && status != "completed"' \
--view table \
--columns "file.name,status,priority,due" \
--output "01 - Projects/projects.base"
# Create with formulas
python Tools/BaseBuilder.py create \
--name "Task Dashboard" \
--filter 'file.hasTag("task")' \
--view table \
--formula 'days_until_due=if(due, ((date(due) - today()) / 86400000).round(0), "")' \
--formula 'priority_label=if(priority == 1, "High", if(priority == 2, "Medium", "Low"))' \
--columns "file.name,status,formula.priority_label,due,formula.days_until_due"
# Validate existing base file
python Tools/BaseBuilder.py validate \
--path "01 - Projects/projects.base"
# Preview (dry run)
python Tools/BaseBuilder.py preview \
--filter 'file.hasTag("book")' \
--view cards \
--columns "cover,file.name,author,status"
Options
| Flag |
Description |
--name |
View name |
--filter |
Filter expression (can use &&, ||) |
--view |
table, cards, list, map |
--columns |
Comma-separated property list |
--formula |
name=expression (repeatable) |
--group-by |
Property to group by |
--sort |
Sort direction: ASC, DESC |
--limit |
Max results |
--summary |
property=SummaryType (repeatable) |
--output |
Output file path |
Context Files
reference/bases.md - Complete .base schema, filters, formulas, functions
1---2name: 405-createbase-89b0595d3description: Workflow: Create Base4---5# Workflow: Create Base67Create and edit Obsidian `.base` database view files.89## Steps10111. **Define purpose** - What data to view? (tasks, projects, reading list, etc.)122. **Design filters** - Which notes to include (tags, folders, properties)133. **Design formulas** - Computed columns needed144. **Choose view type** - table, cards, list, or map155. **Generate .base YAML** via `Tools/BaseBuilder.py create`166. **Validate** the generated YAML177. **Place file** in appropriate folder1819## Tool Usage2021```bash22# Create a project tracker base23python Tools/BaseBuilder.py create \24 --name "Active Projects" \25 --filter 'file.inFolder("01 - Projects") && status != "completed"' \26 --view table \27 --columns "file.name,status,priority,due" \28 --output "01 - Projects/projects.base"2930# Create with formulas31python Tools/BaseBuilder.py create \32 --name "Task Dashboard" \33 --filter 'file.hasTag("task")' \34 --view table \35 --formula 'days_until_due=if(due, ((date(due) - today()) / 86400000).round(0), "")' \36 --formula 'priority_label=if(priority == 1, "High", if(priority == 2, "Medium", "Low"))' \37 --columns "file.name,status,formula.priority_label,due,formula.days_until_due"3839# Validate existing base file40python Tools/BaseBuilder.py validate \41 --path "01 - Projects/projects.base"4243# Preview (dry run)44python Tools/BaseBuilder.py preview \45 --filter 'file.hasTag("book")' \46 --view cards \47 --columns "cover,file.name,author,status"48```4950### Options5152| Flag | Description |53|------|-------------|54| `--name` | View name |55| `--filter` | Filter expression (can use `&&`, `\|\|`) |56| `--view` | `table`, `cards`, `list`, `map` |57| `--columns` | Comma-separated property list |58| `--formula` | `name=expression` (repeatable) |59| `--group-by` | Property to group by |60| `--sort` | Sort direction: `ASC`, `DESC` |61| `--limit` | Max results |62| `--summary` | `property=SummaryType` (repeatable) |63| `--output` | Output file path |6465## Context Files6667- `reference/bases.md` - Complete .base schema, filters, formulas, functions