public inbox archive for pandoc-discuss@googlegroups.com
 help / color / mirror / Atom feed
* 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).