Meeting in Stuttgart (May 1st 2007)
I met with my mentor, FlorianFesti, in Stuttgart to discuss how i am going to proceed/start at the end of May. We looked over the theme code and narrowed down the points of entry from non-theme code into the themes. Apart from some minor calls for generating icons or the entries and daybreaks for RecentChanges, the main work is done by following three functions:
- theme.send_title
- theme.send_footer
- theme.send_closing_html
Here is the plan we came up with, where i am going to start:
Start with a new subclassed GenshiTheme
- Determine parameters passed to theme code from "external code"
- Determine other needed information and where to collect it
- Adjust the three methods to use Genshi
- Use XPath support in Genshi for selecting template parts
- Make use of Genshi fragment/element builders (theme.img_url for example)
- Adopt one of the standard themes for testing
Make the html template for this GenshiTheme configurable
- Profile to determine impact on the performance (hit? loss? neglectable?)
Refactor other methods of ThemeBase into genshi based code
FlorianFesti suggested that this would be pretty doable in the first 2 weeks after coding starts. Until then i am still going to read code and perhaps take a look at third party addons to MoinMoin. An overview of what other methods of the themes get called by 3rd party developers should make it possible to further slim down the GenshiTheme.
Afterwards we also talked about where to go from there (assuming that the forementioned tasks are done). Since the goal is to make it simpler for themers to create new layouts, we talked about other obstacles that interfere with theme building and which he would like me to address too:
- Graphics and iconsets need to be present for every theme
- Often they are just copied from another theme
- Would be nice to have a more elaborate common location
- ... or specify another themes images as reference
- Often they are just copied from another theme
- The same for CSS
- A common CSS where themers base theirs on would be nice
- Make more use of the "C" in CSS (cascading)
- A common CSS where themers base theirs on would be nice