EarmarkParser 1.4.41 2024-
-
Fixed warnings in tests Kudos to Kian-Meng Ang
-
Fortunately there are folks who can spell and type Kudos to Kian-Meng Ang
EarmarkParser 1.4.40 2024-07-02
-
Gladly following
ex_doc
to drop support for Elixir versions < 1.13 -
More Github actions with fail-on-warning to avoid the need for fixes like the one below 😊
-
Fixed warning because of bad config of using dialxir Kudos to Jan Pieper
EarmarkParser 1.4.39 2023-11-25
EarmarkParser 1.4.38 2023-11-10
EarmarkParser 1.4.37 2023-10-01
EarmarkParser 1.4.36 2023-09-22
-
Correting deprection version for smarty_pants
-
Checking for result type
EarmarkParser.t
ofEarmarkParser.as_ast
EarmarkParser 1.4.35 2023-09-12
-
Better error messages for bad data passed into
EarmarkParser.as_ast
-
Using minipeg instead of leaky string_lexer
EarmarkParser 1.4.34 2023-09-11
- PR Strip spaces in front of code blocks Kudos to Lukas Larsson
EarmarkParser 1.4.33 2023-07-04
EarmarkParser 1.4.32 2023-04-29
EarmarkParser 1.4.31 2023-03-03
-
PR Fix catastrophic backtracking in IAL regex Special Kudos for spotting and fixing this Alex Martsinovich
-
Bugfix for Strikethrough not working if option
breaks: true
Kudos to Mayel de Borniol for providing tests
-
Fixed a problem with headers that close with # but have a # inside too
Kudos to Alex Martsinovich
-
Adding a non regression test for
~
inside links (was broken earlier)Kudos to Faried Nawaz
-
Do not wrap labelled wikilinks in
<p>
tagsKudos to Ben Olive
-
Add option
all: true
enabling all options which are disabled by default, which are:breaks
,footnotes
,gfm_tables
,sub_sup
,wikilinks
-
Fix bug for
a^n^
not being parsed as sup
-
Nice addition of sub and sup elements
Needs to be enabled with the option
sub_sup: true
renders~x~
inside<sub>
and^x^
inside<sup>
Kudos to manuel-rubio
-
Optimisation in the inline renderer
-
Removal of compiler warnings
-
Allow unquoted values for HTML attributes
-
Accept valueless HTML attributes
Kudos to Tom Conroy
-
Two PRs to assure lookahead scanning is applied on the top level, where needed most and corresponding performance test
Kudos to jonatanklosko
-
Single worded footnote definitions where shadowed by ID Definitions, the tiebreak was resolved in favor of Footnotes as ID Definitions do not need, and might as a matter of fact almost never, to start with a
^
Related Issue -
Unused import warning removed
Two more list regressions fixed
-
multi line inline code was ignored in the body parts of lists
-
spaced lists with inline code in their bodies (single and multiline) were rendered tightly (no surrounding
<p>...</p>
Fixes all List Regressions introduced in 1.4.19
GFM support for lists remain limited (spaced and tight lists are not 100% compliant) but is better than in 1.4.18
-
Preserve newlines inside HTML code
Kudos to José Valim
-
Do not remove ial on blockquote inside triple quoted
Kudos to José Valim
-
Removed support for Elixir 1.10 (following
ex_doc
's lead) -
Correct pure link regex to reject invalid characters
Kudos to Akash Hiremath
-
Intensive work to make pure links GFM Spec compliant
Kudos to Akash Hiremath
-
Fix stop condition on closing HTML in scanners lookup algo
Kudos to José Valim
-
Footnotes fixed and upgraded(#26)
Footnotes are now a superset of GFM Footnotes. This implies some changes
- Footnote definitions (
[^footnote_id]
) must come at the end of your document (GFM) - Footnotes that are not referenced are not rendered anymore (GFM)
- Footnote definitions can contain any markup with the exception of footnote definitions
- Footnote definitions (
-
Deprecate options not useful anymore after the removal of parallel scanning (#72)
-
Do not turn off lookahead on indented fences and check for indent only once (#71)
Kudos to José Valim
-
Add lookahead for fenced code blocks (#70)
- Do lookaheads for fenced code blocks
Prior to this commit, we were trying to parse all lines between fenced code blocks, which could be very expensive. Therefore we lookahead fences and convert them to text.
-
Do not scan lines in parallel anymore
-
Remove unused code blocks
-
Handle fenced blocks wrapped in tags
-
Clean up regex
-
More corner cases
-
Optimize text creation
-
Optimize length checks
Kudos to José Valim
-
Use Extractly instead of homemade readme task → Syntax Highlightening for iex> code blocks
-
46-fixing-typos Kudos to kianmeng
-
35-clearer-doc-iff-replacement Kudos to ream88
-
29-broken-changelog-link Kudos to optikfluffel
-
18-support-wikilinks Kudos to sionide21
-
24-treat-single-dash-as-text Kudos to Ben Olive
-
22-missing-ws-before-links Kudos to Ben Olive
-
19-use-spdx-in-hex Kudos to Chulki Lee
-
15-hide-private-module Kudos to Wojtek Mach
-
13-fix-github-link Kudos to Wojtek Mach
- 2-accept-any-struct-as-option
Allow client code of Earmark to replace their calls to
Earmark.as_ast
withEarmarkParser.as_ast
w/o any changes
This marks the first release of the parser isolated from the rest of Earmark.
It is feature identical to the 1.4.7 release of Earmark.
All releases below were Earmark, all releases above are only EarmarkParser.
-
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 responsibility 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 cells 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 suppressed 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 Hyphens 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