git @ Cat's Eye Technologies Feedmark / master HISTORY.md
master

Tree @master (Download .tar.gz)

HISTORY.md @masterview rendered · raw · history · blame

History of Feedmark
===================

<!--
Copyright (c) 2019-2024 Chris Pressey, Cat's Eye Technologies
This file is distributed under an MIT license.  See LICENSES/ directory.
SPDX-License-Identifier: LicenseRef-MIT-X-Feedmark
-->

0.17
----

*   Dropped `--output-links` option so that we could also drop the
    `beautifulsoup4` requirement.  There is now an example script
    supplied in `eg/script` that shows how such can be implemented.
*   The `parser` module/layer no longer calls the Markdown renderer.
    (The `Document` and `Section` models still do, in their methods,
    which are still called during parsing; but there is an argument
    that this could/should be delayed using lazy evaluation.)
*   Dropped the `Markdown` package requirement as well; the `marko`
    HTML renderer is used, when HTML output is requested.  (This did
    necessitate adding `python-slugify` as a dependency, however.)
*   When writing out Markdown, the single link reference block at
    the end of the document is written out in sorted order.

0.16
----

*   Support for Python 2.x has been dropped.
*   Parsing of Markdown is now done with (a bundled fork of)
    Frost Ming's [marko](https://codeberg.org/catseye-forks/marko)
    package, with the aim of improved compliance with the major
    Markdown formats in use today (CommonMark, GFM).
*   When writing out Markdown, all link references are collected in
    a single block at the end of the document.
*   Each Feedmark document can now have a "header comment" section
    that appears just before the document properties.
*   Some internal refactoring, and reformatting using `black`.

0.15
----

*   Updated dependency on beautifulsoup4, to support recent Pythons.
    Python 2.7 is still technically supported, but no longer tested.
*   Fixed how anchors are generated, handling `.` and `'` characters
    more correctly.

0.14
----

*   Generated anchors are now compatible with those on GitHub
    (multiple spaces are not coalesced into a single hyphen.)
*   Fixed bug with schema checking where, if multiple documents
    were given on command line, not all documents were checked.

0.13
----

*   The default interpreter for the `feedmark` script is now
    `python3`.
*   The test harness runs tests under Python 2, or Python 3,
    or both, depending on what's available.

0.12
----

*   Added support for hyperlinks on images on entries.
*   Added test cases for correct handling of images on entries.
*   Format of entry images in output JSON has changed: each image
    is now represented as a dictionary with two or three keys
    rather than as a list with two elements.

0.11
----

*   Fixed a bug with `--rewrite-markdown` under Python 3.x.

0.10
----

*   Format of refdex files has changed: an entry can now have a
    key `filenames`, which is like `filename`, but can be a list.
    This is backwards-compatible on input, and you can pass the
    flag `--output-refdex-single-filename` to cause the output
    from `--output-refdex` to strip all but the last filename
    and produce only `filename` entries on output.
*   Parser now allows trailing `###` on h3-level section headers.

0.9-2019.1015
-------------

*   Minor release to work out issues with `setup.py`.

0.9
---

*   Added conventional `--version` option to `feedmark`.
*   Added `setup.py` so that Feedmark can be treated as a Python
    package.

0.8
---

*   Added `--htmlized-json` option which, when using `--output-json`,
    converts Markdown to HTML5 every place it is present in the JSON.
*   Added `--ordered-json` option which, when using `--output-json`,
    serializes the properties (of the document and of each section)
    as an array of two-element arrays, instead of a JSON object.

0.7
---

*   Renamed `link-to-anchors-on` property to `link-target-url`.
*   Improved unit tests.

0.6
---

*   Uses the `toc` extension that ships with `markdown` to generate
    heading-anchors (instead of a home-rolled function for that.)
*   Heading anchors are generated on all header levels, not just `h3`.
*   Format in which links extracted from documents are output in JSON
    has changed.  Each link is a dictionary, includes more info.
*   Able to output links that don't appear in any Feedmark section.
*   Ability to archive targets of links has been split off into a
    separate utility (called `yastasoti` and hosted in its own repo)
    which consumes the new link JSON format.
*   Tests are an actual Python unittest suite, which passes when run
    under Python 3.

0.5
---

*   Format of JSON written by `--output-json` cleaned up; documents
    are given in a list, sections in a document are also in lists.
*   Functionality for generating a table of contents has been removed.
    Example script that generates a ToC from `feedmark --output-json`
    is provided in the `eg` directory instead.

0.4
---

*   Checking links now works for local files; it checks they are in
    the directory specified as `--article-root`.
*   Archiving targets of links is "more idempotent":
    *   if the file has not changed, it is not changed on disk
    *   if it has changed, the old file is renamed to a datestamped name
    *   `--archive-missing-only` only downloads if not already have it
*   Writing the anchor `id` of `h3` elements is now much faster, as it
    is now done with a Markdown extension instead of BeautifulSoup.
*   `preamble` of a document is now formatted the same way as the `body`
    of each section in the document.
*   HISTORY document.
*   Other small fixes.

0.3
---

*   Output JSON with `--output-json`.  Also `--by-publication-date`.
*   Output links with `--output-links`.
*   Multiple input refdexes can be read with `--input-refdexes`.
*   A prefix can be virtually appended to every filename in the
    input refdexes using `--input-refdex-filename-prefix`.
*   Output a table of contents.
*   Some internal refactoring.
*   Rudimentary test suite.
*   Other small fixes.

0.2
---

*   Check documents against schema.
*   Check, and archive the targets of, links in documents.
*   Output Markdown and HTML from input Feedmark documents.
*   Rewrite Feedmark documents in-place.
*   Create and use a refdex file (reference-style links.)
*   Other small fixes.

0.1
---

*   Initial release.
*   Ability to create an Atom feed from a Markdown document.