
* Changes from 2.1.0 to 2.1.1:

  This is a bugfix release, to correct a problem with a missing import
  of 're' in PDB input on Windows.

  There is one change to the plugin API, which will affect third party
  plugins: the "open" function now takes an additional argument,
  the protocol which is being used by the current chain.  This change
  allows plugins to support more than one input protocol at runtime.
  The argument list for the "open" function is now:

    self, chain, next, protocol, basename

  The documentation has not been updated to reflect this change yet.

* Changes from 2.1.0 to 2.2.0 :

  - Web Spider: The new WebInput plugin retrieves multiple pages from
    a web site, similar to the zillions of other web-page-conversion
    utilities that are available.  Since it is still somewhat
    experimental and incomplete, it is not available from the GUI and
    you must activate it explicitly by using the --spider command-line
    option.  (Eventually, it will become the default handler for HTTP
    URLs and local HTML files.)

    Pages retrieved by the WebInput plugin can currently be processed
    by the HTML plugin, which will concatenate them into a single
    document with bookmarks before each new page.

  - [Developers] Plugin open() methods are called with a third
    argument, the input protocol.  This can be used by plugins that
    behave differently when multiple protocols are input.

* Changes from 2.0.0 to 2.1.0 :

  - Added a "task" system to make user interfaces easier.  A "task" is
    a pre-selected combination of plugins and options which are used
    to do some common operation with Pyrite Publisher.  Tasks are
    registered by plugins according to what seems convenient -- for
    example, the zTXT plugin defines tasks like "Convert a Doc to
    zTXT".

    From the command line, a task can be selected using the '-T'
    option; a list of tasks can be displayed with the '--list-tasks'
    option.  Additionally, if argv[0] is the name of a task, it will
    be set automatically.  (The installer will eventually make
    symlinks for them.)

    In the GUI, task selection is a popup menu on the main screen.
    
  - The Doc output plugin no longer has a '-T' or '-C' command-line
    option; '--type' and '--creator' still work though.
      
  - Pyrite Publisher now has a GUI.  (Run the "pyrpub" program with no
    arguments to use it.) The command-line interface is still
    considered the primary one; the GUI is provided mainly to make
    Pyrite Publisher accessible to a wider range of users.  The GUI
    uses wxPython and seems to work on both Unix and Windows.  Its
    functionality is still somewhat limited, and it isn't particularly
    pretty, but it does work...
    
  - Added the first steps toward database support.  Currently this
    consists of a CSV parser, JFile 5 construction plugin, and a
    type-guessing plugin which tries to guess some field metadata when
    none is otherwise supplied.  (Database code should be considered
    alpha-quality; it works but doesn't do anything fancy yet, and
    is likely to change dramatically in the future.)
  
  - Added the ability to directly install databases using an
    appropriate desktop application.  For output types where it is
    appropriate, the '-i' option requests direct installation.
    Installers are plugins, so support can be added in the future for
    different desktop software.

    Pyrite Publisher will attempt to choose an installation method
    according to what desktop software you are using.  If it doesn't
    make the right choice, you can pick an installer using a line in
    ~/.pyrpubrc like this:

        set installer="jpilot";

    Most installers will delete the converted file after installation,
    but you can keep it around by using the "keep_installed_files"
    config file property or the --keep command line option.  (JPilot
    is a notable exception to this, since the original file must be
    present at installation time.)
    
    Currently available installers are:

        jpilot - queue for installation in JPilot
	pisock - use python-libpisock to install immediately
	
    
  - Added conversion of z-code interactive fiction games to Palm
    format.  The resulting databases can be used to play the games
    with interpreters such as Pilot-Frotz and Frobnitz.  This
    conversion is registered to MIME type application/x-zmachine
    (which is what the ifarchive.org web server reports) and filenames
    *.z[35678].
  
  - Pyrite Publisher will now attempt to make a better guess at the
    MIME type of an input file if it is coming from an FTP site or
    from a web site that reports it as plain text.

  - Added generic input filter support to the standard input plugin.
    If you have an external program that can convert a MIME type that
    Pyrite Publisher doesn't handle to one that it does, that program
    can now be run automatically.  To define filters put lines like
    this into ~/.pyrpubrc:

      inputfilter "application/pdf" "text/plain" "pdftotext %s -"

    The filter command string must contain a single %s which is
    replaced by the name of a file containing the input data, and the
    filter must produce its output on stdout.

  - The DocOutput plugin has been renamed to Doc.  Both it and the
    zTXT plugin now use the PDBOutput plugin to create files instead
    of doing it natively, which means that common options can now be
    added to the PDBOutput plugin where they will apply to
    everything.

  - There is now a '--unique-names' option to the PDBOutput module,
    which appends a (hopefully) unique string to the end of every
    database name, to avoid collisions when you have more than one
    document with the same title.  (Thanks to James Aspnes for the
    idea.)

  - [Developers] Plugin path finding has been rewritten to take cycles
    into account, i.e. it will now work correctly with plugins which
    input and output the same protocol or might otherwise create loops
    in the filter path.  Also, the priority of a path is lowered by 1
    for each plugin in it, making the shortest path preferred when
    there would otherwise be more than one with the same priority.

