Documentation for cairo is an area that could always be greatly improved. Contributions are very welcome!
Primary sources
Here are the most useful starting points:
Frequently asked questions: Save yourself some time by reading this early
Tutorial: A one-of-a-kind introduction to the cairo concepts and models
API reference manual: Function-by-function reference
Cookbook: Simple recipes for drawing
Samples: Some samples of how to use Cairo
Cairoglyphics: A tutorial by way of diagrams. From a Python pov. Please help debug them.
Using the PostScript surface: How to use the PostScript surface.
Other information that might be of interest:
Roadmap: Features planned for upcoming release
Missing: Page listing features missing to allow SVG/Flash rendering using cairo without fallbacks.
Bibliography: Where the good ideas came from
Building: Various recipes for compiling Cairo sources on different platforms, and with different goals
Off-site material
Here is a collection of pointers to articles that have been written elsewhere about cairo. Many of these articles might provide good inpiration for generating new primary-source documentation. As we improve the primary documentation to cover the same material that is covered below, we can drop items from the following list, (or at least move the links to some other page).
Tutorials
Cairo Tutorial for Python (and other) Programmers In spite of the name, this tutorial provides a one-of-a-kind introduction to the cairo concepts and models that will be helpful to programmers using cairo from any programming language.
Writing a widget using cairo and GTK+ 2.8 A very clean, short, well-written tutorial by Davyd Madeley. The second-half of this first part gives a reasonable introduction to cairo even for users that are not using GTK+. Davyd's second installment goes into animating the example. There's not nearly as much cairo-specific detail there, but it's worth mentioning it here for completeness.
Writing a widget using cairo and PyGTK 2.8 a "translation" of the tutorial above from C to python.
Cairo: Cross-device Rendering for Vector Graphics by Keith Packard, August 2003. PDF, PS. May be out-of-date with respect to the 1.0 API in some places.
Using Cairo with Visual Studio A very basic guide for those who want to develop cairo applications using Visual Studio.
Using Cairo with SDL A very basic guide for those who want to develop cairo applications using SDL.
Using Cairo with OpenGL How to make use of cairo from within OpenGL-programs.
The Cairo graphics tutorial a 100+ pages tutorial in C programming language and GTK+ library, the largest tutorial on the Internet, ZetCode
Presentations about cairo
Co-maintaining cairo: cool community, cool code by Behdad Esfahbod and Carl Worth, presented at GUADEC in July 2007.
An Insider's Guide to Cairo by Carl Worth, presented at the Desktop Developer's Conference in July 2005.
Cairo: Making Graphics Easy to Print by Carl Worth, presented at linux.conf.au in April 2005.
Custom widgets using GtkCairo (PDF) by Øyvind Kolås, presented at GUADEC in May 2004. Also see the excellent samples online from this tutorial.
Xr: Cross-device Rendering for Vector Graphics by Carl Worth and Keith Packard, presented at the Linux Symposium in July 2003. This is from before Xr was renamed to cairo.
