]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - README.md
Import libxo 1.3.0
[FreeBSD/FreeBSD.git] / README.md
1 libxo
2 =====
3
4 libxo - A Library for Generating Text, XML, JSON, and HTML Output
5
6 The libxo library allows an application to generate text, XML, JSON,
7 and HTML output using a common set of function calls.  The application
8 decides at run time which output style should be produced.  The
9 application calls a function "xo_emit" to product output that is
10 described in a format string.  A "field descriptor" tells libxo what
11 the field is and what it means.
12
13 Imagine a simplified ``wc`` that emits its output fields in a single
14 xo_emit call:
15
16 ```
17     xo_emit(" {:lines/%7ju/%ju} {:words/%7ju/%ju} "
18             "{:characters/%7ju/%ju}{d:filename/%s}\n",
19             linect, wordct, charct, file);
20 ```
21
22 Output can then be generated in various style, using the "--libxo"
23 option: 
24
25 ```
26     % wc /etc/motd
27           25     165    1140 /etc/motd
28     % wc --libxo xml,pretty,warn /etc/motd
29     <wc>
30       <file>
31         <filename>/etc/motd</filename>
32         <lines>25</lines>
33         <words>165</words>
34         <characters>1140</characters>
35       </file>
36     </wc>
37     % wc --libxo json,pretty,warn /etc/motd
38     {
39       "wc": {
40         "file": [
41           {
42             "filename": "/etc/motd",
43             "lines": 25,
44             "words": 165,
45             "characters": 1140
46           }
47         ]
48       }
49     }
50     % wc --libxo html,pretty,warn /etc/motd
51     <div class="line">
52       <div class="text"> </div>
53       <div class="data" data-tag="lines">     25</div>
54       <div class="text"> </div>
55       <div class="data" data-tag="words">    165</div>
56       <div class="text"> </div>
57       <div class="data" data-tag="characters">   1140</div>
58       <div class="text"> </div>
59       <div class="data" data-tag="filename">/etc/motd</div>
60     </div>
61 ```
62
63 View the beautiful documentation at:
64
65 http://juniper.github.io/libxo/libxo-manual.html
66
67 [![Analytics](https://ga-beacon.appspot.com/UA-56056421-1/Juniper/libxo/Readme)](https://github.com/Juniper/libxo)