@@ -76,7 +76,7 @@ import qualified Text.Blaze.Html5 as H5
7676#endif
7777import Control.Monad.Except (throwError)
7878import Data.Aeson (Value)
79−import System.FilePath (takeExtension)
79+import System.FilePath (takeExtension, takeBaseName)
8080import Text.Blaze.Html.Renderer.String (renderHtml)
8181import qualified Text.Blaze.XHtml1.Transitional as H
8282import qualified Text.Blaze.XHtml1.Transitional.Attributes as A
@@ -197,9 +197,10 @@ writeHtmlString' st opts d = do
197197 case getField "pagetitle" context of
198198 Just (s :: String) | not (null s) -> return context
199199 _ -> do
200− report $ NoTitleElement "Untitled"
201− return $ resetField "pagetitle" ("Untitled" :: String)
202− context
200+ let fallback = fromMaybe "Untitled" $ takeBaseName <$>
201+ lookup "sourcefile" (writerVariables opts)
202+ report $ NoTitleElement fallback
203+ return $ resetField "pagetitle" fallback context
203204 return $ renderTemplate' tpl $
204205 defField "body" (renderHtml body) context'
205206