Google's Summer of Code Project Proposal: Implementing floats

This page is the draft of a project proposal that could be made at Google's Summer of Code. The goal is to gather the key points, the main issues and to sketch a timeline for the project.

Motivation

The project is to implement the fo:float formatting object in Fop. This element is used to generate two kinds of floats: before-floats for positioning objects in a separate area at the beginning of a page, and side-floats for positioning objects on one side of the page, with normal content flowing around it.

Before-floats are typically used to render figures, images, tables and so on. Such objects are frequent in book-like documents: they often carry additional information which is not required to understand the reading, and to which the reader may want to further refer. As Fop is often used as a print backend to render DocBook documents, many users would benefit from the implementation of before-floats.

Side-floats may be used to achieve various effects, such as drop capitals (displaying the first letter of a paragraph in a large size, spanning several lines of the paragraph), margin notes, illustrating images integrated in the content with text flowing around, etc.

Main Areas of Work

Proposed Goals

Schedule

  1. Documentation phase: 1 month
    • XSL-FO and CSS specifications
    • Knuth glue-box-penalty and line-/page-breaking algorithm
    • Fop source code (Layout Managers)
  2. Before-floats implementation: 3 weeks
    • algorithm
    • design choices
    • coding and testing
  3. Side-floats implementation: 1 month and 1 week
    • understand and illustrate the computation of intrusion adjustments (this part of the spec looks rather complicated)
    • identify the typical layout situations
    • identify and document the trickiest cases
    • basic implementation

GoogleSummerOfCode2006/ImplementingFloats (last edited 2009-09-20 23:52:25 by localhost)