3 releases
new 0.1.2 | Feb 2, 2025 |
---|---|
0.1.1 | Feb 2, 2025 |
0.1.0 | Feb 1, 2025 |
#420 in Text processing
212 downloads per month
95KB
2.5K
SLoC
Krafna
Krafna is a terminal-based alternative to Obsidian's Dataview plugin, allowing you to query your Markdown files using standard SQL syntax.
Features
- Query Markdown files in a directory using SQL-like syntax
- Support for frontmatter data extraction
- Flexible output formats (TSV and JSON)
- Compatible with Neovim plugin Perec
Installation
Cargo (Recommended)
cargo install krafna
Homebrew
brew tap 7sedam7/krafna
brew install krafna
Usage
Basic Query
krafna "SELECT title, tags FROM FRONTMATTER_DATA('~/.notes')"
Find Files
krafna --find ~/.notes
Output as JSON
krafna "SELECT * FROM FRONTMATTER_DATA('~/.notes')" --json
Include Specific Fields
krafna "SELECT * FROM FRONTMATTER_DATA('~/.notes')" --include-fields title,tags
Syntax Differences from Dataview
- Uses standard SQL syntax
- Selection of "table" to query is done with
FROM FRONTMATTER_DATA("<path>")
function, that makes all md files within a row (their frontmatter data). Currently no other sources and no JOINs. I plan to add them later. - Not all Dataview features are implemented yet
Neovim Integration
Use with the Perec Neovim plugin for seamless integration.
Author
Dependencies
~8–18MB
~224K SLoC