From 372bc6b59c9e29fda73fcafb29ab47adec7a560d Mon Sep 17 00:00:00 2001 From: Andrei Stoica Date: Tue, 14 Apr 2026 22:05:31 -0400 Subject: [PATCH] wip --- Cargo.toml | 2 +- src/file/mod.rs | 25 +++++++++++++------------ src/main.rs | 13 +++++++------ 3 files changed, 21 insertions(+), 19 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 56d4eb2..4420d8a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,7 @@ edition = "2021" [dependencies] chrono = "0.4.26" clap = { version = "4.5.1", features = ["derive"] } -comrak = "0.24.1" +comrak = "~0.52.0" figment = { version = "0.10.10", features = ["env", "serde_json", "json"] } regex = "1.8.4" serde = { version = "1.0.164", features = ["serde_derive"] } diff --git a/src/file/mod.rs b/src/file/mod.rs index b32228a..79cdb50 100644 --- a/src/file/mod.rs +++ b/src/file/mod.rs @@ -3,9 +3,8 @@ use crate::NaiveDate; use crate::TaskGroup; use chrono::Datelike; use comrak::nodes::{Ast, AstNode, LineColumn, NodeHeading, NodeValue}; -use comrak::{ - format_commonmark, parse_document, Arena, ComrakOptions, ExtensionOptions, ParseOptions, -}; +use comrak::options::{Extension, Parse}; +use comrak::{parse_document, Arena, Options}; use indexmap::IndexMap; use regex::Regex; use std::collections::HashMap; @@ -65,16 +64,16 @@ pub fn load_file(file: &TodoFile) -> String { /// Parse contents of markdown file with Comrak ( relaxed tasklist matching is enabled) pub fn parse_todo_file<'a>(contents: &String, arena: &'a Arena>) -> &'a AstNode<'a> { - let mut extension_options = ExtensionOptions::default(); + let mut extension_options = Extension::default(); extension_options.tasklist = true; - let mut parse_options = ParseOptions::default(); + let mut parse_options = Parse::default(); parse_options.relaxed_tasklist_matching = true; - let options = &ComrakOptions { + let options = &Options { extension: extension_options, parse: parse_options, - ..ComrakOptions::default() + ..Options::default() }; parse_document(arena, contents, options) } @@ -290,7 +289,9 @@ pub fn process_doc_tree<'a>(root: &'a AstNode<'a>, new_date: &str, sections: &Ve #[cfg(test)] mod test { use super::*; - use crate::todo::{Status, Task}; + use crate::todo::Status; + use crate::todo::Task; + use comrak::format_commonmark; use std::io::BufWriter; #[test] @@ -487,16 +488,16 @@ mod test { "Last".to_string(), ]; let arena = Arena::new(); - let mut extension_options = ExtensionOptions::default(); + let mut extension_options = Extension::default(); extension_options.tasklist = true; - let mut parse_options = ParseOptions::default(); + let mut parse_options = Parse::default(); parse_options.relaxed_tasklist_matching = true; - let options = &ComrakOptions { + let options = &Options { extension: extension_options, parse: parse_options, - ..ComrakOptions::default() + ..Options::default() }; let ast = parse_document(&arena, md, options); diff --git a/src/main.rs b/src/main.rs index ef48118..d533f3b 100644 --- a/src/main.rs +++ b/src/main.rs @@ -8,7 +8,8 @@ use chrono::naive::NaiveDate; use chrono::{Datelike, Local, TimeDelta}; use clap::Parser; use cli::Args; -use comrak::{format_commonmark, Arena, ComrakOptions, ExtensionOptions, ParseOptions}; +use comrak::options::{Extension, Parse}; +use comrak::{format_commonmark, Arena, Options}; use config::Config; use log; use logging::get_logging_level; @@ -20,7 +21,7 @@ use std::path::Path; use std::process::Command; use todo::{File as TodoFile, TaskGroup}; -use crate::file::{create_new_doc, extract_sections, process_doc_tree}; +use crate::file::{extract_sections, process_doc_tree}; fn main() { // setup @@ -124,16 +125,16 @@ fn main() { let current_file = match latest_file { // copy old file if the user specifies today's notes but it does not exist Some(todo_file) if todo_file.date < today && args.previous == 0 => { - let mut extension_options = ExtensionOptions::default(); + let mut extension_options = Extension::default(); extension_options.tasklist = true; - let mut parse_options = ParseOptions::default(); + let mut parse_options = Parse::default(); parse_options.relaxed_tasklist_matching = true; - let options = &ComrakOptions { + let options = &Options { extension: extension_options, parse: parse_options, - ..ComrakOptions::default() + ..Options::default() }; let sections = &cfg.sections; log::info!("looking for sections: {:?}", sections);