Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Low output latency streaming HTML parser/rewriter with CSS selector-based API

License

NotificationsYou must be signed in to change notification settings

luminati-io/lol-html

 
 

Repository files navigation

The logo is generated from https://openmoji.org/data/color/svg/1F602.svg by Emily Jäger which is licensed under CC BY-SA 4.0 (https://creativecommons.org/licenses/by-sa/4.0/)

LowOutputLatency streamingHTML rewriter/parser with CSS-selector based API.

It is designed to modify HTML on the fly with minimal buffering. It can quickly handle very largedocuments, and operate in environments with limited memory resources. More details can be found in theblog post.

The crate serves as a back-end for the HTML rewriting functionality ofCloudflare Workers, but can be usedas a standalone library with a convenient API for a wide variety of HTML rewriting/analysis tasks.

Documentation

https://docs.rs/lol_html/

Bindings for other programming languages

  • C
  • Lua
  • Go (unofficial, not coming from Cloudflare)
  • Ruby (unofficial, not coming from Cloudflare)

Example

Rewrite insecure hyperlinks:

use lol_html::{element,HtmlRewriter,Settings};fnmain() ->Result<(),Box<dyn std::error::Error>>{letmut output =vec![];letmut rewriter =HtmlRewriter::new(Settings{element_content_handlers:vec![                element!("a[href]", |el|{let href = el.get_attribute("href").expect("href was required").replace("http:","https:");                    el.set_attribute("href",&href)?;Ok(())})],            ..Settings::default()},        |c:&[u8]| output.extend_from_slice(c));    rewriter.write(b"<div><a href=")?;    rewriter.write(b"http://example.com>")?;    rewriter.write(b"</a></div>")?;    rewriter.end()?;assert_eq!(String::from_utf8(output)?,r#"<div><a href="https://example.com"></a></div>"#);Ok(())}

License

BSD licensed. See theLICENSE file for details.

About

Low output latency streaming HTML parser/rewriter with CSS selector-based API

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust86.9%
  • C12.8%
  • Shell0.3%

[8]ページ先頭

©2009-2025 Movatter.jp