<?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>
<!-- Define here the Title of the Context you want to display in the Changes pages.
       id = the context value of actions
       title = Title of the Context
  -->
  <contexts>
    <context id="code" title="Changes to the Code Base"/>
    <context id="docs" title="Changes to Documentation"/>
    <context id="admin" title="Changes to Project Administration"/>
    <context id="design" title="Changes to Design"/>
    <context id="build" title="Changes to Build"/>
  </contexts>
  <changes>
    <release version="0.2-dev" date="not-released">
      <action type="add" context="code" dev="RDG" importance="high">
        <p>
          Width of output text is now configurable from
          <code>forrest.properties.xml</code> using the property name
          <code>text.page.width</code>.
        </p>
      </action>
      <action type="add" context="code" dev="RDG" importance="high">
        Use locationmap for resolution of resources and files. Resources are exposed via
        {lm:text.*}
      </action>
    </release>
    <release version="0.1" date="not-released">
      <action dev="RDG" type="update" context="admin">
        Changed name to bring into line with new naming conventions.
      </action>
      <action dev="RFT" type="add" context="code">
        Created the initial plugin based on Ross Gardler's document2txt.xsl
        stylesheet.
      </action>
      <action dev="RFT" type="add" context="code">
        Initial cut of the common stylesheet which contains text
        functions that currently handles newline, carriage returns,
        underlines, borders.
      </action>
      <action dev="RFT" type="add" context="code">
        Preliminary handling of section indenting, section title
        underlining, note/warning/fixme elements and list handling.
      </action>
      <action type="add" context="code" dev="RFT">
        Implemented text wrapping
      </action>
      <action type="add" context="code" dev="RFT">
        Implemented nested elements such as lists inside lists,
        tables inside tables, lists inside tables, etc.
      </action>
      <action type="add" context="code" dev="RFT">
        Table handling
      </action>
      <action type="add" context="code" dev="RFT">
        Hanging indents on ordered, unordered and definition lists
      </action>
      <action type="add" context="doc" dev="RFT">
        Updated the plugin documentation with features and limitations.
      </action>
    </release>
  </changes>
  <todo>
    <actions priority="high">
      <action context="code" dev="RFT">
        Since text output would include both simple text and POD (Plain Old
        Documentation), incorporate the POD (Plain Old Documentation)
        stylesheet into this plugin as well.
      </action>
    </actions>
  </todo>
</status>
