diff options
Diffstat (limited to 'filter.hs')
-rw-r--r-- | filter.hs | 41 |
1 files changed, 0 insertions, 41 deletions
diff --git a/filter.hs b/filter.hs deleted file mode 100644 index 8db4980..0000000 --- a/filter.hs +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env runhaskell --- filter.hs -{-- -A filter to help convert a vimwiki file to an org file. -It does the following: -1. Remove metadata -2. Add filename or empty as a level three heading -3. Remove all other headings ---} -import Text.Pandoc.JSON -import Data.Text -import Data.Map.Strict - -main :: IO () -main = toJSONFilter filter'' - -filter'' :: Pandoc -> Pandoc -filter'' (Pandoc meta blocks) = - Pandoc (Meta {unMeta = Data.Map.Strict.empty}) ((Header 3 (makeCustomId $ getFilename meta) ((docDate meta) ++ [Str $ pack ": "] ++ (getFilenameInlines meta))) : (filter' <$> blocks)) - -getFilename :: Meta -> Text -getFilename meta = - case lookupMeta (pack "filename") meta of - Just (MetaString s) -> s - _ -> pack "" - -makeInlines :: Text -> [Inline] -makeInlines s = [Str s] - -getFilenameInlines :: Meta -> [Inline] -getFilenameInlines = makeInlines . getFilename - -makeCustomId :: Text -> Attr -makeCustomId s = (pack "", [], [(pack "CUSTOM_ID", s)]) - -emptyAttr :: Attr -emptyAttr = (pack "", [], []) - -filter' :: Block -> Block -filter' (Header _ _ _) = Null -filter' x = x |