HiThe 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.regardsAlanOn Mon, May 6, 2019 at 5:41 PM Alan <alan.mcl-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:Thanks for the reply JesseI 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.regardsAlanOn Mon, May 6, 2019 at 5:36 PM Jesse Rosenthal <jrosenthal@jhu.edu> wrote:Alan McLachlan <alan.mcl-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> 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`