wip
Some checks failed
Test / test (release) (push) Failing after 10m14s

This commit is contained in:
2026-04-14 22:05:31 -04:00
parent 181be6c4e3
commit 372bc6b59c
3 changed files with 21 additions and 19 deletions

View File

@@ -8,7 +8,7 @@ edition = "2021"
[dependencies] [dependencies]
chrono = "0.4.26" chrono = "0.4.26"
clap = { version = "4.5.1", features = ["derive"] } 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"] } figment = { version = "0.10.10", features = ["env", "serde_json", "json"] }
regex = "1.8.4" regex = "1.8.4"
serde = { version = "1.0.164", features = ["serde_derive"] } serde = { version = "1.0.164", features = ["serde_derive"] }

View File

@@ -3,9 +3,8 @@ use crate::NaiveDate;
use crate::TaskGroup; use crate::TaskGroup;
use chrono::Datelike; use chrono::Datelike;
use comrak::nodes::{Ast, AstNode, LineColumn, NodeHeading, NodeValue}; use comrak::nodes::{Ast, AstNode, LineColumn, NodeHeading, NodeValue};
use comrak::{ use comrak::options::{Extension, Parse};
format_commonmark, parse_document, Arena, ComrakOptions, ExtensionOptions, ParseOptions, use comrak::{parse_document, Arena, Options};
};
use indexmap::IndexMap; use indexmap::IndexMap;
use regex::Regex; use regex::Regex;
use std::collections::HashMap; 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) /// Parse contents of markdown file with Comrak ( relaxed tasklist matching is enabled)
pub fn parse_todo_file<'a>(contents: &String, arena: &'a Arena<AstNode<'a>>) -> &'a AstNode<'a> { pub fn parse_todo_file<'a>(contents: &String, arena: &'a Arena<AstNode<'a>>) -> &'a AstNode<'a> {
let mut extension_options = ExtensionOptions::default(); let mut extension_options = Extension::default();
extension_options.tasklist = true; extension_options.tasklist = true;
let mut parse_options = ParseOptions::default(); let mut parse_options = Parse::default();
parse_options.relaxed_tasklist_matching = true; parse_options.relaxed_tasklist_matching = true;
let options = &ComrakOptions { let options = &Options {
extension: extension_options, extension: extension_options,
parse: parse_options, parse: parse_options,
..ComrakOptions::default() ..Options::default()
}; };
parse_document(arena, contents, options) 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)] #[cfg(test)]
mod test { mod test {
use super::*; use super::*;
use crate::todo::{Status, Task}; use crate::todo::Status;
use crate::todo::Task;
use comrak::format_commonmark;
use std::io::BufWriter; use std::io::BufWriter;
#[test] #[test]
@@ -487,16 +488,16 @@ mod test {
"Last".to_string(), "Last".to_string(),
]; ];
let arena = Arena::new(); let arena = Arena::new();
let mut extension_options = ExtensionOptions::default(); let mut extension_options = Extension::default();
extension_options.tasklist = true; extension_options.tasklist = true;
let mut parse_options = ParseOptions::default(); let mut parse_options = Parse::default();
parse_options.relaxed_tasklist_matching = true; parse_options.relaxed_tasklist_matching = true;
let options = &ComrakOptions { let options = &Options {
extension: extension_options, extension: extension_options,
parse: parse_options, parse: parse_options,
..ComrakOptions::default() ..Options::default()
}; };
let ast = parse_document(&arena, md, options); let ast = parse_document(&arena, md, options);

View File

@@ -8,7 +8,8 @@ use chrono::naive::NaiveDate;
use chrono::{Datelike, Local, TimeDelta}; use chrono::{Datelike, Local, TimeDelta};
use clap::Parser; use clap::Parser;
use cli::Args; 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 config::Config;
use log; use log;
use logging::get_logging_level; use logging::get_logging_level;
@@ -20,7 +21,7 @@ use std::path::Path;
use std::process::Command; use std::process::Command;
use todo::{File as TodoFile, TaskGroup}; 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() { fn main() {
// setup // setup
@@ -124,16 +125,16 @@ fn main() {
let current_file = match latest_file { let current_file = match latest_file {
// copy old file if the user specifies today's notes but it does not exist // 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 => { 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; extension_options.tasklist = true;
let mut parse_options = ParseOptions::default(); let mut parse_options = Parse::default();
parse_options.relaxed_tasklist_matching = true; parse_options.relaxed_tasklist_matching = true;
let options = &ComrakOptions { let options = &Options {
extension: extension_options, extension: extension_options,
parse: parse_options, parse: parse_options,
..ComrakOptions::default() ..Options::default()
}; };
let sections = &cfg.sections; let sections = &cfg.sections;
log::info!("looking for sections: {:?}", sections); log::info!("looking for sections: {:?}", sections);