From 1aec2abca501a843f18edb501524b6e9742e1000 Mon Sep 17 00:00:00 2001 From: rhetenor Date: Fri, 18 Jul 2025 22:11:33 +0200 Subject: [PATCH] add url to rendered text --- src/main.rs | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/main.rs b/src/main.rs index 53178d2..963996e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,6 @@ use clap::Parser; use regex::Regex; +use std::io::Write; use std::{fs, path::PathBuf}; use termimad::crossterm::style::Color::*; use termimad::*; @@ -31,6 +32,8 @@ fn replace_links(input: &str) -> String { intermediate.replace("]", "** ") } +fn add_github_link(input: &str, name: &str, file: &DirEntry) -> String {} + fn render(input: &str) -> String { let mut skin = MadSkin::default(); skin.set_headers_fg(rgb(255, 187, 0)); @@ -53,17 +56,25 @@ async fn process_file( let html_stripped = &remove_html(markdown); let links_replaced = &replace_links(html_stripped); + let name = get_file_name(&file); + let dir = file.path().parent().unwrap(); + let url = fs::read_to_string(dir.to_str().unwrap().to_owned() + "url").unwrap(); - let rendered = render(links_replaced); - copy_readme(&file, readme_dir); + let github_link_added = + links_replaced.to_owned() + "\n" + name.as_str() + " Github: " + url.as_str(); + + let rendered = render(github_link_added.as_str()); + copy_readme(&file, readme_dir, &url); write_file(output_dir, &file, &rendered) } -fn copy_readme(file: &DirEntry, readme_dir: PathBuf) { +fn copy_readme(file: &DirEntry, readme_dir: PathBuf, url: &str) { let file_name = get_file_name(&file) + ".md"; let readme_path = get_output_path(readme_dir, &file_name); - let _ = std::fs::copy(file.path(), readme_path); + let _ = std::fs::copy(file.path(), &readme_path); + let mut readme_file = fs::File::options().append(true).open(readme_path).unwrap(); + writeln!(readme_file, "\n[{} Github]({})", file_name, url); } fn get_file_name(file: &DirEntry) -> String { @@ -114,7 +125,7 @@ async fn main() { .max_depth(2) .into_iter() .filter_map(|e| e.ok()) - .filter(|file| file.file_name() == "README.md") + .filter(|file| file.file_name().eq_ignore_ascii_case("readme.md")) .map(|file| task::spawn(process_file(file, render_path.clone(), readme_path.clone()))) .collect();