iamgio/quarkdownPublic

🪐 Markdown with superpowers: from ideas to papers, presentations, websites, books, and knowledge bases.

AI summary: A lightweight, customizable Markdown parser and renderer written in Java.

Stars
15.9K
+14 today
Forks
491
Watchers
37
Open issues
24
Open PRs
4
Contributors
~27
Commits
3.6K
Branches
11

KotlinGPL-3.0Created Jan 30, 2024Last push 3d agoLatest release v2.4.1+43 stars this week+47 this month

Star history

since Jan 28, 2024
05K10K15KJan 2024Nov 2024Sep 2025Aug 2026
15.9K stars as of Aug 7, 2026, tracked back to Jan 28, 2024. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

commits per day, last 52 weeks
AugSepOctNovDecJanFebMarAprMayJunJulMonWedFri2025-08-03: 4 commits2025-08-04: 7 commits2025-08-05: 2 commits2025-08-06: 0 commits2025-08-07: 0 commits2025-08-08: 0 commits2025-08-09: 0 commits2025-08-10: 0 commits2025-08-11: 7 commits2025-08-12: 3 commits2025-08-13: 3 commits2025-08-14: 2 commits2025-08-15: 0 commits2025-08-16: 5 commits2025-08-17: 7 commits2025-08-18: 8 commits2025-08-19: 4 commits2025-08-20: 4 commits2025-08-21: 6 commits2025-08-22: 4 commits2025-08-23: 2 commits2025-08-24: 1 commit2025-08-25: 6 commits2025-08-26: 3 commits2025-08-27: 4 commits2025-08-28: 4 commits2025-08-29: 2 commits2025-08-30: 1 commit2025-08-31: 4 commits2025-09-01: 3 commits2025-09-02: 2 commits2025-09-03: 1 commit2025-09-04: 2 commits2025-09-05: 0 commits2025-09-06: 0 commits2025-09-07: 0 commits2025-09-08: 1 commit2025-09-09: 1 commit2025-09-10: 0 commits2025-09-11: 0 commits2025-09-12: 2 commits2025-09-13: 4 commits2025-09-14: 3 commits2025-09-15: 1 commit2025-09-16: 4 commits2025-09-17: 5 commits2025-09-18: 1 commit2025-09-19: 1 commit2025-09-20: 4 commits2025-09-21: 3 commits2025-09-22: 9 commits2025-09-23: 9 commits2025-09-24: 10 commits2025-09-25: 2 commits2025-09-26: 1 commit2025-09-27: 1 commit2025-09-28: 0 commits2025-09-29: 2 commits2025-09-30: 2 commits2025-10-01: 4 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 1 commit2025-10-09: 4 commits2025-10-10: 16 commits2025-10-11: 11 commits2025-10-12: 10 commits2025-10-13: 5 commits2025-10-14: 8 commits2025-10-15: 1 commit2025-10-16: 13 commits2025-10-17: 1 commit2025-10-18: 5 commits2025-10-19: 3 commits2025-10-20: 4 commits2025-10-21: 0 commits2025-10-22: 3 commits2025-10-23: 4 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 2 commits2025-10-27: 6 commits2025-10-28: 1 commit2025-10-29: 3 commits2025-10-30: 6 commits2025-10-31: 4 commits2025-11-01: 5 commits2025-11-02: 0 commits2025-11-03: 9 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 2 commits2025-11-20: 1 commit2025-11-21: 1 commit2025-11-22: 4 commits2025-11-23: 10 commits2025-11-24: 1 commit2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 5 commits2025-11-28: 10 commits2025-11-29: 5 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 2 commits2025-12-03: 4 commits2025-12-04: 4 commits2025-12-05: 0 commits2025-12-06: 2 commits2025-12-07: 7 commits2025-12-08: 3 commits2025-12-09: 0 commits2025-12-10: 1 commit2025-12-11: 0 commits2025-12-12: 10 commits2025-12-13: 7 commits2025-12-14: 4 commits2025-12-15: 7 commits2025-12-16: 2 commits2025-12-17: 1 commit2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 5 commits2025-12-28: 4 commits2025-12-29: 0 commits2025-12-30: 2 commits2025-12-31: 1 commit2026-01-01: 21 commits2026-01-02: 13 commits2026-01-03: 11 commits2026-01-04: 20 commits2026-01-05: 10 commits2026-01-06: 5 commits2026-01-07: 7 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 16 commits2026-01-11: 17 commits2026-01-12: 7 commits2026-01-13: 2 commits2026-01-14: 0 commits2026-01-15: 7 commits2026-01-16: 0 commits2026-01-17: 6 commits2026-01-18: 10 commits2026-01-19: 5 commits2026-01-20: 3 commits2026-01-21: 4 commits2026-01-22: 5 commits2026-01-23: 1 commit2026-01-24: 6 commits2026-01-25: 5 commits2026-01-26: 7 commits2026-01-27: 5 commits2026-01-28: 6 commits2026-01-29: 2 commits2026-01-30: 2 commits2026-01-31: 5 commits2026-02-01: 16 commits2026-02-02: 3 commits2026-02-03: 0 commits2026-02-04: 6 commits2026-02-05: 4 commits2026-02-06: 3 commits2026-02-07: 20 commits2026-02-08: 0 commits2026-02-09: 10 commits2026-02-10: 0 commits2026-02-11: 3 commits2026-02-12: 5 commits2026-02-13: 4 commits2026-02-14: 25 commits2026-02-15: 14 commits2026-02-16: 12 commits2026-02-17: 7 commits2026-02-18: 2 commits2026-02-19: 1 commit2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 9 commits2026-03-01: 6 commits2026-03-02: 2 commits2026-03-03: 0 commits2026-03-04: 6 commits2026-03-05: 2 commits2026-03-06: 8 commits2026-03-07: 5 commits2026-03-08: 8 commits2026-03-09: 0 commits2026-03-10: 11 commits2026-03-11: 4 commits2026-03-12: 7 commits2026-03-13: 3 commits2026-03-14: 6 commits2026-03-15: 3 commits2026-03-16: 1 commit2026-03-17: 7 commits2026-03-18: 0 commits2026-03-19: 3 commits2026-03-20: 2 commits2026-03-21: 2 commits2026-03-22: 3 commits2026-03-23: 0 commits2026-03-24: 5 commits2026-03-25: 2 commits2026-03-26: 1 commit2026-03-27: 9 commits2026-03-28: 0 commits2026-03-29: 12 commits2026-03-30: 6 commits2026-03-31: 3 commits2026-04-01: 0 commits2026-04-02: 0 commits2026-04-03: 0 commits2026-04-04: 5 commits2026-04-05: 0 commits2026-04-06: 2 commits2026-04-07: 0 commits2026-04-08: 0 commits2026-04-09: 3 commits2026-04-10: 7 commits2026-04-11: 9 commits2026-04-12: 8 commits2026-04-13: 1 commit2026-04-14: 2 commits2026-04-15: 0 commits2026-04-16: 4 commits2026-04-17: 5 commits2026-04-18: 4 commits2026-04-19: 3 commits2026-04-20: 2 commits2026-04-21: 0 commits2026-04-22: 1 commit2026-04-23: 1 commit2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 13 commits2026-04-27: 4 commits2026-04-28: 19 commits2026-04-29: 7 commits2026-04-30: 0 commits2026-05-01: 2 commits2026-05-02: 1 commit2026-05-03: 5 commits2026-05-04: 2 commits2026-05-05: 2 commits2026-05-06: 1 commit2026-05-07: 0 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 0 commits2026-05-13: 0 commits2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 1 commit2026-05-18: 0 commits2026-05-19: 3 commits2026-05-20: 7 commits2026-05-21: 4 commits2026-05-22: 3 commits2026-05-23: 9 commits2026-05-24: 5 commits2026-05-25: 2 commits2026-05-26: 0 commits2026-05-27: 0 commits2026-05-28: 0 commits2026-05-29: 1 commit2026-05-30: 5 commits2026-05-31: 6 commits2026-06-01: 2 commits2026-06-02: 5 commits2026-06-03: 1 commit2026-06-04: 1 commit2026-06-05: 2 commits2026-06-06: 0 commits2026-06-07: 5 commits2026-06-08: 3 commits2026-06-09: 0 commits2026-06-10: 2 commits2026-06-11: 4 commits2026-06-12: 0 commits2026-06-13: 0 commits2026-06-14: 8 commits2026-06-15: 3 commits2026-06-16: 3 commits2026-06-17: 0 commits2026-06-18: 1 commit2026-06-19: 0 commits2026-06-20: 6 commits2026-06-21: 4 commits2026-06-22: 9 commits2026-06-23: 5 commits2026-06-24: 0 commits2026-06-25: 0 commits2026-06-26: 0 commits2026-06-27: 2 commits2026-06-28: 0 commits2026-06-29: 0 commits2026-06-30: 0 commits2026-07-01: 2 commits2026-07-02: 7 commits2026-07-03: 1 commit2026-07-04: 0 commits2026-07-05: 0 commits2026-07-06: 0 commits2026-07-07: 2 commits2026-07-08: 1 commit2026-07-09: 3 commits2026-07-10: 3 commits2026-07-11: 8 commits2026-07-12: 7 commits2026-07-13: 1 commit2026-07-14: 1 commit2026-07-15: 0 commits2026-07-16: 1 commit2026-07-17: 1 commit2026-07-18: 0 commits2026-07-19: 1 commit2026-07-20: 1 commit2026-07-21: 0 commits2026-07-22: 0 commits2026-07-23: 0 commits2026-07-24: 0 commits2026-07-25: 3 commits2026-07-26: 7 commits2026-07-27: 0 commits2026-07-28: 0 commits2026-07-29: 0 commits2026-07-30: 0 commits2026-07-31: 0 commits2026-08-01: 0 commits
1,155 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    15,883 stars

  • Very active

    1,155 commits in 52 weeks

  • Continuous integration

    Automated checks passing

