Earmark 1.4.47 2024-07-12
This has been backported from RobertDober/earmark_parser#156.
It seems however important to clarify some things concerning the split between Earmark
and EarmarkParser
which
were confusing.
They are only historically related and there is no formal dependency anymore. As I am still happy to help out with Earmark but also
very relieved not to be obliged I might as well continue to do backports bugfixes (but probably not new features). However
all decision about what will happen with Earmark
and how the internal parser evolves will not be taken by me.
This release is done beacause our new maintainer asked me to make it so (couldn't resist this one) and because he accepted the PR for the backport.
Unfortunately the naming of the projects and the internal module Earmark.Parser
have made people unconfortable with bug reports.
Please note two things here.
Firstly, and most importantly, nowbody will be harsh or impolite of you file an issue in the wrong project, we'll figure it out.
Secondly I have opened an Issue about better documenting this in both projects. All comments and ideas on this topic are very much welcome.
Hopefully this will become much clearer soon.
-
Fix for #361 Kudos to bradhanks
Much work was put into Earmark
by Brad in the last months working on getting rid of warnings, typespecs and mix format
compliance, the details of which are not
really interesting in RNs, but shall be duely appreciated.
Earmark 1.4.46 2023-10-01
Again much appreciated help from José
Earmark 1.4.45 2023-09-27
More work from José to cleanup my sloppy last releases. So greatful. This one might be interesting for everyone
Earmark 1.4.44 2023-09-26
Kudos to José Valim for an important renaming task I forgot, this is only
important for users of both, Earmark
and EarmarkParser
Earmark 1.4.43 2023-09-20
Added missing erlang sources into to mix package
Earmark 1.4.42 2023-09-20
Added missing erlang sources (but only to Github)
Earmark 1.4.41 2023-09-19
Isolate from EarmarkParser
in order to prevent conflicts with indirect dependencies
on EarmarkParser
via ExDoc
.
This shall mark the end of my role as maintainer of Earmark.
Earmark 1.4.40 2023-09-12
-
Exposing all relevant
Earmark.Options
to the command line -
Updated
EarmarkParser
version to 1.4.35
Earmark 1.4.38 2023-04-29
-
PR-460 Avoid trailing slash on void elements Kudos to Jaime Iniesta
-
updating EarmarkParser to v1.4.32
Earmark 1.4.37 2023-03-03
updating EarmarkParser to v1.4.31
Earmark 1.4.36 2023-02-11
Earmark 1.4.35 2023-01-27
Just updating to use EarmarkParser v1.4.30
Earmark 1.4.34 2022-11-27
Earmark 1.4.33 2022-11-02
Earmark 1.4.32 2022-10-31
-
catching some bad options values earlier (
line
andfootnote_offset
) -
Some typoskkkk Kudos to Thiago Araujo
Earmark 1.4.31 2022-10-20
- Just using
EarmarkParser
1.4.29
Earmark 1.4.30 2022-10-01
- Just using
EarmarkParser
1.4.28
Earmark 1.4.29 2022-09-30
- Just using
EarmarkParser
1.4.27
Earmark 1.4.28 2022-00-30
Bad release (identical to 1.4.27)
Earmark 1.4.27 2022-08-11
Earmark 1.4.26 2033-06-15
Accompanying release of EarmarkParser 1.4.26
-
Also allow change of mapper function for mapping a subtree in
map_ast
Examples for this can be found here(:replace) and here(change mapper function)
just upgrading to new EarmarkParser versions
Takes advantage of the fixed regressions in EarmarkParser release 1.4.22 and therefore makes all features of the latest EarmarkParser release available
- Fix EarmarkParser version to 1.4.18
as the 1.4.x branch is not supporting Earmark anymore (1.5 should hopefully)
This release is updating to EarmarkParser
v1.4.18 with these RELEASE NOTES
-
Updated dependency to EarmarkParser v1.4.17
-
Pushed
EarmarkParser
dependency to version >= 1.4.13 which fixes a bug wich could crash the parser IAL on ListItem can crash Parser -
404-assure-a-proplist-is-in-use-for-retrieval-of-filename Kudos to Manuel Rubio
-
general improvments of the documentation
-
removing duplicate documentation (
EarmarkParser
's sdoc) -
moving from handmade implementation of doc generation to Extractly
-
fixing picture links in README.eex
-
397-typo fix Kudos to rubysolo
- A minor fix for the compact output option , Noo Issue, OMG ;)
Adapted the CLI to accept the wikilinks switch for EarmarkParser
-
394-compact-html-output Kudos and Спасибо to rinpatch
-
373-markdown-in-footnotes fixed in
EarmarkParser
v1.4.10 -
334-missing-space-btw-links fixed in
EarmarkParser
v1.4.10 -
378-use-spdx-in-hex Kudos to Chulki Lee
This is a featureless release.
Its lone purpose is the extraction of all parsing and ast releated code into EarmarkParser.
As it is feature identical to 1.4.7 downgrading in case of problems will be painless. # {:earmark_parser, "~> 1.4.35", path: "../earmark_parser"},
-
366-simplify-transform Kudos to Eksperimental
-
348-no-crashes-for-invalid-URIs Kudos to José Valim
-
347-dialyxir-errors Fixed some of them, alas not all
This is mostly a bugfix release, as there were edge cases that resulted in Earmark crashing, notably
- Bare IAL
- unquoted attributes in html tags
Also autolinks (GFM extension) delivered incorrect URLS where parenthesis were involved, for better GFM compatibility we therefore
- Fixed broken parenthesis links (99% of all cases)
- introduced the same URL encoding/decoding in links and link names of autolinks as GFM does
And last but not least all numeric options in the CLI can now be written with underlines for readability.
-
339 Typos fix Kudos to Ondrej Pinka
-
336 Smartypants: Convert three hyphens to em dash Kudos to Jony Stoten
-
324 Fix AST for links with nested elements Kudos to Wojtek Mach
- 296 code for tasks removed from package The additional tasks are only needed for dev and have been removed from the hex package. Finally
- PR#293 Nice fix for broken TOC links in README Kudos to Ray Gesualdo raygesualdo
- 291 Transformer whitespace inside / around <code> <pre> tags The spurious whitespace has been removed
- 289 HTML Problem The AST parser can now correctly distinguish between generated AST (from md) and parsed AST (from HTML)
- 288 Metadata allowed to be added to the AST
The default HTML Transformer ignores metadata in the form of a map with the exception of
%{meta: ...}
-
282 Always create a
<tbody>
in tables Although strictly speaking a<tbody>
is only needed when there is a<thead>
, semantic HTML suggests the presence of<tbody>
anyway. -
281 Urls in links were URL endoded, that is actually a bug It is the markdown author's responsability to url encode her urls, if she does so correctly we double encoded the url before this fix.
-
279 Languages in code blocks were limited to alphanum names, thus excluding, e.g. C#
-
278 Implementing better GFM Table support Because of compatility issues we use a new option
gfm_tables
defaulting tofalse
for this. Using this optionEarmark
will implement its own table extension + GFM tables at the same time. -
277 Expose an AST to HTML Transformer While it should be faster to call
to_ast|>transform
it cannot be used instead ofas_html
yet as the API is not yet stable and some subtle differences in the output need to be addressed.
Hopefully the last patch release of 1.3 before the structural changes of 1.4.
-
#270 Error messages during parsing of table celles were duplicated in a number, exponential to the number of table cells.
-
#268 Deprecation warnings concerning pure links showed fixed link to https://github.com/pragdave/earmark, at least a reasonable choice ;), instead of the text of the link.
-
#266 According to HTML5 Style Guide better XHTML compatibility by closing void tags e.g.
<hr>
--><hr />
-
#264 Expose
Earmark.parse/2
but deprecate it. -
#262 Remove non XHTML tags and
-
#236 Deprecation of plugins.
-
#257 Deprecation of
sanitize
option.
-
#240 code blocks in lists Bad reindentation inside list items led to code blocks not being verabtim =&rt; Badly formatted hexdoc for Earmark
-
#243 errors in unicode link names Regexpression was not UTF, thus some links were not correctly parsed Fixed in PR 244 Thank you Stéphane ROBINO
-
#158 some pure links implemented This GFM like behavior is more and more expected, I will issue a PR for
ex_doc
on this as discussed with José Valim Deprecation Warnings are issued by default, but will be supressed forex_doc
in said PR. -
Minor improvements on documentation In PR 235 Thank you - Jason Axelson
- Refactoring c.f. PR 246
- Added Elixir version 1.9.0 for Travis c.f. PR #248
-
Fix for issues
niku for #218 Rich Morin for #220 & #224 as well as discussions
- Fix for issues
- credo -> 0.10
Special KUDOS for pareehonos for a huge PR concerning the major Feature Request #145
This cannot be merged yet but certainly is a great contribution to our codebase.
-
Fix for issues
-
#195 incorrect HTML for inline code blocks and IAL specified classes from Benjamin Milde
-
Fix for issue
-
PR160 from simonwebdesign
simonwebdesign, nscyclone, joshsmith, asummers
-
PR151 from joshuawscott
-
Fixes for issues
- PR #144 from KronicDeth
-
PR #136 from chrisalley
-
Fixes for issues
-
PR #130 from eksperimental
-
PR #125 from vyachkonovalov
-
Fixes for issues
- #127
- #131
vyachkonovalov, Alekx, eksperimental
-
PR from Natronium pointing out issue #123
-
Fixes for issues
- #123
-
PR from Michael Pope
-
PR from Pragdave
-
PR from christopheradams
-
PR from AndrewDryga
-
Fixes for issues
- #106
- #110
- #114
AndrewDryga, Christopher Adams, Michael Pope
-
PR from TBK145 with some dead code elimination.
-
Implementation of command line switches for the
earmark
executable. Now any%Earmark.Options{}
key can be passed in. -
Fixes for issues
- #99
- #96
- #95
- #103
Thijs Klaver (TBK145)
- PR from pdebelak with a fix of #55
- PR from jonnystorm with a fix for a special case in issue #85
- test coverage at 100%
- PR from michalmuskala
- Fixed remaining compiler warnings from 1.0.1 (Elixir 1.3)
- PR from pdebelak to fix a factual error in the README
- Fixes for issues
- #55
- #86
- #88
- #89
- #93
Jonathan Storm (jonnystorm), Michal Muskala (michalmuskala) & Peter Debelak (pdebelak)
- fixing issue #81 by pushing this updated Changelog.md :)
- PR from mschae fixing issue #80 broken hex package
Michael Schaefermeyer (mschae) & Tobias Pfeiffer (PragTob)
- --version | -v switch for
earmark
escript. - added security notice about XSS to docs thanks to remiq
- PR from alakra (issue #59) to allow Hypens and Unicode in fenced code block names
- PR from sntran to fix unsafe conditional variables from PR
- PR from riacataquian to use maps instead of dicts
- PR from gmile to remove duplicate tests
- PR from gmile to upgrade poison dependency
- PR from whatyouhide to fix warnings for Elixir 1.4 with additional help from milmazz
- Travis for 1.2.x and 1.3.1 as well as OTP 19
- Fixes for issues:
- #61
- #66
- #70
- #71
- #72
- #77
- #78
Remigiusz Jackowski (remiq), Angelo Lakra (alakra), Son Tran-Nguyen (sntran), Mike Kreuzer (mikekreuzer), Ria Cataquian (riacataquian), Eugene Pirogov (gmile), Andrea Leopardi (whatyouhide) & Milton Mazzarri (milmazz)
- Added 1.2 for Travis
- PR from mneudert to fix HTMLOneLine detection
Marc Neudert (mneudert)
- PR from eksperimental guaranteeing 100% HTML5
- PR from imbriaco to decouple parsing and html generation and whitespace removal
- Fixes for issues:
- #40
- #41
- #43
- #48
- #50
- #51
- Explicit LICENSE change to Apache 2.0 (#42)
- Loading of test support files only in test environment thanks to José Valim
- IO Capture done correctly thanks to whatyouhide
- Warning for Elixir 1.2 fixed by mschae
Eksperimental (eksperimental), Mark Imbriaco (imbriaco), Andrea Leopardi(whatyouhide), José Valim & Michael Schaefermeyer (mschae)
- Fix | in implicit lists, and restructur the parse a little. Many thanks to Robert Dober
- Add strikethrough support to the HTML renderer. Thanks to Michael Schaefermeyer (mschae)
- Another fix from José, this time for & in code blocks.
- Allow numbered lists to start anywhere in the first four columns. (This was previously allowed for unnumbered lists). Fixes #13.
- Fixed a problem where a malformed text heading caused a crash. We now report what appears to be malformed Markdown and continue, processing the line as text. Fixes #17.
- José fixed a bug in Regex that revealed a problem with some Earmark replacement strings. As he's a true gentleman, he then fixed Earmark.
-
Matthew Lyon contributed footnote support.
the answer is clearly 42.[^fn-why] In this case we need to… [^fn-why]: 42 is the only two digit number with the digits 4 and 2 that starts with a 4.
For now, consider it experimental. For that reason, you have to enable it by passing the
footnotes: true
option.
- The spec is ambiguous when it comes to setext headings. I assumed that they needed a blank line after them, but common practice says no. Changed the parser to treat them as headings if there's no blank.
- Bug fix—extra blank lines could be appended to code blocks.
- Tidied up code block HTML
- Block rendering is now performed in parallel
-
Added support for Kramdown-style attribute annotators for all block elements, so you can write
# Warning {: .red} Do not turn off the engine if you are at altitude. {: .boxed #warning spellcheck="true"}
and generate
<h1 class="red">Warning</h1> <p spellcheck="true" id="warning" class="boxed">Do not turn off the engine if you are at altitude.</p>
-
Merged two performance improvements from José Valim
-
Support escaping of pipes in tables, so
a | b c | d \| e
has two columns, not three.
- Allow list bullets to be indented, and deal with potential subsequent additional indentation of the body of an item.
- Added tasks to the Hex file list
- Add support for GFM tables
- Move readme generation task out of mix.exs and into tasks/
- Fix bug if setext heading started on first line
- Initial Release