Download Latest Version v1.12.0 source code.tar.gz (1.8 MB)
Email in envelope

Get an email when there's a new version of Quarkdown

Home / v1.11.0
Name Modified Size InfoDownloads / Week
Parent folder
quarkdown.zip 2025-10-20 30.8 MB
README.md 2025-10-20 6.6 kB
v1.11.0 source code.tar.gz 2025-10-20 1.8 MB
v1.11.0 source code.zip 2025-10-20 2.3 MB
Totals: 4 Items   34.9 MB 0

Main features and changes

Persistent headings

Used in combination with page margin content, the new .lastheading function allows for persistent headings, such as chapter titles or section names, to be displayed in the page margins of paged and slides documents.

:::markdown
.pagemargin {topcenter}
    *.lastheading depth:{1}*

# Chapter 1

.repeat {10}
    .loremipsum

Persistent headings

 

Mirror positions in page margins

The .pagemargin function now accepts new positions: topoutsidecorner, topoutside, topinsidecorner, topinside, bottomoutsidecorner, bottomoutside, bottominsidecorner, bottominside.

Contrary to fixed positions such as topright or bottomleft, these mirror positions adapt based on whether the page is left or right, great for printing.

:::markdown
.pagemargin {topoutside}
    **This** is a margin content.

Mirror positions

The function also no longer has topcenter as the default position.

 

Custom CSS class names

Specific elements can be assigned custom CSS class names by means of the classname parameter, available in .container (for blocks) and .text (for inlines).

.container classname:{my-custom-class}
    This is a block with a custom class.

---

This is an .text {inline text} classname:{my-custom-class} with a custom class.

.css
    .my-custom-class {
      padding: 8px;
      background: linear-gradient(to right, pink 0%, lightblue 100%);
    }

Custom classes

[!TIP] You can return custom elements from user-defined functions for enhanced reusability and readability!

 

Multiple font configurations

.font calls can now be stacked to create multiple font configurations, which are applied in order. Each configuration acts as a fallback for the next one, in case the current font does not contain glyphs for certain characters.

This is particularly useful for multi-language documents. For example, you may set a primary font for Latin characters and a fallback font for CJK characters:

:::markdown
.font {GoogleFonts:Ma Shan Zheng}
.font {GoogleFonts:Corinthia}

Multi-language fonts

 

Emojis from shortcodes

Emojis can now be inserted using shortcodes via the .emoji function.

Type Result Code
Simple shortcode 😉 .emoji {wink}
One skin tone 👋🏾 .emoji {waving-hand~medium-dark}
Two skin tones 🧑🏼‍🤝‍🧑🏾 .emoji {people-holding-hands~medium-light,medium-dark}

For a complete list of supported shortcodes, refer to the Emoji Cheat Sheet.

Fun fact: the cheat sheet was generated with Quarkdown + Hugo!

 

Table generation by rows

The new .tablebyrows function allows for dynamic table generation by rows.

:::markdown
.var {headers}
   - Name
   - Age
   - City

.tablebyrows {.headers}
  - - John
    - 25
    - NY
  - - Lisa
    - 32
    - LA
  - - Mike
    - 19
    - CHI
Name Age City
John 25 NY
Lisa 32 LA
Mike 19 CHI

 

.codespan

.codespan {text} can now be used to create inline code spans, similar to backticks (`text`).

Just like .code as an alternative to triple-backtick code blocks, the difference is that .codespan supports function calls, allowing for dynamic content, whereas backticks do not.

 

Faster frontend and PDF generation

The web frontend underwent a complete rewrite, with performance and maintainability in mind.
The number of synchronous tasks has been reduced, making initial page load faster, with impact on PDF generation time as well.

What's Changed

Full Changelog: https://github.com/iamgio/quarkdown/compare/v1.10.0...v1.11.0

Sponsors

Shout out to our new sponsor: @RayOffiah 🎉

Falconer

Source: README.md, updated 2025-10-20