parserino ~master

Super-fast html5 parser


To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:

parserino Build & Test

  • HTML5 parser based on Lexbor
  • Super-fast parsing & dom editing
  • Lazy ranges to browse dom faster.
  • Every method is unit-tested on Linux, MacOS, Windows

documentation

All docs are available here

how it works

<sub>Check also the examples folder</sub>

import parserino;

void main()
{
   // Parserino will fix your html5
   Document doc = "<html>my html";
   assert(doc.toString() == "<html><head></head><body>my html</body></html>");

   // Set a title for your page
   doc.title = "Hello world";
   assert(doc.toString() == "<html><head><title>Hello world</title></head><body>my html</body></html>");

   // Append a html fragment
   doc.body.appendChild(`
   <a href="/first.html">first</a>
   <div>
      <a id="tochange" href="/second.html">second</a>
   </div>
   `.asFragment // without .asFragment pure text is appended
   );

   // Create and fill an html element
   auto newElement = doc.createElement("a");
   newElement.setAttribute("href", "third.html");
   newElement.innerText("third");
   doc.body.appendChild(newElement);

   // You can use selector to select an element
   doc
   .bySelector("div a")    // Select all <a> inside a <div>
   .frontOrThrow           // Take the first element of the range or throw an exception
   .innerText="changed!";  // Change the inner text

   assert(doc.body.byId("tochange").innerText == "changed!");
}
Authors:
  • Andrea Fontana
Dependencies:
none
Versions:
0.2.5 2023-Oct-19
0.2.4 2023-Oct-18
0.2.3 2023-May-16
0.2.2 2022-Oct-21
0.2.1 2022-Oct-19
Show all 8 versions
Download Stats:
  • 0 downloads today

  • 128 downloads this week

  • 129 downloads this month

  • 1524 downloads total

Score:
3.3
Short URL:
parserino.dub.pm