aboutsummaryrefslogtreecommitdiff
path: root/src/Text
diff options
context:
space:
mode:
authorfiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b>2007-03-03 18:19:31 +0000
committerfiddlosopher <fiddlosopher@788f1e2b-df1e-0410-8736-df70ead52e1b>2007-03-03 18:19:31 +0000
commit31c030e3a55c3bc9d4a606e9658dd30a9aa1c938 (patch)
tree74d8041eb6ca26258a74164e29363342fad133bf /src/Text
parentf99cedd236f06544b5937d5d362ada3059a5ca4b (diff)
downloadpandoc-31c030e3a55c3bc9d4a606e9658dd30a9aa1c938.tar.gz
Added --inline-links option to force links in HTML to be parsed
as inline links, rather than reference links. (Addresses Issue #4.) git-svn-id: https://pandoc.googlecode.com/svn/trunk@554 788f1e2b-df1e-0410-8736-df70ead52e1b
Diffstat (limited to 'src/Text')
-rw-r--r--src/Text/Pandoc/Readers/HTML.hs9
-rw-r--r--src/Text/Pandoc/Shared.hs2
2 files changed, 8 insertions, 3 deletions
diff --git a/src/Text/Pandoc/Readers/HTML.hs b/src/Text/Pandoc/Readers/HTML.hs
index 3fcb33698..8ebf02c33 100644
--- a/src/Text/Pandoc/Readers/HTML.hs
+++ b/src/Text/Pandoc/Readers/HTML.hs
@@ -449,15 +449,18 @@ extractAttribute name ((attrName, contents):rest) =
then Just (decodeEntities contents)
else extractAttribute name rest
-link = try (do
+link = try $ do
(tag, attributes) <- htmlTag "a"
url <- case (extractAttribute "href" attributes) of
Just url -> do {return url}
Nothing -> fail "no href"
let title = fromMaybe "" (extractAttribute "title" attributes)
label <- inlinesTilEnd "a"
- ref <- generateReference url title
- return (Link (normalizeSpaces label) ref))
+ state <- getState
+ ref <- if stateInlineLinks state
+ then return (Src url title)
+ else generateReference url title
+ return $ Link (normalizeSpaces label) ref
image = try (do
(tag, attributes) <- htmlTag "img"
diff --git a/src/Text/Pandoc/Shared.hs b/src/Text/Pandoc/Shared.hs
index 87718030f..55e093ee7 100644
--- a/src/Text/Pandoc/Shared.hs
+++ b/src/Text/Pandoc/Shared.hs
@@ -133,6 +133,7 @@ data ParserState = ParserState
stateSmart :: Bool, -- ^ Use smart typography
stateColumns :: Int, -- ^ Number of columns in
-- terminal (used for tables)
+ stateInlineLinks :: Bool, -- ^ Parse html links as inline
stateHeaderTable :: [HeaderType] -- ^ List of header types used,
-- in what order (rst only)
}
@@ -155,6 +156,7 @@ defaultParserState =
stateStrict = False,
stateSmart = False,
stateColumns = 80,
+ stateInlineLinks = False,
stateHeaderTable = [] }
-- | Indent string as a block.