What quarkdown does

Quarkdown is a Java-based library for parsing Markdown text and converting it into various formats, primarily HTML. It focuses on being lightweight and highly extensible, allowing developers to define custom syntax rules and rendering behaviors. Unlike monolithic parsers, it provides a flexible node-based abstract syntax tree (AST) that can be easily manipulated before final output. It is designed to be easily embedded into Java applications without pulling in heavy dependencies.

Java developers building content management systems, static site generators, or applications requiring embedded Markdown processing.

  • Extensible parsing engine: Allows developers to register custom inline and block-level syntax rules beyond standard Markdown.
  • AST manipulation: Generates a mutable abstract syntax tree that can be traversed and modified programmatically.
  • Zero-dependency core: Designed to be a lightweight library that does not bloat the host application's classpath.
  • Custom renderers: Supports plugging in custom rendering logic to target formats other than HTML.
  • Thread-safe processing: Ensures parsing and rendering operations can be safely executed in concurrent server environments.

Where teams use it

Custom blog engines

Java developers use Quarkdown to build static site generators where they need bespoke Markdown extensions for custom components.

In-app documentation

Enterprise software teams embed the library to render user-provided Markdown notes securely within a Java desktop or web application.

Content preprocessing

Backend services use the AST to extract metadata or sanitize content before storing it in a database.

Alternative format generation

Developers write custom renderers to convert Markdown into proprietary XML formats or specialized PDF generators.

Getting started: Add the dependency to your build file and initialize the Quarkdown parser.

README

main branch

Quarkdown banner
Wiki Docs Release Visual Studio Code Extension Version FMT: Ktlint CodeFactor

iamgio%2Fquarkdown | Trendshift
Quarkdown - Markdown with superpowers: from ideas to stunning documents. | Product Hunt

Releases
Latest   |   Stable 


Table of contents

  1. About
  2. Demo
  3. Targets
  4. Comparison
  5. Getting started
    1. Installation
    2. Quickstart
    3. Creating a project
    4. Compiling
  6. Mock document
  7. Contributing
  8. Sponsors
  9. Concept
  10. License

 

About

Quarkdown is a modern Markdown-based typesetting system designed for versatility. It allows a single project to compile seamlessly into a print-ready book, academic paper, knowledge base, or interactive presentation. All through an incredibly powerful Turing-complete extension of Markdown, ensuring your ideas flow automatically into paper.

 

Paper demo

Original credits: Attention Is All You Need


Born as an extension of CommonMark and GFM, the Quarkdown Flavor brings functions to Markdown, along with many other syntax extensions.


This is a function call:

.somefunction {arg1} {arg2}
    Body argument

Possibilities are unlimited thanks to an ever-expanding standard library, which offers layout builders, I/O, math, conditional statements and loops.

Not enough? You can still define your own functions and variables, all within Markdown. You can even create awesome libraries for everyone to use.


.function {greet}
    to from:
    **Hello, .to** from .from!

.greet {world} from:{iamgio}

Result: Hello, world from iamgio!


This out-of-the-box scripting support opens doors to complex and dynamic content that would be otherwise impossible to achieve with vanilla Markdown.

Combined with live preview, ⚡ fast compilation speed and a powerful VS Code extension, Quarkdown simply gets the work done, whether it's an academic paper, book, knowledge base or interactive presentation.

 

Live preview

 

In a nutshell, Quarkdown is...

  • Familiar: built on the well-known Markdown syntax, for a flat learning curve
  • Elegant: produces output that matches the quality of industry-leading tools
  • Agent-friendly: comes with a built-in skill for idiomatic fluency of your coding agents (read the eval)
  • Customizable: full control over document layout, aesthetics, and properties
  • Secure by default: a restrictive permission system limits access to system resources
  • Versatile: a single source compiles to multiple targets
  • Reactive: low-latency live previews for rapid iteration. The official wiki (100+ subdocuments) compiles in ~2 seconds
  • Reusable: repeated content can be turned into one-line function calls
  • Easily deployable: set a CD workflow up in under 3 minutes (example)

 


Looking for something?

Check out the wiki to get started and learn more about the language and its features!


 

As simple as you expect...

Paper code demo

Inspired by: X-ray flashes from a nearby supermassive black hole accelerate mysteriously

 

...as complex as you need.

Chart code demo

Targets

  • HTML

    • Plain
      Continuous flow like Notion/Obsidian, perfect for static websites and knowledge management - check out the author's personal website.

    • Paged via paged.js
      Perfect for papers, articles and books - check out the demo document.

    • Slides via reveal.js
      Perfect for interactive presentations.

    • Docs
      Perfect for wikis, technical documentation and large knowledge bases - check out Quarkdown's wiki.

  • PDF

    • All document types and features supported by HTML are also supported when exporting to PDF.
  • Plain text

The desired document type can be set by calling the .doctype function within the source itself:

  • .doctype {plain} (default)
  • .doctype {paged}
  • .doctype {slides}
  • .doctype {docs}

Comparison

Quarkdown LaTeX Typst AsciiDoc MDX
Concise and readable
Full document control1
Scripting Partial
Book/article export Third-party
Presentation export Third-party
Static site export Experimental
Docs/wiki export
Learning curve 🟢 🔴 🟠 🟢 🟢
Targets HTML, PDF, TXT PDF, PostScript HTML, PDF HTML, PDF, ePub HTML
LaTeX Quarkdown
\tableofcontents

\section{Section}

\subsection{Subsection}

\begin{enumerate}
    \item \textbf{First} item
    \item \textbf{Second} item
\end{itemize}

\begin{center}
    This text is \textit{centered}.
\end{center}

\begin{figure}[!h]
    \centering
    \begin{subfigure}[b]
        \includegraphics[width=0.3\linewidth]{img1.png}
    \end{subfigure}
    \begin{subfigure}[b]
        \includegraphics[width=0.3\linewidth]{img2.png}
    \end{subfigure}
    \begin{subfigure}[b]
        \includegraphics[width=0.3\linewidth]{img3.png}
    \end{subfigure}
\end{figure}
.tableofcontents

# Section

## Subsection

1. **First** item
2. **Second** item

.center
    This text is _centered_.

.row alignment:{spacebetween}
    ![Image 1](img1.png)

    ![Image 2](img2.png)
    
    ![Image 3](img3.png)

 

Getting started

Installation

Install script (Linux/macOS)

curl -fsSL https://raw.githubusercontent.com/quarkdown-labs/get-quarkdown/refs/heads/main/install.sh | sudo env "PATH=$PATH" bash

Root privileges let the script install Quarkdown into /opt/quarkdown and its wrapper script into /usr/local/bin/quarkdown.
If missing, Node.js will be installed automatically using the system's package manager.

For more installation options, check out get-quarkdown.

