InkStone

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.

Editor note

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)
Current implementation

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