diff options
Diffstat (limited to 'plugins/IncludeFilePlugin.hs')
| -rw-r--r-- | plugins/IncludeFilePlugin.hs | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/plugins/IncludeFilePlugin.hs b/plugins/IncludeFilePlugin.hs new file mode 100644 index 000000000..40a8ce34d --- /dev/null +++ b/plugins/IncludeFilePlugin.hs @@ -0,0 +1,19 @@ +module IncludeFilePlugin (transform) where +import Text.Pandoc +import Text.Pandoc.Shared +import Control.Monad + +-- This plugin allows you to include the contents of an +-- external file in a delimited code block like this: +-- +-- ~~~ {include="filename"} +-- ~~~ +-- +-- Trailing newlines are trimmed. + +transform :: Block -> IO Block +transform cb@(CodeBlock (id, classes, namevals) contents) = + case lookup "include" namevals of + Just f -> return . (CodeBlock (id, classes, namevals) . stripTrailingNewlines) =<< readFile f + Nothing -> return cb +transform x = return x |
