It's not quite the same situation as the various discussions about not wanting indents after blockquotes, but similar enough that perhaps my solution is interesting for others.

I'm converting Markdown to PDF via LaTeX, with indent:true, and I'm using horizontal rules as scene or section breaks. I found the indent on the first paragraph after such a break ugly and wanted to do an automatic \noindent after every horizontal rule. This turned out to be pretty easy with a Haskell filter.

As it's the first time I've written anything in Haskell, I thought I'd post it here for feedback. Seems to me like maybe there's a more concise way to do the same thing.

Also this could obviously be adapted to actually remove the horizontal rules and replace them with the Pandoc internal representation of a vertical skip or blank line (whatever that is).

import Data.Text
import Text.Pandoc.JSON

main :: IO ()
main = toJSONFilter noIndentAfterHorizontalRule

noIndentAfterHorizontalRule :: Pandoc -> Pandoc
noIndentAfterHorizontalRule doc =
  let Pandoc meta blocks = doc
   in Pandoc meta (mapAfterHorizontalRule noIndentifyPara blocks)

mapAfterHorizontalRule :: (Block -> Block) -> [Block] -> [Block]
mapAfterHorizontalRule f (HorizontalRule : block : blocks) =
  HorizontalRule : f block : mapAfterHorizontalRule f blocks
mapAfterHorizontalRule f (block : blocks) = block : mapAfterHorizontalRule f blocks
mapAfterHorizontalRule f [] = []

noIndentifyPara :: Block -> Block
noIndentifyPara (Para xs) =
  Para (RawInline (Format (Data.Text.pack "tex")) (Data.Text.pack "\\noindent ") : xs)
noIndentifyPara x = x

--
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-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org.
To view this discussion on the web visit https://groups.google.com/d/msgid/pandoc-discuss/9953168b-aa53-4c75-b18b-612ddd8a3ddfn%40googlegroups.com.