pub struct Context {
pub destination: PathBuf,
pub frontmatter: Frontmatter,
/* private fields */
}Expand description
Context holds metadata about a note which is being parsed.
This is used internally to keep track of nesting and help with constructing proper references to other notes.
It is also passed to postprocessors to provide contextual information and allow modification of a note’s frontmatter.
Fields§
§destination: PathBufThe path where this note will be written to when exported.
Changing this path will result in the note being written to that new path instead, but beware: links will not be updated automatically. If this is changed by a postprocessor, it’s up to that postprocessor to rewrite any existing links to this new path.
frontmatter: FrontmatterThe Frontmatter for this note. Frontmatter may be modified in-place (see serde_yaml::Mapping for available methods) or replaced entirely.
§Example
Insert foo: bar into a note’s frontmatter:
use obsidian_export::serde_yaml::Value;
let key = Value::String("foo".to_string());
context.frontmatter.insert(
key.clone(),
Value::String("bar".to_string()),
);Implementations§
Source§impl Context
impl Context
Sourcepub fn from_parent(context: &Context, child: &Path) -> Context
pub fn from_parent(context: &Context, child: &Path) -> Context
Create a new Context which inherits from a parent Context.
Sourcepub fn current_file(&self) -> &PathBuf
pub fn current_file(&self) -> &PathBuf
Return the path of the file currently being parsed.
Sourcepub fn root_file(&self) -> &PathBuf
pub fn root_file(&self) -> &PathBuf
Return the path of the root file.
Typically this will yield the same element as current_file, but when a note is embedded
within another note, this will return the outer-most note.
Sourcepub fn note_depth(&self) -> usize
pub fn note_depth(&self) -> usize
Return the note depth (nesting level) for this context.