change how script colour is handled

This commit is contained in:
Rhiannon Morris 2024-12-03 18:52:36 +01:00
parent e8d46973fa
commit ed54ec4c5a
2 changed files with 17 additions and 16 deletions

View file

@ -8,35 +8,23 @@ import Glosses
import Text.Pandoc.Definition
import Text.Pandoc.Walk
import Data.Maybe
import Data.Map (Map)
import qualified Data.Map as Map
import Data.Text (Text)
import qualified Data.Text as Text
import Control.Applicative
import Control.Monad
import System.Environment
langFilter :: Pandoc -> IO Pandoc
langFilter p@(Pandoc (Meta m) _) = do
langFilter :: Text -> Pandoc -> IO Pandoc
langFilter col p@(Pandoc (Meta m) _) = do
lang <- toLang $ Map.lookup "conlang" m
defColor <- getDefColor m
let ?lang = lang
let ?defColor = defColor
let ?defColor = col
let f = map (walk spans . fixFigureClass . makeEbnf .
makeQuotes . letterList) .
concatMap (makeBlocks <=< glosses)
pure $ walk f p
getDefColor :: Map Text MetaValue -> IO Text
getDefColor m = do
res <- toText $ Map.lookup "lang-color" m
case res of
Just col -> pure col
Nothing -> do
env <- lookupEnv "LANG_COLOR"
pure $ maybe "black" Text.pack env
pluck :: Eq a => a -> [a] -> Maybe [a]
pluck _ [] = Nothing
pluck x (y:ys) | x == y = Just ys