diff options
| author | gyoder <70408179+gyoder@users.noreply.github.com> | 2025-07-21 12:35:51 -0600 |
|---|---|---|
| committer | gyoder <70408179+gyoder@users.noreply.github.com> | 2025-07-21 12:35:51 -0600 |
| commit | bfa5d30ae4cd56804093fefd0d91f5f18116d0bc (patch) | |
| tree | ee15f48ebb7e4ae987dfa5d7528b057b100d782e /htmlua-parser/src | |
| parent | a07d893e6e137cc3641312e95b191a018c8643db (diff) | |
fixed parser bugrustrender_fixes
Diffstat (limited to 'htmlua-parser/src')
| -rw-r--r-- | htmlua-parser/src/config.rs | 1 | ||||
| -rw-r--r-- | htmlua-parser/src/helpers.rs | 2 | ||||
| -rw-r--r-- | htmlua-parser/src/render.rs | 13 | ||||
| -rw-r--r-- | htmlua-parser/src/serve.rs | 10 |
4 files changed, 18 insertions, 8 deletions
diff --git a/htmlua-parser/src/config.rs b/htmlua-parser/src/config.rs index ffe1320..de734ed 100644 --- a/htmlua-parser/src/config.rs +++ b/htmlua-parser/src/config.rs @@ -95,5 +95,6 @@ impl Config { Ok(()) } + #[must_use] pub fn config_file_path() -> PathBuf { Self::get_config_path() } } diff --git a/htmlua-parser/src/helpers.rs b/htmlua-parser/src/helpers.rs index 3db0443..2992f70 100644 --- a/htmlua-parser/src/helpers.rs +++ b/htmlua-parser/src/helpers.rs @@ -6,7 +6,7 @@ use std::{ use anyhow::Result; use kuchikiki::NodeRef; -use markup5ever::{ns, LocalName, Namespace, namespace_url, QualName}; +use markup5ever::{LocalName, QualName, namespace_url, ns}; use tendril::TendrilSink; diff --git a/htmlua-parser/src/render.rs b/htmlua-parser/src/render.rs index e141020..6a70315 100644 --- a/htmlua-parser/src/render.rs +++ b/htmlua-parser/src/render.rs @@ -8,7 +8,7 @@ use std::{ use anyhow::{Result, anyhow}; use kuchikiki::{NodeRef, traits::TendrilSink}; use markup5ever::{LocalName, Namespace, QualName}; -use mlua::{Lua, Table}; +use mlua::Lua; use pulldown_cmark::{Options, Parser, html}; use syntect::{ easy::HighlightLines, @@ -215,7 +215,7 @@ pub fn generate_footnotes(document: NodeRef) -> Result<NodeRef> { #[cfg(test)] mod tests { use httptest::{Expectation, ServerPool, matchers::*, responders::*}; - use markup5ever::{ns, namespace_url}; + use markup5ever::{namespace_url, ns}; use super::*; @@ -417,7 +417,14 @@ mod tests { let ctx_name = QualName::new(None, ns!(html), LocalName::from("div")); let document = kuchikiki::parse_fragment(ctx_name, Vec::new()).one(page); let d = expand_template(document, &p, None).unwrap(); - let text = d.select_first("head").unwrap().as_node().select_first("title").unwrap().as_node().text_contents(); + let text = d + .select_first("head") + .unwrap() + .as_node() + .select_first("title") + .unwrap() + .as_node() + .text_contents(); assert_eq!(text, "title_test"); let text = d.select_first("#tb").unwrap().as_node().text_contents(); assert_eq!(text, "body_el"); diff --git a/htmlua-parser/src/serve.rs b/htmlua-parser/src/serve.rs index 715bfcc..375e885 100644 --- a/htmlua-parser/src/serve.rs +++ b/htmlua-parser/src/serve.rs @@ -1,6 +1,6 @@ use std::{path::Path, sync::OnceLock}; -use anyhow::Result; +use anyhow::{Result, anyhow}; use crate::{ config::Config, @@ -13,7 +13,7 @@ static CONFIG: OnceLock<Config> = OnceLock::new(); pub fn get_config() -> &'static Config { CONFIG.get_or_init(|| { Config::load().unwrap_or_else(|e| { - eprintln!("Warning: Failed to load config: {}", e); + eprintln!("Warning: Failed to load config: {e}"); eprintln!("Using default configuration"); Config::default() }) @@ -24,8 +24,10 @@ pub fn serve_content(request_uri: &str) -> Result<String> { let config = get_config(); let safe_path = Path::new(request_uri).strip_prefix("/")?; let page_path = config.paths.pages.join(safe_path); - let doc = read_doc_from_file(page_path)?; - let full_doc = expand_template(doc, &config.paths.components, None)?; + let doc = read_doc_from_file(page_path)? + .select_first("html") + .map_err(|()| anyhow!("failed to read doc"))?; + let full_doc = expand_template(doc.as_node().to_owned(), &config.paths.components, None)?; let markdown_doc = process_markdown(full_doc)?; let highlighted_doc = process_syntax_highlighting(markdown_doc)?; let executed_doc = execute_lua(highlighted_doc)?; |
