Fix md2gemtext convert
parent
f843d89b74
commit
0f30612b8b
|
@ -18,5 +18,5 @@ isbot = "0.1.3"
|
||||||
once_cell = "1.19.0"
|
once_cell = "1.19.0"
|
||||||
windmark = { version = "0.3.10", features = ["response-macros", "logger"] }
|
windmark = { version = "0.3.10", features = ["response-macros", "logger"] }
|
||||||
tokio = { version = "1.26.0", features = ["full"] }
|
tokio = { version = "1.26.0", features = ["full"] }
|
||||||
md2gemtext = "0.1.0"
|
md2gemtext = { git = "https://git.kirbylife.dev/kirbylife/md2gemtext" }
|
||||||
glob = "0.3.1"
|
glob = "0.3.1"
|
||||||
|
|
|
@ -2,7 +2,7 @@ use codigocomentado::*;
|
||||||
|
|
||||||
use controllers::posts;
|
use controllers::posts;
|
||||||
use dotenv::dotenv;
|
use dotenv::dotenv;
|
||||||
use misc::{gen_title, replace_tables};
|
use misc::gen_title;
|
||||||
use tera::Tera;
|
use tera::Tera;
|
||||||
use tokio::sync::OnceCell;
|
use tokio::sync::OnceCell;
|
||||||
|
|
||||||
|
@ -64,9 +64,13 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||||
let result = match posts::get_post(id) {
|
let result = match posts::get_post(id) {
|
||||||
Ok(post) => {
|
Ok(post) => {
|
||||||
let mut context = tera::Context::new();
|
let mut context = tera::Context::new();
|
||||||
let content = replace_tables(post.content)
|
let content = post
|
||||||
|
.content
|
||||||
.replace("<pre>", "```")
|
.replace("<pre>", "```")
|
||||||
.replace("</pre>", "```");
|
.replace("</pre>", "```")
|
||||||
|
.replace("<b>", "")
|
||||||
|
.replace("</b>", "");
|
||||||
|
let content = md2gemtext::convert(&content);
|
||||||
|
|
||||||
context.insert("header", &gen_title());
|
context.insert("header", &gen_title());
|
||||||
context.insert("title", &post.title);
|
context.insert("title", &post.title);
|
||||||
|
|
31
src/misc.rs
31
src/misc.rs
|
@ -81,34 +81,3 @@ pub fn ascii_table(raw_table: String) -> String {
|
||||||
|
|
||||||
format!("```\n{}\n```\n", result)
|
format!("```\n{}\n```\n", result)
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn replace_tables(text: String) -> String {
|
|
||||||
let mut result = String::new();
|
|
||||||
let mut table: Option<String> = None;
|
|
||||||
let mut is_code = false;
|
|
||||||
|
|
||||||
for line in text.lines() {
|
|
||||||
if line.starts_with('|') & !is_code {
|
|
||||||
if table.is_none() {
|
|
||||||
table = Some(String::new());
|
|
||||||
}
|
|
||||||
if let Some(ref mut tab) = table {
|
|
||||||
tab.push_str(&format!("{}\n", line));
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
let temp = match table {
|
|
||||||
Some(ref tab) => {
|
|
||||||
println!("raw:\n{}", tab);
|
|
||||||
let new_table = ascii_table(tab.to_string());
|
|
||||||
println!("formated:\n{}", new_table);
|
|
||||||
table = None;
|
|
||||||
new_table
|
|
||||||
}
|
|
||||||
None => line.to_string(),
|
|
||||||
};
|
|
||||||
result.push_str(&temp);
|
|
||||||
result.push('\n');
|
|
||||||
}
|
|
||||||
}
|
|
||||||
result
|
|
||||||
}
|
|
||||||
|
|
|
@ -4,4 +4,4 @@
|
||||||
# {{ title }}
|
# {{ title }}
|
||||||
Publicado el: {{ created_at | date(format="%Y-%m-%d") }}
|
Publicado el: {{ created_at | date(format="%Y-%m-%d") }}
|
||||||
|
|
||||||
{{ content | striptags }}
|
{{ content }}
|
||||||
|
|
Loading…
Reference in New Issue