diff --git a/CHANGES b/CHANGES
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,40 @@
+Version 0.8.1 released 02 Sep 2011
+
+*   Support mathjax as a math option.
+    Added MathJax as MathMethod, and mathjax as an option in
+    the 'math' config field.  Resolves GoogleCode 122.
+
+*   Added xss-sanitize configuaration option.
+    Setting it to 'no' turns off sanitization, enabling
+    file:// URLs and other things that get filtered out
+    by xss-sanitize.
+
+*   Listen interface explanation on help file could be more clear (#266)
+    (andyring)
+
+*   Add the new configuration option 'absolute-urls'.
+    When turned on, this makes wikilinks absolute w.r.t. the base-url.
+    By default, they are relative.  So, for example, in a wiki served
+    at the path 'wiki', on a page Sub/Page, the wikilink '[Cactus]()'
+    will produce a link to '/wiki/Cactus' if absolute-urls is on,
+    and otherwise the relative link 'Cactus'.  Patch due to lemmih.
+
+*   Change default listen address to 0.0.0.0.
+
+*   Serve svg file as image, not source code!
+
+*   Page history:  use 'limit' instead of restricting to past year.
+    limit defaults to 100.  If 100 are displayed, you'll get a
+    "Show more..." link that will increase the limit.
+    Also fixed bug that caused a 404 when no history was returned.
+
+*   Require pandoc >= 1.8.2.
+
+*   Allow build with happstack-server 6.2.
+
+*   Updated for use with xss-sanitize 0.3, which uses Text.
+    New dependency on text.
+
 Version 0.8.0.1 released 07 Jun 2011
 
 * Fixed file upload problem with recent versions of directory
diff --git a/Network/Gitit/Config.hs b/Network/Gitit/Config.hs
--- a/Network/Gitit/Config.hs
+++ b/Network/Gitit/Config.hs
@@ -38,7 +38,7 @@
 import Data.Char (toLower, toUpper, isDigit)
 import Paths_gitit (getDataFileName)
 import System.FilePath ((</>))
-import Text.Pandoc hiding (MathML, WebTeX)
+import Text.Pandoc hiding (MathML, WebTeX, MathJax)
 
 forceEither :: Show e => Either e a -> a
 forceEither = either (error . show) id
@@ -99,11 +99,13 @@
       cfResetPasswordMessage <- get cp "DEFAULT" "reset-password-message"
       cfUseFeed <- get cp "DEFAULT" "use-feed"
       cfBaseUrl <- get cp "DEFAULT" "base-url"
+      cfAbsoluteUrls <- get cp "DEFAULT" "absolute-urls"
       cfWikiTitle <- get cp "DEFAULT" "wiki-title"
       cfFeedDays <- get cp "DEFAULT" "feed-days"
       cfFeedRefreshTime <- get cp "DEFAULT" "feed-refresh-time"
       cfPDFExport <- get cp "DEFAULT" "pdf-export"
       cfPandocUserData <- get cp "DEFAULT" "pandoc-user-data"
+      cfXssSanitize <- get cp "DEFAULT" "xss-sanitize"
       let (pt, lhs) = parsePageType cfDefaultPageType
       let markupHelpFile = show pt ++ if lhs then "+LHS" else ""
       markupHelpPath <- liftIO $ getDataFileName $ "data" </> "markupHelp" </> markupHelpFile
@@ -128,6 +130,7 @@
         , mathMethod           = case map toLower cfMathMethod of
                                       "jsmath"   -> JsMathScript
                                       "mathml"   -> MathML
+                                      "mathjax"  -> MathJax "https://d3eoax9i5htok0.cloudfront.net/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"
                                       "google"   -> WebTeX "http://chart.apis.google.com/chart?cht=tx&chl="
                                       _          -> RawTeX
         , defaultLHS           = lhs
@@ -186,13 +189,16 @@
         , markupHelp           = markupHelpText
         , useFeed              = cfUseFeed
         , baseUrl              = stripTrailingSlash cfBaseUrl
+        , useAbsoluteUrls      = cfAbsoluteUrls
         , wikiTitle            = cfWikiTitle
         , feedDays             = readNumber "feed-days" cfFeedDays
         , feedRefreshTime      = readNumber "feed-refresh-time" cfFeedRefreshTime
         , pdfExport            = cfPDFExport
         , pandocUserData       = if null cfPandocUserData
                                     then Nothing
-                                    else Just cfPandocUserData }
+                                    else Just cfPandocUserData
+        , xssSanitize          = cfXssSanitize
+        }
   case config' of
         Left (ParseError e, e') -> error $ "Parse error: " ++ e ++ "\n" ++ e'
         Left e                  -> error (show e)
diff --git a/Network/Gitit/ContentTransformer.hs b/Network/Gitit/ContentTransformer.hs
--- a/Network/Gitit/ContentTransformer.hs
+++ b/Network/Gitit/ContentTransformer.hs
@@ -70,6 +70,7 @@
 
 import Control.Exception (throwIO, catch)
 import Control.Monad.State
+import Control.Monad.Reader (ask)
 import Data.Maybe (isNothing, mapMaybe)
 import Network.Gitit.Cache (lookupCache, cacheContents)
 import Network.Gitit.Export (exportFormats)
@@ -85,9 +86,10 @@
 import System.FilePath
 import Text.HTML.SanitizeXSS (sanitizeBalance)
 import Text.Highlighting.Kate
-import Text.Pandoc hiding (MathML, WebTeX)
+import Text.Pandoc hiding (MathML, WebTeX, MathJax)
 import Text.Pandoc.Shared (ObfuscationMethod(..))
 import Text.XHtml hiding ( (</>), dir, method, password, rev )
+import qualified Data.Text as T
 import qualified Data.ByteString as S (concat)
 import qualified Data.ByteString.Lazy as L (toChunks, fromChunks)
 import qualified Data.FileStore as FS
@@ -336,7 +338,8 @@
   toc <- liftM ctxTOC get
   bird <- liftM ctxBirdTracks get
   cfg <- lift getConfig
-  return $ primHtml $ sanitizeBalance $
+  return $ primHtml $ T.unpack .
+           (if xssSanitize cfg then sanitizeBalance else id) . T.pack $
            writeHtmlString defaultWriterOptions{
                         writerStandalone = True
                       , writerTemplate = "$if(toc)$\n$toc$\n$endif$\n$body$"
@@ -344,6 +347,7 @@
                             case mathMethod cfg of
                                  MathML -> Pandoc.MathML Nothing
                                  WebTeX u -> Pandoc.WebTeX u
+                                 MathJax u -> Pandoc.MathJax u
                                  _      -> JsMath (Just $ base' ++
                                                       "/js/jsMath/easy/load.js")
                       , writerTableOfContents = toc
@@ -449,6 +453,7 @@
          JsMathScript -> addScripts l ["jsMath/easy/load.js"]
          MathML       -> addScripts l ["MathMLinHTML.js"]
          WebTeX _     -> l
+         MathJax u    -> addScripts l [u]
          RawTeX       -> l
   return c
 
@@ -499,13 +504,17 @@
        Textile  -> readTextile defPS
 
 wikiLinksTransform :: Pandoc -> PluginM Pandoc
-wikiLinksTransform = return . bottomUp convertWikiLinks
+wikiLinksTransform pandoc
+  = do cfg <- liftM pluginConfig ask -- Can't use askConfig from Interface due to circular dependencies.
+       return (bottomUp (convertWikiLinks cfg) pandoc)
 
 -- | Convert links with no URL to wikilinks.
-convertWikiLinks :: Inline -> Inline
-convertWikiLinks (Link ref ("", "")) =
+convertWikiLinks :: Config -> Inline -> Inline
+convertWikiLinks cfg (Link ref ("", "")) | useAbsoluteUrls cfg =
+  Link ref (baseUrl cfg </> inlinesToURL ref, "Go to wiki page")
+convertWikiLinks _cfg (Link ref ("", "")) =
   Link ref (inlinesToURL ref, "Go to wiki page")
-convertWikiLinks x = x
+convertWikiLinks _cfg x = x
 
 -- | Derives a URL from a list of Pandoc Inline elements.
 inlinesToURL :: [Inline] -> String
diff --git a/Network/Gitit/Framework.hs b/Network/Gitit/Framework.hs
--- a/Network/Gitit/Framework.hs
+++ b/Network/Gitit/Framework.hs
@@ -268,7 +268,8 @@
 isSourceCode :: String -> Bool
 isSourceCode path' =
   let langs = languagesByFilename $ takeFileName path'
-  in  not . null $ langs
+  in  not (null langs || takeExtension path' == ".svg")
+                         -- allow svg to be served as image
 
 -- | Returns encoded URL path for the page with the given name, relative to
 -- the wiki base.
diff --git a/Network/Gitit/Handlers.hs b/Network/Gitit/Handlers.hs
--- a/Network/Gitit/Handlers.hs
+++ b/Network/Gitit/Handlers.hs
@@ -324,13 +324,9 @@
 
 showHistory :: String -> String -> Params -> Handler
 showHistory file page params =  do
-  currTime <- liftIO getCurrentTime
-  let oneYearAgo = addUTCTime (-60 * 60 * 24 * 365) currTime
-  let since = case pSince params of
-                   Nothing -> Just oneYearAgo
-                   Just t  -> Just t
   fs <- getFileStore
-  hist <- liftIO $ history fs [file] (TimeRange since Nothing)
+  hist <- liftM (take (pLimit params)) $
+            liftIO $ history fs [file] (TimeRange Nothing Nothing)
   base' <- getWikiBase
   let versionToHtml rev pos = li ! [theclass "difflink", intAttr "order" pos,
                                     strAttr "revision" (revId rev),
@@ -357,23 +353,27 @@
                   else []) ++
              [stringToHtml "]"])
         ]
-  if null hist
-     then mzero
-     else do
-       let contents = ulist ! [theclass "history"] <<
-                        zipWith versionToHtml hist
-                        [(length hist), (length hist - 1)..1]
-       let tabs = if file == page  -- source file, not wiki page
-                     then [ViewTab,HistoryTab]
-                     else pgTabs defaultPageLayout
-       formattedPage defaultPageLayout{
-                        pgPageName = page,
-                        pgMessages = pMessages params,
-                        pgScripts = ["dragdiff.js"],
-                        pgTabs = tabs,
-                        pgSelectedTab = HistoryTab,
-                        pgTitle = ("Changes to " ++ page)
-                        } contents
+  let contents = if null hist
+                    then noHtml
+                    else ulist ! [theclass "history"] <<
+                           zipWith versionToHtml hist
+                           [length hist, (length hist - 1)..1]
+  let more = if length hist == pLimit params
+                then anchor ! [href $ base' ++ "/_history" ++ urlForPage page
+                                 ++ "?limit=" ++ show (pLimit params + 100)] <<
+                                 "Show more..."
+                else noHtml
+  let tabs = if file == page  -- source file, not wiki page
+                then [ViewTab,HistoryTab]
+                else pgTabs defaultPageLayout
+  formattedPage defaultPageLayout{
+                   pgPageName = page,
+                   pgMessages = pMessages params,
+                   pgScripts = ["dragdiff.js"],
+                   pgTabs = tabs,
+                   pgSelectedTab = HistoryTab,
+                   pgTitle = ("Changes to " ++ page)
+                   } $ contents +++ more
 
 showActivity :: Handler
 showActivity = withData $ \(params :: Params) -> do
diff --git a/Network/Gitit/Layout.hs b/Network/Gitit/Layout.hs
--- a/Network/Gitit/Layout.hs
+++ b/Network/Gitit/Layout.hs
@@ -75,8 +75,12 @@
 filledPageTemplate base' cfg layout htmlContents templ =
   let rev  = pgRevision layout
       page = pgPageName layout
+      prefixedScript x = case x of
+                           'h':'t':'t':'p':_  -> x
+                           _                  -> base' ++ "/js/" ++ x
+
       scripts  = ["jquery.min.js", "jquery-ui.packed.js", "footnotes.js"] ++ pgScripts layout
-      scriptLink x = script ! [src (base' ++ "/js/" ++ x),
+      scriptLink x = script ! [src (prefixedScript x),
         thetype "text/javascript"] << noHtml
       javascriptlinks = renderHtmlFragment $ concatHtml $ map scriptLink scripts
       tabli tab = if tab == pgSelectedTab layout
diff --git a/Network/Gitit/Types.hs b/Network/Gitit/Types.hs
--- a/Network/Gitit/Types.hs
+++ b/Network/Gitit/Types.hs
@@ -42,7 +42,7 @@
 
 data FileStoreType = Git | Darcs | Mercurial deriving Show
 
-data MathMethod = MathML | JsMathScript | WebTeX String | RawTeX
+data MathMethod = MathML | JsMathScript | WebTeX String | RawTeX | MathJax String
                   deriving (Read, Show, Eq)
 
 data AuthenticationLevel = Never | ForModify | ForRead
@@ -132,6 +132,8 @@
   -- | Base URL of wiki, for use in feed
   baseUrl              :: String,
   -- | Title of wiki, used in feed
+  useAbsoluteUrls      :: Bool,
+  -- | Should WikiLinks be absolute w.r.t. the base URL?
   wikiTitle            :: String,
   -- | Number of days history to be included in feed
   feedDays             :: Integer,
@@ -140,7 +142,9 @@
   -- | Allow PDF export?
   pdfExport            :: Bool,
   -- | Directory to search for pandoc customizations
-  pandocUserData       :: Maybe FilePath
+  pandocUserData       :: Maybe FilePath,
+  -- | Filter HTML through xss-sanitize
+  xssSanitize          :: Bool
   }
 
 -- | Data for rendering a wiki page.
diff --git a/data/default.conf b/data/default.conf
--- a/data/default.conf
+++ b/data/default.conf
@@ -61,16 +61,16 @@
 
 math: MathML
 # specifies how LaTeX math is to be displayed.  Possible values
-# are MathML, raw, jsMath, and google.  If mathml is selected, gitit will
-# convert LaTeX math to MathML and link in a script, MathMLinHTML.js,
-# that allows the MathML to be seen in Gecko browsers, IE +
-# mathplayer, and Opera.  In other browsers you may get a jumble
-# of characters. If raw is selected, the LaTeX math will be displayed
-# as raw LaTeX math. If jsMath is selected, gitit will link to
-# the script /js/jsMath/easy/load.js, and will assume that jsMath
-# has been installed into the js/jsMath directory. This is the most
-# portable solution.  If google is selected, the google chart API is
-# called to render the formula as an image. This requires a connection
+# are MathML, raw, mathjax, jsMath, and google.  If mathml is selected,
+# gitit will convert LaTeX math to MathML and link in a script,
+# MathMLinHTML.js, that allows the MathML to be seen in Gecko browsers, IE +
+# mathplayer, and Opera. In other browsers you may get a jumble of characters.
+# If raw is selected, the LaTeX math will be displayed as raw LaTeX math.
+# If mathjax is selected, gitit will link to the remote mathjax script.
+# If jsMath is selected, gitit will link to the script /js/jsMath/easy/load.js,
+# and will assume that jsMath has been installed into the js/jsMath directory.
+# This is the most portable solution. If google is selected, the google chart
+# API is called to render the formula as an image. This requires a connection
 # to google, and might raise a technical or a privacy problem.
 
 show-lhs-bird-tracks: no
@@ -228,6 +228,13 @@
 # and RPX token_urls.  Set this if use-feed is 'yes' or
 # authentication-method is 'rpx'.
 
+absolute-urls: no
+# make wikilinks absolute with respect to the base-url.
+# So, for example, in a wiki served at the base URL '/wiki', on a page
+# Sub/Page, the wikilink '[Cactus]()' will produce a link to
+# '/wiki/Cactus' if absolute-urls is 'yes', and a relative link to 'Cactus'
+# (referring to '/wiki/Sub/Cactus') if absolute-urls is 'no'.
+
 feed-days: 14
 # number of days to be included in feeds.
 
@@ -247,3 +254,6 @@
 # specified, $HOME/.pandoc will be searched. See pandoc's README for
 # more information.
 
+xss-sanitize: yes
+# if yes, all HTML (including that produced by pandoc) is filtered
+# through xss-sanitize.  Set to no only if you trust all of your users.
diff --git a/gitit.cabal b/gitit.cabal
--- a/gitit.cabal
+++ b/gitit.cabal
@@ -1,5 +1,5 @@
 name:                gitit
-version:             0.8.0.1
+version:             0.8.1
 Cabal-version:       >= 1.6
 build-type:          Simple
 synopsis:            Wiki using happstack, git or darcs, and pandoc.
@@ -39,8 +39,8 @@
 license-file:        LICENSE
 author:              John MacFarlane
 maintainer:          jgm@berkeley.edu
-bug-reports:         http://code.google.com/p/gitit/issues/list
-homepage:            http://github.com/jgm/gitit/tree/master
+bug-reports:         http://github.com/jgm/gitit/issues
+homepage:            http://gitit.net
 stability:           experimental
 data-files:          data/static/css/screen.css, data/static/css/print.css,
                      data/static/css/ie.css, data/static/css/hk-pyg.css,
@@ -105,7 +105,7 @@
     exposed-modules: Network.Gitit.Interface
     build-depends:   ghc, ghc-paths
     cpp-options:     -D_PLUGINS
-  build-depends:     base >= 3, pandoc >= 1.8, pandoc-types >= 1.8, filepath, safe
+  build-depends:     base >= 3, pandoc >= 1.8.2, pandoc-types >= 1.8.2, filepath, safe
   extensions:        CPP
   if impl(ghc >= 6.12)
     ghc-options:     -Wall -fno-warn-unused-do-bind
@@ -121,8 +121,8 @@
                      pretty,
                      xhtml,
                      containers,
-                     pandoc >= 1.8,
-                     pandoc-types >= 1.8,
+                     pandoc >= 1.8.2,
+                     pandoc-types >= 1.8.2,
                      process,
                      filepath,
                      directory,
@@ -131,6 +131,7 @@
                      old-time,
                      highlighting-kate >= 0.2.7.1,
                      bytestring,
+                     text,
                      random,
                      network >= 2.1.0.0 && < 2.4,
                      utf8-string >= 0.3 && < 0.4,
@@ -143,13 +144,13 @@
                      filestore >= 0.4.0.2 && < 0.5,
                      zlib >= 0.5 && < 0.6,
                      url >= 2.1 && < 2.2,
-                     happstack-server >= 6.0 && < 6.2,
+                     happstack-server >= 6.0 && < 6.3,
                      happstack-util >= 6.0 && < 6.2,
                      xml >= 1.3.5,
                      hslogger >= 1 && < 1.2,
                      ConfigFile >= 1 && < 1.2,
                      feed >= 0.3.6 && < 0.4,
-                     xss-sanitize >= 0.2 && < 0.3,
+                     xss-sanitize >= 0.3 && < 0.4,
                      json >= 0.4 && < 0.5
   if impl(ghc >= 6.10)
     build-depends:   base >= 4, syb
diff --git a/gitit.hs b/gitit.hs
--- a/gitit.hs
+++ b/gitit.hs
@@ -110,7 +110,7 @@
    , Option ['p'] ["port"] (ReqArg (Port . read) "PORT")
         "Specify port"
    , Option ['l'] ["listen"] (ReqArg (Listen . checkListen) "INTERFACE")
-        "Specify interface to listen on"
+        "Specify IP address to listen on"
    , Option [] ["print-default-config"] (NoArg PrintDefaultConfig)
         "Print default configuration"
    , Option [] ["debug"] (NoArg Debug)
@@ -122,10 +122,10 @@
 checkListen :: String -> String
 checkListen l | isIPv6address l = l
               | isIPv4address l = l
-			  | otherwise         = error "Gitit.checkListen: Not a valid interface name"
+              | otherwise       = error "Gitit.checkListen: Not a valid interface name"
 
 getListenOrDefault :: [Opt] -> String
-getListenOrDefault [] = "127.0.0.1"
+getListenOrDefault [] = "0.0.0.0"
 getListenOrDefault ((Listen l):_) = l
 getListenOrDefault (_:os) = getListenOrDefault os
 
