6 releases
new 0.4.2 | May 2, 2025 |
---|---|
0.4.1 | Apr 20, 2025 |
0.2.2 | Feb 27, 2025 |
0.1.0 | Feb 1, 2025 |
#1011 in Text processing
224 downloads per month
Used in 2 crates
43KB
686 lines
Basalt Core: basalt-core
This crate provides the core functionality for Basalt TUI application and interoperability layer to Obsidian vaults and notes.
Obsidian
Obsidian module provides functionality operating with Obsidian. It lets you read and manipulate Obsidian's configuration, vaults, and notes.
Currently supports reading vaults, notes, and writing to note path.
Example
use basalt_core::obsidian::{ObsidianConfig, Error, Vault};
let config = ObsidianConfig::from([
("Obsidian", Vault::default()),
("My Vault", Vault::default()),
]);
_ = config.get_vault_by_name("Obsidian");
Markdown
Markdown module provides a markdown parser that produces a custom AST using the
pulldown_cmark::Parser
. The "AST" acts as an intermediate layer. This enables
segregation of the parsing logic into it's own module under basalt-core lib.
Example
use basalt_core::markdown::{from_str, Node, HeadingLevel, Text};
let markdown = "# My Heading\n\nSome text.";
let nodes = from_str(markdown);
assert_eq!(nodes, vec![
Node::Heading {
level: HeadingLevel::H1,
text: Text::from("My Heading"),
},
Node::Paragraph {
text: Text::from("Some text."),
},
])
Dependencies
~3–14MB
~117K SLoC