Dataview
Contents
InkStone implements a server-side Dataview engine that executes TABLE and LIST queries from fenced ```dataview ``` blocks. Queries run at vault-load time — no client-side plugin needed.
This feature mirrors the Obsidian Dataview plugin. Writing in Obsidian means you can preview queries live before publishing.
TABLE query
```dataview
TABLE date, summary
FROM #documentation
SORT date DESC
LIMIT 3
```
| File | date | summary |
|---|---|---|
| Obsidian Bases | 2026-04-30 | Publish .base database views as filtered, sorted HTML tables — filename markers, filter syntax, and available fields. |
| Media Embeds | 2026-04-24 | Images, video, and audio embeds — lightbox, sliders, captions, inline illustrations, and width control. |
| Themes | 2026-04-24 | Dark, light, and system mode toggle, CSS theme architecture, and how to select or create a theme. |
Each row in the result corresponds to a vault note. The first column is always the note title (as a link) unless WITHOUT ID is used.
Column aliases
```dataview
TABLE date as "Published", summary as "Description"
FROM #inkstone
SORT date DESC
LIMIT 3
```
| File | "Published" | "Description" |
|---|---|---|
| Obsidian Bases | 2026-04-30 | Publish .base database views as filtered, sorted HTML tables — filename markers, filter syntax, and available fields. |
| Media Embeds | 2026-04-24 | Images, video, and audio embeds — lightbox, sliders, captions, inline illustrations, and width control. |
| Themes | 2026-04-24 | Dark, light, and system mode toggle, CSS theme architecture, and how to select or create a theme. |
The as "Label" syntax renames a column header.
WITHOUT ID
```dataview
TABLE WITHOUT ID title, date
FROM #documentation
SORT date ASC
LIMIT 3
```
| title | date |
|---|---|
| Deployment | 2026-04-15 |
| Features | 2026-04-15 |
| Getting Started | 2026-04-15 |
Suppresses the default "File" (title/link) first column.
LIST query
```dataview
LIST
FROM #inkstone
SORT date DESC
LIMIT 5
```
Renders as a <ul> of linked note titles.
LIST with extra field
```dataview
LIST summary
FROM #documentation
SORT date DESC
LIMIT 3
```
- Obsidian Bases — Publish .base database views as filtered, sorted HTML tables — filename markers, filter syntax, and available fields.
- Media Embeds — Images, video, and audio embeds — lightbox, sliders, captions, inline illustrations, and width control.
- Themes — Dark, light, and system mode toggle, CSS theme architecture, and how to select or create a theme.
Appends — summary after each link.
FROM clause
Filter the source notes:
| FROM syntax | What it selects |
|---|---|
FROM #tag |
Notes with that tag |
FROM /folder |
Notes in that folder (not yet folder-based — use tag filtering) |
FROM currently supports tag-based filtering (#tag). Folder-based filtering is not yet implemented.
WHERE clause
Filter by any frontmatter field or computed property:
```dataview
TABLE date
FROM #inkstone
WHERE contains(tags, "documentation")
SORT date DESC
LIMIT 3
```
| File | date |
|---|---|
| Obsidian Bases | 2026-04-30 |
| Media Embeds | 2026-04-24 |
| Themes | 2026-04-24 |
Supported operators
| Operator | Syntax | Example |
|---|---|---|
| AND | & |
featured = true & date > "2026-01-01" |
| OR | \| |
featured = true \| priority = 0 |
| contains | contains(field, "value") |
contains(tags, "inkstone") |
| not contains | !contains(field, "value") |
!contains(tags, "draft") |
SORT clause
Multiple sort keys (comma-separated, applied right-to-left):
```dataview
TABLE date
FROM #documentation
SORT date DESC
LIMIT 3
```
| File | date |
|---|---|
| Obsidian Bases | 2026-04-30 |
| Media Embeds | 2026-04-24 |
| Themes | 2026-04-24 |
LIMIT clause
```dataview
LIST
FROM #inkstone
SORT date DESC
LIMIT 5
```
Caps the result at N rows after sorting. Always add LIMIT when the result set could be large.
GROUP BY
Flattened groups (sub-table per group)
```dataview
TABLE date, summary
FROM #inkstone
GROUP BY file.folder
```
inkstone
| File | date | summary |
|---|---|---|
| InkStone | 2026-04-15 | A lightweight Python/Flask engine that turns a Markdown vault into a website — no export step, no build pipeline, no CMS. |
| Deployment | 2026-04-15 | |
| Features | 2026-04-15 | |
| Getting Started | 2026-04-15 | |
| Architecture | 2026-04-15 |
inkstone/docs
| File | date | summary |
|---|---|---|
| Callouts | 2026-04-16 | Obsidian callout boxes — all types, collapsible variants, and pinned-open behavior. |
| Code Blocks | 2026-04-16 | Fenced code blocks with syntax highlighting, language labels, and a copy-to-clipboard button. |
| Media Embeds | 2026-04-24 | Images, video, and audio embeds — lightbox, sliders, captions, inline illustrations, and width control. |
| Math and Diagrams | 2026-04-16 | LaTeX math via KaTeX and Mermaid diagrams — both rendered in the browser. |
| RSS and Sitemap | 2026-04-16 | Site-wide and per-section RSS feeds, and the auto-generated sitemap. |
| Themes | 2026-04-24 | Dark, light, and system mode toggle, CSS theme architecture, and how to select or create a theme. |
| SEO and Metadata | 2026-04-16 | OpenGraph, Twitter Card, JSON-LD structured data, banner images, and author metadata. |
| Obsidian Bases | 2026-04-30 | Publish .base database views as filtered, sorted HTML tables — filename markers, filter syntax, and available fields. |
| Note Templates & Authoring Workflow | 2026-04-23 | How to create new notes with correct InkStone frontmatter — using QuickAdd or Obsidian's core Templates plugin. |
| Publishing and Privacy | 2026-04-16 | How website:true publishes a note, what private notes are, and the private page placeholder. |
| Obsidian Syntax | 2026-04-16 | Checkboxes, highlights, footnotes, and block IDs — Obsidian inline syntax rendered server-side. |
| Attachments | 2026-04-16 | Media file resolution order — section _attachments/, vault root, and ATTACHMENTS_PATH fallback. |
| Comments | 2026-04-20 | Add a comment section to posts using Giscus — GitHub Discussions as a backend. |
| Note Transclusion | 2026-04-16 | Embed another note's content inline with ![[Note Title]] or transclude a specific heading. |
| Hot Reload | 2026-04-16 | The server detects vault file changes and reloads automatically — no restart needed. |
| Frontmatter Reference | 2026-04-16 | Complete reference for all InkStone frontmatter fields. |
| Pagination | 2026-04-16 | How listing pages paginate regular posts — page size, URL parameter, and featured post behavior. |
| Dataview | 2026-04-16 | Server-side Dataview queries — TABLE, LIST, FROM, WHERE, SORT, GROUP BY, LIMIT, and inline expressions. |
| Branding | 2026-04-17 | Favicon override, site icon beside the title, and per-section header title — all controlled from frontmatter. |
| Search | 2026-04-16 | Full-text search across all published posts, with optional tag filter. |
| Navigation | 2026-04-16 | Auto-generated nav, menu_order pinning, breadcrumbs, prev/next post links, and related posts. |
| Social Links | 2026-04-20 | Add social profile links to the footer — icon + handle, auto-detected from URL. |
| Documentation | 2026-04-16 | Complete InkStone reference — every feature documented in its own note. |
| Multilingual & UI Translations | 2026-04-23 | Publish content in multiple languages and translate all fixed UI text — no template editing required. |
| Canvas | 2026-04-24 | Publish Obsidian Canvas files as read-only visual boards — nodes, edges, arrows, file previews, and media embeds rendered from the .canvas JSON. |
| Wiki-Links | 2026-04-16 | How to link between notes using Obsidian wiki-link syntax — all forms supported. |
| Tags | 2026-04-16 | Frontmatter tags and inline #hashtags — archive pages, tag index, and Dataview filtering. |
| Post Types | 2026-04-16 | The four note types: homepage, listing, book, and regular posts — what each does and when to use it. |
Renders a heading for each group, then a sub-table of its rows.
Collapsed groups using rows.field
```dataview
TABLE rows.file.link as "Page", rows.date as "Date"
FROM #inkstone
GROUP BY file.folder
```
| File | "Page" | "Date" |
|---|---|---|
| InkStone Deployment Features Getting Started Architecture |
2026-04-15 2026-04-15 2026-04-15 2026-04-15 2026-04-15 |
|
| Callouts Code Blocks Media Embeds Math and Diagrams RSS and Sitemap Themes SEO and Metadata Obsidian Bases Note Templates & Authoring Workflow Publishing and Privacy Obsidian Syntax Attachments Comments Note Transclusion Hot Reload Frontmatter Reference Pagination Dataview Branding Search Navigation Social Links Documentation Multilingual & UI Translations Canvas Wiki-Links Tags Post Types |
2026-04-16 2026-04-16 2026-04-24 2026-04-16 2026-04-16 2026-04-24 2026-04-16 2026-04-30 2026-04-23 2026-04-16 2026-04-16 2026-04-16 2026-04-20 2026-04-16 2026-04-16 2026-04-16 2026-04-16 2026-04-16 2026-04-17 2026-04-16 2026-04-16 2026-04-20 2026-04-16 2026-04-23 2026-04-24 2026-04-16 2026-04-16 2026-04-16 |
When column expressions start with rows., InkStone renders one row per group, collecting values from all rows in that group.
Inline queries
Use `= expr` anywhere in note body to evaluate a field against the current note's frontmatter:
Published: `= date`
Author: `= author`
Tags: `= join(tags, ", ")`
this.field is an alias for the field name:
`= this.title`
Available fields
Every note exposes these in queries:
| Field | Value |
|---|---|
title |
Note title |
date |
Publication date |
updated |
Last-modified date |
summary |
Summary text |
tags |
List of tags |
author |
Author string or list |
section |
Vault section (e.g. blog) |
featured |
Boolean |
priority |
Number |
file.name |
Note title |
file.link |
HTML link to the note |
file.folder |
Folder path relative to vault root |
| Any frontmatter field | Accessible by its YAML key |
Expression functions
| Function | Usage | Result |
|---|---|---|
join(field, "sep") |
join(tags, ", ") |
Joins a list with separator |
join(list(a, b), "sep") |
join(list(title, date), " · ") |
Joins explicit values |
link(target, text) |
link(file.link, title) |
Constructs an anchor tag |
Private notes in queries
All vault notes — including those without website: true — are available to Dataview queries. This lets you use private notes as metadata sources or drafts while keeping them off the public site.
See also
- Tags — tag-based filtering in FROM/WHERE
- Publishing and Privacy — private notes as query sources
- Frontmatter Reference — all available frontmatter fields
InkStone