# quarkdown | Giorgio Garofalo | Knowledge Base | Instagit

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

GitHub Stars: 12.5k

Repository: https://github.com/iamgio/quarkdown

---

## Articles

### [How to Debug Performance Issues in Quarkdown's Pipeline Stages](/iamgio/quarkdown/debug-quarkdown-pipeline-performance-issues)

Debug Quarkdown pipeline performance issues using PipelineHooks and MillisStopwatch for granular timings. Enable debug logging with -Dloglevel=debug for insights without production impact.

- Tags: performance
- Published: 2026-04-29

### [How to Add Syntax Highlighting Support for New Languages in Quarkdown HTML](/iamgio/quarkdown/add-syntax-highlighting-new-languages-quarkdown-html)

Easily add syntax highlighting for new languages in Quarkdown HTML by creating a custom entry file and updating the `bundleHighlightJs` Gradle task. Enhance your code documentation effortlessly.

- Tags: how-to-guide
- Published: 2026-04-29

### [How Quarkdown Compiles .qd Files to HTML and PDF: A Deep Dive into the Pipeline](/iamgio/quarkdown/quarkdown-compilation-flow-source-to-output)

Deep dive into the Quarkdown compilation pipeline. Discover how .qd files transform into HTML and PDF via lexing, parsing, AST rendering, and optional PDF generation with Puppeteer.

- Tags: deep-dive
- Published: 2026-04-29

### [How to Implement Custom Bibliography Styles in Quarkdown: CSL and Native Methods](/iamgio/quarkdown/implement-custom-bibliography-styles-quarkdown)

Implement custom bibliography styles in Quarkdown using CSL files or Kotlin. Format your references with ease and tailor bibliographies to your specific needs.

- Tags: how-to-guide
- Published: 2026-04-29

### [How Quarkdown Handles Cross-References Between Sections, Figures, and Tables](/iamgio/quarkdown/quarkdown-cross-references-sections-figures-tables)

Discover how Quarkdown expertly manages cross-references for sections, figures, and tables. Learn about its AST node parsing, resolution, and hyperlink rendering for seamless document navigation within your project.

- Tags: how-to-guide
- Published: 2026-04-29

### [How to Create Custom QuarkdownModule Definitions with Function Registrations in Quarkdown](/iamgio/quarkdown/create-custom-quarkdown-modules-function-registrations)

Learn to create custom QuarkdownModule definitions with function registrations by writing Kotlin functions and grouping them using moduleOf. Load your module via MultiFunctionLibraryLoader.

- Tags: how-to-guide
- Published: 2026-04-29

### [How DynamicValue Lazy Evaluation Works for Body Arguments in Quarkdown](/iamgio/quarkdown/quarkdown-dynamicvalue-lazy-evaluation-body-arguments)

Discover how Quarkdown uses DynamicValue lazy evaluation for body arguments. Learn how raw text is stored and Markdown AST is materialized only when needed, boosting performance.

- Tags: internals
- Published: 2026-04-29

### [Quarkdown Language Server Protocol Implementation Architecture: A Deep Dive into the LSP-4J Design](/iamgio/quarkdown/quarkdown-lsp-architecture)

Explore the Quarkdown Language Server Protocol implementation architecture. Discover its modular supplier-driven design built on LSP-4J and how it aggregates results efficiently.

- Tags: architecture
- Published: 2026-04-29

### [How to Implement Custom Template Processors in Quarkdown's Project Creator](/iamgio/quarkdown/create-custom-quarkdown-project-template-processors)

Learn to implement custom template processors in Quarkdown's project creator. Extend the create wizard by implementing ProjectCreatorTemplateProcessorFactory and registering your factory.

- Tags: how-to-guide
- Published: 2026-04-29

### [How LivePreviewEndpoint Works with Puppeteer for PDF Generation in Quarkdown](/iamgio/quarkdown/quarkdown-livepreviewendpoint-puppeteer-pdf-generation)

Discover how Quarkdown's LivePreviewEndpoint leverages Puppeteer for PDF generation, reusing the static file server and a print query parameter for identical page rendering.

- Tags: internals
- Published: 2026-04-29

### [How to Extend Quarkdown with New AST Nodes and NodeVisitor Implementations](/iamgio/quarkdown/extend-quarkdown-new-ast-nodes-visitors)

Learn to extend Quarkdown by adding new AST nodes and NodeVisitor implementations in Kotlin. Enhance your Quarkdown renderer with custom components.

- Tags: how-to-guide
- Published: 2026-04-29

### [How Context Forking Determines the Sandbox Level in Quarkdown](/iamgio/quarkdown/quarkdown-context-forking-vs-sandbox-level)