* Changes from 1.99.3 to 2.0.0:

  - Added regular expression bookmarking to the Text and TaggedText
    plugins.  To use it, specify one or more '-r' options on the
    command line, each of which specifies a regular expression to
    search for.  The following restrictions apply:

    - Multi-line matches are not supported.

    - If the regular expression contains grouping parentheses, group 1
      will be used as the bookmark title; otherwise, the bookmark
      title will be the entire match.

    - The bookmark is placed at the beginning of the line on which the
      match occurs.  Note that this is the beginning of the line
      *before* paragraph reflowing, so if the match happens in the
      middle of a paragraph, the bookmark will probably be placed a
      bit before the matched text.

  - Added automatic bookmarking of HTML headers.  To use this feature,
    use the '--bookmark-headers' command line option.  The argument to
    this option is a string consisting of one or more of the digits 1
    through 6.  For example, if you use "--bookmark-headers 234" a
    bookmark will be placed for <h2>, <h3>, and <h4> elements.

  - Reorganized how the bookmark/annotation options work in the HTML
    plugin.  All bookmarking and annotations are turned off by
    default, and the options have been renamed accordingly.  If you
    want them turned on by default, use the ~/.pyrpubrc file to set
    them.

  - Added a --footnote-marker-format option/property to the BasicDoc
    assembler plugin.  (Currently the only thing that uses "footnotes"
    is link-marking in HTML.)  The default is '[%d]'.  Note that the
    other assemblers (RichReader, TealDoc) inherit this option at
    present, but they will probably get their own markup-based
    way of marking footnotes in the future.
      
  - Added a TextOutput plugin which dumps converted text, bookmarks,
    etc. to standard output instead of writing to a database.  By
    default it just dumps the text, making it useful for converting
    Doc/zTXT back to plain text, but with the -D option it also dumps
    bookmarks, annotations, and other metadata for debugging
    purposes.

  - Added a PDBInput plugin which takes input from a Doc or zTXT
    database.  It will be used automatically if you specify a filename
    or URL ending in .pdb or .prc, and its contents will be treated
    exactly like a text file.  This means that, for example, you can
    clean up Iambic and MobiPocket books by feeding them through the
    HTML plugin, add regular expression bookmarks, etc.

  - Added a CopyDoc plugin which works with PDBInput to copy a
    document including metadata like bookmarks and annotations.  To
    use this, choose a Doc or zTXT pdb/prc file as input, and specify
    -P CopyDoc on the command line.  The document text will be copied
    verbatim, along with metadata like bookmarks, the document title,
    and annotations.  For instance, you can use it to convert Doc to
    zTXT:

        pyrpub -P CopyDoc,zTXT somedoc.pdb

  - Removed all the stored-prefs related options from the zTXT output
    plugin, after being informed by the author that the next version
    of Gutenpalm won't be storing display prefs inside documents any
    more.

  - Added an output filename option (-o) to the Doc and zTXT output
    plugins.

  - Made RichReader and TealDoc heading styles configurable.
    
  - Renamed DocDBOutput -> DocOutput and RawDocStream -> RawText.
  
  - Multiple plugins can now be specified on the command line with
    multiple -P options.  The old way of using a single -P option with
    comma-separated plugin names still works too.

  - Added support for a configuration file which allows setting of
    plugin properties and priorities.

  - Added a --list-properties option which shows all plugin properties
    which are settable from the config file.

  - Removed the doctotext script, as the same thing can be done with
    the main program now.
                
           
