This page will contain various informations about how the project progresses: thoughts, issues, design decisions, etc.
This page is split into the following sub-pages:
/Phase1Documentation: various documentations about the Knuth approach and pagination techniques
/ImplementingBeforeFloats: summary of the spec, study of the footnote handling, presentation of the placement algorithm for before-floats
/ImplementingSideFloats: formalization of the spec
- Study of side-floats, continued: it appears that there might be difficulties making side-floats and the total-fit approach for page-breaking work together.
- Study of side-floats: understand, summarize, formalize the specs (XSL-FO and CSS2); clear uncertainties.
- Before-floats are working. There are still some bugs and missing features but the main logic is there. While finishing the before-floats implementation I'll start thinking about side-floats as they will have to be handled at the page-level too.
- Before-floats are almost working... there is still some debugging and clean-up to do. Right now I'm very busy with debugging but I should soon put some more informations on the implementation.
- I've been busy with my thesis last week, so I have not done much on Fop. Restarting to work now.
Study of the LayoutManager architecture: how it works, which are the different methods to implement, what is the hierarchy of the different layout managers, etc. First thoughts about plugging the handling of floats in this architecture.
- Deep study of the breaking algorithm, in order to propose a refactoring which will prepare the implementation of floats: factorize out things common to line- and page-breaking, generalize the handling of footnotes to turn it into the handling of out-of-flow elements. A pseudo-language version should be published soon.
- Further reading of the source code. I'm beginning to have a good understanding of the breaking algorithm.
- I've remained silent those days, because of deep diving into Fop's source code... Pending tasks:
- integrate the comments from Simon and Jeremias on my latest changes to this page;
- write a review of Plass' thesis.
Informations for the Final Evaluation
All the code that I've written during the Summer of Code has been put in one Bugzilla entry: http://issues.apache.org/bugzilla/show_bug.cgi?id=39777
This wiki page contains thoughts that I wrote about before-floats and side-floats, before actually implementing them. The goal was to have feedback from the developers before starting to code.
I've implemented a first version of before-floats, which is described in section 3 of the /ImplementingBeforeFloats sub-page. Section 4 gives some ideas of improvements I have started to implement, but the patch is not finished yet (it should be available soon).
The /ImplementingSideFloats sub-page gives a summary and a formalization of this part of the Recommendation, along with some decisions regarding uncertainties. It also describes a possible algorithm to handle side-floats. It has not been implemented, because of difficulties to make it work with the total-fit algorithm as it exists in the current code. There are ongoing discussions about how to make it evolve to ease the implementation of missing features, included side-floats. Once this is done, this page should provide a good basis for implementing those latter.