I saw no answer to this one. Hopefully it just got lost. Apologies to anyone who already got it. Den fre 24 juni 2022 16:09BPJ <> skrev: > I have a not-so-old "pseudo-writer" implemented as a filter which mostly > injects tons of raw markup into the document tree so that the output of > the plain writer looks like my target format, returning a table of filters > at the end like this > > ``````lua > return { > { > Meta = get_config > }, > { > SmallCaps = SmallCaps, > Str = Str > }, > note_filter, > main_filter > } > `````` > > where `get_config` just extracts some info from the metadata and populates > a table declared at the top of the script which the functions in the other > filters refer to. > > Am I right that I in principle could convert this into a new style custom > writer by removing the Meta filter, replacing `return {}` above > with `local filters = {}` and adding the following at the bottom > of the script? > > ``````lua > function Writer (doc, opts) > get_config(doc.meta) > for _,filter in ipairs(filters) do > doc = doc:walk(filter) > end > doc.blocks = blocks > return pandoc.write(doc, 'plain', opts) > `````` > > (This got me thinking: what if `walk` accepted one more argument which > will be passed as an extra argument to the functions in the filters, which > could be used to pass config and/or maintain state? It somehow feels more > intuitive than defining a table outside the metadata handler which all > handlers close around.) > > (BTW the main reason that the `note_filter` is separate is that it needs > to be topdown because it counts and collects the notes, while `main_filter` > needs to be bottomup because it sometimes relies on the content of elements > already having been processed. I was very happy when I realized that this > would work!) > > -- 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/CADAJKhBPpu1%3DFnxP0byMDWGEBF-7XAV7mVc%2BTzDSPX2t2GXN%3Dg%40mail.gmail.com.