Quarkdown is a modern Markdown-based typesetting tool that extends the power of CommonMark and GitHub Flavored Markdown (GFM). It introduces functions, variables, and standard libraries that enable users to create dynamic content that easily generates interactive presentations, web pages, or print-ready books.Quarkdown supports fast compilation and real-time preview for developers, writers, and designers. Users can use simple Markdown syntax to achieve complex layout , while supporting PDF output and custom libraries . The project is open source, well documented and has an active community for users who need to efficiently create complex documents.
Function List
- Dynamic content generation: Support for functions and variables to create interactive content such as dynamic greetings or conditional statements.
- Real-time preview: By
-p
cap (a poem)-w
command to automatically refresh the content and view it live in your browser. - PDF Output: Use
--pdf
command compiles the document into a print-ready PDF file. - Standard Library Support: Provides functions such as layout construction, math operations, conditional statements and loops.
- customizable function: Users can define their own functions and variables to extend the Markdown functionality.
- Multi-file compilation: Support for multi-file projects, specify the root file to compile the whole project.
- Interactive REPL mode: By
quarkdown repl
Go into interactive mode to quickly test the code. - External library loading: By
-l
maybe--libs
Load external libraries for enhanced functionality. - Multiple rendering targets: Support for HTML and other rendering formats for flexible content output.
Using Help
Installation process
Quarkdown is a command line tool with a simple installation process. Below are the detailed steps:
- Ensuring the environment: Quarkdown requires Node.js to be installed (the latest LTS version is recommended). Run
node -v
Check if Node.js is installed. - clone warehouse: Visit the GitHub repository (https://github.com/iamgio/quarkdown) and run the following command to clone the project:
git clone https://github.com/iamgio/quarkdown.git
- Installation of dependencies: Go to the project directory and run it:
cd quarkdown npm install
- global installation: If you wish to use the Quarkdown command globally, run:
npm install -g .
- Verify Installation: Run
quarkdown --version
Check if the installation was successful.
Usage
Quarkdown operates from the command line, and the core commands are quarkdown c <file.qmd>
This is the first step in the process of compiling a Markdown file. The following are the main functions and operation flow:
1. Compiling individual files
To compile a Quarkdown file (e.g., the example.qmd
), run:
quarkdown c example.qmd
The output file is saved by default in the ./output
directory. To specify the output directory, use the -o
::
quarkdown c example.qmd -o ./my-output
2. Real-time preview
Quarkdown supports real-time previewing, which is suitable for quickly adjusting content. Run the following command to start the preview:
quarkdown c example.qmd -p -w
-p
: Launch the browser preview and open the default browser automatically.-w
: Monitor file changes and recompile automatically.
combining-p -w
You can realize the effect of instantly refreshing the preview after saving, which is suitable for dynamically adjusting presentations or web pages.
3. Generation of PDF
To export a document to PDF, add --pdf
Parameters:
quarkdown c example.qmd --pdf
The generated PDF files are saved in the output directory, which is suitable for printing books or sharing documents. For more PDF settings refer to the official documentation (quarkdown.com/docs).
4. Interactive REPL model
Want to test Quarkdown syntax quickly? Use REPL mode:
quarkdown repl
Once in the interactive environment, you can enter Quarkdown code directly, for example:
.function {greet} to from: **Hello, .to** from .from!
.greet {world} from:{iamgio}
The output result is:Hello, world from iamgio!
. This mode is suitable for learning and debugging.
5. Use of standard libraries and customized functions
Quarkdown provides a rich standard library with support for layout, math operations, and conditional statements. For example, creating a dynamic list:
.for {item} in {apple, banana, orange}:
- .item
.endfor
The output is:
- apple
- banana
- orange
The user can also define custom functions. Example:
.function {welcome} name: Welcome, .name, to Quarkdown!
.welcome {Alice}
Output:Welcome, Alice, to Quarkdown!
. Custom functions can be saved as libraries for reuse in other projects.
6. Multi-document projects
For complex projects, Quarkdown supports multi-file compilation. Make sure to specify the root file (e.g. main.qmd
), it will automatically include other files:
quarkdown c mock/main.qmd -p
Sample Projects mock
Includes a variety of visual elements for learning Quarkdown's features.
7. Loading external libraries
If you need to use an external library, specify the library directory:
quarkdown c example.qmd -l ./my-libs
The default library path is <install dir>/lib/qmd
. Users can create and share their own libraries.
8. Rendering target settings
Quarkdown outputs HTML by default, but it can be changed via the -r
Specifies other rendering targets:
quarkdown c example.qmd -r html
Refer to the official documentation for more rendering options.
Featured Function Operation
- dynamic content: The core feature of Quarkdown is support for functions and variables. Users can use the
.function
Define functions that combine standard library loops and conditional statements to generate dynamic content. For example, conditional statement usage:.if {condition} == true: Content displayed if true .else: Content displayed if false .endif
- Mock Example: Courtesy of Quarkdown
mock
Sample project demonstrating visual elements and typographic effects. Runquarkdown c mock/main.qmd -p
View full demo. - Community Contributions: Users can participate in feature development by submitting issues or pull requests via GitHub. References
CONTRIBUTING.md
Get the guide.
More features and detailed documentation are available at quarkdown.com/docs.
application scenario
- Technical Documentation
Developers can use Quarkdown to write dynamic technical documentation. Generate complex documentation with conditional logic or loops through functions and variables. For example, automatically generate tables or lists for API documentation. - Interactive presentations
Educators or lecturers can use Quarkdown to create interactive slideshows. Combine real-time previews with quick content adjustments for classroom or conference presentations. - book layout
Authors can compile Markdown files into print-ready PDF books for self-publishing or technical manuals.PDF output supports a wide range of topics. - personal blog
Bloggers can take advantage of Quarkdown's dynamic capabilities to create web pages that include interactive elements such as dynamic greetings or personalized content.
QA
- What Markdown standards does Quarkdown support?
Quarkdown is based on CommonMark and GitHub Flavored Markdown (GFM) and extends it with functions, variables and standard library features. The standard Markdown syntax is fully compatible. - How to debug Quarkdown code?
utilizationquarkdown repl
Enter interactive mode and test the code line by line. Error messages are displayed in the terminal, making it easy to locate the problem. - Is programming experience required?
No. Quarkdown's syntax is simple, and users familiar with Markdown can get started quickly. Standard libraries and documentation provide adequate support. - How to export to different formats?
The default output is HTML; use the--pdf
Other rendering formats are available through-r
specified, see documentation for details. - How do I get involved in my community?
Visit the GitHub repository to submit issues or pull requests. check out theCONTRIBUTING.md
Get a guide to contributing.