git.iko.soy/typeable/pandoc
on master help sign in
EPUB writer: ensure that pagetitle is always set...

even when structured titles are used. This prevents spurious warnings about empty title elements. Closes #4486.

commitdb596a5b126520c311001010f573afe474dac1e5 authorJohn MacFarlane <jgm@berkeley.edu> dateFri 23 Mar 2018, 12:09 (9 years ago) parent435b182
1 file changed+12−6
src/Text/Pandoc/Writers/EPUB.hs+12−6
src/Text/Pandoc/Writers/EPUB.hs+12−6
@@ -403,6 +403,12 @@ pandocToEPUB version opts doc@(Pandoc meta _) = do
403403 writeHtmlStringForEPUB version o
404404 metadata <- getEPUBMetadata opts meta
405405
406+ let plainTitle = case docTitle' meta of
407+ [] -> case epubTitle metadata of
408+ [] -> "UNTITLED"
409+ (x:_) -> titleText x
410+ x -> stringify x
411+
406412 -- stylesheet
407413 stylesheets <- case epubStylesheets metadata of
408414 [] -> (\x -> [B.fromChunks [x]]) <$>
@@ -440,6 +446,7 @@ pandocToEPUB version opts doc@(Pandoc meta _) = do
440446 cpContent <- lift $ writeHtml
441447 opts'{ writerVariables =
442448 ("coverpage","true"):
449+ ("pagetitle",plainTitle):
443450 cssvars True ++ vars }
444451 (Pandoc meta [RawBlock (Format "html") $ "<div id=\"cover-image\">\n<img src=\"../media/" ++ coverImage ++ "\" alt=\"cover image\" />\n</div>"])
445452 imgContent <- lift $ P.readFileLazy img
@@ -452,6 +459,7 @@ pandocToEPUB version opts doc@(Pandoc meta _) = do
452459 -- title page
453460 tpContent <- lift $ writeHtml opts'{
454461 writerVariables = ("titlepage","true"):
462+ ("pagetitle",plainTitle):
455463 cssvars True ++ vars }
456464 (Pandoc meta [])
457465 tpEntry <- mkEntry "text/title_page.xhtml" tpContent
@@ -604,11 +612,6 @@ pandocToEPUB version opts doc@(Pandoc meta _) = do
604612 $ eRelativePath ent),
605613 ("media-type", fromMaybe "" $
606614 getMimeType $ eRelativePath ent)] $ ()
607− let plainTitle = case docTitle' meta of
608− [] -> case epubTitle metadata of
609− [] -> "UNTITLED"
610− (x:_) -> titleText x
611− x -> stringify x
612615
613616 let tocTitle = fromMaybe plainTitle $
614617 metaValueToString <$> lookupMeta "toc-title" meta
@@ -749,7 +752,10 @@ pandocToEPUB version opts doc@(Pandoc meta _) = do
749752 where titElements = parseXML titRendered
750753 titRendered = case P.runPure
751754 (writeHtmlStringForEPUB version
752− opts{ writerTemplate = Nothing }
755+ opts{ writerTemplate = Nothing
756+ , writerVariables =
757+ ("pagetitle",plainTitle):
758+ writerVariables opts}
753759 (Pandoc nullMeta
754760 [Plain $ walk clean tit])) of
755761 Left _ -> TS.pack $ stringify tit