Discover how context forking in Quarkdown determines sandbox levels. Learn how it controls state mutations propagation across included files for isolation or read-only access.

- Tags: deep-dive
- Published: 2026-04-29

### [How to Debug Function Call Resolution Failures in Quarkdown's Compiler](/iamgio/quarkdown/debug-quarkdown-compiler-function-call-failures)

Debug Quarkdown compiler function call resolution failures. Trace the four-stage pipeline from FunctionCallRefiner to UncheckedFunctionCall. Ensure function names match @Name and libraries are registered.

- Tags: how-to-guide
- Published: 2026-04-29

### [How NodeOutputValueVisitor Converts Function Outputs to AST Nodes](/iamgio/quarkdown/quarkdown-nodeoutputvaluevisitor-function-to-ast)

Explore how NodeOutputValueVisitor transforms OutputValue subtypes into AST nodes. Discover the distinct handling for block and inline contexts in Quarkdown's iamgio/quarkdown repository.

- Tags: internals
- Published: 2026-04-29

### [How to Implement Custom Document Types in Quarkdown: Extending Beyond Plain, Paged, Slides, and Docs](/iamgio/quarkdown/create-custom-document-types-quarkdown)

Extend Quarkdown's capabilities by implementing custom document types. Learn to add new enums and integrate rendering logic for unique document formats beyond standard options.

- Tags: how-to-guide
- Published: 2026-04-29

### [How Quarkdown's Directory Watcher Detects File Changes for Live Preview](/iamgio/quarkdown/quarkdown-directory-watcher-live-preview-file-changes)

Discover how Quarkdown leverages Directory Watcher and io methvin watcher to detect file changes, filter paths, and recompile for live preview.

- Tags: internals
- Published: 2026-04-29

### [How to Configure Theme Bundling and Offline Asset Distribution in Quarkdown HTML](/iamgio/quarkdown/configure-quarkdown-html-themes-offline-assets)

Learn to configure theme bundling and offline asset distribution in Quarkdown HTML. Bundle all dependencies into a self-contained build directory for offline rendering.

- Tags: how-to-guide
- Published: 2026-04-29

### [Quarkdown ValueFactory Expression Parsing Architecture: A Deep Dive](/iamgio/quarkdown/quarkdown-valuefactory-architecture-expression-parsing)

Explore Quarkdown's ValueFactory architecture for expression parsing. Understand its multi-stage pipeline transforming input into typed Value objects via tokenization and evaluation.

- Tags: architecture
- Published: 2026-04-29

### [How FunctionCallRefiner Handles Chaining in Quarkdown](/iamgio/quarkdown/quarkdown-functioncallrefiner-chaining-syntax)

Discover how iamgio/quarkdown's FunctionCallRefiner transforms linear function call chains like .foo::bar into nested AST trees, effectively converting syntax into executable code.

- Tags: internals
- Published: 2026-04-29

### [How to Implement Custom Post‑Renderers for HTML Output in Quarkdown](/iamgio/quarkdown/implement-custom-quarkdown-html-post-renderers)

Learn to implement custom post renderers for HTML output in Quarkdown. Extend the PostRenderer interface, provide custom resources, and register using a RendererFactory for tailored results.

- Tags: how-to-guide
- Published: 2026-04-29

### [How Quarkdown Function Declaration Works with Lambda Parameters](/iamgio/quarkdown/quarkdown-function-declaration-lambda-parameters)

Discover how Quarkdown's .function declaration compiles into SimpleFunction objects, executing Lambda bodies by binding arguments as callable functions in a temporary library.

- Tags: internals
- Published: 2026-04-29

### [How to Create Custom Native Functions in Quarkdown’s Stdlib Module](/iamgio/quarkdown/create-custom-quarkdown-native-functions)

Learn to create custom native functions in Quarkdown using Kotlin. Export and register your functions easily with Stdlib.kt for extended functionality and enhanced performance.

- Tags: how-to-guide
- Published: 2026-04-29

### [SharedContext vs ScopeContext vs SubdocumentContext in Quarkdown: Key Differences Explained](/iamgio/quarkdown/quarkdown-context-types-shared-scope-subdocument)

Understand Quarkdown contexts. Learn the key differences between SharedContext, ScopeContext, and SubdocumentContext for efficient document processing and variable management.

- Tags: deep-dive
- Published: 2026-04-29

### [How Quarkdown's Pipeline Handles Function Call Expansion and AST Transformation](/iamgio/quarkdown/how-does-quarkdowns-pipeline-handle-function-call-expansion-and-ast-transformation)

Discover how Quarkdown's pipeline expands function calls converting syntax to AST nodes by resolving executing and mapping outputs for efficient rendering.

- Tags: internals
- Published: 2026-04-29

