calternal-notes-core
Pure Markdown note and daily note logic for calternal
Pure Markdown note and Daily note logic.
This crate does not read files, the network, or the clock. Hosts pass time
values in and apply returned byte edits through calternal-fs.
Source: crates/calternal-notes-core/src/lib.rs
Modules
Section titled “Modules”| Module | Summary |
|---|---|
attachments |
Map each attachment purpose and file type to its default Home folder. |
canvas |
Lossless Canvas files and bounded scene validation (DESIGN §60, #976). |
canvas_export |
Bounded, lossless editable export metadata (DESIGN §60, #976). |
composer |
One-line composer parser. |
dayfile |
Lossless Daily note parser and builder for the Notes Plugin. |
frontmatter |
Lossless YAML-safe Note frontmatter access. |
identity |
Stable Note identity and cross-platform filename shaping. |
links |
Markdown reference scanning and byte-scoped link edits. |
markdown |
Block-level markdown (de)serialization for the editor boundary (DESIGN §2, §4.1). |
model |
Small value types shared by the composer NLP pipeline. |
nlp |
NLP composer — deterministic, Foundation-only logic ported from the Swift reference (ComposerNLPPipeline.run + JournalNLP.parse + ComposerModeClassifier). |
note_resolver |
Pure Note reference resolution over rows from the rebuildable Notes index. |
notes |
Pure Note creation helpers built on the shared identity and frontmatter rules. |
notes_index |
Pure projections for the rebuildable Notes Index. |
reminders |
Lossless calternal-reminders frontmatter projection. |
rename |
Pure title-retitle planning. |
tasks |
Shared Task models, parsers and writers for Notes (#430, DESIGN §40). |
templates |
Pure Note template rendering and frontmatter merging. |
Re-exports
Section titled “Re-exports”pub use attachments::attachment_folderpub use attachments::web_clip_attachment_pathpub use composer::ComposerEntrypub use composer::ComposerParsepub use composer::ComposerSplitpub use composer::NoteTitleTagspub use composer::note_title_tagspub use composer::parse_composerpub use composer::parse_composer_entrypub use composer::split_composer_inputpub use composer::suggest_log_linepub use dayfile::DayFilepub use dayfile::EventAttachmentpub use dayfile::JoinedLogLinepub use dayfile::LeadingLogTimePrefixpub use dayfile::LogEntrypub use dayfile::LogHeadingDiagnosticspub use dayfile::LogLineJoinpub use dayfile::LogPlacepub use dayfile::UnparsedLogLinepub use dayfile::append_event_attachmentpub use dayfile::append_log_block_idpub use dayfile::append_log_entriespub use dayfile::append_log_entrypub use dayfile::build_new_day_filepub use dayfile::bump_day_file_last_editedpub use dayfile::contains_saved_place_markerpub use dayfile::daily_note_pathpub use dayfile::delete_log_entrypub use dayfile::format_log_entrypub use dayfile::is_daily_note_pathpub use dayfile::joined_log_linespub use dayfile::log_heading_diagnosticspub use dayfile::migrate_inline_bodypub use dayfile::migrate_pathpub use dayfile::normalize_event_attachmentspub use dayfile::parse_day_filepub use dayfile::parse_leading_log_timepub use dayfile::parse_log_bulletpub use dayfile::remove_event_attachmentpub use dayfile::remove_log_entrypub use dayfile::replace_log_entrypub use dayfile::replace_log_entry_blockpub use dayfile::replace_unparsed_log_linepub use dayfile::restore_event_attachmentpub use dayfile::restore_event_attachment_with_stylepub use dayfile::rewrite_body_linkspub use dayfile::serialize_day_filepub use dayfile::serialize_day_file_preservingpub use dayfile::set_daily_note_navigationpub use dayfile::set_day_file_attachment_textpub use dayfile::set_event_attachment_textpub use dayfile::unparsed_log_linespub use frontmatter::NoteDateFieldpub use frontmatter::NoteDateValuespub use frontmatter::NoteFrontmatterPatchpub use frontmatter::NoteMetapub use frontmatter::add_missing_note_datespub use frontmatter::extract_note_date_valuespub use frontmatter::extract_note_metapub use frontmatter::extract_note_propertiespub use frontmatter::extract_note_titlepub use frontmatter::note_date_timestamppub use frontmatter::parse_note_date_valuepub use frontmatter::set_calternal_idpub use frontmatter::set_note_frontmatterpub use frontmatter::set_note_frontmatter_scalarpub use frontmatter::valid_user_property_keypub use identity::id_slicepub use identity::mint_calternal_idpub use identity::note_filenamepub use identity::slugifypub use identity::task_filenamepub use links::LinkKindpub use links::LinkReferencepub use links::NoteFeaturespub use links::NoteTargetpub use links::UnresolvedWikilinkpub use links::WikilinkConversionpub use links::WikilinkConversionPlanpub use links::convert_unique_wikilinkspub use links::extract_inline_tag_refspub use links::extract_note_featurespub use links::note_link_anchorspub use links::note_tags_unionpub use links::plan_wikilink_conversionpub use links::redact_note_referencespub use links::redact_shared_note_referencespub use links::relative_targetpub use links::resolve_note_relative_targetpub use links::resolve_relative_targetpub use links::rewrite_link_targetpub use links::rewrite_link_target_frompub use links::rewrite_link_targets_for_movepub use links::rewrite_link_targets_for_movespub use links::rewrite_links_for_movepub use links::rewrite_note_tag_prefixpub use links::wikilink_match_keyspub use links::wikilink_matches_notepub use markdown::Blockpub use markdown::BlockKindpub use markdown::canonicalize_markdownpub use markdown::parse_markdownpub use markdown::serialize_blockspub use model::DaySegmentpub use model::ParsedEntrypub use model::Timepub use nlp::CivilDatepub use nlp::ComposerModepub use nlp::ModeClassificationpub use nlp::classify_mode_detailedpub use nlp::format_date_tokenpub use nlp::format_time_tokenpub use nlp::normalize_tagpub use nlp::normalize_tag_valuepub use nlp::parse_entry_inputpub use nlp::split_cross_midnightpub use nlp::tag_name_partspub use nlp::valid_ymdpub use note_resolver::NoteRefpub use note_resolver::resolve_note_refpub use notes::StandaloneNotepub use notes::build_standalone_notepub use notes_index::IndexedLinkpub use notes_index::IndexedTagpub use notes_index::LinkIndexTargetpub use notes_index::LinkRowpub use notes_index::NoteIndexInputpub use notes_index::NoteIndexRowpub use notes_index::NoteLinkIndexRowpub use notes_index::calternal_event_linkpub use notes_index::escape_angle_link_targetpub use notes_index::is_path_keyed_note_idpub use notes_index::link_rows_from_indexpub use notes_index::link_rows_from_notepub use notes_index::note_date_from_pathpub use notes_index::note_link_index_rows_from_notepub use notes_index::note_row_from_indexpub use notes_index::path_keyed_note_idpub use notes_index::resolve_link_targetpub use notes_index::slug_from_pathpub use reminders::BlockReminderInspectionpub use reminders::BlockReminderMappub use reminders::BlockReminderStatuspub use reminders::REMINDERS_FRONTMATTER_KEYpub use reminders::extract_block_reminderspub use reminders::inspect_block_reminderspub use reminders::set_block_reminderspub use reminders::set_block_reminders_checkedpub use reminders::valid_block_reminder_idpub use rename::ByteEditpub use rename::NoteInputpub use rename::ReferrerEditspub use rename::RenamePlanpub use rename::plan_movepub use rename::plan_renamepub use rename::rewrite_referrerpub use templates::NoteTemplateOutputpub use templates::TemplateErrorpub use templates::TemplateVariablespub use templates::build_note_from_templatepub use templates::render_template
Functions
Section titled “Functions”valid_note_text
Section titled “valid_note_text”pub fn valid_note_text(text: &str) -> boolReject invisible direction controls in user-authored labels before they become frontmatter, headings, or Log entry text.
Source: crates/calternal-notes-core/src/lib.rs:88
valid_note_title
Section titled “valid_note_title”pub fn valid_note_title(title: &str) -> boolNo doc comment.
Source: crates/calternal-notes-core/src/lib.rs:94
valid_tag_name
Section titled “valid_tag_name”pub fn valid_tag_name(tag: &str) -> boolReturn whether a Tag name follows the shared Notes and Files grammar.
Measure its length after NFC normalization so the server and calternald
accept the same canonically equivalent Finder labels (#473).