diff --git a/README.md b/README.md index cdeb220e..30f3d26f 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ Specify it as a requirement in `Cargo.toml`: ``` toml [dependencies] -comrak = "0.24" +comrak = "0.25" ``` Comrak's library supports Rust 1.62.1+. @@ -59,7 +59,7 @@ Options: -c, --config-file Path to config file containing command-line arguments, or 'none' - [default: /Users/kivikakk/.config/comrak/config] + [default: /home/runner/.config/comrak/config] -i, --inplace To perform an in-place formatting diff --git a/changelog.txt b/changelog.txt index 42f999be..ee4eea3f 100644 --- a/changelog.txt +++ b/changelog.txt @@ -1,11 +1,65 @@ +# [v0.25.0] - 12-07-2024 + +* Discord-flavored Markdown by @liamwhite in https://github.com/kivikakk/comrak/pull/421 + * Three new extensions and two render options are added: + * `extension.underline` adds support for `__underlined__` text. + * `extension.spoiler` adds support for `||spoiler||` text. + * `extension.greentext` adds support for image board-style `>greentext`, + which isn't transformed into a blockquote. + * `render.ignore_setext` disables parsing setext-style headings. + * `render.ignore_empty_links` causes links with no text (like `[](xyz)`) to + remain in the text as-is. +* nodes: add From impls for AstNode. by @kivikakk in https://github.com/kivikakk/comrak/pull/424 + * Back by popular demand: `AstNode::from(NodeValue)`. + * Also added is `AstNode::from(Ast)`, if you have sourcepos. +* AST validation by @yannham in https://github.com/kivikakk/comrak/pull/425 + * The AST is validated when formatting a document as CommonMark in debug builds. +* Address autolink edge cases. by @kivikakk in https://github.com/kivikakk/comrak/pull/426 + * Autolinks had many edge cases where output differed from upstream + `cmark-gfm`. These have been fixed by following upstream's parser design + closely. +* shortcodes: capture all known aliases. by @kivikakk in https://github.com/kivikakk/comrak/pull/427 + * We didn't parse shortcodes containing numbers or `+`. We do now. +* Support both upstream CommonMark and GFM's differences in the base spec. by @kivikakk in https://github.com/kivikakk/comrak/pull/428 + * GFM modifies even base CommonMark output somewhat. We now support and + validate against both. +* cm: count ol items from start of each list. by @kivikakk in https://github.com/kivikakk/comrak/pull/429 + * Ordered list item numbers are normalised on formatting back to CommonMark. +* arena_tree: panic if iterator invalidation causes trouble. by @kivikakk in https://github.com/kivikakk/comrak/pull/437 + * `arena_tree` would silently stop iteration when trying to proceed from a + child that had lost its parent. It now panics instead, as the old behaviour + is incorrect and impossible to notice. +* broken reflink callback updates & big cleanup. by @kivikakk in https://github.com/kivikakk/comrak/pull/438 + * The broken reference link callback has been moved into `ParseOptions` (which + now takes a lifetime, meaning `Options` does too). + * The callback now takes a struct containing both the normalised reference, + and the original text, and the return value has changed from a 2-tuple to a + struct for clarity. + * `parse_document_with_broken_link_callback` has been marked deprecated. +* Inline sourcepos fixes. by @kivikakk in https://github.com/kivikakk/comrak/pull/439 + * Inline sourcepos was provided on a best-effort basis, but there are multiple + correctness issues which can't be fixed without significant work. + * Inline sourcepos is no longer reported in HTML output. It remains in the AST + and in XML output, but it is not reliable. See the PR for details. + * Link sourcepos is slightly better than it was when it spans multiple lines. + +## New Contributors + +* @liamwhite made their first contribution in https://github.com/kivikakk/comrak/pull/421 +* @yannham made their first contribution in https://github.com/kivikakk/comrak/pull/425 + +Diff: https://github.com/kivikakk/comrak/compare/v0.24.1...v0.25.0 + + # [v0.24.1] - 19-05-2024 -## What's Changed + * Add GH_TOKEN to release workflow by @digitalmoksha in https://github.com/kivikakk/comrak/pull/418 +Diff: https://github.com/kivikakk/comrak/compare/v0.24.0...v0.24.1 + -**Full Changelog**: https://github.com/kivikakk/comrak/compare/v0.24.0...v0.24.1 # [v0.24.0] - 19-05-2024 -## What's Changed + * Miscellany. by @kivikakk in https://github.com/kivikakk/comrak/pull/387 * Add automation to release new crates by @gjtorikian in https://github.com/kivikakk/comrak/pull/374 * build(deps): bump emojis from 0.5.2 to 0.6.2 by @dependabot in https://github.com/kivikakk/comrak/pull/393 @@ -26,7 +80,8 @@ * Autolink should ignore wikilinks by @digitalmoksha in https://github.com/kivikakk/comrak/pull/413 * Bump version to 0.24.0 by @digitalmoksha in https://github.com/kivikakk/comrak/pull/415 -**Full Changelog**: https://github.com/kivikakk/comrak/compare/0.23.0...v0.24.0 +Diff: https://github.com/kivikakk/comrak/compare/0.23.0...v0.24.0 + # [0.23.0] @@ -96,6 +151,7 @@ * XML and sourcepos support by @kivikakk in https://github.com/kivikakk/comrak/pull/232 * Add a quadratic fuzzer by @philipturnbull in https://github.com/kivikakk/comrak/pull/295 + # [0.17.1] * Fix some panics found by trivial fuzzing. @@ -106,6 +162,7 @@ Missed from the 0.17.0 changelog: * Add support for full_info_string render option by @digitalmoksha in https://github.com/kivikakk/comrak/pull/276 * chore: improve debug performance by @conradludgate in https://github.com/kivikakk/comrak/pull/283 + # [0.17.0] This contains some breaking changes from an API point of view, but output is @@ -130,6 +187,7 @@ Many thanks to @philipturnbull and @darakian of the GitHub Security Lab for bringing these issues to my attention and detailing the reproduction steps for each case. + # [0.16.0] * Track which symbol was used to mark task item as checked by @felipesere in https://github.com/kivikakk/comrak/pull/252 @@ -141,6 +199,7 @@ each case. * Add custom heading adapter by @lucperkins in https://github.com/kivikakk/comrak/pull/266 * Keep track of "^" symbol when within footnotes by @gjtorikian in https://github.com/kivikakk/comrak/pull/274 + # [0.15.0] * table: fix start_line of Table itself by @kivikakk in https://github.com/kivikakk/comrak/pull/231 @@ -157,6 +216,7 @@ each case. * Bump clap version to 4.0 and switch to the Derive API by @tranzystorek-io in https://github.com/kivikakk/comrak/pull/248 * c-api: remove by @kivikakk in https://github.com/kivikakk/comrak/pull/249 + # [0.14.0] * Add C FFI, allowing Comrak to be used from other languages. (#171, Garen @@ -165,15 +225,18 @@ each case. * Add option to specify character used for unordered list bullets in CommonMark output. (#229, Edward Loveall) + # [0.13.2] * Fix Windows build. + # [0.13.1] * Support compiling for WASM. (#222, Ben Wishoshavich) * Replace deprecated twoway dependency. (#224) + # [0.13.0] * SECURITY: Bump regex to 1.5.5. (#221, Dependabot) @@ -184,21 +247,25 @@ each case. * Line break handling adjustments. (#214, Michael Anderson) * Disable control characters in link definitions. (#219, Michael Anderson) + # [0.12.1] * Only load syntax and theme sets once, on Syntect plugin instantiation. (#197) * Match syntax highlighting language names more loosely. (#198) + # [0.12.0] * Add pluggable syntax highlighting, and default implementation with syntect. (Daniel Simon, #194) + # [0.11.0] * Allow short URLs even with non-empty path. (#191, Bernard Teo) * Expose NodeCode struct in AST. (#192, Vojtech Kral) + # [0.10.1] * SECURITY: it was possible to smuggle unsafe URLs --- like `javascript:` ones @@ -206,11 +273,13 @@ each case. (snoopysecurity) for reporting. * Recognise tables without a preceding newline. (#183) + # [0.10.0] * 0.9.1 was a semver-breaking change. * Add -o/--output CLI option. (#177) + # [0.9.1] * SECURITY: we were matching unsafe URL prefixes, such as `data:` or @@ -218,27 +287,32 @@ each case. were untouched. Please upgrade as soon as possible. (Kouhei Morita) * Add support for ignoring front matter. (#170, Eitan Mosenkis.) + # [0.9.0] * 0.8.2 was a semver-breaking change, so we're now bumping to 0.9.0. Some tests have been added to catch this in future. * Allow image/ prefix on data URIs. (#169, Daniel Sorichetti) + # [0.8.2] * Fix some lint issues. (#152, Caleb Maclennan) * Build benchmarks separately to tests. (#154) * Add support for a config file for CLI use. (#157, with thanks to AJ ONeal.) + # [0.8.1] * Add escape option to escape raw HTML instead of clobbering it. (#150, Ryan Westlund) + # [0.8.0] * 0.7.1 was a semver-breaking change. This is now 0.8.0. + # [0.7.1] * Reduce list item indentation in line with spec. (#135, Casey Rodarmor) @@ -246,64 +320,77 @@ each case. * Refactor HTML formatter escaping. (#140, Donough Liu) * Don't render

