kramdown 1.17.0 released 31 May 2018
This release adds support for another server side math engine based on KaTeX
but with an easier installation method. There are also various fixes, the
most important one being a change in the Setext and atx style header parsers
to prevent performance and potential denial of service problems.
Thanks to all the people working on making kramdown better!
Changes
* 3 minor change:
o Add new math engine katex for easier server-side conversion (pull requests
#489, #510 by Gleb Mazovetskiy)
o New configuration options --no-config-file and --config-file FILE for the
kramdown binary (pull request #499 by ccorn)
o Add information to AST whether a codeblock is indented or fenced (issue
#507 and pull request #508 by Dan Allen)
* 4 bug fixes:
o Fix the numeric values of the entities cap and cup (pull request #487 by
Ashe Connor)
o Fix problem with parsing an empty tag inside a table cell while using
html_to_native (issue #514 and pull request #515 by Dan Allen)
o Fix performance issue in Setext and atx style headers when parsing a lot of
space (fixes#505 by Dmitry Krasnoukhov, pull request #513 by Gleb
Mazovetskiy)
o Prevent duplicate warning for reference style links with missing link
identifier (fixes#492 reported by Gregory Pakosz)
* 8 documentation and other changes:
o Expand table of contents example for HTML converter (pull request #484 by
Milo Simpson)
o Use non-deprecated SCSS color function for kramdown homepage (pull request
#485 by ccorn)
o Add usage notes and comparison for KaTeX vs SsKaTeX (pull request #493 by
ccorn)
o Node version 6.0 is now used because of newer mathjax-node requirements
(pull request #498 by ccorn)
o Rakefile adjustments for various math engines (pull request #499 by ccorn)
o Add more files to .gitignore (pull request #518 by Gleb Mazovetskiy)
o Remove some unneeded code for Ruby versions < 2.0 (pull request #502 by
Ashwin Maroli)
o Updated the kramdown website to be more privacy-friendly
kramdown 1.16.1 2017/11/28
Hot on the heels of 1.16.0 this bug fix release fixes problems with the new
GFM task list implementation, so upgrading is recommended!
Changes
* 1 bug fix:
o Fix the GFM task list implementation (fixes#476, reported by Brandon
Zarrella)
kramdown 1.16.0 2017/11/27
This release brings, amongst other things, support for setting default options
for the kramdown binary via a configuration file, two new options
(`typographic_symbols' and `footnote_backlink_inline') and the new
server-side math engine SsKaTeX which doesn't need the whole NodeJS stack to
work properly.
Please also note that the MathjaxNode math engine now relies on the
mathjax-node-cli package instead of the mathjax-node package to work
correctly. Make sure you update your NodeJS installation accordingly.
Thanks to all the contributors and supporters that made this release possible!
Changes
* 8 minor change:
o The kramdown binary now supports specifying default options via
configuration file (fixes#453 requested by Kyle Barbour)
o New GFM quirk `no_auto_typographic' for disabling typographic conversions
(fixes#459 via pull request #462, both by Kirill Kolyshkin)
o The MathjaxNode math engine now needs the package mathjax-node-cli to
work. New math engine SsKaTeX for server-side rendering via KaTeX (patch
#455 by Christian Cornelssen)
o When using the Rouge syntax highlighter, the formatter option can now be a
String (patch #448 by Alpha Chen)
o New option `typographic_symbols' to control how typographic symbols are
output by the HTML and LaTeX converters (fixes#472 requested by Kyle
Barbour)
o New option `footnote_backlink_inline' to allow placing the footnote
backlink into the last, possibly nested paragraph or header instead of
creating a new paragraph (fixes#454 requested by Kyle Barbour)
o The GFM parser now supports task lists (fixes#172 and #346, patch #442 by
Andrew)
* 4 bug fixes:
o Line breaks in a special situation were not respected (fixes#461,
reported by Buo-Ren Lin)
o Fix the RemoveHtmlTags converter to also process footnote content (patch
#458 by Maximilian Scherr)
o Fix bug in paragraph parsing when the `html_to_native' option is used
(fixes#466, reported by eddibravo)
o Fix bug in kramdown converter when an image without a `src' attribute is
encountered (patch #470 by Uwe Kubosch)
kramdown 1.15.0 released (2017/09/08)
The most important change is that this release drops compatibility with Ruby
versions < 2.0! Aside from that it includes some bug fixes, so updating is
recommended.
Changes
o 2 minor changes:
* Drop compatibility with Ruby versions < 2.0
* Make footnote output XML compatible (requested by Kriss Andsten)
o 4 bug fixes:
* Apply abbreviation substitution to footnotes (fixes#440, reported by
Thomas Leese)
* Fix TOC entries by removing nested links (fixes#434, reported by Nate
Wernimont)
* Fix problems with brackets in certain situations when using the LaTeX
converter (fixes#414, reported by Ryan Koppenhaver)
* Fix escaping of URLs in the LaTeX converter (reported by Moshe Kamensky in
pull request #67)
kramdown 1.14.0 released (2017/06/26)
This release adds support for rouge 2.x and fixes some minor issues - updating
is recommended.
Changes
o 2 minor changes:
* Adapt syntax highlighter for rouge to support version 1.x and 2.x (pull
request #413 by Hirofumi Wakasugi)
* Alias Kramdown::Converter::HashAST to Kramdown::Converter::HashAst so that
the convenience method on Kramdown::Document works (fixes#435, requested by
Hirofumi Wakasugi)
o 1 bug fix:
* Fix problem with GFM header ID generation when << or >> is used (reported by
Parker Moore)
kramdown 1.13.2 released 2017/01/07
This release fixes some minor issues - updating is recommended.
Changes
3 bug fixes:
* Fix footnote link spacing to use non-breaking space (pull request #399 by
Martyn Chamberlin)
* Show warning for unreferenced footnote definitions (fixes#400 reported by
Kyle Barbour)
* Fix test cases with respect to Ruby 2.4 (fixes#401 reported by Connor Shea)
kramdown 1.13.1 released 2016/11/25
This release fixes the GFM header ID generation for more cases, updating is
very recommended.
Changes
1 bug fix:
* Fix GFM header ID generation when code spans, math elements, entities,
typographic symbols or smart quotes are used (fixes#391 reported by Nick
Fagerlund)
kramdown 1.13.0 released 2016/11/20
The biggest change in this release is the introduction of a converter for man
pages. Although there already exist two solutions (ronn and kramdown-man),
both are not completely satisfactory:
* Ronn doesn't use standard Markdown syntax for all elements.
* kramdown-man only converts a subset of the available element types.
The new man page converter uses standard kramdown syntax and supports nearly
all element types, including tables.
This release also brings some enhancements for the GFM parser. One thing to
note is that the header ID generation is now more compatible to GFM which also
means that some IDs will be different - so check the documents on which you
use the GFM parser, especially when you are using Jekyll or Github Pages.
Organizational-wise, issues and pull requests on Github that pertain to
feature requests have been closed and are now tracked through a dedicated
kramdown project on Github.
Changes
4 minor changes:
* Add new converter for man pages
* Header ID generation for the GFM parser is now more compatible to GFM (fixes
#267, requested by chadpowers)
* Update to the MathJax math engine to allow formatting the preview as code /
pre > code (pull request #372 by Florian Klampfer)
* Allow tabs in table separator lines (pull request #370 by Shuanglei Tao)
2 bug fixes:
* Compactly nested lists are now handled correctly after fixing a bug in
indentation detection (fixes#368 reported by Christopher Brown)
* GFM parser: Allow indenting the delimiting lines of fenced code blocks for
better GFM compatibility (pull request #369 by Shuanglei Tao)
2 other fixes and enhancements:
* Added information on how to run tests to README.md (fixes#377 reported by
Aron Griffis)
* Added information about how to use KaTeX with the MathJax math engine (fixes
#292 reported by Adrian Sieber, information by Dato Sim«Ñ)
kramdown 1.12.0 released Published on Monday, 15 August 2016
This release features two enhancements for definition lists:
1. IALs can now be applied to definition terms:
{:.classy} term
: and its definition
2. IDs for definition terms can now be created automatically (similar to
header IDs) and optionally assigned a prefix:
{:auto_ids}
term1
: definition
term2
: definition
^
{:auto_ids-prefix}
term1
: definition
term2
: definition
Furthermore, compatibility of the GFM parser has been improved in regards
to list/blockquotes/codeblocks that are used directly after a paragraph
(i.e. without a blank line).
Changes
* 4 minor change:
- Allow using an IAL for definition terms (<dt>) as is already possible with
definitions themselves (<dd>)
- Added automatic generation of IDs (with optional prefix) for terms of
definition lists (fixes#355, requested by Greg Wilson)
- Removed obfuscation for e-mail links (fixes#343, requested by Anton
Tsyganenko)
- New option ¡Ægfm_quirks¡Ç for enabling/disabling parsing differences of
the GFM parser with respect to the kramdown parser
* 4 bug fixes:
- Added support for HTML5 element <main> (fixes#334, reported by
Jean-Michel Lacroix)
- Fixed math element output for HTML converter when no math engine is set
(fixes#342, reported by Adrian Sampson)
- Fixed problem when using custom HTML formatter for syntax highlighter
rouge (fixes#356, patch by Alexey Vasiliev)
- Better compatibility with GFM when lists/blockquotes/codeblocks are used
directly after a paragraph (fixes#336 (reported by Shuanglei Tao), #359
(reported by Matti Schneider) via the patch #358 by Shuanglei Tao)
* 3 other fixes and enhancements:
- Added some more examples for how list indentation works (fixes#353,
requested by Robbert Brak)
- Using RbConfig instead of deprecated Config for determining data directory
(fixes#345, patch by C«±dric Boutillier)
- JRuby is now also tested via TravisCI (fixes#363, patch by Shuanglei Tao)
kramdown 1.11.1 released Published on Sunday, 01 May 2016
This release fixes an emphasis parsing regression introduced in the last
version.
Changes
* 1 bug fix:
- Fixed emphasis parsing regression (fixes#333, reported by Marcus
Stollsteimer)
kramdown 1.11.0 released Published on Sunday, 01 May 2016
This release fixes some bugs and includes one minor change in regards to HTML
syntax highlighting.
Changes
* 1 minor change:
- The syntax highlighting language is now always included in the output as
class name even if a syntax highlighter is used (fixes#328, requested by
SLaks)
* 3 bug fixes:
- Fixed the GFM fenced code block parser to correctly split a provided
highlighter name into language name and options parts
- Fixed problem with underscores being processed even if inside a word
(fixes#323, reported by Haruki Kirigaya)
- Fixed HTML/XML parser to correctly, case sensitively parse XML (fixes
#310, reported by cabo)
* 2 other fixes:
- Updated copyright year (fixes#331, reported by Oscar Bj«Órkman)
- Updated supported Ruby version on installation page (reported by cabo)
kramdown 1.10.0 released
This release brings the usual bug fixes but also support for the strikethrough
syntax in the GFM parser as well as some enhancements regarding the
specification of language names for syntax highlighting purposes.
Changes
* 4 minor changes:
o Support for the math-engine MathJax-Node was updated to use the new
mathjax-node package (fixes#313, pull request by Tom Thorogood)
o URL query parameters can now be appended to language names specified in
fenced code blocks if the syntax highlighting engine accepts them (fixes
#234)
o Added strikethrough syntax to the GFM parser (fixes#184 and #307; initial
pull request by Diego Galeota, updated by Parker Moore)
o Allow almost all characters in class names that are defined via a special
syntax (fixes#318, requested by cabo)
* 4 bug fixes:
o Fixed a problem where Kramdown::Document.new would only accept the symbol
:input but not the string ¡Æinput¡Ç as valid key (fixes#312, pull request
by Sun Yaozhu)
o Fixed inconsistent behavior: Empty link text is now also allowed for
normal links, not just images (fixes#305, reported by cabo)
o The HTML5 <mark> element is now recognized as span level element (fixes
#298, reported by Niclas Darville)
o Fixed problem where e-mail autolinks containing an underscore character
were not correctly recognized (fixes#293, reported by erikse)
* 3 other fixes:
o Fixed missing package update statement for Travis (by Parker Moore)
o Add some more documentation regarding MathJax (fixes#296, pull request by
Christopher Jefferson)
o Fixed bad link in API documentation (fixes#315, reported by Tom MacWright)
Problems found locating distfiles:
Package cabocha: missing distfile cabocha-0.68.tar.bz2
Package convertlit: missing distfile clit18src.zip
Package php-enchant: missing distfile php-enchant/enchant-1.1.0.tgz
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
kramdown 1.9.0 released
This release contains some minor updates and bug fixes.
Changes
* 3 minor changes:
- The Rouge syntax highlighter can now be enabled/disabled for spans
and/or blocks and options can now be set for both spans and blocks as
well as only for spans or only for blocks (fixes#286, requested by
Raphael R.)
- Setting the ‘footnote_backlink’ option to an empty string now
completely suppresses footnotes (fixes#270, requested by Kyle Barbour)
- New converter HashAST for creating a hash from the internal tree
structure (fixes#275, pull request by Hector Correa)
* 1 bug fix:
- When using the ‘hard_wrap’ option for the GFM parser, line numbers
were lost (fixes#274, pull request by Marek Tuchowski) Published on
Saturday, 04 July 2015
kramdown 1.8.0 released
This release contains only some minor updates and bug fixes.
Changes
* 4 minor changes:
- The LaTeX converter now uses \texttt instead of \tt for code spans (fixes
#257, reported by richard101696)
- New option footnote_backlink for changing the backlink of footnotes in the
HTML converter (fixes#247, requested by Benjamin Esham)
- A quote directly followed by an ellipsis is now converted into an opening
quotation mark (fixes#253, requested by Michael Franzl)
- Removed warning for self-closing HTML elements that are not self-closed
(fixes#262, requested by Gregory Pakosz)
* 3 bug fixes:
- Fixed#251: The special character sequence \` now works correctly when used
in footnotes or headers that appear in the table of contents (reported by
Peter Kehl)
- Fixed#254: kramdown crashed on encountering a table with multiple
consecutive separator lines (reported by Christian Kruse)
- Fixed#256: Certain footnote definitions and codeblocks lead to crashes or
unneeded backtracking in the regular expression engine - fixed by using
atomic grouping (reported by Ali Ok)
kramdown 1.7.0 released Published on Monday, 27 April 2015
This release brings among other things support for the ‘minted’ syntax
highlighter for LaTeX and a new math engine based on MathJax-Node that outputs
to MathML.
Changes
* 4 minor changes:
- The syntax highlighter ‘minted’ for the LaTeX converter is now available
(fixes issue #93, initial patch #242 by l3kn)
- A new math engine based on MathJax-Node that outputs to MathML is now
available (patch #240 by Tom Thorogood)
- Fixed#244, #246: Fenced code blocks now allow a dash in the code language
name (requested and patched by Dennis Günnewig)
- The option list in the man page as well in the output of kramdown --help
is now sorted.
* 2 bug fixes:
- Fixed#230: Warning message for method in
lib/kramdown/utils/configurable.rb will not show anymore (reported by
Robert A. Heiler)
- Fixed#239: Handling of single/double quotes in reference style links now
follows the same rules as with inline links (reported by Josh Davis)
kramdown 1.6.0 released Published on Saturday, 28 February 2015
This release contains many fixes and minor enhancements as well as one major
goodie that comes with a small caveat: block IALs can now be applied to link
and abbreviation definitions!
It may not sound like much but allowing block IALs to be applied to link
definitions alleviates the problem that additional attributes could only be
specified via span IALs. Now such attributes can be stored together with the
URL and title at the link definition, for example:
This is a ![resized image].
[resized image]: some_image.jpg "with a title"
{: height="36px" width="36px" style="border: 1px solid green"}
There is one small caveat, though. Regard the following construct:
[linkdef]: http://example.com
{:.block-ial}
block element, e.g. a paragraph
The block IAL would have been applied to the paragraph in previous versions
but now it is applied to the link definition. However, such a construct is not
very likely encountered in the real world.
Changes
* 7 minor changes:
- Block IALs can now be applied to link and abbreviation definitions
(inspired by issue #194 from cabo)
- The syntax highlighting engine for Rouge now allows custom formatter
classes to be used (issue #214, requested by BackOrder)
- The MathJax math engine now allows adding previews (issue #225, requested
by jethrogb)
- The “toc_levels” option can now also take a Range object (pull request
#210 by Jens Krämer)
- The generated table of contents of the HTML converter now contains ID
attributes on the links so that back-references can be used (issue #195,
requested by Ciro Santilli)
- A warning is now generated when duplicate HTML attributes are detected
(issue #201, requested by winniehell)
- Updated used version of prawn to 2.0.0
8 bug fixes:
- Fixed#192: Emphasis by using underscore sometimes wrongly worked within a
word (reported by Michael Franzl)
- Fixed#198: Empty alt attributes on <img> tags are now correctly handled
by the kramdown converter (reported by winniehell)
- Fixed#200: Trailing whitespace is now really removed in paragraphs
(reported by winniehell)
- Fixed#220: HTML blocks with attributes weren’t correctly detected when
directly after another block (reported by Bill Tozier)
- Fixed#199: Empty title attributes are now ignored for images when using
the kramdown converter (reported by and pull request #206 from winniehell)
- Leading and trailing white space from math statements is now stripped as
the whitespace sometimes lead to LaTeX conversion errors
- Fixed#226: Class names may now start with a dash in IALs/ALDs (reported
by Adam Hardwick)
- Multiple consecutive block IALs before an element are now correctly
processed
Fixed GH#30: Specifying empty definitions for a definition list now works
Better fix for the output of closed/open elements
Using the already defined tags for HTML elements without a body
and better output for unknown elements.
Fixed: Using a block IAL before a definition list now works
Fixed problem with the output of empty i/b HTML tags
Document fix of doc/quickref.page
kramdown 0.14.0 released
Published on Sunday, 16 September 2012
First of all please note that this release contains a backwards-incompatible
change: The syntax for specifying a code language for a code block or code
span has changed. Instead of using lang='CODELANG' one has to use
.language-CODELANG now.
This change has been introduced to avoid problems because the lang="..."
attribute is used by HTML for other purposes than setting the code
language. Furthermore using .language-CODELANG is also proposed by HTML5 and
it seems to be a good way to achieve the needed functionality.
Other changes in this release include the possibility of setting the code
language on the starting line of a fenced code block and a way of excluding
certain headers from the table of contents by assigning the .no_toc class to
them. Changes
* 2 major changes
o Code language is now specified via .language-CODELANG instead of
lang='CODELANG'
o Implemented support for setting language on fenced code block starting
line (initial patch by Bran)
* 1 minor change
o Headers with an ID can be prevented from showing in the TOC by assigning
the .no_toc class to them (patch by Tim Bates)
* 1 bug fix
o Numeric instead of symbolic HTML entities are now the default fallback
(patch by Gioele Barabucci)
kramdown 0.13.8 released
Published on Friday, 31 August 2012
This release brings two new options (one for adjusting header levels and the
other for enabling/disabling coderay). And the usual bug fixes. Changes
* 2 minor changes
o New option header_offset for offsetting all header levels (initial patch
by Michal Till)
o New option enable_coderay for enabling/disabling coderay (initial patch by
Bran)
* 5 bug fixes
o Reserved HTML characters in abbreviation titles are now correctly output
(patch by Alex Tomlins)
o Similar abbreviations (like CSS and CSS3) are now correctly parsed
o Fixed bug RF#29626: Text of mailto-link was sometimes wrongly obfuscated
(reported by B Wright)
o Fixed known Ruby 1.9.3 problem with RakeTest task (patch by Gioele
Barabucci)
o Fixed double output of ¡Æmarkdown¡Ç attribute on HTML elements in kramdown
converter
* 1 documentation change
o README file is now called README.md and uses kramdown syntax (patch by
Bran)
commit 40e6cde2d3e1a4f9f6bc14a243b22b4ae3311ca2
Author: Thomas Leitner <t_leitner@gmx.at>
Date: Wed May 9 19:53:47 2012 +0200
Updated release notes and version number
doc/news/release_0_13_6.page
doc/sidebar.template
lib/kramdown/version.rb
man/man1/kramdown.1.erb
commit 7f66dca331f78d84ef22c489c755360b304cb41f
Author: Thomas Leitner <t_leitner@gmx.at>
Date: Tue May 8 21:20:46 2012 +0200
Fixed bug RF#29557: Parsing fails with lists with empty list item
If a list item is completely empty, it needs to be handled specially,
which is done now.
lib/kramdown/converter/kramdown.rb
lib/kramdown/parser/kramdown/list.rb
test/testcases/block/08_list/special_cases.html
test/testcases/block/08_list/special_cases.text
commit ac00ea8ea590ece6c7a6c53b30920114f349b79b
Author: Thomas Leitner <t_leitner@gmx.at>
Date: Tue May 8 20:02:43 2012 +0200
Fixed problem with CDATA section in non-XHTML pages
The HTML parser does not parse CDATA in script tags and
therefore the CDATA tags were displayed in MathJax output.
By commenting out the CDATA tags (with LaTeX comment syntax)
we avoid this problem.
lib/kramdown/converter/html.rb
lib/kramdown/parser/html.rb
test/testcases/block/15_math/normal.html
Changes
* 1 minor change:
- Added a converter that extracts the TOC of a document (requested by
Brendan Hay). Note that this is only useful if you use kramdown as a
library!
* 7 bug fixes
- Fixed a typo: It should be --output and not --ouput (patch by
postmodern)
- Fixed HTML converter to correctly output empty span tags (patch by
John Croisant)
- Fixed bug RF#29350: Parsing of HTML tags with mismatched case now
works
- Fixed bug RF#29426: Content of style tags is treated as raw text now
- HTML converter now uses rel instead of rev to be HTML5 compatible
(patch by Joe Fiorini)
- Fixed Ruby 1.9.3 related warnings
- Fixed HTML parser to work around an implementation change of
Array#delete_if in Ruby 1.9.3
kramdown is a free GPL-licensed Ruby library for parsing and
converting a superset of Markdown. It is completely written in Ruby,
supports standard Markdown (with some minor modifications) and various
extensions that have been made popular by the PHP Markdown Extra
package and Maruku.