Something went wrong. Try again.
(MIRROR) A templating engine with (not yet reimplemented) Lua scripting git.gae.moe/grace/htmlua/src/branch/main
zig lua html cgi
Something went wrong. Try again.
963 B · 33 lines
Rust
at render_fixes
12345678910111213141516171819202122232425262728293031323334use std::{ fs::File, io::{BufRead, BufReader, Read, Seek, SeekFrom}, path::PathBuf,};
use anyhow::Result;use kuchikiki::NodeRef;use markup5ever::{LocalName, QualName, namespace_url, ns};use tendril::TendrilSink;
pub fn read_doc_from_file(path: PathBuf) -> Result<NodeRef> { let mut file = File::open(path)?; let mut reader = BufReader::new(&mut file);
let mut first_line = String::new(); reader.read_line(&mut first_line)?; let first_line_trimmed = first_line.trim();
let is_whole_doc = first_line_trimmed.eq_ignore_ascii_case("<!DOCTYPE html>");
file.seek(SeekFrom::Start(0))?; let mut page_string = String::new(); file.read_to_string(&mut page_string)?;
if is_whole_doc { Ok(kuchikiki::parse_html().one(page_string)) } else { let ctx_name = QualName::new(None, ns!(), LocalName::from("div")); Ok(kuchikiki::parse_fragment(ctx_name, Vec::new()).one(page_string)) }}