From a1bb019ab9896e4c7a4cc3208806a2604eca3373 Mon Sep 17 00:00:00 2001 From: Herbert Lange Date: Sat, 14 Apr 2018 23:58:39 +0200 Subject: [PATCH 1/3] do some stuff to keep other attributes and only skip include --- IncludeFilter.hs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/IncludeFilter.hs b/IncludeFilter.hs index 6aa3387..24cf8e0 100644 --- a/IncludeFilter.hs +++ b/IncludeFilter.hs @@ -61,6 +61,7 @@ import Text.Pandoc import Text.Pandoc.Error import Text.Pandoc.JSON +import System.IO stripPandoc :: Either PandocError Pandoc -> [Block] stripPandoc p = case p of @@ -87,10 +88,11 @@ processFiles toProcess = fmap concat (mapM getContent toProcess) doInclude :: Block -> IO [Block] -doInclude (CodeBlock (_, classes, _) list) +doInclude (CodeBlock (id, classes, namevals) list) | "include" `elem` classes = do let toProcess = getProcessableFileList list - processFiles =<< toProcess + hPutStrLn stderr (show classes) + return .map (CodeBlock (id, classes \\ ["include"],namevals)) =<< (sequence . map readFile) =<< toProcess doInclude x = return [x] main :: IO () From 3efe7ed0d26faada2648aeed8c91c20e2f769667 Mon Sep 17 00:00:00 2001 From: Herbert Lange Date: Fri, 22 May 2020 09:46:52 +0200 Subject: [PATCH 2/3] fix the module to match modern pandoc --- IncludeFilter.hs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/IncludeFilter.hs b/IncludeFilter.hs index 24cf8e0..00e2f40 100644 --- a/IncludeFilter.hs +++ b/IncludeFilter.hs @@ -61,6 +61,8 @@ import Text.Pandoc import Text.Pandoc.Error import Text.Pandoc.JSON +import qualified Data.Text as T + import System.IO stripPandoc :: Either PandocError Pandoc -> [Block] stripPandoc p = @@ -69,7 +71,7 @@ stripPandoc p = Right (Pandoc _ blocks) -> blocks ioReadMarkdown :: String -> IO(Either PandocError Pandoc) -ioReadMarkdown content = return $! readMarkdown def content +ioReadMarkdown content = runIO $! readMarkdown def (T.pack content) getContent :: String -> IO [Block] getContent file = do From 5bab569de5835ccd5b9a2a73afa7172d0c3a7317 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bauer?= Date: Sun, 4 Oct 2020 23:04:49 +0200 Subject: [PATCH 3/3] Use Text instead of String to support pandoc 2.10.x. --- IncludeFilter.hs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/IncludeFilter.hs b/IncludeFilter.hs index 00e2f40..3d36dcd 100644 --- a/IncludeFilter.hs +++ b/IncludeFilter.hs @@ -89,12 +89,18 @@ processFiles :: [String] -> IO [Block] processFiles toProcess = fmap concat (mapM getContent toProcess) +include :: T.Text +include = T.pack "include" + doInclude :: Block -> IO [Block] doInclude (CodeBlock (id, classes, namevals) list) - | "include" `elem` classes = do - let toProcess = getProcessableFileList list + | include `elem` classes = do + let toProcess = getProcessableFileList $ T.unpack list hPutStrLn stderr (show classes) - return .map (CodeBlock (id, classes \\ ["include"],namevals)) =<< (sequence . map readFile) =<< toProcess + return . map (CodeBlock (id, classes \\ [include], namevals)) + =<< return . map T.pack + =<< (sequence . map readFile) + =<< toProcess doInclude x = return [x] main :: IO ()