DragonFly On-Line Manual Pages
    
    
	
LIBXO(3)              DragonFly Library Functions Manual              LIBXO(3)
NAME
     xo_emit - emit formatted output based on format string and arguments
LIBRARY
     Text, XML, JSON, and HTML Output Emission Library (libxo, -lxo)
SYNOPSIS
     #include <libxo/xo.h>
     void
     xo_set_info(xo_handle_t *handle, xo_info_t *info, int count);
DESCRIPTION
     HTML data can include additional information in attributes that begin
     with "data-".  To enable this, three things must occur:
     First the application must build an array of xo_info_t structures, one
     per tag.  The array must be sorted by name, since libxo uses a binary
     search to find the entry that matches names from format instructions.
     The xo_info_t structure is defined in <libxo/xo.h>:
               typedef struct xo_info_s {
                   const char *xi_name;    /* Name of the element */
                   const char *xi_type;    /* Type of field */
                   const char *xi_help;    /* Description of field */
               } xo_info_t;
     Second, the application must inform libxo about this information using
     the xo_set_info() call.  Like other libxo calls, passing NULL for the
     handle tells libxo to use the default handle.
     If the count is -1, libxo will count the elements of info, but there must
     be an empty element at the end.  More typically, the number is known to
     the application:
               xo_info_t info[] = {
                   { "in-stock", "number", "Number of items in stock" },
                   { "name", "string", "Name of the item" },
                   { "on-order", "number", "Number of items on order" },
                   { "sku", "string", "Stock Keeping Unit" },
                   { "sold", "number", "Number of items sold" },
               };
               int info_count = (sizeof(info) / sizeof(info[0]));
               ...
               xo_set_info(NULL, info, info_count);
     Third, the emission of info must be triggered with the XOF_INFO flag
     using either the xo_set_flags() function or the "--libxo=info" command
     line argument.
     The type and help values, if present, are emitted as the "data-type" and
     "data-help" attributes:
             <div class="data" data-tag="sku" data-type="string"
                  data-help="Stock Keeping Unit">GRO-000-533</div>
ADDITIONAL DOCUMENTATION
     Complete documentation can be found on github:
           http://juniper.github.io/libxo/libxo-manual.html
     libxo lives on github as:
           https://github.com/Juniper/libxo
     The latest release of libxo is available at:
           https://github.com/Juniper/libxo/releases
SEE ALSO
     xo_emit(3)
HISTORY
     The libxo library was added in FreeBSD 11.0.
AUTHOR
     Phil Shafer
DragonFly 6.5-DEVELOPMENT      December 4, 2014      DragonFly 6.5-DEVELOPMENT