ec6357ca20
0.5.0: document "trim" modifier add xo_emit_field functions Add xo_set_file{,_h} functions Fix LIBXO_* variables; add -L and -I as needed add --disable-silent-rules and an explicit make; s/PACKAGE-NAME/PACKAGE_NAME/; add /download/ to 'url' fix silliness where xo_flush_h emitted closing tag (html); make the caller (xo_message) do it flush after transitions; fix flush call in xo_do_emit mkdir the version-specific packaging dir use "XO_" instead of LIBXO_ 0.6.0: Add --with-retain-size to set the size (in bits) of the retain hash buckets Add The Argument Modifier ({a:}) Add retain and no-retain to --libxo autoconf: Add test for monitor.h Document quote heuristic go deep with nroff backslashes Use "ULL" for 32 bit check add xo_retain_clear and xo_retain_clear_all docs: combine two 'handles' section; move command line argument section handle GETTEXT when msgfmt isn't where it's supposed to be (FreeBSD) make 'retain' a flag (XOEF_RETAIN) instead of a role; it's simpler, and doesn't feel as tacky. "{R:}" was painful to document, which means it's painful to use. new xo_emit_f functions nuke some unused UNUSEDs test code: path must be static update test cases 0.6.1: fix version number (missed a commit during new-release) Reviewed by: sjg Approved by: sjg (mentor) |
||
---|---|---|
.. | ||
doc | ||
encoder | ||
libxo | ||
packaging | ||
tests | ||
xo | ||
xohtml | ||
xolint | ||
xopo | ||
.gitignore | ||
.svnignore | ||
.travis.yml | ||
configure.ac | ||
Copyright | ||
INSTALL.md | ||
libxo-config.in | ||
LICENSE | ||
Makefile.am | ||
README.md | ||
warnings.mk |
libxo
libxo - A Library for Generating Text, XML, JSON, and HTML Output
The libxo library allows an application to generate text, XML, JSON, and HTML output using a common set of function calls. The application decides at run time which output style should be produced. The application calls a function "xo_emit" to product output that is described in a format string. A "field descriptor" tells libxo what the field is and what it means.
xo_emit(" {:lines/%7ju/%ju} {:words/%7ju/%ju} "
"{:characters/%7ju/%ju}{d:filename/%s}\n",
linect, wordct, charct, file);
Output can then be generated in various style, using the "--libxo" option:
% wc /etc/motd
25 165 1140 /etc/motd
% wc --libxo xml,pretty,warn /etc/motd
<wc>
<file>
<filename>/etc/motd</filename>
<lines>25</lines>
<words>165</words>
<characters>1140</characters>
</file>
</wc>
% wc --libxo json,pretty,warn /etc/motd
{
"wc": {
"file": [
{
"filename": "/etc/motd",
"lines": 25,
"words": 165,
"characters": 1140
}
]
}
}
% wc --libxo html,pretty,warn /etc/motd
<div class="line">
<div class="text"> </div>
<div class="data" data-tag="lines"> 25</div>
<div class="text"> </div>
<div class="data" data-tag="words"> 165</div>
<div class="text"> </div>
<div class="data" data-tag="characters"> 1140</div>
<div class="text"> </div>
<div class="data" data-tag="filename">/etc/motd</div>
</div>
View the beautiful documentation at: