Skip to main content

Lua filter collection for pandoc

Project description

pandocker-lua-filters

Lua filters for pandoc

Install

  • installs as a python package for ease of use
    • pip install pandocker-lua-filters
  • Lua filters should be installed under <sys.prefix>/share/lua/{5.3|5.4}/pandocker where <sys.prefix> can be confirmed by python -c "import sys; print(sys.prefix)". It install both 5.3 and 5.4 directories no matter of actual lua versions in system. This <sys.prefix>/share/lua/{5.3|5.4} should be added to package.path which can be confirmed by lua -e "print(package.path)".

General use

Convert AAFigure ascii art

  • requires aafigure python package

aafigure.lua

Convert CSV into table

  • requires csv and penlight luarocks packages
  • Pandoc below 2.10 applies "simple" filters

csv2table.lua
csv2table-simple.lua

Replace title subtitle date author metadata

hide-frontpage-metadata

Text file listing

  • requires penlight luarocks package

listingtable.lua

Concatenate text files

preprocess.lua

Removable note block

removable-note.lua

Convert svgbob ascii art

svgbob.lua

Convert SVG images to other formats

  • requires rsvg-convert in $PATH

svgconvert.lua

Applies table attributes to a table

  • requires penlight luarocks package
  • Pandoc below 2.10 applies "simple" filters

table-width.lua
table-width-simple.lua

Wavedrom / Bit-Field

  • requires wavedrom-cli in $PATH (npm i -g wavedrom-cli)
  • requires lyaml and lua-cjson2 luarocks packages

wavedrom.lua

LaTeX output only

Landscape pages

tex-landscape.lua

Applies underline to .underline class span

tex-underline.lua

Docx output only

Inserts a comment

docx-comment.lua

Apply custom (paragraph) styles for each table cell

docx-apply-cell-styles.lua

Apply custom (paragraph) styles for image and its caption

docx-image-styles.lua

Apply custom (character) styles for any span

docx-custom-span-styles.lua

Apply in-place color for any span

docx-colored-span.lua

Apply custom (paragraph) styles for any unnumbered bullet lists

Finds unnumbered bullet lists down to 3rd level and applies custom paragraph styles. 4th level and lower list items are escalated to 3rd level.

docx-extract-bullet-lists.lua

Requirement for template
  • Prepare Bullet List 1 to Bullet List 3 paragraph styles (by the way this is 1st level list item)
    • Otherwise these headers inherit Body style (this is 2nd level)
Level Unnumbered
1 Bullet List 1
2 Bullet List 2
3+ Bullet List 3

TOC / Pagebreak / Linebreak / Sub section TOC

docx-pagebreak-toc.lua

  • Adds TOC(Table Of Contents), sub sections, a line break or a page break at any point of document
Requirement for template

TOC title is set to "Table of Contents" by default. Metadata toc-title overrides this setting.

Appendix headings

docx-appendixheadings.lua

  • Makes appendix class work to appendix headings in DOCX format
  • Limited to level-1 to 5 headings
Requirement for template
  • Prepare Appendix Heading 1 to Appendix Heading 5 heading styles
    • Otherwise these headers inherit Body style
Level Numbered Unnumbered
1 Heading 1 Appendix Heading 1
2 Heading 2 Appendix Heading 2
3 Heading 3 Appendix Heading 3
4 Heading 4 Appendix Heading 4
5 Heading 5 Appendix Heading 5
6 Heading 6

Unnumbered headings

docx-unnumberedheadings.lua

  • Makes UnnumberHeadings class work to unnumber headings in DOCX format
  • Limited to level-1 to 5 headings
Requirement for template
  • Prepare Heading Unnumbered 1 to Heading Unnumbered 5 heading styles
    • Otherwise these headers inherit Body style
Level Numbered Unnumbered
1 Heading 1 Heading Unnumbered 1
2 Heading 2 Heading Unnumbered 2
3 Heading 3 Heading Unnumbered 3
4 Heading 4 Heading Unnumbered 4
5 Heading 5 Heading Unnumbered 5
6 Heading 6

Figure styles

docx-image-styles.lua

  • Processes only paragraph having single image link
    • Blank lines required before and after image link
  • Requires Graphic Anchor and Figure Caption paragraph styles in template otherwise these styles inherit Body style
    • the filter creates two divs having custom-style attribute
    • after process the image is placed in custom-style="Graphic Anchor" div and its caption is in custom-style="Figure Caption" div respectively
Requirement for template
  • Prepare Graphic Anchor and Figure Caption styles

samples

![Centered image](https://github.com/pandocker/pandoc-docx-utils-py/raw/master/qr.png){width=100mm #fig:centered}

Want a new feature?

Feature request (via issues) and PRs are welcome. Post questions in issues with [Q] in issue title.

DIY

As lua filters only requires pandoc itself, it is relatively easy to try develop a new filter. I recommend to use k4zuki/pandocker-alpine docker image like

  • docker pull k4zuki/pandocker-alpine to get image
  • clone this repo git clone git@github.com:pandocker/pandocker-lua-filters.git
  • cd pandocker-lua-filters
  • docker run --rm -it -v/$PWD:/workdir k4zuki/pandocker-alpine to start docker image
  • make install to install filters in image. They are installed in /usr/local/share/lua/5.3/pandocker/
  • make reinstall to reinstall so that filters will be updated
  • make uninstall to uninstall filters
  • make html|pdf|docx to compile test document
  • edit tests/Makefile to configure options for pandoc

You don't have to reinstall for every source code updates. Instead edit tests/Makefile to run your new filter from inside repository.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

pandocker_lua_filters-0.0.31-py3-none-any.whl (5.3 MB view details)

Uploaded Python 3

File details

Details for the file pandocker_lua_filters-0.0.31-py3-none-any.whl.

File metadata

File hashes

Hashes for pandocker_lua_filters-0.0.31-py3-none-any.whl
Algorithm Hash digest
SHA256 d00d5a9336c0ec7db4e04286be02446b649227b92d69e1f212c2eae8362d1329
MD5 c6ca102fe8cef6fa8d74fbb738829a8a
BLAKE2b-256 5321c91995766e583bb4683b68c8e6fc133c7b916b22d04478f7f168c542f7b7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page