@@ -30,13 +30,15 @@ module Text.Pandoc.Readers.Org.Inlines
32 , addToNotesTable
32 , addToNotesTable
34 , linkTarget
33 , linkTarget
37import Text.Pandoc.Readers.Org.BlockStarts
36import Text.Pandoc.Readers.Org.BlockStarts
38import Text.Pandoc.Readers.Org.ParserState
37import Text.Pandoc.Readers.Org.ParserState
39import Text.Pandoc.Readers.Org.Parsing
38import Text.Pandoc.Readers.Org.Parsing
39+import Text.Pandoc.Readers.Org.Shared
40+ ( isImageFilename, rundocBlockClass, toRundocAttrib
41import qualified Text.Pandoc.Builder as B
43import qualified Text.Pandoc.Builder as B
42import Text.Pandoc.Builder ( Inlines )
44import Text.Pandoc.Builder ( Inlines )
@@ -47,35 +49,12 @@ import Text.Pandoc.Readers.LaTeX ( inlineCommand, rawLaTeXInline )
47import Text.TeXMath ( readTeX, writePandoc, DisplayType(..) )
49import Text.TeXMath ( readTeX, writePandoc, DisplayType(..) )
48import qualified Text.TeXMath.Readers.MathML.EntityMap as MathMLEntityMap
50import qualified Text.TeXMath.Readers.MathML.EntityMap as MathMLEntityMap
50−import Control.Arrow ( first )
51import Control.Monad ( guard, mplus, mzero, when )
52import Control.Monad ( guard, mplus, mzero, when )
52import Data.Char ( isAlphaNum, isSpace )
53import Data.Char ( isAlphaNum, isSpace )
53−import Data.List ( isPrefixOf, isSuffixOf )
54+import Data.List ( isPrefixOf )
54import Data.Maybe ( fromMaybe )
55import Data.Maybe ( fromMaybe )
55import qualified Data.Map as M
56import qualified Data.Map as M
57−-- | Prefix used for Rundoc classes and arguments.
58−rundocPrefix :: String
59−rundocPrefix = "rundoc-"
61−-- | The class-name used to mark rundoc blocks.
62−rundocBlockClass :: String
63−rundocBlockClass = rundocPrefix ++ "block"
65−toRundocAttrib :: (String, String) -> (String, String)
66−toRundocAttrib = first ("rundoc-" ++)
68−translateLang :: String -> String
69−translateLang "C" = "c"
70−translateLang "C++" = "cpp"
71−translateLang "emacs-lisp" = "commonlisp" -- emacs lisp is not supported
72−translateLang "js" = "javascript"
73−translateLang "lisp" = "commonlisp"
74−translateLang "R" = "r"
75−translateLang "sh" = "bash"
76−translateLang "sqlite" = "sql"
80-- Functions acting on the parser state
59-- Functions acting on the parser state
@@ -405,15 +384,6 @@ cleanLinkString s =
405 in all (\c -> isAlphaNum c || c `elem` (".-"::String)) scheme
384 in all (\c -> isAlphaNum c || c `elem` (".-"::String)) scheme
406 && not (null path)
385 && not (null path)
408−isImageFilename :: String -> Bool
409−isImageFilename filename =
410− any (\x -> ('.':x) `isSuffixOf` filename) imageExtensions &&
411− (any (\x -> (x++":") `isPrefixOf` filename) protocols ||
412− ':' `notElem` filename)
414− imageExtensions = [ "jpeg" , "jpg" , "png" , "gif" , "svg" ]
415− protocols = [ "file", "http", "https" ]
417internalLink :: String -> Inlines -> F Inlines
387internalLink :: String -> Inlines -> F Inlines
418internalLink link title = do
388internalLink link title = do
419 anchorB <- (link `elem`) <$> asksF orgStateAnchorIds
389 anchorB <- (link `elem`) <$> asksF orgStateAnchorIds