lol_html 1.2.1

Streaming HTML rewriter/parser with CSS selector-based API
Documentation
<html><head>
  <title>NEGATED :target pseudo-class</title>
  <style type="text/css">p { background-color: navy; color: white; }
p:not(:target) { background-color: white; color: black; }</style>
  <link rel="author" title="Daniel Glazman" href="http://glazman.org/">
  <link rel="author" title="Ian Hickson" href="mailto:ian@hixie.ch">
  <link rel="help" href="https://www.w3.org/TR/css3-selectors/#selectors"> <!-- bogus link to make sure it gets found -->
  <meta name="flags" content=" interact">
 </head>
 <body>
<!--[ELEMENT('p')]--><p id="first"><!--[TEXT('p')]-->This paragraph should be unstyled.
       The background of the following paragraph should become blue when
       you follow <!--[/TEXT('p')]--><a href="#second"><!--[TEXT('p')]-->this link<!--[/TEXT('p')]--></a><!--[TEXT('p')]-->.<!--[/TEXT('p')]--></p><!--[/ELEMENT('p')]-->
<!--[ELEMENT('p')]--><p id="second"><!--[TEXT('p')]-->This paragraph should initially be unstyled.
       It should become blue when you select the link above. When you select
       <!--[/TEXT('p')]--><a href="#third"><!--[TEXT('p')]-->this link<!--[/TEXT('p')]--></a><!--[TEXT('p')]-->, it should return to being unstyled and the
       background of the paragraph below should become blue.<!--[/TEXT('p')]--></p><!--[/ELEMENT('p')]-->
<!--[ELEMENT('p')]--><p id="third"><!--[TEXT('p')]-->This paragraph should initially be unstyled.
       It should become blue when you select the link above. When you follow
       <!--[/TEXT('p')]--><a href="#missing"><!--[TEXT('p')]-->this link<!--[/TEXT('p')]--></a><!--[TEXT('p')]-->, the three paragraphs
       should all return to being unstyled.<!--[/TEXT('p')]--></p><!--[/ELEMENT('p')]-->

</body></html>