notesy::yaml
Reading and writing YAML, and a note's front matter. Needs nothing.
rustuse notesy::{editor, log, yaml};
pub fn ready() {
let config = yaml::parse("title: Launch plan\ntags: [launch, q3]\nowner:\n name: Ana\n")?;
log::info(`${config.title}: ${config.tags.len()} tags`);
log::info(yaml::text(#{ due: "2026-09-30", done: false })?);
}
| Function | What it does |
|---|---|
yaml::parse(text) |
Ok(value): its first document, as objects, lists, text, numbers, true and false, with null (and ~) as None. Err(why) for text that isn't YAML. |
yaml::text(value) |
Ok(text): the value written as YAML (without the --- a document can start with). |
yaml::front_matter(text) |
Ok(#{ properties, body }): a note's front matter (the YAML between the --- lines at its very top) read as an object, empty when it has none, and the text after it. Err(why) for front matter that isn't key: value YAML. |
A plain scalar reads as what it looks like: 3 is a number, true is
true, 2026-09-30 is text. A quoted one is always text: "42". Anchors
and aliases (&base, *base) work; an alias counts all it stands for,
and a document holds at most 100,000 values and nests at most 64 deep, so
a few lines can't unfold into more. At most 1 MB of text.
#Front matter, read for you
A note notesy hands a script is a Note, its front
matter read for it: note.properties(), note.property("due"), and
note.body() for the text after it. notes::properties(path)
reads any note's without the rest.
Every page
- Overview
- plugin.toml: Every field of plugin.toml
- Permissions: What a plugin can ask for, when notesy asks, and what changes it
- Scripts: How a script runs: its lifecycle, events, limits and errors
- Packing and installing: Making, checking, signing, packing and installing
- notesy::log: Lines for its log on the Plugins page
- notesy::events: Hearing what happens, and every event
- notesy::commands: Adding commands, and running notesy's
- notesy::store: Keeping its own data
- notesy::settings: Reading its settings
- notesy::secrets: Keys and tokens, in the system keychain
- notesy::notes: Reading and changing the vault's notes
- notesy::editor: The note in front
- notesy::files: A folder of its own
- notesy::links: Opening pages in the browser
- notesy::clipboard: Copying and pasting
- notesy::view: What panels, tabs and sections show
- notesy::panels and notesy::views: Adding side panels and tabs
- notesy::sections: Sidebar sections
- notesy::menus: Items in notesy's right-click menus
- notesy::status: Status bar items
- notesy::notices: Notices
- notesy::dialogs: Asking in a dialog, notesy's kinds or its own
- notesy::cards: Its part of the tree's hover cards
- notesy::boards: Boards' cards and arrows, and kinds of card of its own
- notesy::blocks: Drawing its fenced blocks
- notesy::icons: Drawing its own icons
- notesy::net: Requests to the sites it names
- notesy::accounts: Signing in to a service
- notesy::json: Reading and writing JSON
- notesy::toml: Reading and writing TOML
- notesy::yaml: Reading and writing YAML, and a note's front matter
- notesy::time: Now, written in the user's time zone, dates read, how long ago
- notesy::math: Trigonometry and the like, for drawing
- Names: Icon, Color, Tone, Side, Method, Command, Menu, Sidebar, Event: Notesy's names as enums
- notesy::preview: Its own screens for notesy preview
- notesy::perf: Timing its own work
- notesy::tex: Math macros for every note's formulas