Compare commits
5 Commits
807d75ac31
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| e058abfa96 | |||
| 6b8b8a8f51 | |||
| 7f1162c999 | |||
| afb00ba57a | |||
| 1ec217732f |
8
TODO.md
8
TODO.md
@@ -1,8 +1,6 @@
|
||||
- [ ] Obsidian properties
|
||||
- [ ] encoding in YAML (using Serde)
|
||||
- [ ] config for default properties
|
||||
- [x] config for default properties
|
||||
- [ ] formatting for properties such as dates
|
||||
- [x] update rendering to use comrak (it's been update)
|
||||
|
||||
|
||||
- [ ] figure out what frontmatter obsidian uses
|
||||
- [ ] generate title
|
||||
|
||||
|
||||
@@ -10,6 +10,9 @@ pub struct Args {
|
||||
/// show current config file
|
||||
#[arg(short = 'C', long)]
|
||||
pub current_config: bool,
|
||||
// generate config file (output to stdout)
|
||||
#[arg(long, default_value_t = true)]
|
||||
pub gen_config: bool,
|
||||
|
||||
/// view a specific date's file (YYYY-MM-DD)
|
||||
#[arg(short, long)]
|
||||
|
||||
@@ -4,6 +4,7 @@ extern crate serde_json;
|
||||
use figment::providers::{Env, Format, Json, Serialized};
|
||||
use figment::Figment;
|
||||
use serde::{Deserialize, Serialize};
|
||||
use std::collections::HashMap;
|
||||
use std::env::var;
|
||||
use std::fs::File;
|
||||
use std::io::Write;
|
||||
@@ -13,7 +14,9 @@ use std::path::PathBuf;
|
||||
pub struct Config {
|
||||
pub editor: String,
|
||||
pub sections: Vec<String>,
|
||||
pub scratch_section: String,
|
||||
pub notes_dir: String,
|
||||
pub frontmatter: HashMap<String, String>,
|
||||
}
|
||||
|
||||
impl Default for Config {
|
||||
@@ -21,7 +24,9 @@ impl Default for Config {
|
||||
Config {
|
||||
editor: "nano".into(),
|
||||
sections: vec!["Daily".into(), "Weekly".into(), "Monthly".into()],
|
||||
scratch_section: "".into(),
|
||||
notes_dir: "~/Notes".into(),
|
||||
frontmatter: HashMap::new(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
13
src/main.rs
13
src/main.rs
@@ -10,14 +10,14 @@ use clap::Parser;
|
||||
use cli::Args;
|
||||
use comrak::options::{Extension, Parse};
|
||||
use comrak::{format_commonmark, Arena, Options};
|
||||
use config::Config;
|
||||
use config::{Config, ConfigError};
|
||||
use log;
|
||||
use logging::get_logging_level;
|
||||
use resolve_path::PathResolveExt;
|
||||
use simple_logger::init_with_level;
|
||||
use std::fs;
|
||||
use std::path::Path;
|
||||
use std::process::Command;
|
||||
use std::process::{exit, Command};
|
||||
use todo::{File as TodoFile, TaskGroup};
|
||||
|
||||
use crate::file::{extract_sections, process_doc_tree};
|
||||
@@ -51,6 +51,15 @@ fn main() {
|
||||
}
|
||||
}
|
||||
|
||||
if args.gen_config {
|
||||
let buf = match serde_json::to_string_pretty(&Config::default()) {
|
||||
Ok(text) => text,
|
||||
_ => panic!("Could not generate config text"),
|
||||
};
|
||||
println!("{}", buf);
|
||||
return;
|
||||
}
|
||||
|
||||
// set witch config file to load
|
||||
let cfg_file = match args.config {
|
||||
Some(file) => file,
|
||||
|
||||
Reference in New Issue
Block a user