git.iko.soy/typeable/pandoc
on master help sign in
HTML writer: fallback to basename rather than Untitled.
239a17aJohn MacFarlane
src/Text/Pandoc/Writers/HTML.hs+5−4
@@ -76,7 +76,7 @@ import qualified Text.Blaze.Html5 as H5
76#endif
76#endif
77import Control.Monad.Except (throwError)
77import Control.Monad.Except (throwError)
78import Data.Aeson (Value)
78import Data.Aeson (Value)
79−import System.FilePath (takeExtension)
79+import System.FilePath (takeExtension, takeBaseName)
80import Text.Blaze.Html.Renderer.String (renderHtml)
80import Text.Blaze.Html.Renderer.String (renderHtml)
81import qualified Text.Blaze.XHtml1.Transitional as H
81import qualified Text.Blaze.XHtml1.Transitional as H
82import qualified Text.Blaze.XHtml1.Transitional.Attributes as A
82import qualified Text.Blaze.XHtml1.Transitional.Attributes as A
@@ -197,9 +197,10 @@ writeHtmlString' st opts d = do
197 case getField "pagetitle" context of
197 case getField "pagetitle" context of
198 Just (s :: String) | not (null s) -> return context
198 Just (s :: String) | not (null s) -> return context
199 _ -> do
199 _ -> do
200+ let fallback = fromMaybe "Untitled" $ takeBaseName <$>
201+ lookup "sourcefile" (writerVariables opts)
200− report $ NoTitleElement "Untitled"
202+ report $ NoTitleElement fallback
201− return $ resetField "pagetitle" ("Untitled" :: String)
203+ return $ resetField "pagetitle" fallback context
202− context
203 return $ renderTemplate' tpl $
204 return $ renderTemplate' tpl $
204 defField "body" (renderHtml body) context'
205 defField "body" (renderHtml body) context'
205
206
test/lhs-test.html+1−1
@@ -4,7 +4,7 @@
4 <meta charset="utf-8" />
4 <meta charset="utf-8" />
5 <meta name="generator" content="pandoc" />
5 <meta name="generator" content="pandoc" />
6 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
6 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
7− <title>Untitled</title>
7+ <title>lhs-test</title>
8 <style type="text/css">
8 <style type="text/css">
9 code{white-space: pre-wrap;}
9 code{white-space: pre-wrap;}
10 .smallcaps{font-variant: small-caps;}
10 .smallcaps{font-variant: small-caps;}
test/lhs-test.html+lhs+1−1
@@ -4,7 +4,7 @@
4 <meta charset="utf-8" />
4 <meta charset="utf-8" />
5 <meta name="generator" content="pandoc" />
5 <meta name="generator" content="pandoc" />
6 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
6 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
7− <title>Untitled</title>
7+ <title>lhs-test</title>
8 <style type="text/css">
8 <style type="text/css">
9 code{white-space: pre-wrap;}
9 code{white-space: pre-wrap;}
10 .smallcaps{font-variant: small-caps;}
10 .smallcaps{font-variant: small-caps;}