I wonder if my filters/custom writers for converting plain output into "email" — something in between fully plain and fully markdown, configurable in various ways (through metadata) — and to Perl POD could profit from being rewritten as standalone scripts to be used with pandoc-lua. Both basically replace some elements in the AST with "plain" raw inline or block elements containing markup for the actual target format around the content of the original element. As Lua scripts they could take configuaration on the command line, using a pure Lua command line argument processor like Penlight's lapp rather than having to programmatically convert Pandoc metadata into a plain data structure with string/number leaves. Den lör 21 jan. 2023 20:06John MacFarlane skrev: > -- This Lua script, when run using `pandoc lua`, will create an HTML > -- file rosetta.html that compares how the same content is represented > -- in all the text markup languages pandoc supports: > > local inp = [[ > # Heading > > ## level 2 > > ### level 3 > > #### level 4 with attributes {.blue #foobar} > > - Unordered > - list > > 1. ordered > 2. list > > a) Lettered list > > with continuation paragraph > > > Block quote > > ``` {.lua} > local formats = pandoc.writers > for format,_ in formats do > print(format) > end > ``` > > *emphasized text **with strong emphasis*** > > `verbatim text` and a [link with `verbatim`](http://example.com) > ]] > local doc = pandoc.read(inp, "markdown") > > local formats = pandoc.writers > -- remove binary formats: > formats.docx = nil > formats.pptx = nil > formats.odt = nil > formats.epub2 = nil > formats.epub3 = nil > formats.epub = nil > formats.chunkedhtml = nil > formats.biblatex = nil > formats.bibtex = nil > formats.csljson = nil > > local blocks = {} > > -- Table of code languages to use for highlighting, when it differs > -- from the format name: > local langs = { > icml = "xml", > jira = "xml", > fb2 = "xml", > docbook = "xml", > docbook4 = "xml", > docbook5 = "xml", > commonmark = "markdown", > commonmark_x = "markdown", > context = "latex", > dzslides = "html5", > slideous = "html", > slidy = "html", > man = "troff", > ms = "troff", > gfm = "markdown", > markdown_mmd = "multimarkdown", > markdown_github = "markdown", > revealjs = "html", > beamer = "latex", > ipynb = "json", > opendocument = "xml", > native = "haskell", > html5 = "html", > html4 = "html", > } > > local sorted_formats = {} > for format,_ in pairs(formats) do > table.insert(sorted_formats, format) > end > table.sort(sorted_formats) > > -- construct document part for each format > for _,format in ipairs(sorted_formats) do > table.insert(blocks, pandoc.Header(2, format)) > local lang = langs[format] or format > table.insert(blocks, > pandoc.CodeBlock(pandoc.write(doc, format), {class = lang})) > end > > local template = pandoc.template.compile(pandoc.template.default("html5")) > local html = pandoc.write(pandoc.Pandoc(blocks, > {title = "Markup Rosetta Stone"}), > "html5", > { template = template }) > > io.open("rosetta.html", "w"):write(html) > print("Created rosetta.html") > > -- > You received this message because you are subscribed to the Google Groups > "pandoc-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To view this discussion on the web visit > https://groups.google.com/d/msgid/pandoc-discuss/CC299ED9-B166-4B45-AC42-9DA430CAA122%40gmail.com > . > -- You received this message because you are subscribed to the Google Groups "pandoc-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/CADAJKhCWYdonBf1%2BJrrv1wAWj9ktm50WA54CbFnuQm1R0K%2BzRA%40mail.gmail.com.