forrest-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thorsten Scherler <thors...@apache.org>
Subject Re: [proposal] Distributing themes
Date Tue, 03 Jan 2006 11:51:39 GMT
El mar, 03-01-2006 a las 13:25 +1100, David Crossley escribió:
> Ross Gardler wrote:
> > I propose that themes be distributed as plugins rather than having them 
> > all in the themer plugin. ...
> 
> The reasoning sounds fine. I won't comment further until
> we hear Thorsten's view.
> 
> The problem with the plugin approach is that there
> is too much extra weight of configuration files, e.g.
> skinconf.xml forrest.properties and other templates
> and default config, just to show one doc.
> 
> That is probably an orthoganal issue. We need to
> solve it for plugins too.
> 
> It is also creating a maintenance problem for the
> Forrest project. Synchronising and updating those is hell.
> 

Yeah that is the main point. We actually would keep a lot of stuff that
is not needed for the theme. IMO extra samples and related resources
should be integrated differently.

Like I wrote as answer on the initial theme commit the theme could be
kept like a skin. Actually theming is working nearly the same as skins
in this regards. The idea is to use the skin download mechanism to
request the theme (if not installed on the system) from a theme
repository. One can specify more then one repository (including file
system) to search for the requested skin. 

This description is based on what we have, but it has the problem of the
heavy use of ant and forrest.properties. I did not adopt the new
configuration system till now that is the reason why you can ATM specify
*one* project specific themer in the forrest.properties:

+##########################################
+#   *advanced configuration* - you can specify which plugins you want
+#   use internal.
+#project.themer=
${forrest.home}/build/plugins/org.apache.forrest.plugin.output.themer

With this property it is possible to override the default themer and use
a custom themer and its themes. That needs to be more specific and
rewritten under the thought of a repository.

I thought about to move this property to the forrest.properties.xml and
rename it to themer-rep. I would prefer to have a clean separation
between plugins and themes.

Another problem is with the proposal and the current above mentioned
project.themer that each theme would have to be a themer itself where it
would be sufficient to only provide theme specific contracts and
modifications (.../resources/themes/*). I expect that a theme will
generally use 90% of the common theme and only provide 10% extra
contracts/css/... The idea is that common theme is the core and all
other themes extend/modify the behavior of this theme.

Anyway, back to the sample thought of Ross 
"A second advantage is that the theme can then provide local docs that 
demonstrate the unique features of the theme."
in /resources/themes/coat/ we can add a dir called samples or
documentation where we store this stuff if somebody needs it, but it
should be optional. 
.../resources/themes/coat/documentation/*

Resuming all above, I am with you that we need a system to package
themes and make them downloadable but disagree about the overhead to do
it with a plugin.

I agree as well on the naming convention, so how can we use the old
fashion skin download mechanism for themes? 

Basically it is the same:
- contact theme-server
- search theme 
- if found download theme.zip and extracted it to the build theme rep
(e.g.
$FORREST_HOME/build/plugins/org.apache.forrest.plugin.output.themer/resources/themes)
- if not contact next theme-server if exists

WDYT?

> At one stage, Reinhard did some nice experiments at Cocoon
> with centralised config for various projects. Probably still
> in cocoon-trunk.
> 
> -David
-- 
thorsten

"Together we stand, divided we fall!" 
Hey you (Pink Floyd)


Mime
View raw message