In the beginning, there was the page…

Inasmuch as the second chapter of the development of XSL formatting is now being written with XSL-FO¬† 2.0, here’s a version of its first chapter that was popular back at XML Prague 2010.

In the beginning, there was the page. And the page was without objects and void, and not a whole lot was upon the face of the page.

And XSL said, let there be text, and there was text.

And XSL saw the text, and they divided the text from the page. And XSL called the text the region-body, and the space they called the margins. And the region-body and the margins were the first formatting.

And XSL said, let there be blocks in the midst of the text, and let them divide the text from the text. And it was so. And the text with blocks was the second formatting.

And XSL said, let there be regions in the edges of the page to hold static content, and let them be for page numbers and running heads, and it was so.

And XSL made the two page sides, the recto for the right hand side and the verso for the left.

And XSL set them in the page masters to apply to all pages. And the recto and the verso were the third formatting.

And XSL said, let the blocks bring forth abundantly inline objects and properties that apply to them.

And XSL created fo:character and every inline FO after their kind, and every property after its kind, and it was good.

And the inline FOs and properties were the fourth formatting.

And XSL said, let users make graphics, and tables, and columns, and side floats and other areas. And the graphics and tables and columns and side floats were the fifth formatting.

Then XSL did errata until XSL 1.1, which added change bars, table markers, indexing FOs and much that was good.