Releases: pulldown-cmark/pulldown-cmark
v0.10.3
The main change of this release is the simd
feature was not being used in the escape functions since the version 0.10 due to a mistake during the separation of the crate pulldown-cmark-escape
.
The crate pulldown-cmark-escape
has been updated to the version 0.10.1.
What's Changed
- fix: fix dead code warning from nightly compiler by @rhysd in #876
- Eat all spaces after line break in link title by @notriddle in #877
- Mark
Rule
as a block item by @notriddle in #879
Full Changelog: v0.10.2...v0.10.3
v0.10.2
New release with some fixes and improvements. Note the 0.10.1 is missing (yanked from crates.io) due to a conflict with the clap version and the Rust minimum version (1.74 now instead of 1.70).
Thanks to all people that contributed to this release!
What's Changed
- Limit link def expansion by @notriddle in #845
- Do not look for HTML tags that start with backslash by @notriddle in #849
- Count a blank line at end of indented code block towards list by @notriddle in #851
- Use same limit for refdef as inline links by @notriddle in #854
- Don't exit
scan_attribute
with the ix pointing at block quote by @notriddle in #858 - Check indentation on the closing fence relative to the line by @notriddle in #862
- Adjust strikethrough flanking rule to better fit Rustdoc Crater run by @notriddle in #864
- perf: cargo-wizard default recommendations for runtime perf by @Martin1887 in #868
New Contributors
- @ehuss made their first contribution in #848
- @jimblandy made their first contribution in #865
- @max-heller made their first contribution in #866
- @blinxen made their first contribution in #875
Full Changelog: v0.10.0...v0.10.2
v0.10.0
This is a huge release after a a long time without a major release, with many bugfixes and several new features. Thanks to all people involved!
Breaking Changes
- feat!: allow custom headings attributes with optional value. Fixes #634 by @Martin1887 in #638
- feat!: metadata blocks. Fixes #580 by @Martin1887 in #641
- Make
html
andescape
modules optional by @jfrimmel in #519 - feat: separate escape.rs in another crate by @Martin1887 in #838
- Allow dynamically generated header ids and classes by @SergioBenitez in #614
- Add separate enum for Tag ends by @marcusklaas in #517
- add link identifiers into emitted tags by @Gozala in #436
- Add a separate mode to parse footnotes the same way GitHub does by @notriddle in #654
- feat!: separate inline HTML and HTML blocks by @Martin1887 in #692
- Use generics for broken link callback by @ollpu in #701
New Features
- Add task list with a list item's first paragraph by @marcusklaas in #558
- feat:
TextMergeStream
utility to merge consecutive text events by @Martin1887 in #686 - Reads markdown from file by @phoepsilonix in #726
- feat(utils): text events merger with offsets by @Martin1887 in #743
- Add reject-broken-links CLI option by @PoignardAzur in #807
- feat: convert
Tag
to_end()
andFrom
impl by @Martin1887 in #824 - feat(escape): separate attribute and text HTML by @notriddle in #830
- Update to CommonMark 0.31.2 by @notriddle in #834
- Backport footnote handling without needing blank lines between them for old footnote format by @GuillaumeGomez in #836
- Implement missing cell cutoff to stop quadratic results by @notriddle in #837
Bugfixes
- Fix parser bug where link label gets broken by ] in code span by @lukas-code in #643
- fix: strikethrough can be intra-word by @Martin1887 in #648
- fix: shift right overflow panic in debug mode in rare cases by @Martin1887 in #652
- fix: tables can interrupt paragraphs by @Martin1887 in #653
- fix(parse): rare error searching in the emphasis stack by @Martin1887 in #650
- Skip leading space on leading pipe in
scan_table_head
by @notriddle in #665 - Fix index out of bounds when parsing GFM footnote by @mgeisler in #667
- Allow lowercase letters in HTML declarations by @notriddle in #668
- Fix fuzzing empty list items by @mgeisler in #669
- Fix, and document, some table/paragraph interrupt corner cases by @notriddle in #672
- Include trailing backslash at all break points in paragraph by @notriddle in #676
- Block quotes interrupt paragraphs even with no space at start by @notriddle in #675
- Fix table/paragraph interruption when nested by @notriddle in #679
- Use correct
both
flag when pushing remaining delimiters to stack by @notriddle in #682 - Fix #684 by @Martin1887 in #685
- Fix spec violation on empty-list-item-cannot-interrupt-paragrph rule by @notriddle in #681
- fix: empty text events in ATX headings with trailing
#
by @Martin1887 in #683 - Fix incorrect scan of bad email address by @raphlinus in #688
- Fix infinite loop with metadata blocks with indented lines by @Martin1887 in #690
- Add special handling for backslashed table pipes by @notriddle in #699
- Fixes
rustdoc::bare_urls
lint by @GuillaumeGomez in #719 - Fix elided lifetimes and unused lifetimes errors by @GuillaumeGomez in #723
- Allow arbitrary blank lines within list by @notriddle in #728
- Single pipes alone on lines are not tables by @notriddle in #732
- Use original run lengths to judge multiples of three by @notriddle in #730
- Fix oversight in table escape parsing by @notriddle in #736
- Check that parens in link def are nested by @notriddle in #738
- Fix emphasis stack truncation bug by @notriddle in #740
- Fix emphasis run length delimiter lower limit bug by @notriddle in #742
- fix: compilation error in utils.rs after merge 701 by @Martin1887 in #746
- Track underscore lower bound by
% 3
modulo by @notriddle in #748 - Parse
[^]
as a link by @notriddle in #750 - Do not subtract list item indent if it has more than one blank line by @notriddle in #752
- Do not parse hard line breaks when doing link label blocks by @notriddle in #754
- Ignore block synstax when determining emphasis can_open/close by @notriddle in #756
- Allow up to three spaces indentation before footnote definition by @notriddle in #759
- Do not accept footnote definitions with line breaks by @notriddle in #761
- Apply laziness rules to link definition by @notriddle in #765
- When popping a list, clear
begin_list_item
state by @notriddle in #763 - Parse footnote definitions below the first line of nested blocks by @notriddle in #767
- Parse settext headers with higher priority than linkdefs by @notriddle in #769
- Clean up some more gratuitous differences in footnote parsing by @notriddle in #773
- Parse inline nested footnote definitions by @notriddle in #771
- Do not treat backslash at end of block as hard break by @notriddle in #775
- Correct instructions for running specs by @ollpu in #777
- Read lazy paragraph continuations off of refdefs by @notriddle in #782
- Allow setext headers to interrupt link definitions by @notriddle in #780
- Fix incorrect space handling at paragraph/linkref boundary by @notriddle in #783
- Fix handling of newlines in nested inline link by @notriddle in #784
- Allow setext headers to interrupt link def insides by @notriddle in #790
- Avoid updating linkdef when title isn't followed by NL by @notriddle in #792
- Trim spaces off start and end of link reference by @notriddle in #794
- Don't eat blank line when parsing unclosed fenced code by @notriddle in #796
- Do not allow inlines to cross over block structures by @notriddle in #798
- Fix parsing of spaces in code by @notriddle in #786
- Include last of line of link title by @notriddle in #809
- Calculate correct list indent for ordered lists by @notriddle in #811
- Do not treat zero-cell rows as valid by @notriddle in #812
- Trim spaces off end of parsed lines by @notriddle in #785
- Fix up corner cases in table and code unescaping by @notriddle in #776
- Reject table delimiter row with unexpecte...
0.9.6
0.9.5
0.9.4
0.9.3
This patch prepares the release of the minor version 0.9.3
. It's forked off 5c7881c and includes a cherry-pick of 48b5931.
Changelog
Parser
Even though this is a minor release, it changes changes how some inputs are parsed. These changes are made to comply with the CommonMark and GitHub Flavored Markdown specifications.
First, pulldown-cmark now supports strikethrough with a pair of single tildes in addition to double tildes, if the strikethrough option is enabled. For example, ~this~
is now equal to ~~this~~
and will be parsed like this.
The second change fixes a bug in the parser where a specific edge case with brackets and inline code ([`]`]
) was incorrectly parsed as a link. This change should not affect most users of pulldown-cmark.
impl Debug for Everything
All public types in the pulldown-cmark library now implement the Debug
trait.
PRs included in this release
New Contributors
- @djc made their first contribution in #604
- @gifnksm made their first contribution in #611
- @joelparkerhenderson made their first contribution in #566
- @rhysd made their first contribution in #621
Full Changelog: v0.9.2...v0.9.3
v0.9.2
This release includes fixes for a few panics and other minor bugs.
0.9.1
Fixes minor parsing bug in nested lists.
0.9.0
This release brings a number of changes.
New features
- Thanks to @lo48576, pulldown now optionally supports custom header ids and classes for headers. Set
ENABLE_HEADING_ATTRIBUTES
in the options to enable. - Users can now access reference definitions, information that was previously only exposed internally.
- Pulldown is now CommonMark 0.30 compliant.
Changes
- The function signature for the broken link callback has changed slightly to allow for
FnMut
functions.
There have also been a number of (small) parsing bug fixes.