Gumbo
Gumbo is, other than the soup and an album from Dr. John , also a HTML5 parsing C (C99) library.
Its self contained (has no external dependencies), is resilient to badly formed html, has a simple API and is reasonably fast.
I'm using it in a side project.
I'm currently trying to find a way to use CMake's ExternalProject and the new target usage requirements added in 3.0 (e.g. automatically add compilation flags required by a library we link to). A way that pleases me, that is.
While doing this, I found that gumbo had an issue compiling its benchmark target in mac osx (it was using clock_gettime with CLOCK_PROCESS_CPUTIME_ID).
I opened an issue, and later proposed a fix / pull request.
I used C++11's std::chrono::high_resolution_clock.
Not sure if it will be accepted, since my fix trades benchmark precision for code portability.
At least I got it compile clean in my fork, so I can move on ;)