Releases: jackdewinter/pymarkdown
v0.9.20
Version 0.9.20 - Date: 2024-05-30
This release focuses on completing the work to get the documentation up to date and in the new read-the-docs format. Some user issues were addressed, but this was mainly to get the documents into good shape for release.
To view the new documentation, go to ReadTheDocs.
Added
- Issue 1075
- Complete redo of advanced extensions documentation.
- Issue 1079
- Complete redo of advanced rules documentation.
- Issue 1083
- Complete redo of api documentation.
- Issue 1081
- Added "plugins info" extension to show current configuration.
Fixed
- Issue 1015
- Fixed issue with double tabs within fenced block
- Issue 1077
- Fixed issue with previous cleanup
Changed
- None
Version 0.9.19
This release focuses on getting the documentation up to date and in the new read-the-docs format. Some small issues were addressed, but this is mainly to get the documents into good shape for release.
To view the new documentation, go to ReadTheDocs.
Version 0.9.18
Version 0.9.18 - Date: 2024-03-18
This release focuses on getting the feature list complete for a version 1.0 release in the first half of 2024. This release was mainly fixes addressing the new "fix" functionality for a number of the rules, as well as issues with tab characters.
PLEASE NOTE. We have an extensive test suite, but we can always use your help with scenarios that we have not thought of. If you run into a situation that causes a bad parsing or other exception, please let us know.
A lot of the work we are doing to prepare for the new releases is centered around extra cases for tab characters as well as the newer fix functionality. Please report any issues with these features to help us make it better for others.
Added
- Issue 990
- added ability to use a TOML file in
pyproject.toml
format with the
--config
command line flag
- added ability to use a TOML file in
Fixed
- Issue 992
- Verified behavior of Rule Md009, fixing some small issues
- Issue 994
- Verified behavior of Rule Md029, adding configuration for starting ordered
lists from integers greater than 1
- Verified behavior of Rule Md029, adding configuration for starting ordered
- Issue 1001
- Verified behavior of rules Md019 and Md021, fixing issues with Md021
- Issue 1003
- Verified behavior of rule Md037 with more types of inline elements
- Issue 1007
- Verified behavior of rule md023 with more cases, especially tab characters
- multiple cases of fixing the rule and multiple cases of fixing the parser
- Issue 1015
- Fixed issue with split tab and a simple list indent
Changed
- Issue 944
- verified that all existing fix tests are parameterized
- new fix tests for rule going forward will require this
- Issue 1005
- verified behavior of rule Md039
- added link reference defintion's link title to the previous list
of link title and image's link title for examination
- Issue 1007
- changed GHA workflow to be more precise when unable to start remote job
v0.9.17
Version 0.9.17 - Date: 2024-02-05
This release focuses on getting the feature list complete
for a version 1.0 release in early 2024. This release marked the
start of moving documentation from this repository to the more
curated ReadTheDocs.
Some notable additions/changes are:
- taking a second pass at the outputs from the recent
fix
addition, re-verifying
the output and fixing any issues - cleaning up documentation to properly note what type of whitespace is used
in the core and well as various extensions and plugins- at the same time, clearly followed the specification on what kind of whitespace
to use, instead of allowing unicode whitespace by default
- at the same time, clearly followed the specification on what kind of whitespace
- for parsers like Python-Markdown, used in the MkDocs tools, added Rule Pml101
to handle the different indentation requirements- note that this new rule give advice against Md007, so only one of the two
rules should be enabled at any one time
- note that this new rule give advice against Md007, so only one of the two
Added
- Issue 975
- Added a new rule Pml101 to deal with "anchored list indents"
- This adds support for
Python-Markdown
and other parsers like it- Used by tools such as
mkdocs
to build documentation sites
- Used by tools such as
- Defaults to an indent of 4 that starts from the beginning of the line or
after a block quote start - Updated documentation for Md007 to mention Pml101 and when to use it
- Issue 983
- Added base foundation for new documentation, publishing on
read-the-docs.
- Added base foundation for new documentation, publishing on
Fixed
- Issue 929
- second try, specifically missing github blob reference in urls
- Issue 945
- inconsistent splitting of whitespace caused some issues
- went through all strip() calls and ensured that they have the
specific type of whitespace identified and documented
- Issue 964
- final fix states needed verification and fixing of any issues
- uncovered and fixed issues in Md007, Md019, and Md029
- Issue 977
- fixed issue with md019 continuing to search for text blocks once the
heading was completed - verified that Md021 does not have the same issue, but added tests to be sure
- fixed issue with md019 continuing to search for text blocks once the
- Issue 981
- added documentation for Rule Pml100
- cleaned up mentions of whitespace in pragma and front matter extensions
- Issue 986
- initial setting of log level to DEBUG with
--stack-trace
command line
flag not working as expected - fixed to properly set log level to DEBUG for early application debugging
- initial setting of log level to DEBUG with
Changed
- Issue 966
- adjusted fix for Md009 to remove any trailing whitespace if the line is within
an Atx Heading
- adjusted fix for Md009 to remove any trailing whitespace if the line is within
v0.9.16
Version 0.9.16 - Date: 2024-01-20
This release is going to focus on getting the feature list complete
for a version 1.0 release in early 2024. To a large extent, this
involves adding the "fix" feature for some rules, and double checking
the output of many of the existing rules, looking for missing issues.
Some other notable additions/changes are:
- the
--continue-on-error
command line flag allows PyMarkdown to
continue processing after any tokenization error or plugin error- while we hope this is not necessary long term, it is useful
- added
py.typed
file for any API users- this allows mypy to understand the typing included with the
PyMarkdown API
- this allows mypy to understand the typing included with the
- more parameterized tests
- borrowing a pattern we have observed, transitioning scenario tests
over to this new pattern - any plugin with the new Fix feature has parameterized tests
- borrowing a pattern we have observed, transitioning scenario tests
Added
- Issue 618
- Ability to tell PyMarkdown to fix issues
- Not every plugin supports fix, see
pymarkdown plugins list
for
the current list of plugins and fix status
- Issue 802
- Extension: Extended Autolinks
- Issue 803
- Extension: Strikethrough
- Issue 805
- Extension: Task List Items
- Issue 808
- Rule MD004 - Added fix options
- Issue 809
- Rule MD007 - Added fix options
- Issie 813
- Rule MD019 - Added fix options
- Issue 814
- Rule MD021 - Added fix options
- Issue 816
- Rule MD023 - Added fix options
- Issue 817
- Rule MD029 - Added fix options
- Issue 820
- Rule MD035 - Added fix options
- Issue 821
- Rule MD037 - Added fix options
- Issue 822
- Rule MD038 - Added fix options
- Issue 823
- Rule MD039 - Added fix options
- Issue 825
- Rule MD048 - Added fix options
- Issue 931
- Rule MD005 - Added fix options
- Issue 938
- Rule MD027 - Added fix options
- Issue 940
- Rule MD006 (disabled) - Added fix options
- Issue 941
- Rule MD030 - Added fix options
- Issue 946
- Added
--continue-on-error
command line flag to "ignore" errors
and to keep on processing.
- Added
Changed
- Issue 806
- Documentation updated to denote fixes.
- Issue 812
- Rule MD014 - Changed documentation to describe why not autofix
- Issue 827
- Finished research on which rules are fixable and sorted.
- Issue 901
- noticed cases where
len(x)
was being used instead ofx
ornot x
- noticed cases where
- Issue 913
- making proper use of is_xxx_end function from MarkdownToken class
- Issue 934
- fix mode scans multiple times, with each scan producing lots of logs if
on DEBUG - first fix was to allow a new command line option to suppress logs on any
scan in fix mode past the first one - other fix was to make a clearer message when two rules trigger on the
same field of the same token
- fix mode scans multiple times, with each scan producing lots of logs if
- Issue 936
- change documentation for rules that will not have a fix
Fixed
- Issue 929
- Improper links in README.md when viewed at PyPi.org.
- Issue 930
- Fixed issue of missing
py.typed
file.
- Fixed issue of missing
Completed
- Issue 827
- researched annotated each rule
- rules "in queue" have no annotation yet, ones that have fixes have docs
updated, ones that are not eligible have reason why
v0.9.15
Version 0.9.15 - Date: 2023-12-05
This release is mainly to fix issues related to technical debt. The PyMarkdown project takes Markdown and generates a token stream to represent that Markdown. To verify that the tokens are correct, HTML output is generated and matched against reference implementations of the specification. If those pass, the tests then try to recreate the Markdown from the information in the tokens. So, to pass a single test, the Markdown must generate tokens without any assertions, generate the correct HTML, and be able to recreate the Markdown that it parsed.
The issues fixed include some issues that fixed assertions, caused improperly formed HTML, and caused improperly formed Markdown. The majority of these issue involved tab characters and containers.
Added
- None
Changed
- None
Fixed
- Issue 731
- see issue for details. fixed issues with unorder-bq-ordered that need more examination in the future
- Issue 828
- list new items within block quotes were not always rendering properly in Markdown, required changes to markdown regen
- Issue 829
- fixed issue with BlockQuoteData instance not being passed back properly. as a result, one closing of a block quote was not noticed by another closing further down the line
- Issue 832
- partially fixed by other work, partial issue with the HTML output showing spaces instead of tabs, could be slightly different versions of commonmark tests
- Issue 833
- not handling the split tab properly in these cases
- Issue 834
- issues were tabs that were split on the same line as a list start
- Issue 835
- a double block quote followed by a fenced block in a single block quote was not properly closing
- Issue 836
- these cases were hitting split tab cases within processing for fenced code blocks
- Issue 837
- these cases were split tab cases where the text to compare to its detabified forms was incorrect, resulting in a failed match
- Issue 838
- extra tab was showing up in double list scenarios where indented block start was split over the last list and the indented block
- Issue 839
- handling of split tabs within lists was not added at all, causing an assert to fire
- Issue 840
- was not properly looking up in tabbed map when rendering
- Issue 841
- fixed issue with assert
- had commented out branch because no cases were found, finally found one
- spawned other issues to fix less serious issues
- Issue 842
- fixed problem with HTML and lists and split tabs causing assertions
- spawned other issues to fix less serious issues
- Issue 843
- whitespace check not being suspended for one check caused the html block not to be closed
- Issue 848
- indent spacing within containers causing tab to not be changed back properly
- Issue 849
- in cases with double lists, split tab can sometimes get missed
- Issue 850
- some of the lines we adding whitespace for both the bq indent (already taken care of) and the list, resulting in too many spaces
- tab support added to those cases
- Issue 852
- fixed bad tokenization. previous fix was improper, causing strings to be improperly indexed into to fix spacing issue
- spawned other issues to fix less serious issues
- Issue 854
- "fixed". not sure why this happened, and will probably open another issue to properly figure this out at a later date
- in cases where a list is within a block quote, and the next line is a paragraph continuation that fails the requirements for a "normal" list continuation, this fix was required.
- Issue 857
- fixed along with Issue 840, just filed separately
- Issue 878
- a doubly indented list with a new paragraph continuation line starting with multiple tabs was not capturing the first tab properly in the list
- Issue 888
- during fixing of 731, found some outside cases which were throwing asserts as they were outside of normal paths
- mostly dealt with proper spacing with block quotes nested within lists.
- Issue 889
- cleaned up issue with MD032 firing with nested blocks.
- Issue 891
- fixed up Markdown issues with regenerating. Cause was improper adding of an extra newline in the leading spaces
v0.9.14
Version 0.9.14 - Date: 2023-10-31
This release is mostly to incorporate a number of small fixes and additions.
Behind the scenes, we spent a while looking at the roadmap and trying to figure
out the best path going forward. Part of that was experimenting with different
forms of testing, to see how applicable they would be to this project. That
work will be starting soon and be incremental. It also pointed out a need for
better documentation, which will also be incremental going forward.
That experimentation lead to a couple of changes:
- Front matter is now interpretted as strict YAML, and not as some mashup of rules.
This was decided on as it easier to explain and document. This may cause some
existing front-matter settings to not work as expected, especially validation
of the front-matter itself and case-sensitivity on front-matter key fields. - Added a new pragma command
disable-num-lines
to handle disabling rules for
a given count of lines.
Added
- Issue 776
- implement
disable-num-lines
pragma command
- implement
- Issue 786
- added extension to disallow html, per GFM
- added rule PML100 which detected the same thing, but does not fix
Changed
- Issue 750
- started work on making the tests more compact and efficient
Fixed
- Issue 774
- was following "weird" rules, changed to allow for standard YAML parser to
determine validity - changed rule
md001
to look for case sensitive front-matter key name instead
of case sensitive per switch to full YAML processing
- was following "weird" rules, changed to allow for standard YAML parser to
- Issue 791
- html blocks inside of 2+ levels of block quote was asserting
- slight change to surrounding code to deal with less than case
- Issue 793
- list block end with no paragraphs was causing an assert with MD027
- double checked assert, is not needed and was just preventative
v0.9.13.4
This is a small patch release to deal with some issues found during the
last release cycle.
Note: noted there were some issues with the pymarkdown_test project and
giving false positives. Will be looking into that for the next release.
Fixed
v0.9.13.3
Missed something during the release process.
Will be improving checkout process at https://github.com/jackdewinter/pymarkdown_test , so please check there for more information.
v0.9.13
Version 0.9.13
This release had some new features, but the most interesting one of all is the start of the work on the fix mode
that has been requested. It is invoked by invoking the scan engine with -x-fix scan
instead of scan
. It is still in the early stages, but you can experiment with it and rules md001, md009, md010, and md047 for which fix mode has been implemented. Note that all the documentation will not reflect fix mode until it is further along, but try it out if you would like!
In addition, because of requests, the following two features and one bug fix have been addressed:
- YAML support
- YAML support is provided for default configuration using the
.pymarkdown.yml
and.pymarkdown.yaml
file- note that the
.pymarkdown
file is checked first, and if present, YAML
default files will not be loaded
- note that the
- YAML support is provided for the command line
--config
argument- if the specified file does not parse as JSON, PyMarkdown will attempt to
parse it as YAML
- if the specified file does not parse as JSON, PyMarkdown will attempt to
- YAML support is provided for default configuration using the
- Return Code Schemes
- the
--return-code-scheme
argument accepts eitherdefault
orminimal
default
is the normally return codes for PyMarkdownminimal
returns a code of 0 even if no files were found or if there were
any rules triggered
- the
- Rule MD010
- The rule was not dealing with tabs in code-blocks properly
- Fixed so that any line that contains a code-block does not trigger the rule
Added
- Issue 618
- Alpha pass at fix mode
- Rules md001, md009, md010, and md047 support fix mode, but not documented
- Issue 691
- Allow YAML for configuration files
Changed
- Issue 723
- Moved test version of transform to markdown into application directory
- Issue 728
- Moved code from transform modules (html and markdown) into token classes
- Refactored modules to put them in more consistent directories
- Issue 744
- Added ability to change return code profile
- Issue 746
- Moved scanning related code from main.py to new file module
Fixed
- Issue 737
- Rule MD010: Added code to not fire on fenced code blocks