aboutsummaryrefslogtreecommitdiff
path: root/src/Text
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2011-11-21 15:09:42 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2011-11-21 15:09:42 -0800
commit10b23e85b7131eb9a653296884d71a3d6b02841d (patch)
treea083846b75a0499e4d567ffca3b481fbc4223e82 /src/Text
parent1cd928b591caee344e0b5a654a71fae7c352b1b8 (diff)
downloadpandoc-10b23e85b7131eb9a653296884d71a3d6b02841d.tar.gz
Changed Offline module to SelfContained, offline to makeSelfContained.
Diffstat (limited to 'src/Text')
-rw-r--r--src/Text/Pandoc/SelfContained.hs (renamed from src/Text/Pandoc/Offline.hs)17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/Text/Pandoc/Offline.hs b/src/Text/Pandoc/SelfContained.hs
index 99b461141..116083fba 100644
--- a/src/Text/Pandoc/Offline.hs
+++ b/src/Text/Pandoc/SelfContained.hs
@@ -18,7 +18,7 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-}
{- |
- Module : Text.Pandoc.Offline
+ Module : Text.Pandoc.SelfContained
Copyright : Copyright (C) 2011 John MacFarlane
License : GNU GPL, version 2 or above
@@ -30,7 +30,7 @@ Functions for converting an HTML file into one that can be viewed
offline, by incorporating linked images, CSS, and scripts into
the HTML using data URIs.
-}
-module Text.Pandoc.Offline ( offline ) where
+module Text.Pandoc.SelfContained ( makeSelfContained ) where
import Text.HTML.TagSoup
import Network.URI (isAbsoluteURI, parseURI, escapeURIString)
import Network.HTTP
@@ -58,7 +58,7 @@ getItem userdata f =
exists' <- doesFileExist res
if exists'
then B.readFile res
- else B.readFile f -- will throw error
+ else error $ "Could not find `" ++ f ++ "'"
openURL :: String -> IO ByteString
openURL u = getResponseBody =<< simpleHTTP (getReq u)
@@ -263,8 +263,15 @@ getRaw userdata t src = do
else return $ decomp raw
return (result, mime)
-offline :: Maybe FilePath -> String -> IO String
-offline userdata inp = do
+-- | Convert HTML into self-contained HTML, incorporating images,
+-- scripts, and CSS using data: URIs. Items specified using absolute
+-- URLs will be downloaded; those specified using relative URLs will
+-- be sought first relative to the working directory, then relative
+-- to the user data directory (if the first parameter is 'Just'
+-- a directory), and finally relative to pandoc's default data
+-- directory.
+makeSelfContained :: Maybe FilePath -> String -> IO String
+makeSelfContained userdata inp = do
let tags = parseTags inp
out' <- mapM (convertTag userdata) tags
return $ renderTagsOptions renderOptions{ optMinimize = (\t -> t == "br"