Hi Brandon Jesse shared this with me earlier in the thread, it helped a lot: https://pandoc.org/lua-filters.html cheers Alan On Mon, May 20, 2019 at 3:09 PM Brandon Keith Biggs < brandonkeithbiggs-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > Hello, > I would love a link in the documentation to a guide on using these > filters, because having a TOC, title page, controlling page numbers, and > all that is very common when using word. > Thanks, > > Brandon Keith Biggs > > > On Mon, May 20, 2019 at 6:06 AM Alan wrote: > >> Hi >> >> I made some progress on this: >> >> 1. I got the cover page working by using the lua filter to remove all the >> meta data inlines then reconstructing it all as an "abstract" meta element. >> Handily the Abstract has Blocks not Inlines, so the custom styles work. And >> the TOC appears after the abstract. >> >> 2. Hard breaks remain a problem though. I can work around this on the >> cover page with some spacing, but that's not feasible for the rest of a >> typical document. >> Question: is the non-support hard breaks in Pandoc an intentional >> position, or is this just a gap that the community would be interested in >> filling if someone cared enough to implement it? >> >> One new challenge: >> >> 3. Page numbers. Can I use the lua filter to insert a page number footer >> in the generated docx? >> >> regards >> Alan >> >> >> On Fri, May 10, 2019 at 4:29 PM Alan wrote: >> >>> Hi >>> >>> The lua filter approach is working reasonably well but I have a couple >>> more in depth questions. For context, my pandoc input format is docbook >>> generated from asciidoc. >>> >>> 1. Title, subtitle, author and other meta elements: how do I apply >>> styles to them? >>> - I've tried wrapping them in Spans (inside a "function Pandoc(doc)") >>> as suggested by the custom-style docs, but they don't pick up any styles. >>> - I tried turning them into Div/Para objects in the main body, but then >>> they appear after the generated TOC. >>> Basically I need to support setting up a cover page followed by a TOC. >>> >>> 2. Page breaks/hard breaks. They don't seem to be supported by the >>> Pandoc internal model. Any suggestions for getting around this? >>> Also related to the cover page need. >>> >>> regards >>> Alan >>> >>> >>> On Mon, May 6, 2019 at 5:41 PM Alan wrote: >>> >>>> Thanks for the reply Jesse >>>> >>>> I did check out the custom styles, but you are right that I'd rather >>>> not embed that in every paragraph. I'm dealing with moderately large >>>> documents and it would get old pretty fast. >>>> >>>> I hadn't considered the lua filters yet. Good idea, I will give it a >>>> try. >>>> >>>> regards >>>> Alan >>>> >>>> On Mon, May 6, 2019 at 5:36 PM Jesse Rosenthal >>>> wrote: >>>> >>>>> Alan McLachlan writes: >>>>> >>>>> > pandoc today generates the paragraph text set to "Normal" >>>>> > style, I want it to use "My Style 1" instead of Normal. >>>>> >>>>> This is a job for custom-styles: >>>>> https://pandoc.org/MANUAL.html#custom-styles >>>>> >>>>> So, one (not particularly user-friendly) way to do it would be to wrap >>>>> ever paragaph in a div, to give it a custom style >>>>> >>>>> ~~~ >>>>> ::: {custom-style="My Style 1"} >>>>> Here is a paragraph. >>>>> ::: >>>>> >>>>> ::: {custom-style="My Style 1"} >>>>> Here is another. >>>>> ::: >>>>> ~~~ >>>>> >>>>> But you probably don't want to do that -- instead, it would be nice to >>>>> just write as normal: >>>>> >>>>> ~~~ >>>>> Here is a paragraph. >>>>> >>>>> Here is another. >>>>> ~~~ >>>>> >>>>> and then have paragraphs converted on the fly. To do that, you'd use a >>>>> pandoc filter (https://pandoc.org/lua-filters.html): >>>>> >>>>> ~~~ >>>>> function Para(blk) >>>>> local attr = pandoc.Attr() >>>>> attr.attributes["custom-style"] = "My Style 1" >>>>> return pandoc.Div({blk}, attr) >>>>> end >>>>> ~~~ >>>>> >>>>> That will convert all plain paras into a styled div. Save that in a >>>>> file >>>>> (`style.lua`), and then run it on the simple markdown file: >>>>> >>>>> `pandoc input.md --lua-filter=styler.lua -o output.docx` >>>>> >>>>> >>>>> -- >> 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 post to this group, send email to pandoc-discuss-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/pandoc-discuss/CABQ_dt_VkYEL5ED8i8Wo7GUeNA-Kgwyzjpzw2V%3DvdWYt1%2BkCLg%40mail.gmail.com >> >> . >> For more options, visit https://groups.google.com/d/optout. >> > -- > You received this message because you are subscribed to a topic in the > Google Groups "pandoc-discuss" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/pandoc-discuss/zzEvOYD3IR4/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > pandoc-discuss+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To post to this group, send email to pandoc-discuss-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To view this discussion on the web visit > https://groups.google.com/d/msgid/pandoc-discuss/CAKAWQkXpaypSpUU62p%3DFr_bhyLhLuAKMQ18MOy2TzTu6LmV3jg%40mail.gmail.com > > . > For more options, visit https://groups.google.com/d/optout. > -- 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 post to this group, send email to pandoc-discuss-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/CABQ_dt-uz_JTNFiHTfC1zBzUBeXnDbTL457OeZ_gUozVQc5p0Q%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.