← Retour au blog
tech 5 July 2026

Optimize Your Document Conversions with Pandoc Lua Filters

Learn how Pandoc's Lua filters revolutionize document conversion by eliminating external dependencies and improving performance.

Article inspired by the original source
Pandoc Lua Filters ↗ pandoc.org

Introduction to Pandoc's Lua Filters

Document conversion is a common challenge in the digital world, especially when dealing with various formats and content types. Pandoc, a universal document converter, simplifies this process with its Lua filters. Since version 2.0, Pandoc directly integrates a Lua interpreter and a library for creating filters, eliminating the need for external dependencies.

Why Choose Lua for Filters?

Lua is directly embedded in the Pandoc executable, meaning you don't need a separate installation or third-party libraries to manipulate Pandoc's abstract syntax tree (AST). This reduces the computational load associated with converting between JSON and Pandoc.

Practical Examples

Let's consider a straightforward example: a filter that converts text in strong emphasis to small caps. Here's how you can define this filter in Lua:

``lua return { Strong = function (elem) return pandoc.SmallCaps(elem.content) end, } ``

To run it, simply save this script in a file, say smallcaps.lua, and execute Pandoc with the --lua-filter=smallcaps.lua option.

Lua Filters Performance

Let's compare the performance of filters written in Haskell, Python, and Lua. When converting the Pandoc manual to HTML, the results are:

  • Plain Pandoc: 1.01s
  • Haskell Filter: 1.36s
  • Python Filter: 1.40s
  • Lua Filter: 1.03s

Lua filters show a significant performance advantage due to the absence of overhead related to JSON conversion.

Structure and Usage of Lua Filters

Lua filters are defined as tables with element names as keys and functions acting on those elements as values. They are placed in separate files and passed to Pandoc via the --lua-filter argument.

Application Example

Suppose you want to add the current date to every converted document. A Lua filter could be designed to automatically insert this information at a specific location in the document.

Conclusion

Pandoc's Lua filters bring enhanced flexibility and efficiency to document conversion. If you regularly work with Pandoc, it's time to explore these filters to optimize your workflows.

Let's discuss your project in 15 minutes.

Pandoc Lua filters document conversion performance AST
Deepthix newsletter · 100% AI · every Monday 8am

An AI agent reads tech for you.

Our AI agent scans ~200 sources per week and ships the best articles to your inbox Monday 8am. Free. One click to unsubscribe.

Visit the newsletter page →

Want to automate your operations?

Let's talk about your project in 15 minutes.

Book a call