Krafna

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)
Homebrew
Usage
Basic Query
Find Files
Output as JSON
Include Specific Fields
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.
Roadmap
(not in priority order)
- add . support for accesing sub-fields (file.name)
- * migrate file_name, etc under file (name, path, created, accessed, modified)
- add default variables (today)
- * change it so that it does not need to be on every row (can have a general_values hash that can be passed around, and value getters would first check there and then from the source)
- TODOs
- Add tests for execution
- add suport for functions in SELECT
- add functions
- * think about which functions to add
- * DATE("some-date", ) -> new type date
- * DATEADD()
- implement val -> val operators
- UPDATE
- DELETE
- add AS to SELECT
- add querying of TODOs (think of a format similar to todoist)
- * maybe abstract to query by regex
- add querying of links between notes
- think about which other sources would be cool to add
- add group by