Hubbub -- an HTML parser ======================== Overview -------- Hubbub is a flexible HTML parser. It aims to comply with the HTML5 specification. Requirements ------------ Hubbub requires the following tools: + A C99 capable C compiler + GNU make or compatible + Perl (for the testcases) + Pkg-config (for the testcases) + xsltproc (for the entity fetcher) + wget (for the entity fetcher) + doxygen (for the API documentation) Hubbub also requires the following libraries to be installed: + An iconv implementation (e.g. libiconv) + LibParserUtils -- see below for further information + JSON-C (for the testcases) -- see below for further information Hubbub can make use of the following, for debugging and testing purposes: + gcov and lcov, for test coverage data LibParserUtils -------------- To compile Hubbub, you will need LibParserUtils. This can be obtained from SVN: $ svn co svn://svn.netsurf-browser.org/trunk/libparserutils/ Follow the instructions in LibParserUtils' README file to build and install it. Note: By default, libparserutils only supports a few character sets. It may, however, be configured to use iconv() to provide charset conversion. See LibParserUtils' README for further information. JSON-C ------ To run tests, you will need JSON-C. You can obtain the version that Hubbub needs from SVN: $ svn co svn://svn.netsurf-browser.org/trunk/json-c/json-c/ Build and install JSON-C as follows: $ sh autogen.sh $ make install Compilation ----------- The exact type of build may be configured by passing parameters to make. Common usage is described below. For a static library: $ make For a shared library: $ make COMPONENT_TYPE=lib-shared For a static library with debug enabled: $ make BUILD=debug To cross-compile a static library: $ make TARGET= Verification ------------ The library's functionality may be verified, thus: $ make test If you wish to see test coverage statistics, run: $ make coverage Then open build/coverage/index.html in a web browser. In both cases, ensure that the same parameters to make are passed as when building the library. (Un)installation ---------------- To install the library: $ make install Ensure that the same parameters to make are passed as when building the library. To specify the installation prefix: $ make install PREFIX=/path/to/prefix To specify a staging directory for packaging: $ make install DESTDIR=/path/to/directory Items will be installed to $(DESTDIR)$(PREFIX)/ To uninstall: $ make uninstall API documentation ----------------- Use doxygen to auto-generate API documentation, thus: $ make docs Then open build/docs/html/index.html in a web browser. The "examples" directory contains commented examples of how to use Hubbub. The test driver code in test/ may also provide some useful pointers. A note on character set aliases ------------------------------- Hubbub uses an external mapping file to encode relationships between character set names. This is the "Aliases" file. A copy may be found at test/data/Aliases. The path to this file is required when calling hubbub_initialise().