home | help
LIBXO(3)		     Library Functions Manual			LIBXO(3)

NAME
     xo_set_info -- set the field information data for libxo

LIBRARY
     libxo

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 argu-
     ment.

     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>

SEE ALSO
     xo_emit(3), libxo(3)

ADDITIONAL DOCUMENTATION
     FreeBSD uses libxo version 0.6.1.	Complete documentation can be  found  on
     github:

	   http://juniper.github.io/libxo/0.6.1/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

HISTORY
     The libxo library was added in FreeBSD 11.0.

AUTHOR
     Phil Shafer

FreeBSD ports 15.quarterly	December 4, 2014			LIBXO(3)

home | help