Materialize a single vault entry to disk. Reads the entry from redb and writes it as a markdown file with YAML frontmatter to `.vault/ `. # Errors Returns an error if: - The entry doesn't exist in redb - The file can't be written (permissions, disk full, etc.)
(&self, path: &str)
| 359 | /// - The entry doesn't exist in redb |
| 360 | /// - The file can't be written (permissions, disk full, etc.) |
| 361 | pub fn vault_materialize(&self, path: &str) -> Result<(), RepositoryError> { |
| 362 | let entry = self |
| 363 | .vault_retrieve(path)? |
| 364 | .ok_or_else(|| RepositoryError::FileNotFound { |
| 365 | path: PathBuf::from(path), |
| 366 | })?; |
| 367 | |
| 368 | let disk_path = self.vault_dir().join(path); |
| 369 | |
| 370 | // Ensure parent directories exist |
| 371 | if let Some(parent) = disk_path.parent() { |
| 372 | std::fs::create_dir_all(parent)?; |
| 373 | } |
| 374 | |
| 375 | let markdown = render_entry_to_markdown(&entry); |
| 376 | std::fs::write(&disk_path, markdown)?; |
| 377 | |
| 378 | Ok(()) |
| 379 | } |
| 380 | |
| 381 | /// Materialize all vault entries to disk. |
| 382 | /// |