public inbox archive for pandoc-discuss@googlegroups.com
 help / color / mirror / Atom feed
From: bapt a <auguieba-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: pandoc-discuss <pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
Subject: Re: latex template syntax vs Lua filters
Date: Tue, 4 Apr 2023 13:41:54 -0700 (PDT)	[thread overview]
Message-ID: <1251527d-ba92-406f-a3e2-3009190253d3n@googlegroups.com> (raw)
In-Reply-To: <87y1n7ab93.fsf-9EawChwDxG8hFhg+JK9F0w@public.gmane.org>


[-- Attachment #1.1: Type: text/plain, Size: 2761 bytes --]

Thank you both for the additional perspective.

I can see a trade-off in the relative merits of a general purpose language 
(e..g Lua) vs mini-DSL (templates), but for me the general language would 
win as soon as there's a non-trivial amount of manipulations to perform. Of 
course this will be a matter of personal taste more than anything (until 
something turns out to be impossible, and the DSL needs to be augmented). A 
key advantage of the programming language approach, in my view, is that any 
complexity can be captured inside a function. 

Specifically, I'm looking at the heavy pre-processing done in Quarto[^1] to 
thoroughly normalise the author-affiliation metadata, including tasks such 
as identifying unique affiliations (maybeAddAffiliation() is an example of 
wrapping non-trivial operations in a convenient function), grouping authors 
by unique affiliations with unique IDs, etc. Doing all this without the 
facilities afforded by Lua would seem unsurmountable to me. And then, if 
one has already gone 99% of the way in Lua by producing the right AST 
structure, it seems easiest to me to carry on with Lua and have a custom 
partial writer or filter insert the final \author{}...\affiliation{} 
strings in the output. 
Admittedly, this is a rather extreme situation, where a lot of 
manipulations need to happen between the relatively free-form metadata and 
the output.

Best regards,

baptiste


[^1] 
https://github.com/quarto-dev/quarto-cli/blob/ad4281d71317c6a491434a080a408de2aff789a4/src/resources/filters/common/authors.lua#L346




On Wednesday, 5 April 2023 at 04:00:18 UTC+12 Albert Krewinkel wrote:

>
> BPJ <mel...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> writes:
>
> > A program doing the same job as a template will be full of string
> > concatenations and format strings which will look disconnected in
> > a way which template text will not. This was the original use case for
> > templates before security and separation of functions were big
> > concerns, and it is still valid.
>
> My favorite example to reinforce this point is PHP: it's already really
> easy to use PHP in HTML templates, and yet, people wrote extra template
> languages in PHP (e.g., https://smarty.net) because those were more
> pleasant to use.
>
>
> -- 
> Albert Krewinkel
> GPG: 8eed e3e2 e8c5 6f18 81fe e836 388d c0b2 1f63 1124
>

-- 
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/1251527d-ba92-406f-a3e2-3009190253d3n%40googlegroups.com.

[-- Attachment #1.2: Type: text/html, Size: 3838 bytes --]

      parent reply	other threads:[~2023-04-04 20:41 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-03 21:49 bapt a
     [not found] ` <d890f12c-84d1-4ab8-a836-0da8fb9c8caan-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2023-04-04  0:48   ` John MacFarlane
     [not found]     ` <BCE2FA1F-296D-4C7E-9495-E4B6E1C5A885-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2023-04-04 13:24       ` BPJ
     [not found]         ` <CADAJKhBkxMhLAeCTOymphguqG_uHwpUyAnYC4edi=SaBkmHS6g-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2023-04-04 13:49           ` Albert Krewinkel
     [not found]             ` <87y1n7ab93.fsf-9EawChwDxG8hFhg+JK9F0w@public.gmane.org>
2023-04-04 20:41               ` bapt a [this message]

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=1251527d-ba92-406f-a3e2-3009190253d3n@googlegroups.com \
    --to=auguieba-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).