Anton Bakulin

Dataview

Contents

OnyxFolio 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](https://blacksmithgu.github.io/obsidian-dataview/). Writing in Obsidian means you can preview queries live before publishing.

TABLE query

```dataview
TABLE date, summary
FROM #documentation
SORT date DESC
LIMIT 3
```
date summary
2026-04-16 Obsidian callout boxes — all types, collapsible variants, and pinned-open behavior.
2026-04-16 Fenced code blocks with syntax highlighting, language labels, and a copy-to-clipboard button.
2026-04-16 Images, video, and audio embeds — lightbox, sliders, captions, and width control.

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 #onyxfolio
SORT date DESC
LIMIT 3
```
"Published" "Description"
2026-04-16 Obsidian callout boxes — all types, collapsible variants, and pinned-open behavior.
2026-04-16 Fenced code blocks with syntax highlighting, language labels, and a copy-to-clipboard button.
2026-04-16 Images, video, and audio embeds — lightbox, sliders, captions, and width control.

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 #onyxfolio
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
```
  • Callouts — Obsidian callout boxes — all types, collapsible variants, and pinned-open behavior.
  • Code Blocks — Fenced code blocks with syntax highlighting, language labels, and a copy-to-clipboard button.
  • Media Embeds — Images, video, and audio embeds — lightbox, sliders, captions, and width control.

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 #onyxfolio
WHERE contains(tags, "documentation")
SORT date DESC
LIMIT 3
```
date
2026-04-16
2026-04-16
2026-04-16

Supported operators

Operator Syntax Example
AND & featured = true & date > "2026-01-01"
OR \| featured = true \| priority = 0
contains contains(field, "value") contains(tags, "onyxfolio")
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
```
date
2026-04-16
2026-04-16
2026-04-16

LIMIT clause

```dataview
LIST
FROM #onyxfolio
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 #onyxfolio
GROUP BY file.folder
```

onyxfolio

date summary
2026-04-15
2026-04-15 A lightweight Python/Flask engine that turns a Markdown vault into a website — no export step, no build pipeline, no CMS.
2026-04-15
2026-04-15
2026-04-15

onyxfolio/docs

date summary
2026-04-16 Obsidian callout boxes — all types, collapsible variants, and pinned-open behavior.
2026-04-16 Fenced code blocks with syntax highlighting, language labels, and a copy-to-clipboard button.
2026-04-16 Images, video, and audio embeds — lightbox, sliders, captions, and width control.
2026-04-16 LaTeX math via KaTeX and Mermaid diagrams — both rendered in the browser.
2026-04-16 Site-wide and per-section RSS feeds, and the auto-generated sitemap.
2026-04-16 Dark and light mode toggle, CSS theme architecture, and how to select or create a theme.
2026-04-16 OpenGraph, Twitter Card, JSON-LD structured data, banner images, and author metadata.
2026-04-16 How website:true publishes a note, what private notes are, and the private page placeholder.
2026-04-16 Checkboxes, highlights, footnotes, and block IDs — Obsidian inline syntax rendered server-side.
2026-04-16 Media file resolution order — section _attachments/, vault root, and ATTACHMENTS_PATH fallback.
2026-04-16 Embed another note's content inline with ![[Note Title]] or transclude a specific heading.
2026-04-16 The server detects vault file changes and reloads automatically — no restart needed.
2026-04-16 Complete reference for all OnyxFolio frontmatter fields.
2026-04-16 How listing pages paginate regular posts — page size, URL parameter, and featured post behavior.
2026-04-16 Server-side Dataview queries — TABLE, LIST, FROM, WHERE, SORT, GROUP BY, LIMIT, and inline expressions.
2026-04-16 Full-text search across all published posts, with optional tag filter.
2026-04-16 Auto-generated nav, menu_order pinning, breadcrumbs, prev/next post links, and related posts.
2026-04-16 Complete OnyxFolio reference — every feature documented in its own note.
2026-04-16 How to link between notes using Obsidian wiki-link syntax — all forms supported.
2026-04-16 Frontmatter tags and inline #hashtags — archive pages, tag index, and Dataview filtering.
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 #onyxfolio
GROUP BY file.folder
```
"Page" "Date"
Deployment
OnyxFolio
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
Publishing and Privacy
Obsidian Syntax
Attachments
Note Transclusion
Hot Reload
Frontmatter Reference
Pagination
Dataview
Search
Navigation
Documentation
Wiki-Links
Tags
Post Types
2026-04-16
2026-04-16
2026-04-16
2026-04-16
2026-04-16
2026-04-16
2026-04-16
2026-04-16
2026-04-16
2026-04-16
2026-04-16
2026-04-16
2026-04-16
2026-04-16
2026-04-16
2026-04-16
2026-04-16
2026-04-16
2026-04-16
2026-04-16
2026-04-16

When column expressions start with rows., OnyxFolio 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: <span class="dv-inline">2026-04-16</span>
Author: <span class="dv-inline"></span>
Tags: <span class="dv-inline">onyxfolio, documentation</span>

this.field is an alias for the field name:

<span class="dv-inline">Dataview</span>

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