Add custom-writers.md.
This commit is contained in:
parent
a9e5145c3a
commit
1d56e6059e
2 changed files with 55 additions and 4 deletions
11
changelog.md
11
changelog.md
|
@ -1,4 +1,4 @@
|
||||||
# Revision history for pandoc
|
## Revision history for pandoc
|
||||||
|
|
||||||
## pandoc 2.16.2 (2021-11-21)
|
## pandoc 2.16.2 (2021-11-21)
|
||||||
|
|
||||||
|
@ -147,13 +147,16 @@
|
||||||
* Require Cabal 2.4. Use wildcards to ensure that all pptx tests are
|
* Require Cabal 2.4. Use wildcards to ensure that all pptx tests are
|
||||||
included (#7677).
|
included (#7677).
|
||||||
|
|
||||||
* Update bash_completion.tpl (S.P.H.).
|
* Update `bash_completion.tpl` (S.P.H.).
|
||||||
|
|
||||||
* Add `data/creole.lua` as sample custom reader.
|
* Add `data/creole.lua` as sample custom reader.
|
||||||
|
|
||||||
* Add `doc/custom-readers.md`.
|
* Add `doc/custom-readers.md` and `doc/custom-writers.md`.
|
||||||
|
|
||||||
* MANUAL.txt: update table of exit codes and corresponding errors
|
* `doc/lua-filters.md`: add section on global modules, including lpeg
|
||||||
|
(Albert Krewinkel).
|
||||||
|
|
||||||
|
* `MANUAL.txt`: update table of exit codes and corresponding errors
|
||||||
(Albert Krewinkel).
|
(Albert Krewinkel).
|
||||||
|
|
||||||
* Use latest texmath.
|
* Use latest texmath.
|
||||||
|
|
48
doc/custom-writers.md
Normal file
48
doc/custom-writers.md
Normal file
|
@ -0,0 +1,48 @@
|
||||||
|
---
|
||||||
|
author:
|
||||||
|
- John MacFarlane
|
||||||
|
date: 'November 21, 2021'
|
||||||
|
title: Creating Custom Pandoc Writers in Lua
|
||||||
|
---
|
||||||
|
|
||||||
|
# Introduction
|
||||||
|
|
||||||
|
If you need to render a format not already handled by pandoc,
|
||||||
|
or you want to change how pandoc renders a format,
|
||||||
|
you can create a custom writer using the [Lua] language.
|
||||||
|
Pandoc has a built-in Lua interpreter, so you needn't
|
||||||
|
install any additional software to do this.
|
||||||
|
|
||||||
|
[Lua]: https://www.lua.org
|
||||||
|
|
||||||
|
A custom writer is a Lua file that defines functions for
|
||||||
|
rendering each element of a pandoc AST.
|
||||||
|
|
||||||
|
For example,
|
||||||
|
|
||||||
|
``` lua
|
||||||
|
function Para(s)
|
||||||
|
return "<paragraph>" .. s .. "</paragraph>"
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
|
The best way to go about creating a custom writer is to modify
|
||||||
|
the example that comes with pandoc. To get the example, you
|
||||||
|
can do
|
||||||
|
|
||||||
|
```
|
||||||
|
pandoc --print-default-data-file sample.lua > sample.lua
|
||||||
|
```
|
||||||
|
|
||||||
|
`sample.lua` is a full-features HTML writer, with explanatory
|
||||||
|
comments. To use it, just use the path to the custom writer as
|
||||||
|
the writer name:
|
||||||
|
|
||||||
|
```
|
||||||
|
pandoc -t sample.lua myfile.md
|
||||||
|
```
|
||||||
|
|
||||||
|
`sample.lua` defines all the functions needed by any custom
|
||||||
|
writer, so you can design your own custom writer by modifying
|
||||||
|
the functions in `sample.lua` according to your needs.
|
||||||
|
|
Loading…
Reference in a new issue