* Changes from 1.99.2 to 1.99.3 (pre-2.0):

  This is a pre-release, and should be considered a work in progress.

  - Added a zTXT output plugin.  zTXT is the document format used by
    the free Gutenpalm reader (http://gutenpalm.sourceforge.net/),
    which uses zlib to provide significantly better compression than
    the standard Doc format.  The plugin is called "zTXT"; specify it
    with the -P option to get a zTXT instead of a Doc.  (The zTXT
    plugin has several optional arguments; check the help text for
    details.)

  - Added link annotation support to the HTML parser.  If the output
    format supports annotations (eg. zTXT) link URLs can be appended
    as annotations instead of or in addition to footnotes at the end
    of the document.

  - Added annotation tags to TaggedText, eg.
       .ANNOTATION This is an annotation
       Some text...
       More text...
       ./ANNOTATION

  - Added an output directory option (-d <dir>).
             
  - Fixed some minor bugs in the TaggedText plugin and the option
    parser.

  Pyrite Publisher is now developed using Python 2.1, and probably
  won't work on earlier versions.
  

* Changes from 1.99.1 to 1.99.2 (pre-2.0):

  This is a pre-release, and should be considered a work in progress.

  - Removed some more lingering references to Doc Toolkit and
    as-yet-unreleased plugins.

  Starting with this version, Pyrite Publisher should be considered to
  require a 2.x version of Python.  While it will still work with
  1.5.2, that is likely to no longer be true in the next version.
  

* Changes from 1.99.0 to 1.99.1 (pre-2.0):

  This is a pre-release, and should be considered a work in progress.

  - Removed a lingering reference to Pyrite from prc.py.

  - Fixed a bug in plugin importing, which would cause a NameError
    when a plugin fails to import.

  - Added command line option --DEBUG, which causes more verbose
    logging during plugin import.  Use this to see tracebacks when a
    plugin will not import.

  Note: the next version will probably require Python 2.x, or at least
  have features that will not work without it.


* Changes from Doc Toolkit 1.1.3 to Pyrite Publisher 1.99.0 (pre-2.0):

  This is a pre-release, and should be considered a work in progress.

  - Name changed to Pyrite Publisher.

  - The core has been almost totally rewritten.  The prc file access
    and Doc compression code from Pyrite is now included, and the
    plugins no longer use the Sulfur API, making this release able to
    stand completely alone.  Also, the code has been reorganized so
    that plugins are no longer in their own packages.

  - Plugins are no longer restricted to "input" and "output" types;
    they stack in arbitrary ways according to what interfaces they
    support for input and output.  The program will find the
    highest-priority path through the available plugins that will
    convert the input (based on MIME type) to some kind of output, and
    choose that as the default.  (The user can override this to some
    degree, but cannot cause non-working combinations of plugins to be
    used.)

  - The RichReader output format is now included.

  - The distributions are now built using the standard Python
    "distutils" package.



Local Variables:
mode: outline
End:
