RingHTML: High-Performance HTML5 Parser & DOM Manipulation Library

80 views
Skip to first unread message

Youssef Saeed

unread,
Dec 13, 2025, 1:54:27 PM (6 days ago) Dec 13
to The Ring Programming Language
                                                          logo.png                                                          
Hello everyone,

I'm thrilled to share the release of RingHTML—a powerful new Ring library for parsing and manipulating HTML documents!

Powered by the blazing-fast Lexbor engine, RingHTML brings high-performance scraping and DOM manipulation to Ring. It allows you to navigate the DOM tree, extract data, and build HTML programmatically using a simple and intuitive API.

Key Features:
  • High-Performance: Built on top of Lexbor, making it one of the fastest HTML5 parsers available.
  • CSS Selectors: Full support for `#id`, `.class`, `tag`, `parent child`, and complex selectors.
  • DOM Manipulation: Create, modify, insert, and remove nodes programmatically.
  • Navigation: Easily traverse parents, children, siblings, and specific elements.
  • Unicode Support: Full support for international characters and multilingual content.
Use Cases:

RingHTML is designed to help you with a variety of tasks:
  • Web Scraping: Download web pages and easily extract data like prices, headlines, or links using CSS selectors.
  • Data Extraction: Parse complex HTML reports or logs to convert them into structured data (Lists/Objects).
  • HTML Generation: Programmatically build valid HTML reports or email templates without messy string concatenation.
  • Content Sanitization: Load user-submitted HTML and strip out unwanted tags or attributes before saving.
Code Example:

Parsing HTML and finding elements is straightforward:

load "html.ring"

# Parse an HTML string
doc = new HTML('
<div class="content">
<h1>Welcome to RingHTML!</h1>
<ul class="links">
<li><a href="/docs">Docs</a></li>
<li><a href="/examples">Examples</a></li>
</ul>
</div>
')

# Find elements using CSS selectors
title = doc.find("h1")[1]
? "Title: " + title.text()

# Extract all links
links = doc.find("ul.links a")
for link in links
? "Link: " + link.text() + " -> " + link.attr("href")
next


Installation

Install easily via RingPM:

ringpm install ring-html from ysdragon

Learn MoreContributions are welcome!

Have ideas or found a bug? Please open an issue or submit a pull request on GitHub.

Your feedback is greatly appreciated!

Hope you find RingHTML useful!

Best regards,
Youssef

Mansour Ayouni

unread,
Dec 13, 2025, 2:11:36 PM (5 days ago) Dec 13
to Youssef Saeed, The Ring Programming Language
Hello Youssef,

Yet another wise and useful choice of extension, thank you!
I enjoyed reading the story of Alexander Borisvor creating Lexbor...

I strated a stzHtml file in the Softanza FILE module months ago but I kept it basic (only a few functions) because I knew a c-extension was needed. Now you offer me the chance to make all the ideas I have rapidly.

KEEP THE NICE JOB,
All the best,
Mansour

--

---
You received this message because you are subscribed to the Google Groups "The Ring Programming Language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ring-lang+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/ring-lang/f48a4d69-b802-4aba-81d2-916a9d02137an%40googlegroups.com.

Youssef Saeed

unread,
Dec 13, 2025, 2:36:08 PM (5 days ago) Dec 13
to The Ring Programming Language
Hello Mansour,

Thank you so much for your kind words and encouragement!

I actually developed the core of this library months ago for my own web scraping needs. Thinking it might be useful to others as well, I decided to polish and release it. I am really glad to see it fits your needs!

It is great to hear that it fits perfectly with your plans for Softanza. It sounds like perfect timing since you were looking for a C-extension solution.

I can't wait to see what you build with it. Please let me know if you have any feedback once you start using it.

Best regards,
Youssef

Mahmoud Fayed

unread,
Dec 13, 2025, 11:01:11 PM (5 days ago) Dec 13
to The Ring Programming Language
Hello Youssef

Thank you very much for developing this wonderful package 

Added to Ring Website - News Section

ringnews.png

Greetings,
Mahmoud

Youssef Saeed

unread,
Dec 14, 2025, 5:11:44 AM (5 days ago) Dec 14
to The Ring Programming Language
Hello Mahmoud,

Thank you for your kind words and for adding it to the News Section.

Best regards,
Youssef

Mahmoud Fayed

unread,
Dec 14, 2025, 5:20:47 AM (5 days ago) Dec 14
to The Ring Programming Language
Hello Youssef

You are welcome :D

Greetings,
Mahmoud

Bert Mariani

unread,
Dec 14, 2025, 8:28:57 AM (5 days ago) Dec 14
to The Ring Programming Language
Hello Youssef

Thanks for the HTML library !!
This should make life a Lot Easier !

In the past I would download the Raw Html code from a Site.
Scan for the portions I was interested in.
Then spend some time extracting the data of interest.
It was tedious writing  the code.

Best Regards
Bert Mariani

Youssef Saeed

unread,
Dec 14, 2025, 3:55:38 PM (4 days ago) Dec 14
to The Ring Programming Language
Hello Bert,

Thank you for your kind words!

I'm really glad the library helps solve that problem for you. It's definitely better than scanning through raw code manually!

Best regards,
Youssef

Azzeddine Remmal

unread,
Dec 14, 2025, 4:11:57 PM (4 days ago) Dec 14
to The Ring Programming Language
Hello Youssef 

Thank you for the wonderful extension and all your valuable contributions.

 Regards, Azzeddine

Youssef Saeed

unread,
Dec 15, 2025, 1:21:57 AM (4 days ago) Dec 15
to The Ring Programming Language
Hello Azzeddine,

Thank you for your kind words!

Best regards,
Youssef
Reply all
Reply to author
Forward
0 new messages