* Lua Filter: How to write a filter function for a Cell of a Table
@ 2023-05-15 8:18 ThomasH
[not found] ` <4e77e8b9-2ca9-4da0-8c5c-c3e1cb005e50n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
0 siblings, 1 reply; 2+ messages in thread
From: ThomasH @ 2023-05-15 8:18 UTC (permalink / raw)
To: pandoc-discuss
[-- Attachment #1.1: Type: text/plain, Size: 872 bytes --]
I want to modify how table cells are translated. I started out like with
other AST types, e.g.
function Cell(cell)
... (do something with cell)
end
This function is never called, although the input document contains a table
with cells.
I assume, element components like cells are treated differently (although
they seem to appear in the AST like other AST nodes).
What is the correct way to write filter functions for element components?
Thanks, T.
--
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/4e77e8b9-2ca9-4da0-8c5c-c3e1cb005e50n%40googlegroups.com.
[-- Attachment #1.2: Type: text/html, Size: 1329 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: Lua Filter: How to write a filter function for a Cell of a Table
[not found] ` <4e77e8b9-2ca9-4da0-8c5c-c3e1cb005e50n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
@ 2023-05-16 12:59 ` ThomasH
0 siblings, 0 replies; 2+ messages in thread
From: ThomasH @ 2023-05-16 12:59 UTC (permalink / raw)
To: pandoc-discuss
[-- Attachment #1.1: Type: text/plain, Size: 1726 bytes --]
Ok, I implemented a solution going off of the Table filter. This is the
basic pattern:
function Table(table)
for ibody=1, #table.bodies do
local tbody = table.bodies[ibody]
for irow=1, #tbody.body do
local row = tbody.body[irow]
for icell=1, #row.cells do
local cell = row.cells[icell]
for iblock=1, #cell.contents do
cell.contents[iblock] =
cell.contents[iblock]:walk(some_filter_map) -- cell blocks can be walk'ed
again
...
end
This works, but is ugly because of all those nested loops.
I wonder is there a specific reason to exempt the element components like
rows and cells from the normal visitor pattern?
On Monday, May 15, 2023 at 10:18:38 AM UTC+2 ThomasH wrote:
> I want to modify how table cells are translated. I started out like with
> other AST types, e.g.
>
> function Cell(cell)
> ... (do something with cell)
> end
>
> This function is never called, although the input document contains a
> table with cells.
>
> I assume, element components like cells are treated differently (although
> they seem to appear in the AST like other AST nodes).
>
> What is the correct way to write filter functions for element components?
>
> Thanks, T.
>
--
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/e6ba297b-1a4b-42cc-adaa-1b831340f8c4n%40googlegroups.com.
[-- Attachment #1.2: Type: text/html, Size: 2515 bytes --]
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2023-05-16 12:59 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-15 8:18 Lua Filter: How to write a filter function for a Cell of a Table ThomasH
[not found] ` <4e77e8b9-2ca9-4da0-8c5c-c3e1cb005e50n-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org>
2023-05-16 12:59 ` ThomasH
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).