kimun_notes/cli/
output.rs1use clap::ValueEnum;
3use kimun_core::nfs::NoteEntryData;
4use kimun_core::note::NoteContentData;
5
6#[derive(ValueEnum, Clone, Debug)]
7pub enum OutputFormat {
8 Text,
9 Json,
10 Paths,
11}
12
13pub fn format_note_entries_text_with_journal(
15 vault: &kimun_core::NoteVault,
16 entries: &[(NoteEntryData, NoteContentData)]
17) -> String {
18 let mut output = String::new();
19
20 for (entry_data, content_data) in entries {
21 let path = entry_data.path.to_string();
22 let title = format!("\"{}\"", content_data.title);
23 let size = entry_data.size;
24 let modified_secs = entry_data.modified_secs;
25
26 let mut line = format!("{}\t{}\t{}\t{}", path, title, size, modified_secs);
27
28 if let Some(journal_date) = vault.journal_date(&entry_data.path) {
30 line.push_str(&format!("\tjournal:{}", journal_date.format("%Y-%m-%d")));
31 }
32
33 output.push_str(&line);
34 output.push('\n');
35 }
36
37 output
38}