Homebrew (Linux/macOS)

brew install quarkdown-labs/quarkdown/quarkdown

Install script (Windows)

irm https://raw.githubusercontent.com/quarkdown-labs/get-quarkdown/refs/heads/main/install.ps1 | iex

Scoop (Windows)

scoop bucket add quarkdown https://github.com/quarkdown-labs/scoop-quarkdown; scoop install quarkdown

GitHub Actions

See setup-quarkdown to easily integrate Quarkdown into your GitHub Actions workflows.

Manual installation

Instructions for manual installation

Download quarkdown.zip from the latest stable release and unzip it, or build it with gradlew installDist.

Optionally, adding <install_dir>/bin to your PATH allows you easier access Quarkdown.

Requirements:

  • (Only for PDF export) Node.js, npm, Puppeteer. See PDF export for details.

 

Quickstart

New user? You'll find everything you need in the Quickstart guide to bring your first document to life!

 

Creating a project

quarkdown create [directory] will launch the prompt-based project wizard, making it quicker than ever to set up a new Quarkdown project, with all metadata and initial content already present.

 

Compiling

Running quarkdown c file.qd will compile the given file and save the output to file.

If the project is composed by multiple source files, the target file must be the root one, i.e. the one that includes the other files.

If you would like to familiarize yourself with Quarkdown instead, quarkdown repl lets you play with an interactive REPL mode.

Options

The most commonly used options are:

  • -p or --preview: enables automatic content reloading after compiling.

  • -w or --watch: recompiles the source every time a file from the source directory is changed.

Tip

Combine -p -w to achieve live preview!

  • --pdf: produces a PDF file. Learn more in the wiki's PDF export page.

For the full list of options, check out the CLI options wiki page.

 


 

Mock document

 

Mock document demo

Mock, written in Quarkdown, is a comprehensive collection of visual elements offered by the language, making it ideal for exploring and understanding its key features — all while playing and experimenting hands-on with a concrete outcome in the form of pages or slides.

  • The document's source files are available in the mock directory, and can be compiled via quarkdown c mock/main.qd -p.
  • The PDF artifacts generated for all possible theme combinations are available and can be viewed in the generated repo.

Contributing

Contributions are welcome! Please check CONTRIBUTING.md to know how contribute via issues or pull requests.

Sponsors

A special thanks to all the sponsors who supported this project!

Falconer

RayOffiah

vitto4 aaditkamat

LunaBluee  dcopia Pallandos imogenxingren serkonda7

Concept

The logo resembles the original Markdown icon, with focus on Quarkdown's completeness, richness of features and customization options, emphasized by the revolving arrow all around the sphere.

Quarkdown icon

What could be mistaken for a planet is actually a quark or, more specifically, a down quark, an elementary particle that is a major constituent of matter: they give life to every complex structure we know of, while also being one of the lightest objects in existence.

This is, indeed, the concept Quarkdown is built upon.

License

By default, Quarkdown and its modules are licensed under GNU GPLv3, except for modules that include their own LICENSE file: the CLI (quarkdown-cli) and Language Server (quarkdown-lsp) modules and binaries are licensed under GNU AGPLv3.

Footnotes

Footnotes

  1. The ability to customize the properties of the document and of its output artifact through the language itself.

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Discussions

all 46

Releases and announcements

