├── .vscode
└── extensions.json
├── src
├── vite-env.d.ts
├── lib
│ ├── dataviewParser.ts
│ ├── Counter.svelte
│ ├── templateLoader.ts
│ ├── MapViewLazy.svelte
│ ├── MapView.svelte
│ ├── Toolbox.svelte
│ ├── About.svelte
│ ├── DATE_FUNCTIONS.md
│ ├── BoardView.svelte
│ ├── GalleryView.svelte
│ ├── mockDataGeneratorLazy.ts
│ ├── templateExamples.ts
│ ├── CalendarView.svelte
│ ├── mockDataGenerator.ts
│ ├── BasesUpdater.svelte
│ ├── basesUpdater.ts
│ └── DataviewConverter.svelte
├── dataview-parser
│ ├── readme.md
│ ├── index.ts
│ ├── source-types.ts
│ ├── field.ts
│ ├── normalize.ts
│ ├── query-types.ts
│ ├── query-parse.ts
│ └── expression-parse.ts
├── main.ts
├── App.svelte
├── app.css
└── assets
│ └── svelte.svg
├── tsconfig.json
├── svelte.config.js
├── .gitignore
├── index.html
├── public
└── vite.svg
├── tsconfig.app.json
├── tsconfig.node.json
├── package.json
├── vite.config.ts
├── README.md
└── docs
└── functions.md
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": ["svelte.svelte-vscode"]
3 | }
4 |
--------------------------------------------------------------------------------
/src/vite-env.d.ts:
--------------------------------------------------------------------------------
1 | ///
Loading map component...
31 |Error: {error}
35 |6 | Bases Toolbox is a comprehensive online preview tool designed to help you work with Obsidian's Bases feature more effectively. 7 | This project provides various utilities and preview capabilities to enhance your productivity when working with structured data in Obsidian. 8 |
9 | 10 |20 | For detailed information about Obsidian's Bases feature and how to use it effectively, 21 | please visit the official documentation: 22 |
23 | 24 | 29 | Obsidian Bases Documentation 30 | 31 | 32 |34 | This project is open source and available on GitHub. Contributions, bug reports, and feature requests are welcome! 35 |
36 | 37 |{getPropertyValue(file, descriptionField)}
63 | {/if} 64 | 78 |{getPropertyValue(file, descriptionField)}
53 | {/if} 54 | {#if file.tags && file.tags.length} 55 | 60 | {/if} 61 | {#if file.readingProgress !== undefined} 62 |Drag and drop a .base file or edit the YAML directly to update to the latest syntax
151 |Drop your .base file here
162 |{error}
174 | Updating syntax...
193 |{error}
198 | Enter old Bases YAML to see the updated syntax
236 |inFolder(file.file, "folder") → file.inFolder("folder")taggedWith(file.file, "tag") → file.hasTag("tag")linksTo(file.file, "file") → file.hasLink("file")and → &&or → ||not() → !()concat(a, b, c) → a + b + cjoin("", a, b) → a + bjoin(" ", a, b) → a + " " + barray.join("") → arrayarray.join(", ") → array.join(", ")len() → length()empty() → isEmpty()notEmpty() → !isEmpty()file.extension → file.extdateFormat() → format()average() → average()dateModify(date, "1 day") → date + "1 day"duration("1 day") → "1 day"dateDiff(a, b) → a - bASC/DESC → asc/descConvert Dataview TABLE queries to Obsidian Bases format
195 |{error}
265 | TABLE fields with aliasesFROM source selection (folders, tags)WHERE conditions (simple AND, OR)SORT clause with ASC/DESCLIMIT clauseGROUP BY clausedate + duration, date - duration)Complex filters can be grouped with nested AND/OR logic:
305 |filters: 306 | and: 307 | - condition1 308 | - or: 309 | - condition2 310 | - condition3 311 | - and: 312 | - condition4 313 | - condition5314 |
Bases supports two separate properties for arrangement:
319 |# Column order (display order in table) 320 | order: 321 | - column1 322 | - column2 323 | - column3 324 | 325 | # Data sorting (how data is ordered) 326 | sort: 327 | - column: priority 328 | direction: DESC 329 | - column: date 330 | direction: ASC331 | 332 |
Date expressions and calculations:
334 |date(today) - current datedate(tomorrow) - tomorrow's datedate(yesterday) - yesterday's datedate("2024-01-01") - specific datedur(7 days) - duration literaldate(today) + dur(7 days) - date arithmeticdate(today) - dur(1 week) - subtract durationdue - date(today) - date differencedate.year, date.month, date.day - date accessorscontains()not_contains()containsAny()containsAll()startswith()endswith()empty()notEmpty()if()inFolder()linksTo()not()tag()dateBefore()dateAfter()dateEquals()dateNotEquals()dateOnOrBefore()dateOnOrAfter()taggedWith()file.name - file namefile.path - full file pathfile.folder - containing folderfile.extension - file extensionfile.size - file sizefile.ctime - created timefile.mtime - modified time