github iamgio/quarkdown v2.6.3

5 hours ago

Changed

 

Faster source tokenization

Source tokenization is now implemented via scanner rather than regex, making the first stage of compilation up to 5x faster.

 

Fixed

 

.tablebyrows accepts dynamically typed rows

Rows generated dynamically, such as the output of .repeat stored in a variable, can now be used as table rows. Previously, this failed with a type cast error.

.var {rows}
    .repeat {3}
        index:
        - - Cell .index:A
          - Cell .index:B

.tablebyrows rows:{.rows}

 

CommonMark emphasis correctness

***bold italic** still italic* now renders correctly.

 

Numbered lists past nine items

A line such as 10. item now correctly starts a new item.

 

A decorative heading interrupts paragraphs

#! Heading now closes the preceding paragraph, like regular headings do.

 

A bare ### line under a heading is its own heading

A line of hashes with nothing after them used to be absorbed by the heading above it, so it disappeared.

 

A line of tabs separates paragraphs

A line containing only tabs now separates paragraphs, as a line containing only spaces always did.

 

Deeply nested link destinations

Parentheses in a link destination now balance correctly at any depth.

 

Multi-line setext headings keep all their lines

A heading underlined by === or --- that spans several lines used to keep only the last line. The whole text now becomes the heading.

 

Flat stack usage for block tokenization

Tokenization of Markdown paragraphs, lists, list items, blockquotes, tables, code, footnotes, and setext headings no longer grows the recursion stack linearly, optimizing resource usage and preventing crashes on small stacks.

 

REPL prints to console

Fixed a regression that caused quarkdown repl to write to file rather than to stdout.

 

Preview runs no longer re-scan libraries

Preview sessions no longer look for available libraries on each run, slightly improving performance.

 

PDF export no longer fails when its port is busy

Fixed a regression that caused PDF export to fail instead of moving on to the next free port, if the current one was busy.


Sponsors

Thanks to our sponsors! 🎉

@vitto4

Falconer

Don't miss a new quarkdown release

NewReleases is sending notifications on new releases.