public inbox archive for pandoc-discuss@googlegroups.com
 help / color / mirror / Atom feed
From: John MacFarlane <fiddlosopher-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
Subject: Re: more fun with pandoc lua
Date: Tue, 24 Jan 2023 13:28:04 -0800	[thread overview]
Message-ID: <EF95D206-4259-43CD-823D-C9AFA637E2FC@gmail.com> (raw)
In-Reply-To: <d9e014a6-2dfd-44e3-a856-2bf18959103dn-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>

[-- Attachment #1: Type: text/plain, Size: 4260 bytes --]

This is using the new pandoc 3.0 feature which allows pandoc to be used as a Lua interpreter.  So just save the file as rosetta.lua and then;

pandoc lua rosetta.lua


> On Jan 24, 2023, at 1:17 PM, 'rufus42' via pandoc-discuss <pandoc-discuss@googlegroups.com> wrote:
> 
> Hello fiddlosopher,
> 
> Thank you very much for sharing your script.
> I would like to use it, but unfortunately I don't know how.
> Do I use the script like a Lua filter?
> 
> Please be so kind and give me a hint how I can use your script.
> 
> Thank you for your time and best regards
> 
> fiddlosopher schrieb am Samstag, 21. Januar 2023 um 20:05:46 UTC+1:
> -- 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 <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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org <mailto:pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>.
> To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/d9e014a6-2dfd-44e3-a856-2bf18959103dn%40googlegroups.com <https://groups.google.com/d/msgid/pandoc-discuss/d9e014a6-2dfd-44e3-a856-2bf18959103dn%40googlegroups.com?utm_medium=email&utm_source=footer>.

-- 
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/EF95D206-4259-43CD-823D-C9AFA637E2FC%40gmail.com.

[-- Attachment #2: Type: text/html, Size: 6647 bytes --]

  parent reply	other threads:[~2023-01-24 21:28 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-01-21 19:05 John MacFarlane
     [not found] ` <CC299ED9-B166-4B45-AC42-9DA430CAA122-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2023-01-24 21:17   ` 'rufus42' via pandoc-discuss
     [not found]     ` <d9e014a6-2dfd-44e3-a856-2bf18959103dn-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2023-01-24 21:28       ` John MacFarlane [this message]
     [not found]         ` <EF95D206-4259-43CD-823D-C9AFA637E2FC-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2023-01-24 21:48           ` 'rufus42' via pandoc-discuss
2023-01-25 11:50   ` BPJ

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=EF95D206-4259-43CD-823D-C9AFA637E2FC@gmail.com \
    --to=fiddlosopher-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
    --cc=pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).