Updated for texmath 0.5.
This commit is contained in:
parent
eb83f0e5e4
commit
23aae79b01
2 changed files with 14 additions and 14 deletions
|
@ -171,7 +171,7 @@ Library
|
|||
process >= 1, directory >= 1,
|
||||
bytestring >= 0.9, zip-archive >= 0.1.1.4,
|
||||
utf8-string >= 0.3, old-time >= 1,
|
||||
HTTP >= 4000.0.5, texmath >= 0.4, xml >= 1.3.5 && < 1.4,
|
||||
HTTP >= 4000.0.5, texmath >= 0.5, xml >= 1.3.5 && < 1.4,
|
||||
random, extensible-exceptions,
|
||||
citeproc-hs >= 0.3 && < 0.4,
|
||||
pandoc-types == 1.7.*,
|
||||
|
|
|
@ -27,12 +27,10 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|||
|
||||
Conversion of TeX math to a list of 'Pandoc' inline elements.
|
||||
-}
|
||||
module Text.Pandoc.Readers.TeXMath (
|
||||
readTeXMath
|
||||
) where
|
||||
module Text.Pandoc.Readers.TeXMath ( readTeXMath ) where
|
||||
|
||||
import Text.ParserCombinators.Parsec
|
||||
import Text.Pandoc.Definition
|
||||
import Text.TeXMath.Types
|
||||
import Text.TeXMath.Parser
|
||||
|
||||
-- | Converts a raw TeX math formula to a list of 'Pandoc' inlines.
|
||||
|
@ -40,16 +38,17 @@ import Text.TeXMath.Parser
|
|||
-- can't be converted.
|
||||
readTeXMath :: String -- ^ String to parse (assumes @'\n'@ line endings)
|
||||
-> [Inline]
|
||||
readTeXMath inp = case readTeXMath' inp of
|
||||
Nothing -> [Str ("$" ++ inp ++ "$")]
|
||||
Just res -> res
|
||||
readTeXMath inp = case texMathToPandoc inp of
|
||||
Left _ -> [Str ("$" ++ inp ++ "$")]
|
||||
Right res -> res
|
||||
|
||||
-- | Like 'readTeXMath', but without the default.
|
||||
readTeXMath' :: String -- ^ String to parse (assumes @'\n'@ line endings)
|
||||
-> Maybe [Inline]
|
||||
readTeXMath' inp = case parse formula "formula" inp of
|
||||
Left _ -> Just [Str inp]
|
||||
Right exps -> expsToInlines exps
|
||||
texMathToPandoc :: String -> Either String [Inline]
|
||||
texMathToPandoc inp = inp `seq`
|
||||
case parseFormula inp of
|
||||
Left err -> Left err
|
||||
Right exps -> case expsToInlines exps of
|
||||
Nothing -> Left "Formula too complex for [Inline]"
|
||||
Just r -> Right r
|
||||
|
||||
expsToInlines :: [Exp] -> Maybe [Inline]
|
||||
expsToInlines xs = do
|
||||
|
@ -111,3 +110,4 @@ expToInlines (EOver (EGrouped [EIdentifier [c]]) (ESymbol Accent [accent])) =
|
|||
_ -> Nothing
|
||||
expToInlines _ = Nothing
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue