Updated Cocoon to -D "2003/06/22 12:00". This fixes a bug where files with unknown extensions were written with 'null' appended to their filename. Allow any sort of content inside resources/, which will be made available to the sitemap but not automatically copied to the generated site output. Add a flag for email obfuscation, and turn it off by default. Fixed bug that showed the krysalis-site skin in IE browsers from a remote site to start with a font size of 100. Also made the font size script kick in at the start of the page rendering, as before it resized only after all the page was loaded, which was not nice to say the least. Added alternative menu/tab selection algorithm, that uses tab attributes in site.xml instead of relying on physical site structure (directories). In PDFs, section titles are no longer numbered/reduced in size indefinitely. Upgraded FOP from 0.20.4 to 0.20.5rc3a. Upgraded Cocoon to M2. Make FAQ 'Questions' section more legible, and avoid duplicate numbering in FAQ PDF. Links to subdirectories no longer blow up the command-line rendering. The 'backcopy' command will now copy all types of custom content (*.xmap, skinconf.xml, xdocs, images, stylesheets, DTDs). Add a @indexfile attribute to tabs.xml, so that the user can specify which file the tab links to. Enable link rewriting for *.ehtml files. Enable link rewriting for images and figures (@src attribute). Add <elaborate> to the FAQ <question> element, which lets one provide some background (elaboration) in the FAQ body without cluttering the FAQ list. Allow plain text (instead of just block-level elements) in the FAQ's <answer> element. Added a forrest.maxmemory property specifying the maximum amount of memory allocated to the JVM. Useful for rendering large PDFs. Added forrest.jvmargs property for other JVM options. Get breadcrumbs working in Mac IE 5, and don't capitalize the first letter of each link in the forrest-site skin. Fixed bug where absolute paths to images were created in the build/site directory. Get the Wiki syntax support working again. Created new document-v12 DTD module, containing all DTD improvements made since 0.4 was released, and use it to define new v12 versions of all DTDs (document, howto, faq, etc). The doc-v12 DTD removes many restrictions in the DTD that were found to be unnecessary, and is closer to the HTML content model. A list of changes can be found in the doc-v12 sample page. Fixed rendering of images in PDF for images not located in the resources/images dir. Add automatic (doctype-triggered) handling of todo and changes XML files, regardless of file name or location in the directory tree. The root changes.html and todo.html files are still generated from status.xml. On the forrestbar, added a community menu, made 'AskSam' a resources submenu, moved the search part to the right. In skins/common/xslt/html/tab2menu.xsl, renamed template 'unselected-tab-href' to 'calculate-tab-href', potentially breaking 3rd party skins. Fix menu bug where links with #fragment identifiers wouldn't display. Get images in PDFs working with FOP 0.20.x. This requires the user to download jimi.jar from Sun and place it in the lib/core (src distro) or WEB-INF/lib (binary distro) directory. On krysalis skin: fixed print css, also using text instead of logos and adding the footer, and changed link colors to blues and red for active links. On krysalis skin: fixed left navigation bar icons and sizing using divs instead of list elements, made all links underlined, added space to the bottom of the page text, and changed font increase-decrease links to buttons. On krysalis skin: users can select font size, reworked left-bar inclusion of page section titles, made them only one level deep, moved buttons after the left navbar, added publish date on top right navbar. For both Forrest and krysalis skins, added single background pixel line below unselected tabs and made selected tab more prominent. Fixed java.lang.NoClassDefFoundError: javax/servlet/ServletInputStream error. Enabled multiple output links on each page (print - pdf - xml) They can be enabled by adding the relative disable-*-link elements and setting them to false. Allow users to determine which URLs Forrest should ignore, by overriding stylesheets/filterlinks.xsl (and other stylesheets in that directory). Upgraded to 2003-03-11 version of Cocoon Docbook stylesheet improvements. Forrestbar is now Phoenix compatible. Added links for both possible local forrests (port 8080 and 8888), and make them configurable in properties.xml. Thanks to Mark Vovsi for pointing it out. Fix a bug with forrest.antproxy.xml introduced in 0.4, which caused unresolved '${project.home}' variables. Refactored the "transform-to-document" sitemap resource to do the the xinclude, linkrewriter, and idgen steps. Added XInclude capability to the documents. Remember to disable validations for files with xincludes as the xinclude is not performed during validation. Added DocBook 4.2 and simplified DocBook 1.0 to the schemas and to the validation catalogue. Added Docbook and simplified Docbook rendering capability for documents. Use meaningful fragment identifiers in krysalis-skin. Correctly ignore @role='pdf' credits in HTML krysalis-site skin now works better with multi-level menus. Added the CSS validation logo, fixed all skins' CSS to validate, minor fixes due to the switch to full HTML-loose DTD. Normalize space in acronym titles. Make the forrestbot shell script work under Cygwin. Got skins working in the forrestbot. Added a minimal template skin. The problem with starting a new forked JVM is that all properties get lost. This makes it able to use one forrest.properties for all multiple projects, and just create the docs from there. The menu is now limited to only pages in the current subdirectory and below. Added the cwiki stylesheets that were missing and an example in the fresh site seed. Make the forrest-site and krysalis-site skins more printer friendly by using CSS media type to hide navigations. the avalon-tigris skin already works well, the forrest-site one still needs tweaking. Use full loose DTD specification for html pages. This also makes the avalon-tigris skin show the same in Mozilla and IE. Switched all loglevels to ERROR. Added page for ForrestBar on the site with a simple link and an autoinstall link to the forrestbar.xpi generated by Gump every day. Correctly serve swf files. Fix site: and ext: rewriting in book.xml, ihtml, ehtml and cwiki files in subdirectories. If build/webapp/content/xdocs/* is more recent than src/* equivalent, forrest webapp won't clobber it. A new forrest backcopy command will copy build/webapp/content/xdocs content back to src/documentation/content/xdocs. forrest-site skin is now HTML 4.0.1 compliant. The compliancy validator logo can be switched off with a skinconf.xml element. Indirectly referenced files in skins (eg images in CSSurl()'s) are now copied across to the rendered site. Previously, we relied on spidering to cover the URI space, which has proved insufficient. Lots of FAQ improvements:
  • Improved URI space by using @id attributes as the #fragment-identifier for <faq> and <part> elements.
  • Number FAQ entries and categories
  • Added back-links from FAQ entries to the menu
  • Process tags in <question> in menu entries
  • Indent FAQ text
  • FAQ sample added to seed project
