Skip to main content

kimun_notes/cli/
output.rs

1// tui/src/cli/output.rs
2use 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
13/// Format note entries as text with journal date detection
14pub 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        // Add journal date if this is a journal note
29        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}