This is a list of all known XOXO Blog Format (and hAtom) compatible blog templates. Hackers/designers are encouraged to improve on them, but please try to keep them Valid XOXO. I would also ask that new templates/template improvements be sent back to me so I can list them here for others to use.
See notes on Blogger and hAtom.
New Blogger
- Singpolyma Templates for the new Blogger — A set of New Blogger templates that are all XOXO Blog Format (and hAtom) compatible and have anywhere from no extra features to larger hacks implemented on them.
Blogger Classic
- Singpolyma Templates — A set of Blogger Classic templates that are all XOXO Blog Format (and hAtom) compatible and have anywhere from no extra features to larger hacks implemented on them.
This is a collection of code resources and APIs for developers looking to work with XOXO in their scripts/applications. There isn’t much here yet, but the list will grow over time.
PHP
On some of these, the comments may state that attributes of the first node are considered to be metadata for the entire outline. This is actually up to the developer and the format of XOXO being parsed as there is nothing in the code to facilitate/enforce it.
- Outline Classes [GPL] — A set of PHP4 and PHP5 comatible classes for both parseing and creating outline data, including XOXO, OPML, hAtom, JSON, and arbitrary XML.
The following, deprecated APIs, have been replaced by the Outline Classes
- xoxo2array [GPL] — pass in any string containing XOXO data and it will return a nested array of the results. String indexes are considered attributes, numeric indexes are subnodes.
- array2xoxo [GPL] — takes an array of the type returned by xoxo2array and returns an XOXO string of the data. It will also work with simple arrays.
- There are also other APIs for working with this array type (for conversion purposes, etc)
Python
Java
- XOXOWriter.java [Apache 2.0] — Contains two (overloaded) functions, makeXOXO and toXOXO, that create XOXO data from Lists and create XOXO documents from XOXO data, respectively
- XOXOParser.java [Apache 2.0] — Contains a class definition for objects that parse XOXO data into themselves
XOXO is a microformat for the storage and transmission of outline data. Outline data is any nested list information, where you have nodes with subnodes. The specification is similar in purpose to OPML, but has many advantages over that format, including :
- XOXO can be embedded completely within any XHTML document. Since XOXO is really a subset of XHTML, it is 100% XHTML-compatible. It can be stored as an independant document, but this is not a requirement as it is with OPML.
- XOXO has predefined fields for common uses. Unlike OPML where all fields are optional/arbitrary and up to individual implementations, XOXO has standardized markup for TEXT, TITLE, HREF, REL, REV, TYPE, and CLASS attributes. One may argue that feed readers have standardized some OPML elements (xmlUrl, for example), however this is not even wholly true (some feed readers use the rssUrl element instead).
- XOXO can be viewed directly in a webbrowser without any need for extra stylesheets
- XOXO can be used to make up the actual content of web pages so that those pages are nice to view, but are also easily read by other applications/scripts
For conveniance, XOXO is still fully extendable, with the ability to contain any number of arbitrary fields.
For more information, see the official XOXO specification and the official XOXO-faq.