1. A method for authoring an output page, the method comprising: reading page markup language data; validating the page markup language data according to a schema for the page markup language; presenting one or more available components defined using component markup language, the available components including pre-defined layouts of an output page; reading component markup language data, the component markup language data including at least one component reference from the one or more available components; validating the component reference in the page markup language data; translating the page markup language data and the component markup language data to intermediate output page markup language data; translating the intermediate output page markup language data to first output page markup language data; editing at least one component of the one or more available components, the at least one component referenced by the first output page markup language data; and updating the first output page markup language data based on the editing of the at least one component.