forrest-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ross Gardler <rgard...@apache.org>
Subject [RT] Including Plugin documentation in Forrest website
Date Tue, 26 Oct 2004 23:42:33 GMT
Background
==========

Way back in February I described a use case for building sites from 
other sites. Nicola Ken joined the discussion saying he had a similar 
need for the Incubator site. Now the issue seems to have arisen again 
with the possible use of Forrest as an Apache wide publishing system.

The original thread starts at 
http://marc.theaimsgroup.com/?l=forrest-dev&m=107652065930310&w=2

Nicola jumps in here 
http://marc.theaimsgroup.com/?l=forrest-dev&m=107657256318416&w=2 (which 
is where it starts to get focused, as usual ;-)

Why Now?
========

The need for this functionality is now upon Forrest itself. With the 
creation of plugins it is now necessary to provide information on the 
Forrest site about the available plugins.

We could maintain a list of plugins within src/documentation, but this 
is wasteful as each plugin should come with its own documentation and 
examples, so why duplicate effort? In addition it is hoped that other 
projects will develop plugins for Forrest. We need a technique that 
means we can automatically include details about their plugins on our 
site without the need to maintain them ourselves.

Solution
========

The good news is I have a solution that is currently working (although a 
little buggy)

(NB, if you read Nicola Kens post linked to above this implements 
"1-subsite mounting")

Within the IMSManifest plugin is a mechanism for building sites that 
contain other sites. The src for the site is placed in a repository. 
This could be any kind of repository, XML database, webdav, SVN, website 
etc. (although right now only website is supported). At build time the 
IMSManifest of the site to be included is inserted into the parent site 
structure. This aggregation is then used to build the site. The result 
is a seemless integration of the two or more sites, in addition any 
level of nesting of sites is supported.

For an example see http://www.burrokeet.org, everything under the 
Documentation/BurrokeetHow-To menu item is from an included site from 
the repository.

You can see the repository at http://www.burrokeet.org/repositoryData/ 
(see HowTo folder for sources, the main site sources are in the Website 
folder).

The joining of the two sites is done through a special entry in the 
IMSManifest file that indicates another site should be included. An URL 
is used to indicate the repository to be used and the subsite to be 
included from that repository.

The Way Forward
===============

1) Make the forrest site use IMSManifest plugin and use the embedding 
functionality from there (the IMSManifest is not as friendly to edit as 
site.xml and tabs.xml are automatically generated from it, which gives 
less control over them)

2) Move this functionality into Forrest Core and make it work with 
site.xml (as originally proposed in the two mails linked to above)

3) Move the functionality to its own plugin (again making it work with 
site.xml)

4) some other method?...

I would prefer to see 2 happen (and am willing to do the work). It will 
not break my IMSManifest plugin and will not break backward 
computability. This is a very powerful feature that I believe deserves 
to be in core, but I have no problem with implementing one of the other 
solutions if that is what the consensus is.

Current Known Bugs/Limitations
==============================

- It is only possible to import whole sites (shouldn't be a problem to 
add an XPATH statement to the URL that will select the nodes required)

- tab highlighting is broken (should be easily fixed, I just haven't got 
around to it yet)

- I have not tested the impact on performance, I suspect Cocoons caching 
will mean there is little impact, but I do not understand how the 
caching works on Cocoon to be sure, and I have not tested this


Comments, questions, thoughts?

Ross

Mime
View raw message