public inbox archive for pandoc-discuss@googlegroups.com
 help / color / mirror / Atom feed
From: John MacFarlane <jgm-TVLZxgkOlNX2fBVCVOL8/A@public.gmane.org>
To: Anton Shepelev
	<anton.txt-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>,
	pandoc-discuss-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
Subject: Re: Type of the `filter' argument to traversal functions
Date: Tue, 11 Aug 2020 17:24:56 -0700	[thread overview]
Message-ID: <m2o8nghfs7.fsf@johnmacfarlane.net> (raw)
In-Reply-To: <20200812004617.ec382d94b849e234bbaa6762-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>

Anton Shepelev <anton.txt-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> writes:

> John MacFarlane to Anton Shepelev:
>
>> > The  documentation to walk_block() and walk_fil-
>> > ter() states that the second parameter is "a Lua
>> > filter (table of functions) to be applied within
>> > the block element".
>> > [...]
>> > Is the documentation incorrect or do I misinter-
>> > pret  it?  For  aught I know, {Span = OnSpan} is
>> > not a "table of functions".
>>
>> { } makes a table.  OnSpan is a function.   So,  a
>> table of functions.
>
> Please,  bear with me. A table in Lua is the one-to-
> rule-them-all complex type, that can represent  many
> sturctures,  including  array, associative array, or
> structure.  On the other hand,  the  generally  used
> meaning of `table' in programming and mathematics is
> a two-dimensional sturcture  with  columns  and  any
> number of rows from zero up, which, too, can be rep-
> resented as a table in Lua, although it would  be  a
> compound one.

I would have thought that in the context of documenting a Lua
function 'table' would be naturally interpreted as 'Lua table'.

> But  since the parameter is described as "a Lua fil-
> ter" and "a table of functions", the only way to in-
> terpret it is as describing the structure of the Lua
> filter itself, which is a table of functions in both
> Lua and general terminology:
>
>                 { { Id1 = Func1 }
>                   { Id2 = Func2 }
>                   { Id3 = Func3 } }

According to the docs, "Lua filters are tables with element names
as keys and values consisting of functions acting on those
elements." So yes, the parameter to walk_block is a Lua filter as
defined in the documentation.

If you had

  { { Id1 = Funct1,
      Id2 = Funct2 } }

that would be an array of Lua filters. But now, I see where you
may be getting confused. Reading on in the docs: "Pandoc expects
each Lua file to return a list of filters. The filters in that
list are called sequentially, each on the result of the previous
filter." It may be confusing that one often uses the term
"lua filter" for the file itself. But the file can return
a list (technically an array, implemented as a Lua table) of
filters.  I suspect you are confusing an array of Lua filters --
which can be defined in a single Lua file -- with a Lua filter.


  parent reply	other threads:[~2020-08-12  0:24 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-11 19:09 Anton Shepelev
     [not found] ` <20200811220909.e97f97ce8e8dad5d575d90f6-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2020-08-11 19:21   ` John MacFarlane
2020-08-11 21:46     ` Anton Shepelev
     [not found]       ` <20200812004617.ec382d94b849e234bbaa6762-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2020-08-11 22:15         ` EBkysko
2020-08-11 22:47           ` Anton Shepelev
     [not found]             ` <20200812014715.1c4ddc723344d9fb5f9c92e9-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2020-08-11 23:02               ` EBkysko
     [not found]                 ` <996602a6-8c95-406c-b569-f381f517af31o-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2020-08-11 23:36                   ` EBkysko
2020-08-12  0:24         ` John MacFarlane [this message]
     [not found]           ` <m2o8nghfs7.fsf-pgq/RBwaQ+zq8tPRBa0AtqxOck334EZe@public.gmane.org>
2020-08-12  8:19             ` BPJ
     [not found]               ` <CADAJKhCR8ZQwWhEW2x_b9sUAyMikaFEySXnQCFVtFWq6VOdRKQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2020-08-12  8:22                 ` BPJ
2020-08-12  9:32               ` Anton Shepelev
     [not found]                 ` <20200812123257.14be2d659f808e89ecb7e7f9-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2020-08-12 11:40                   ` EBkysko
2020-08-12  9:17           ` Anton Shepelev

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=m2o8nghfs7.fsf@johnmacfarlane.net \
    --to=jgm-tvlzxgkolnx2fbvcvol8/a@public.gmane.org \
    --cc=anton.txt-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).