forked from KolibriOS/kolibrios
141 lines
3.2 KiB
Plaintext
141 lines
3.2 KiB
Plaintext
|
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=<target-platform>
|
||
|
|
||
|
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().
|
||
|
|