Thanks to Joerg Pietschmann and Ralf Hauser for the suggestions.
On avalon-tigris skin it's now possible to add a mysite.css file to customize the style. An example that can be used is from chaperon.sf.net. Also added a rounded corner to paragraphs, and many minor fixes. Fixed the annoying link highlighting on the krysalis skin due to the border. Removed the border, now it highlights fine. Added <acronym> tag. Added a means to override the check for existing content: forrest seed -Dskip.contentcheck=yes Thanks to Tom Klaasen. Added the possibility to use svg files instead png images. That is, if an image is found in the images dir that is svg and the browsers requests a png with the same name, the png is created from the svg automatically with batik. Added the possibility to use wiki files in xdocs instead of xml files. They must have a .cwiki extension, and follow the chaperon wiki format ATM. Updated part of the editor so that it now can save files in wiki format. Still needs more work. Updated Batik Block so that now PNGs can be created correctly from SVG. Added "Edit Page" button to edit the current page in Composer. Still needs an icon. Added the possibility to use html files in xdocs instead of xml files. They must have an .ihtml extension. HTML fragment identifiers for sections are now meaningfully named, based on the section title, rather than document-id()-generated characters. Fixed site regeneration bugs where changing the skin in forrest.properties had no effect after the first build. Added copyright statement to PDF footer (10pt, light-grey text). if a skinconf.xml 'credit' element has a role='pdf' attribute, this text will be used instead. Thanks to Keiron Liddle. Now all files in src/documentation/content (except xdocs) and src/documentation/resources/images are copied across when Forrest generates a static site. This fixes the problem when an unparseable file links to another, and Cocoon can't crawl (and hence copy) the linked-to file. An example of this are CSS url('foo.png') image refs (so krysalis-site will now work properly). Also, large batches of pregenerated files like Javadocs will now be copied across instead of individually traversed. New site.xml file in content/xdocs. This is used to implement <link href="site:internalURI"> 'semantic' links, <link href="ext:externalURI"> aliases to external links, and renders book.xml files obsolete. See Menus and Linking for more info. Updated some documentation, especially Forrestbot Introduction Now files present in the content dir are correctly linked and copied verbatim by the CLI. The wellknown files are given with the correct mime-type, and links in html and xml are followed. Update to 2002-12-26 Cocoon. Tweaked forrestbar, added a sub-project menu for Jakarta, fixed download link and added submenu for tools and gump. Added rss capability to changes generation. Added latest krysalis-site skin, using common templates where possible. There is a changes2rss stylesheet that still needs sitemap changes to run. Now even the selected tab retains a link, to be able to easily select the main page of that tab even if it is "current". Fixed a bug in the search form where there was no space between search term and 'site:' term. Search form also no longer requires Javascript. Allow special handling of tab hrefs with #anchor references in them. By default, such menu links are always clickable. Fixed a bug where the no menu entry is 'selected' when in subdirectories. Updated avalon-tigris skin by merging what was in CVS here and what was used in Avalon with its Cocoon-generated site. The visual effect is the same to the current framework and Exalibur Avalon sites. Now error reporting in shbat CLI runs should work and show the cause of the error; before it was just reporting [broken link]. Updated latest Cocoon jars: chain metamodule name set to "forrest", and it is used instead of the default one. Fixed a bug where multiple menu entries are highlighted if the filenames share a common prefix. Allow configuration of a project local-catalog and the entity resolver verbosity level, via forrest.properties configuration. This replaces tokens in the default cocoon.xconf Fixed a bug in forrest.bat, which would fail if run from a different drive to that Forrest was installed in. Fix bug where the webapp would break due to missing XML jars under JDK 1.2/1.3. Moved credit and host logos to bottom left corner on forrest-site skin. Make the seed project use the correct 'built with Apache Forrest' logo instead of Cocoon + Centipede logos. Rewrite skins to share a common block of XSLT, which is used via <xsl:import>. This should make skin maintenance much easier. Removed the 'basic' skin, to be shortly replaced with something much more maintainable. Removed some images (built-with-cocoon.gif, centipede-logo-small.gif) from the skins, and moved them to src/documentation/resources/images, as they are Forrest-specific. Added enhancements to status.xml to comply with the needs for a complete status file, like other "STATUS" text files at Apache. Stylesheets not yet done. Added buttons for nightly Gump runs and local forrest. Corrected and completed existing interface, and made buttons flat (the bar is slimmer too). We need icons for the new buttons.
Fixed bug where validation of xdocs was not descending into sub-directories. Fixed bug where changes to the breadcrumb links in skinconf.xml were ignored until the Forrest binary was rebuilt, or the project build/tmp/ deleted. Webapp now works under JDK 1.3 (parsers weren't being copied) Added a convert dir in the resources with stylesheets and buildfile to help convert Anakia and Maven-based sites. Validate project sitemaps and choice of skin Validation of important core configuration files at build-time using RELAX NG. New document Community Resources including draft "Apache Statistics". Fixed selected menu link (meant to be inactive and yellow) Now an id attribute on any XML element below <body> will be rendered as an anchor which can be linked to. Fixed webapp redirect problems under Tomcat and (sometimes) under Jetty. Added alpha system for editing content in the webapp. To try it do "forrest run" and point the browser to http://localhost:8888/edit/ . Added avalon-tigris skin. Removed unmaintained skins: avalon-site, jakarta-site, xml-apache-site, Removed the dependency that the default "site" target had on clean-site. It means that running "forrest" will not delete the current files in ./build/site/** . Now Cocoon serves a file directly if the filename matches the one in ./src/documentation/contents/** . Put the internal matches in a separate pipeline with internal-only="true". Now site builds do not delete files in build/site that are included in the Ant list of default excludes, like CVS info. Included Jetty in the shbat distro. type "forrest run" to have the ./build/webapp dir contents be run in a local web server, starting from http://localhost:8888/index.html . Added a docbook2document.xsl stylesheet to library/xslt. XML validation is now fully configurable through a hierarchical set of forrest.validation.*{includes,excludes,failonerror} properties. Validate XSLTs in user skins and resources/stylesheets directories. Added new document Standards Compliance Thanks to Robert Koberg. Added Jing "RELAX NG validator in Java" and initial grammar for skinconf.xml files. These config files now get validated during the build. Enhanced forrest-site skin's tabs. Any URL (not just directories) can now be tabbed with a new 'href' attribute. There is an improved 'longest match' algorithm for deciding which tab is on which is more robust than the old one. Fixed a bug where having a tabs.xml link to a file not otherwise mentioned in book.xml caused a broken link. See forrest-dev discussion Fixed all broken links in the Forrest site. Simplified the sitemap-stylesheet contract. Instead of 'dir' and 'resource' parameters with varying meaning, there is just one 'path' parameter. Allow user to specify what XML files to validate via forrest.validate.{includes,excludes} properties. Fixed broken PDFs in most subdirectories. Added a subdirectory to the template site and fixed all broken links. XML doc files are now validated before rendering with the 'validate' target. Uses OASIS catalogs provided by Forrest, optionally augmented by user project catalogs. shbat distribution no longer requires Ant to be preinstalled. Now, nothing but a Java installation is needed. Building Forrest no longer requires a network connection (for downloading Centipede). It is buildable by typing 'ant' or with the provided build scripts. Fixed ClassNotFoundException when running on JDK1.4.x Allow xml:space='preserve' attribute on <p> element, which preserves space without the changed font and block display that <code> uses. Fixed a bug where the log files weren't being created. Thanks to Vladimir Bossicard for reporting. User projects can now override the default cocoon.xconf and logkit.xconf files, by placing these files in src/documentation/conf PDFs for faq, changes and todo now work. "Change History" images (update.jpg, add.jpg etc) are now provided by default by Forrest (in images/), and need not be supplied by user projects. User projects can now add custom classes and jars to Forrest doc builds. Useful for custom sitemap components, or overriding Forrest-provided jars. The locations where Forrest expects doc files to be is now configurable via properties, that can be set in forrest.properties. User projects may now specify their own sitemap, overriding the Forrest-provided one. Made forrest-site skin fully generic, usable with any project. Skins are configured through an external 'skinconf.xml' file, specified by the project. Fixed bug where multiple copies of the same image where generated, one for each directory. Now all image links are page-relative, leading to a single copy. Fixed tab links, which were previously hardcoded and forrest-specific. They are now page-relative. tabs.xml file entries no longer have to end in '/'. Added new document Your Project - getting started with using Forrest Added to the "forrest-site" skin the ability to split source code larger than 80 chars in two or more lines. Replace the "forrest-site" skin with the new "bert" skin. Added the forrestbot - infrastructure and configuration for remote project building. Added breadcrumb trail script from the Avalon site skin. Updated Cocoon to 2.1-dev to use xsltc and new CLI status messages. Logs are in the build/work/WEB-INF/logs directory and the list of broken links is in the build directory. added NekoDTD-based DTD documentation using a custom Cocoon Generator draft forrest toolbar for Mozilla Initial import of Libre facility - replacement for */book.xml Added a draft DTD for the Gump Descriptor forrest.xgump Forrest website is being automatically built and published to krysalis.org Designed a new skin for the Forrest documents. Particular attention to cross-browser issues. Added initial "Dream List" by harvesting statements from the forrest-dev mail list. Added simple xsl stylesheet for forrest.xgump. In IE6 and Mozilla 6 it renders using this, in older ones it uses the more simplifies CSS version. Added Forrest to Gump runs. Added preliminary version of a scarab-like skin. Added simple css stylesheet for forrest.xgump. In IE and Mozilla 6 it renders. Fixed links in Forrest home page and added: contributing, mailing list, list archives, who we are. Updated Centipede stuff to latest changes: - added lib/endorsed dir for endorsed jars that are put in global calsspath - changed the build scripts to not make direct reference to jar files - added "examples" dir in src and creation of examples jar in buils - added "testmodule" target to be run before committing stuff - added "gump" build to be run by Gump Merged forrest needed info in forrest.xgump. Updated project descriptor: now it should be usable by Gump. Added basic Forrest descriptor. Refactored site generation stuff to use skins; still need to integrate with xforrest descriptor. Added jakarta-site, xml-apache-site, cocoon-printer skins. Imported Centipede as a build system. Ensure that initial DTDs are valid and that the initial XML instances can be validated using these DTDs and OASIS Catalogs. Initial Import
Rework the menu generation system to make it more flexible. See thread Fixing menus Define an 'object model' for Forrest sites, in the form of a Cocoon pipeline, that defines
  • The directory structure of a site
  • Site metadata (what currently lives in skinconf.xml + gump.xml stuff)
  • Perhaps site.xml metadata for pages?
This info can then be made public to the sitemap (via XMLFileModule attributes) and the stylesheets (through document(cocoon:/...) calls or inlined with source XML).
Finalise the project-definition DTDs, like status.xml and module.xml; try to come up with a common format with others on community.at.apache.org. The document-v11 DTD needs to rationalise the use of link|jump|fork elements and clarify their use in the documentation. See email discussion - DTD/XSLT mods: link and jump and DTD questions Eventually move to something more similar to xhtml 1.1 or 2-draft. Nicola Ken suggests adding 'a' as an altrernative tag for 'link'. Figure out a way of rendering pages that aren't linked to from anywhere.
Finish the RSS feed for status.xml. Aggregate status.xml and project.xml to have all needed project data. Continue development of the editing system in the webapp. Needs bugfixes, xml2wiki stylesheet and enhancements to the wiki grammer especially to define sections and titles. Add stylesheets to render the enhanced status.xml file contents. Allow the obfuscation of mailto links to be configurable. In skinconf.xml, change 'disable-search' to 'enable-search'. Enhance the initial forrest toolbar for Mozilla. See email discussion draft forrest toolbar for Mozilla. Optimise the CLI to deal with Javadocs, and other large sets of pre-generated content. For example the Javadocs are placed in src/documentation/content/javadocs, they will be traversed, but far too slowly to be of practical use. Fix things so docs can be edited in src/*, and have the changes appear immediately in the webapp. Involves creating/using an InputModule for passing 'forrest.skin' and other properties to the sitemap, so we can avoid the @skin@ hack, and a bit of forrest.build.xml hacking. There are some @tokens@ in a forrest-site CSS file that also need some sort of in-place modification. Perhaps a @token@-to-value Transformer could be the same ${variable}-to-value Transformer mentioned in the RT [3]. Act on 'Entities in XML docs' RT. I can implement Stefano's suggested solution quite easily, but is such limited functionality worth the cost of introducing a proprietary ${variable} syntax? Maybe.. Best short-term alternative seems to be using the XNI XInclude processor for pre-validation inclusion. Skinify Miles Elam's forrest.iguanacharlie.com CSS mockup. The rounded tabs would require the CSS image traversal fix, but it's not essential. Docs. A lot of the info on the website is outdated. With metadata from site.xml, it would at least be possible to indicate how old the doc is, and perhaps indicate its relevance from a small controlled vocabulary. Develop a mechanism for supporting legacy URLs. See email discussion - redirects with static sites Create a Forrest Maven plugin. This is probably the biggest single way to widen Forrest's exposure and attract new users. Ensure that PHP-like stuff can be enbedded easily in Forrest files and document it. Add the PATCHQUEUE system to Forrest, as used by cocoon-dev Continue the development of the Libre facility - replacement for */book.xml Start a community doc where we list such tools as forrestbar, config files for XMetaL, etc. Migrate to a decent schema language, primarily so that we can use namespaces in XML docs, allowing things like XInclude, in-line metadata, in-line SVG, Jelly snippets, or anything else users can make a Transformer for. Streamline the process of adding support for new schemas. Ideally we'd have an auto-download system, eg 'forrest-update docbook' would fetch and install the Docbook DTDs, create catalog entries, sitemap mods etc. Create a forrest-users list, so we can have flaming rows on forrest-dev over arcana without annoying users :) Make a CSS Generator and a stylesheet to serialize it to text. Add a document about authoring in XML for beginners..
Make all DTD removals to necessarily need a version change. http://marc.theaimsgroup.com/?l=forrest-dev&m=103897161523879&w=2 http://marc.theaimsgroup.com/?l=forrest-dev&m=103899964318989&w=2 Images removed from default Forrest forrest-site and avalon-tigris skins Users of these skins who may use the deleted images in a project-specific skinconf.xml file. Many earlier users of Forrest fall into this category, as these images were in the default skinconf.xml in pre-0.2 versions of Forrest.

Removed these files, as they were Forrest-site-specific and not used directly in skins:

src/resources/skins/avalon-tigris/images/ant_logo_small.gif src/resources/skins/avalon-tigris/images/built-with-cocoon.gif src/resources/skins/avalon-tigris/images/centipede-logo-small.gif src/resources/skins/avalon-tigris/images/add.gif src/resources/skins/avalon-tigris/images/remove.gif src/resources/skins/avalon-tigris/images/update.gif src/resources/skins/basic/images/ant_logo_medium.gif src/resources/skins/basic/images/built-with-cocoon.gif src/resources/skins/basic/images/krysalis-compatible.jpg src/resources/skins/forrest-site/images/built-with-cocoon.gif src/resources/skins/forrest-site/images/centipede-logo-small.gif

If your project's skinconf.xml uses skin/images/built-with-cocoon.gif, skin/images/centipede-logo-small.gif or skin/images/ant_logo_small.gif, please:
  • Copy the referenced images into your project's src/documentation/resources/images directory, or wherever the project.images-dir property points.
  • Change the skinconf.xml reference from skin/images to images.

The removal of {add,remove,update}.jpg images should have no effect.

The pdf link on the document pages now appears only if explicitly stated in the skinconf.xml file. All users that use and want to keep the pdf version of each page.

Added mandatory 'disable-pdf-link' element in skinconf.xml

To keep pdf links on each page, add a 'disable-pdf-link' in skinconf.xml set to false, as for other similar links (consistent behaviour). To make the file validate, please use the page DTD contained in the forrest distro in ./src/resources/conf/skinconf.xml