inside

tags. (#145) + # [0.7.0] * Supporting stable and newer again, since dependencies keep breaking for 1.27.0. (#134) + # [0.6.2] * Exclude unneeded files from crate. (#120, Igor Gnatenko) * Bump the twoway dependency. (#121, Igor Gnatenko) + # [0.6.1] * Add --gfm flag to CLI to enable all GitHub Flavored Markdown extensions and options. (#118, James R Miller) + # [0.6.0] * Add TaskItem variant to NodeValue. (#115, Élisabeth Henry) + # [0.5.1] * Support building on Rust versions back to 1.27.0. (#114) + # [0.5.0] * Update API so that footnote reference and definition identifiers match. (#110, Élisabeth Henry) * Update to CommonMark spec 0.29. (#112) + # [0.4.4] * Add From impl to AstNode. (#105, Sunjay Varma) + # [0.4.3] * Add a Default derive and Ast::new to make ASTs programmatically constructible. (#101, Sunjay Varma and #102) + # [0.4.2] * Add a callback to fill in broken reference links, per pulldown_cmark's Parser::new_with_broken_link_callback. (#100, Sunjay Varma) * Update to latest spec. (#99) + # [0.4.1] * Fix a bug in anchor generation; it should now be on par with GitHub's. (#97, Clifford T. Matthews) * Expose anchor generation for use in library consumers. (#94, Clifford T. Matthews) + # [0.4.0] * Invert default-false `safe` flag to default-false `unsafe_` flag. If you were not enabling safe mode before, you'll need to enable unsafe mode now. + # [0.3.1] * Keep up-to-date with the spec. + # [0.3.0] * Significant test coverage and code clean up. (#82, #83, Brian Anderson) @@ -312,24 +399,29 @@ each case. * Footnotes are now enabled via an extension option, not a flag of its own. (#87) * Extend `cmark-gfm` compatibility to include all extension and regression tests. (#87) + # [0.2.14] * Speed enhancements. (#76, Brian Anderson) * Target latest spec; bring comrak closer into line with cmark. (#81, Brian Anderson and Ashe Connor) + # [0.2.13] * Speed enhancements. (#75, Shaquille Johnson) + # [0.2.12] * Add safety options per the reference C implementation. (#67) + # [0.2.11] * Expose Arena type so users don't need to bring it in themselves (#66, Vincent Prouillet). + # [0.2.10] * Bring up to date with latest spec. @@ -337,58 +429,70 @@ each case. * Protect against stack smashing in inline processors and CommonMark and HTML formatters (#63, Brian Anderson). + # [0.2.9] * Fix a corner case in the ATX header parser (#53, Brian Anderson). * Fix grammar for scanning table marker rows (#55, Brian Anderson). * Add smart punctuation (#57). + # [0.2.8] * Add `default-info-string` argument/option to specify a default language in fenced code blocks. (Thanks to @steveklabnik for the suggestion.) + # [0.2.7] * Use [`pest`](https://github.com/pest-parser/pest) instead of regexes for lexing. + # [0.2.6] * Fixed a bug where back-to-back emphases would not be processed correctly. (#45; thanks to @SSJohns for the report.) + # [0.2.5] * Fixed a bug where an exclamation mark "!" followed by a footnote would be eaten by the parser. + # [0.2.4] * Added footnotes support. + # [0.2.3] * Added header IDs extension. + # [0.2.2] * Fix for pathological reference link parsing. + # [0.2.1] * Speed optimisations. + # [0.2.0] * The formatters no longer produce Strings themeselves; you must specify an output stream. * Speed up whitespace normalisation. + # [0.1.9] * Multibyte character fix for autolink (#35, Shaquille Johnson). * Resolve panics with tables in awkward situations (#36). + # [0.1.8] * Fix possible DoS in link parsing (#33, Demi Obenour).