add url to rendered text

This commit is contained in:
2025-07-18 22:11:33 +02:00
parent 5c5845adf6
commit 1aec2abca5

View File

@@ -1,5 +1,6 @@
use clap::Parser; use clap::Parser;
use regex::Regex; use regex::Regex;
use std::io::Write;
use std::{fs, path::PathBuf}; use std::{fs, path::PathBuf};
use termimad::crossterm::style::Color::*; use termimad::crossterm::style::Color::*;
use termimad::*; use termimad::*;
@@ -31,6 +32,8 @@ fn replace_links(input: &str) -> String {
intermediate.replace("]", "** ") intermediate.replace("]", "** ")
} }
fn add_github_link(input: &str, name: &str, file: &DirEntry) -> String {}
fn render(input: &str) -> String { fn render(input: &str) -> String {
let mut skin = MadSkin::default(); let mut skin = MadSkin::default();
skin.set_headers_fg(rgb(255, 187, 0)); skin.set_headers_fg(rgb(255, 187, 0));
@@ -53,17 +56,25 @@ async fn process_file(
let html_stripped = &remove_html(markdown); let html_stripped = &remove_html(markdown);
let links_replaced = &replace_links(html_stripped); 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); let github_link_added =
copy_readme(&file, readme_dir); 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) 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 file_name = get_file_name(&file) + ".md";
let readme_path = get_output_path(readme_dir, &file_name); 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 { fn get_file_name(file: &DirEntry) -> String {
@@ -114,7 +125,7 @@ async fn main() {
.max_depth(2) .max_depth(2)
.into_iter() .into_iter()
.filter_map(|e| e.ok()) .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()))) .map(|file| task::spawn(process_file(file, render_path.clone(), readme_path.clone())))
.collect(); .collect();