diff --git a/.gitignore b/.gitignore index 717d41c..1a4195c 100644 --- a/.gitignore +++ b/.gitignore @@ -10,4 +10,5 @@ mf2py.egg-info/ nbproject/ venv/ *~ -poetry.lock \ No newline at end of file +poetry.lock +site/ diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..993fea9 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,167 @@ +# Change Log +All notable changes to this project will be documented in this file. + +## 2.0.0 - 2023-12-07 +The mf2py library is excited to transition into 2.0. This version increase incorporates months of work from contributors, informed by active discussions among implementers and users. + +This release officially deprecates support for versions of Python lower than 3.8. + +Below are the changes we have made in this release. + +### New Features +- Enable `img_with_alt` by default (#184) +- Add timezone offset normalisation (#206) +- Add option for exposing DOM for embedded properties (#208) +- Add srcset support (#209) +- Add language support (#210) +- Add option for metaformats support (#213) + +### Changes +- Remove `img_with_alt` option entirely (#200) +- Resolve implied photo relative paths (#205) +- Make relative URLs in embedded properties absolute (#201) +- Fix whitespace in plaintext conversion (#207) +- Replace `dict_class` with standard `dict` (#196) + +### Tests, Library and Documentation Maintenance +- Update tests to include alt texts by default (#190) +- Add Windows and macOS tests (#198) +- Use poetry for dependency management (#189) +- Deprecate Python 2 support (#179) +- Lint code with `black` and `isort` +- Add linting CI actions (#193) +- Move from `nosetests` to `pytest` (#186) +- Add 3.11, 3.12 and drop pypy from test matrix; upgrade poetry action (#204) +- Prepare tests to test options (#214) +- Bring README doctests up-to-date (#215) + +## 1.1.3 - 2022-06-28 +- reduce instances where photo is implied (#135) +- always do relative URL resolution (#138) +- VCP now handles tz offsets without leading zeros (#142) +- implement id parsing (#143) +- fix outdated syntax causing SyntaxWarning (#157) + +## 1.1.2 - 2018-08-08 +- add parsing for iframe.u-*[src] (#116) +- bug fix: reduced implied urls (#117) +- bug fix: don't collapse whitespace between tags +- specify explicit versions for dependencies +- revert BeautifulSoup copying added in 1.1.1 due to bugs (eg #108) +- misc performance improvements + +## 1.1.1 - 2018-06-15 +- streamline backcompat to use JSON only. +- fix multiple mf1 root rel-tag parsing +- correct url and photo for hreview. +- add rules for nested hreview. update backcompat to use multiple matches in old properties. +- fix `rel-tag` to `p-category` conversion so that other classes are not lost. +- use original authored html for `e-*` parsing in backcompat +- make classes and rels into unordered (alphabetically ordered) deduped arrays. +- only use class names for mf2 which follow the naming rules +- fix `parse` method to use default html parser. +- always use the first value for attributes for rels. +- correct AM/PM conversion in datetime value class pattern. +- add ordinal date parsing to datetimes value class pattern. ordinal date is normalised to YYYY-MM-DD +- remove hack for html tag classes since that is fixed in new BS +- better whitespace algorithm for `name` and `html.value` parsing +- experimental flag for including `alt` in `u-photo` parsing +- make a copy of the BeautifulSoup given by user to work on for parsing to prevent changes to original doc +- bump version to 1.1.1 + +## 1.1.0 - 2018-03-16 +- bump version to 1.1.0 since it is a "major" change +- added tests for new implied name rules +- modified earlier tests to accommodate new rules +- use space separator instead of "T" +- Don't add "00" seconds unless authored +- use TZ authored in separate `value` element +- only use first found `value` of a particular type `date`, `time`, or `timezone`. +- move backcompat rules into JSON files +- reorganise value class pattern parsing into new files +- add datetime_helpers to organise datetime parsing rules +- reorganise tests +- remove Heroku frontend, point to mf2py-web and python.microformats.io instead in README. +- remove Flask and gunicorn requirements +- add debug info with description, version, url and the html parser used + +## 1.0.6 - 2018-03-04 +- strip leading/trailing white space for `e-*[html]`. update the corresponding tests +- blank values explicitly authored are allowed as property values +- include `alt` or `src` from `` in parsing for `p-*` and `e-*[value]` +- parse `title` from `` for `p-*` resolves #84 +- and `poster` from `