Skip to content
/ libxo Public

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.

License

BSD-2-Clause, BSD-2-Clause licenses found

Licenses found

BSD-2-Clause
LICENSE
BSD-2-Clause
Copyright
Notifications You must be signed in to change notification settings

Juniper/libxo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
Phil Shafer
Apr 19, 2024
fd5db1b · Apr 19, 2024
Jul 1, 2021
Apr 1, 2024
Jul 11, 2014
Mar 24, 2024
Apr 17, 2024
Apr 19, 2024
Mar 4, 2016
Nov 17, 2014
Apr 12, 2024
Jun 10, 2023
Jun 15, 2017
Nov 4, 2019
Mar 14, 2024
Jun 30, 2021
Aug 5, 2015
Feb 13, 2023
Oct 21, 2014
Jul 22, 2015
Jul 11, 2014
Dec 19, 2022
Jun 30, 2021
Apr 19, 2024
Feb 22, 2016
Aug 11, 2014

Repository files navigation

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.

Imagine a simplified wc that emits its output fields in a single xo_emit call:

    xo_emit(" {:lines/%7ju/%ju} {:words/%7ju/%ju} "
            "{:characters/%7ju/%ju}{d:filename/%s}\n",
            line_count, word_count, char_count, 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

About

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.

Topics

Resources

License

BSD-2-Clause, BSD-2-Clause licenses found

Licenses found

BSD-2-Clause
LICENSE
BSD-2-Clause
Copyright

Stars

Watchers

Forks

Packages

No packages published