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)
| 462 | /// - The entry doesn't exist in redb |
| 463 | /// - The file can't be written (permissions, disk full, etc.) |
| 464 | pub fn vault_materialize(&self, path: &str) -> Result<(), RepositoryError> { |
| 465 | let entry = self |
| 466 | .vault_retrieve(path)? |
| 467 | .ok_or_else(|| RepositoryError::FileNotFound { |
| 468 | path: PathBuf::from(path), |
| 469 | })?; |
| 470 | |
| 471 | let disk_path = self.vault_dir().join(path); |
| 472 | |
| 473 | // Ensure parent directories exist |
| 474 | if let Some(parent) = disk_path.parent() { |
| 475 | std::fs::create_dir_all(parent)?; |
| 476 | } |
| 477 | |
| 478 | let markdown = render_entry_to_markdown(&entry); |
| 479 | std::fs::write(&disk_path, markdown)?; |
| 480 | |
| 481 | Ok(()) |
| 482 | } |
| 483 | |
| 484 | /// Materialize all vault entries to disk. |
| 485 | /// |