DragonFly On-Line Manual Pages

Search: Section:  


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

Search: Section: