{-# LANGUAGE CPP #-} module Text.Pandoc.CrossRef.Util.Settings (getSettings, defaultMeta) where import Text.Pandoc hiding (readMarkdown) import Text.Pandoc.CrossRef.Util.Gap import Text.Pandoc.Builder import Control.Exception (handle,IOException) import Text.Pandoc.CrossRef.Util.Settings.Gen import Text.Pandoc.CrossRef.Util.Meta getSettings :: Meta -> IO Meta getSettings meta = do let handler :: IOException -> IO String handler _ = return [] yaml <- handle handler $ readFile (getMetaString "crossrefYaml" (meta <> defaultMeta)) let Pandoc dtve _ = readMarkdown def ("---\n" ++ yaml ++ "\n---") return $ meta <> dtve <> defaultMeta defaultMeta :: Meta defaultMeta = figureTitle (str "Figure") <> tableTitle (str "Table") <> listingTitle (str "Listing") <> titleDelim (str ":") <> chapDelim (str ".") <> rangeDelim (str "-") <> figPrefix ([str "fig.", str "figs."]) <> eqnPrefix ([str "eq." , str "eqns."]) <> tblPrefix ([str "tbl.", str "tbls."]) <> lstPrefix ([str "lst.", str "lsts."]) <> secPrefix ([str "sec.", str "secs."]) <> lofTitle (header 1 $ text "List of Figures") <> lotTitle (header 1 $ text "List of Tables") <> lolTitle (header 1 $ text "List of Listings") <> figureTemplate (var "figureTitle" <> space <> var "i" <> var "titleDelim" <> space <> var "t") <> tableTemplate (var "tableTitle" <> space <> var "i" <> var "titleDelim" <> space <> var "t") <> listingTemplate (var "listingTitle" <> space <> var "i" <> var "titleDelim" <> space <> var "t") <> crossrefYaml (MetaString "pandoc-crossref.yaml") <> chaptersDepth (MetaString "1") where var = displayMath