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.
C Roff Makefile Perl CSS M4 Other
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
bin
build
doc
encoder print flags value May 29, 2017
libxo
packaging add --disable-silent-rules and an explicit make; s/PACKAGE-NAME/PACKA… Mar 4, 2016
patches
tests
xo
xohtml Add "-w" option to pull support files from gh_pages Jun 15, 2017
xolint add HISTORY/AUTHORS sections Jun 15, 2017
xopo
.gitignore rename xo*.h to xo_*.h for consistency Aug 5, 2015
.travis.yml travis: add -x to setup.sh May 12, 2015
Copyright
INSTALL.md add install file Jul 22, 2015
LICENSE
Makefile.am
README.md Add analytics Oct 24, 2014
configure.ac libxo-0.9.0 May 21, 2018
libxo-config.in
warnings.mk make -fno-inline-functions-called-once gcc-specific Aug 11, 2014

README.md

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:

http://juniper.github.io/libxo/libxo-manual.html

Analytics