This commit is contained in:
@@ -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"] }
|
||||||
|
|||||||
@@ -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);
|
||||||
|
|||||||
13
src/main.rs
13
src/main.rs
@@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user