diff options
author | John MacFarlane <jgm@berkeley.edu> | 2015-02-13 23:29:12 -0800 |
---|---|---|
committer | John MacFarlane <jgm@berkeley.edu> | 2015-02-13 23:34:20 -0800 |
commit | e32227f74482c8a7907c3557fcb42e7f35f0c610 (patch) | |
tree | 9fc8a8ada605c3f2d6aa6e31e76a403109fa1787 /src/Text/Pandoc/Writers/EPUB.hs | |
parent | d5469b30fe9903a37a4966df75609e88aad9ef55 (diff) | |
download | pandoc-e32227f74482c8a7907c3557fcb42e7f35f0c610.tar.gz |
Allow wildcards in `--epub-embed-font` arguments.
Closes #1939.
Diffstat (limited to 'src/Text/Pandoc/Writers/EPUB.hs')
-rw-r--r-- | src/Text/Pandoc/Writers/EPUB.hs | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/Text/Pandoc/Writers/EPUB.hs b/src/Text/Pandoc/Writers/EPUB.hs index cebbaa835..63c3b5501 100644 --- a/src/Text/Pandoc/Writers/EPUB.hs +++ b/src/Text/Pandoc/Writers/EPUB.hs @@ -36,6 +36,7 @@ import Data.List ( isPrefixOf, isInfixOf, intercalate ) import System.Environment ( getEnv ) import Text.Printf (printf) import System.FilePath ( takeExtension, takeFileName ) +import System.FilePath.Glob ( namesMatching ) import qualified Data.ByteString.Lazy as B import qualified Data.ByteString.Lazy.Char8 as B8 import qualified Text.Pandoc.UTF8 as UTF8 @@ -57,7 +58,7 @@ import Text.Pandoc.Options ( WriterOptions(..) import Text.Pandoc.Definition import Text.Pandoc.Walk (walk, walkM) import Control.Monad.State (modify, get, execState, State, put, evalState) -import Control.Monad (foldM, mplus, liftM) +import Control.Monad (foldM, mplus, liftM, when) import Text.XML.Light ( unode, Element(..), unqual, Attr(..), add_attrs , strContent, lookupAttr, Node(..), QName(..), parseXML , onlyElems, node, ppElement) @@ -387,8 +388,14 @@ writeEPUB opts doc@(Pandoc meta _) = do picEntries <- foldM readPicEntry [] pics -- handle fonts + let matchingGlob f = do + xs <- namesMatching f + when (null xs) $ + warn $ f ++ " did not match any font files." + return xs let mkFontEntry f = mkEntry (takeFileName f) `fmap` B.readFile f - fontEntries <- mapM mkFontEntry $ writerEpubFonts opts' + fontFiles <- concat <$> mapM matchingGlob (writerEpubFonts opts') + fontEntries <- mapM mkFontEntry fontFiles -- set page progression direction attribution let progressionDirection = case epubPageDirection metadata of |