<?xml version="1.0"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<status>
  <developers>
    <person name="Ross Gardler" email="rgardler@apache.org" id="RDG" />
    <person name="Dave Brondsema" email="brondsem@apache.org" id="DB" />
    <person name="Sjur Nørstebø Moshagen " email="sjur@apache.org" id="SNM" />
    <person name="David Crossley" email="crossley@apache.org" id="DC" />
    <person name="Volunteer needed" email="dev@forrest.apache.org" id="open"/>
  </developers>
  <changes>
    <release version="0.2-dev" date="not-released">
      <action type="fix" context="docs" dev="DC">
        Fix some broken documentation links.
      </action>
      <action type="fix" context="code" dev="SNM">
        Some small changes to allow for colons in table titles.
      </action>
      <action type="fix" context="code" dev="SNM">
        Allow more items as (the first) symbol(s) within inline elements.
      </action>
      <action type="add" context="code" dev="SNM">
        Removed unneccessary block of reserved characters inside em, strong and
        code elements.
      </action>
      <action type="fix" context="code" dev="SNM">
        The list of cases for when NOT to add a space after a text segment was
        incomplete, thus several constructs contained spaces not in the original
        input. Now fixed for all common punctuation in the Latin script. The
        list can easily be extended if need be.
      </action>
      <action type="fix" context="code" dev="SNM">
        Corrected a regression introduced in the previous fix.
      </action>
      <action type="add" context="code" dev="SNM">
        Made i18n support in the wiki plugin configurable, by way of an xml
        configuration file. The default is false.
      </action>
      <action type="fix" context="code" dev="SNM">
        Added support for definition list constructs (<code>;Term:definition</code>).
        Fixed numerous spacing bugs: extra or missing spaces after inline elements.
        Improved support for inline formatting and breaks, especially in tables.
        Fixed processing of no-link constructs: <code>[[text]</code> should be
        rendered as <code>[text]</code>, earlier it was rendered as <code>[[text]</code>.
        The plugin should now support all relevant
        <a href="http://jspwiki-wiki.apache.org/Wiki.jsp?page=TextFormattingRules">Apache JSPWiki markup</a>.
      </action>
      <action type="fix" context="code" dev="SNM">
        Fixed locationmap resource lookup, so that it is possible to override the
        wiki parsing grammar and the wiki2xdocs stylesheet in the projecct source tree.
      </action>
      <action type="add" context="code" dev="SNM">
        Added handling of localised content in wiki format, that is, filenames following the
        <code>filename.locale.wiki</code> format, where each <code>locale</code> variant
        contains a localised version of the content.
      </action>
      <action type="add" context="code" dev="RDG">
        Added handling of Google Code wiki format. See <a href="site:sample/google">sample</a>.
      </action>
      <action type="fix" context="code" dev="RDG" fixes-bug="FOR-680"
        due-to="Sjur N. Moshagen, Gavin">
        Corrected processing of nested lists so that sub-lists are properly
        nested within the LI of the outer list, thus bringing the output in
        accordance with the HTML DTD.
      </action>
      <action type="add" context="code" dev="RDG" importance="high">
        Use locationmap for resolution of resources and files. Resources are exposed via
        {lm:wiki.*}
      </action>
    </release>
    <release version="0.1" date="not-released">
      <action type="fix" context="code" dev="DB" due-to="Evrim ULU" due-to-email="evrim@core.gen.tr">
        Handle quoted links.
      </action>
      <action type="add" context="docs" dev="DB" fixes-bug="FOR-283">
        Added sample for MoinMoin format documents.
      </action>
      <action dev="RDG" type="add" context="admin">
        Initial plugin code extracted from Forrest core.
      </action>
    </release>
  </changes>
  <todo>
    <actions priority="high">
      <actions context="src">
        Address http://issues.apache.org/jira/browse/FOR-283
      </actions>
    </actions>
  </todo>
</status>
