{-# LANGUAGE DeriveGeneric #-} module Rendering.RenderOptions where import GHC.Generics (Generic) import System.Environment data RenderOptions = RenderOptions { footnotePrefix :: String, footnoteIndexFrom :: Int, footnoteBacklinks :: Bool, emDashes :: Bool, inlineCSS :: Bool, inlineJS :: Bool } deriving (Generic) defaultRenderOptions = RenderOptions { footnotePrefix = "", footnoteIndexFrom = 0, footnoteBacklinks = False, emDashes = False, inlineCSS = False, inlineJS = False } renderOptions :: [String] -> RenderOptions renderOptions [] = defaultRenderOptions renderOptions (key : ls) = case key of "--footnote-prefix" -> (renderOptions $ tail ls) {footnotePrefix=head ls} "--footnote-index-from" -> (renderOptions $ tail ls) {footnoteIndexFrom=read $ head ls} "--footnote-backlinks" -> (renderOptions ls) {footnoteBacklinks=True} "--em-dashes" -> (renderOptions ls) {emDashes=True} "--inline-css" -> (renderOptions ls) {inlineCSS=True} "--inline-js" -> (renderOptions ls) {inlineJS=True} getRenderOptions :: IO RenderOptions getRenderOptions = fmap renderOptions getArgs