From 1995134694605ab01a4d9b617e60e69d67fea7ea Mon Sep 17 00:00:00 2001 From: John MacFarlane Date: Wed, 16 Sep 2026 15:46:36 +0000 Subject: [PATCH] EPUB writer: speed up MathML/SVG detection for the manifest. Determine the mathml/svg properties of a chapter by searching its decompressed content once as a strict ByteString, instead of decompressing it twice and running a list isInfixOf over a String. Removes an old "incredibly inefficient" TODO. Co-Authored-By: Claude --- src/Text/Pandoc/Writers/EPUB.hs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/Text/Pandoc/Writers/EPUB.hs b/src/Text/Pandoc/Writers/EPUB.hs index ba20012ce..7d57c1c80 100644 --- a/src/Text/Pandoc/Writers/EPUB.hs +++ b/src/Text/Pandoc/Writers/EPUB.hs @@ -22,10 +22,11 @@ import Control.Monad (mplus, unless, when, zipWithM) import Control.Monad.Except (catchError, throwError) import Control.Monad.State.Strict (State, StateT, evalState, evalStateT, get, gets, lift, modify) +import qualified Data.ByteString as BS import qualified Data.ByteString.Lazy as B import qualified Data.ByteString.Lazy.Char8 as B8 import Data.Char (isAlphaNum, isAscii, isDigit) -import Data.List (isInfixOf, isPrefixOf) +import Data.List (isPrefixOf) import qualified Data.Map as M import Data.Maybe (fromMaybe, isNothing, mapMaybe, isJust, catMaybes) import qualified Data.Set as Set @@ -588,14 +589,11 @@ pandocToEPUB version opts doc = do [("page-progression-direction", "rtl")] _ -> [] - -- incredibly inefficient (TODO): - let containsMathML ent = epub3 && - "