42 total
  1. v2.4.1v2.4.1Jul 26, 2026342 downloads

    ### Added &nbsp; #### [`em` size units](https://quarkdown.com/wiki/sizes) Size values now support the font-relative `em` unit, e.g. `2em`, `0.7em`. Thanks @arpitagarwal1301! &nbsp; ### Fixed &nbsp; #### Inline replacement lambdas accept nested function calls Node-returning function calls, such as `.text`, can now be used in `.match` and other body lambdas as expected. ```markdown .match {Quarkdown takes its name from quarks} pattern:{[Qq]uark(down|s)?} .1::text color:{purple} decoration:{underline} ``` &nbsp; #### Chained `.extend` composes in declaration order Multiple extensions on the same function now stack in the correct LIFO declaration order. The following snippet now correctly renders the heading in red, rather than blue: ```markdown .extend {heading} .super foreground:{blue} .extend {heading} .super foreground:{green} .extend {heading} .super foreground:{red} ## Heading ``` &nbsp; #### `.match` in chained extensions sees content correctly Fixed the ability to chain multiple `.match` calls onto the same content: ```markdown .extend {paragraph} content: .super .content:

  2. Development buildlatestMay 13, 2025pre-release5 downloads

    **Full Changelog**: https://github.com/iamgio/quarkdown/commits/latest

  3. v2.4.0v2.4.0Jul 13, 20261.5K downloads

    Quarkdown 2.4 is one of the most impactful releases in the history of the project, introducing a new system for extending Markdown elements behavior and styling. You can read in detail about this powerful feature in its [blog post](https://quarkdown.com/blog/quarkdown-2-4). &nbsp; ### Added   #### [Element styling](https://quarkdown.com/wiki/element-styling) (show-rules) > [!NOTE] > This feature is experimental. When `.extend` is applied to a function of the [_Primitives_ module](https://quarkdown.com/docs/quarkdown-stdlib/com.quarkdown.stdlib.module.Primitives/index.html), its new behavior is reflected on its Markdown counterpart. For example, extending the `.heading` function affects the `# Heading` Markdown element. This is one of the biggest milestones for Quarkdown, on par with Typst's `#show` rules. ```markdown .extend {heading} content: .super foreground:{blue} *.content* ## A heading <!-- Renders blue and italic --> ``` This release ships with a handful of primitives as an experimental feature: headings, paragraphs, links, figures, images, math, page breaks. The plan is to eventually have every Markdown element type backe

  4. v2.3.1v2.3.1Jun 23, 20261.8K downloads

    ### Added   #### GHCR image An image for Quarkdown is now available on GitHub Container Registry. Thanks @dddanielliu!   ### Fixed   #### Safer `--clean` The `--clean` flag now refuses to clean the output directory in case it contains source files or git repos, or if it's the filesystem root or home directory. It also stops if the directory would (recursively) contain the source file passed to the command.   * * * ### Sponsors Thanks to our sponsors! 🎉 @vitto4 @aaditkamat <a href="https://falconer.com"><img src="https://raw.githubusercontent.com/iamgio/quarkdown/project-files/images/sponsors/falconer.jpeg" alt="Falconer" width="350"></a>

  5. v2.3.0v2.3.0Jun 18, 2026553 downloads

    ### Added   #### [Page background color](https://quarkdown.com/wiki/page-format) `.pageformat` now accepts a `background` parameter to set the background color of each page: ```markdown .pageformat background:{orange} ``` In `paged` documents, the background can be scoped to specific pages, as usual: ```markdown .pageformat pages:{1..3} background:{orange} ``` Thanks @gggeon96!   ### Changed   #### [Changed `.extend` behavior](https://quarkdown.com/wiki/extending-functions) (breaking change) `.extend`, introduced in v2.2.0 as experimental, has undergone a shift in behavior. This is going to play a major role in the next v2.4.0 release. `super` now exposes the original function, rather than its precomputed output, and no longer needs to be declared as a parameter. Because `.super` is the original function itself, it accepts the same arguments: anything you pass overrides the corresponding argument the wrapper was called with, while anything you leave out falls through unchanged. This lets the wrapper invoke the original with adjusted inputs. ```markdown .function {greet} greeting name: .greeting, .name! .extend {greet}

Commits per week

last 52 weeks
580Week of 2025-08-03: 13 commitsWeek of 2025-08-10: 20 commitsWeek of 2025-08-17: 35 commitsWeek of 2025-08-24: 21 commitsWeek of 2025-08-31: 12 commitsWeek of 2025-09-07: 8 commitsWeek of 2025-09-14: 19 commitsWeek of 2025-09-21: 35 commitsWeek of 2025-09-28: 8 commitsWeek of 2025-10-05: 32 commitsWeek of 2025-10-12: 43 commitsWeek of 2025-10-19: 14 commitsWeek of 2025-10-26: 27 commitsWeek of 2025-11-02: 9 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 8 commitsWeek of 2025-11-23: 31 commitsWeek of 2025-11-30: 12 commitsWeek of 2025-12-07: 28 commitsWeek of 2025-12-14: 14 commitsWeek of 2025-12-21: 5 commitsWeek of 2025-12-28: 52 commitsWeek of 2026-01-04: 58 commitsWeek of 2026-01-11: 39 commitsWeek of 2026-01-18: 34 commitsWeek of 2026-01-25: 32 commitsWeek of 2026-02-01: 52 commitsWeek of 2026-02-08: 47 commitsWeek of 2026-02-15: 36 commitsWeek of 2026-02-22: 9 commitsWeek of 2026-03-01: 29 commitsWeek of 2026-03-08: 39 commitsWeek of 2026-03-15: 18 commitsWeek of 2026-03-22: 20 commitsWeek of 2026-03-29: 26 commitsWeek of 2026-04-05: 21 commitsWeek of 2026-04-12: 24 commitsWeek of 2026-04-19: 7 commitsWeek of 2026-04-26: 46 commitsWeek of 2026-05-03: 10 commitsWeek of 2026-05-10: 0 commitsWeek of 2026-05-17: 27 commitsWeek of 2026-05-24: 13 commitsWeek of 2026-05-31: 17 commitsWeek of 2026-06-07: 14 commitsWeek of 2026-06-14: 21 commitsWeek of 2026-06-21: 20 commitsWeek of 2026-06-28: 10 commitsWeek of 2026-07-05: 17 commitsWeek of 2026-07-12: 11 commitsWeek of 2026-07-19: 5 commitsWeek of 2026-07-26: 7 commitsAug 3, 2025Jul 26, 2026
1.2K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 35 commitsSun 1:00 — 19 commitsSun 2:00 — 5 commitsSun 3:00 — 0 commitsSun 4:00 — 1 commitsSun 5:00 — 2 commitsSun 6:00 — 0 commitsSun 7:00 — 1 commitsSun 8:00 — 3 commitsSun 9:00 — 4 commitsSun 10:00 — 5 commitsSun 11:00 — 24 commitsSun 12:00 — 39 commitsSun 13:00 — 27 commitsSun 14:00 — 18 commitsSun 15:00 — 38 commitsSun 16:00 — 37 commitsSun 17:00 — 46 commitsSun 18:00 — 49 commitsSun 19:00 — 64 commitsSun 20:00 — 37 commitsSun 21:00 — 43 commitsSun 22:00 — 59 commitsSun 23:00 — 74 commitsMon 0:00 — 41 commitsMon 1:00 — 10 commitsMon 2:00 — 7 commitsMon 3:00 — 1 commitsMon 4:00 — 1 commitsMon 5:00 — 0 commitsMon 6:00 — 1 commitsMon 7:00 — 0 commitsMon 8:00 — 0 commitsMon 9:00 — 9 commitsMon 10:00 — 13 commitsMon 11:00 — 30 commitsMon 12:00 — 24 commitsMon 13:00 — 30 commitsMon 14:00 — 17 commitsMon 15:00 — 28 commitsMon 16:00 — 37 commitsMon 17:00 — 27 commitsMon 18:00 — 36 commitsMon 19:00 — 22 commitsMon 20:00 — 32 commitsMon 21:00 — 47 commitsMon 22:00 — 43 commitsMon 23:00 — 50 commitsTue 0:00 — 26 commitsTue 1:00 — 4 commitsTue 2:00 — 11 commitsTue 3:00 — 0 commitsTue 4:00 — 0 commitsTue 5:00 — 1 commitsTue 6:00 — 2 commitsTue 7:00 — 1 commitsTue 8:00 — 2 commitsTue 9:00 — 2 commitsTue 10:00 — 3 commitsTue 11:00 — 4 commitsTue 12:00 — 9 commitsTue 13:00 — 23 commitsTue 14:00 — 8 commitsTue 15:00 — 23 commitsTue 16:00 — 29 commitsTue 17:00 — 14 commitsTue 18:00 — 23 commitsTue 19:00 — 25 commitsTue 20:00 — 28 commitsTue 21:00 — 31 commitsTue 22:00 — 48 commitsTue 23:00 — 28 commitsWed 0:00 — 22 commitsWed 1:00 — 20 commitsWed 2:00 — 4 commitsWed 3:00 — 1 commitsWed 4:00 — 1 commitsWed 5:00 — 0 commitsWed 6:00 — 2 commitsWed 7:00 — 1 commitsWed 8:00 — 1 commitsWed 9:00 — 0 commitsWed 10:00 — 3 commitsWed 11:00 — 21 commitsWed 12:00 — 33 commitsWed 13:00 — 18 commitsWed 14:00 — 13 commitsWed 15:00 — 27 commitsWed 16:00 — 35 commitsWed 17:00 — 40 commitsWed 18:00 — 19 commitsWed 19:00 — 25 commitsWed 20:00 — 31 commitsWed 21:00 — 21 commitsWed 22:00 — 39 commitsWed 23:00 — 45 commitsThu 0:00 — 26 commitsThu 1:00 — 29 commitsThu 2:00 — 7 commitsThu 3:00 — 1 commitsThu 4:00 — 3 commitsThu 5:00 — 0 commitsThu 6:00 — 1 commitsThu 7:00 — 6 commitsThu 8:00 — 3 commitsThu 9:00 — 3 commitsThu 10:00 — 9 commitsThu 11:00 — 18 commitsThu 12:00 — 18 commitsThu 13:00 — 7 commitsThu 14:00 — 9 commitsThu 15:00 — 11 commitsThu 16:00 — 21 commitsThu 17:00 — 21 commitsThu 18:00 — 31 commitsThu 19:00 — 19 commitsThu 20:00 — 37 commitsThu 21:00 — 26 commitsThu 22:00 — 36 commitsThu 23:00 — 40 commitsFri 0:00 — 35 commitsFri 1:00 — 14 commitsFri 2:00 — 2 commitsFri 3:00 — 3 commitsFri 4:00 — 2 commitsFri 5:00 — 1 commitsFri 6:00 — 1 commitsFri 7:00 — 0 commitsFri 8:00 — 0 commitsFri 9:00 — 2 commitsFri 10:00 — 5 commitsFri 11:00 — 5 commitsFri 12:00 — 20 commitsFri 13:00 — 21 commitsFri 14:00 — 8 commitsFri 15:00 — 15 commitsFri 16:00 — 23 commitsFri 17:00 — 28 commitsFri 18:00 — 45 commitsFri 19:00 — 16 commitsFri 20:00 — 18 commitsFri 21:00 — 22 commitsFri 22:00 — 22 commitsFri 23:00 — 36 commitsSat 0:00 — 25 commitsSat 1:00 — 30 commitsSat 2:00 — 6 commitsSat 3:00 — 0 commitsSat 4:00 — 1 commitsSat 5:00 — 1 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 3 commitsSat 9:00 — 3 commitsSat 10:00 — 5 commitsSat 11:00 — 19 commitsSat 12:00 — 20 commitsSat 13:00 — 26 commitsSat 14:00 — 21 commitsSat 15:00 — 37 commitsSat 16:00 — 53 commitsSat 17:00 — 58 commitsSat 18:00 — 66 commitsSat 19:00 — 40 commitsSat 20:00 — 29 commitsSat 21:00 — 20 commitsSat 22:00 — 24 commitsSat 23:00 — 43 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.

Who is committing

last 52 weeks
Maintainer commits1,420 (91%)
Community commits132 (9%)

1,552 commits in total over the last year.

DateListRankStars gained
Apr 28, 2026daily#25+61
  • microsoft/markitdown

    Python tool for converting files and office documents to Markdown.

    172.2K stars · Python

  • firecrawl/firecrawl

    The context API to search, scrape, and interact with the web at scale. 🔥

    162.8K stars · TypeScript

  • vercel/next.js

    The React Framework

    141.7K stars · JavaScript

  • Stirling-Tools/Stirling-PDF

    #1 PDF Application on GitHub that lets you edit PDFs on any device anywhere

    89.1K stars · Java

  • opendatalab/MinerU

    Transforms complex documents like PDFs and Office docs into LLM-ready markdown/JSON for your Agentic workflows.

    77.1K stars · Python

  • webpack/webpack

    A bundler for javascript and friends. Packs many modules into a few bundled assets. Code Splitting allows for loading parts of the application on demand. Through "loaders", modules can be CommonJs, AMD, ES6 modules, CSS, Images, JSON, Coffeescript, LESS, ... and your custom stuff.

    66K stars · JavaScript