diff options
| author | John MacFarlane <jgm@berkeley.edu> | 2016-10-19 14:07:44 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2016-10-19 14:07:44 +0200 |
| commit | 1da40d63b13c46782046b03baa92c4f95f3b2a67 (patch) | |
| tree | abd52fd31a8904eba423ed17cff81a4ccc9807be /src/Text/Pandoc/Writers/TEI.hs | |
| parent | 29cbd5cbcfd15c67fdb9d82105e18ae7a418358a (diff) | |
| parent | 595a171407debfa67436e13e1390d298a3899e74 (diff) | |
| download | pandoc-1da40d63b13c46782046b03baa92c4f95f3b2a67.tar.gz | |
Merge pull request #3108 from tarleb/part
Add command line option allowing to set type of top-level divisions
Diffstat (limited to 'src/Text/Pandoc/Writers/TEI.hs')
| -rw-r--r-- | src/Text/Pandoc/Writers/TEI.hs | 21 |
1 files changed, 11 insertions, 10 deletions
diff --git a/src/Text/Pandoc/Writers/TEI.hs b/src/Text/Pandoc/Writers/TEI.hs index 018884202..6120330ca 100644 --- a/src/Text/Pandoc/Writers/TEI.hs +++ b/src/Text/Pandoc/Writers/TEI.hs @@ -35,7 +35,7 @@ import Text.Pandoc.Shared import Text.Pandoc.Writers.Shared import Text.Pandoc.Options import Text.Pandoc.Templates (renderTemplate') -import Data.List ( stripPrefix, isPrefixOf, isSuffixOf ) +import Data.List ( stripPrefix, isPrefixOf ) import Data.Char ( toLower ) import Text.Pandoc.Highlighting ( languages, languagesByExtension ) import Text.Pandoc.Pretty @@ -60,19 +60,18 @@ writeTEI opts (Pandoc meta blocks) = then Just $ writerColumns opts else Nothing render' = render colwidth - opts' = if "/book>" `isSuffixOf` - (trimr $ writerTemplate opts) - then opts{ writerChapters = True } - else opts - startLvl = if writerChapters opts' then 0 else 1 + startLvl = case writerTopLevelDivision opts of + Part -> -1 + Chapter -> 0 + Section -> 1 auths' = map (authorToTEI opts) $ docAuthors meta meta' = B.setMeta "author" auths' meta Just metadata = metaToJSON opts (Just . render colwidth . (vcat . - (map (elementToTEI opts' startLvl)) . hierarchicalize)) - (Just . render colwidth . inlinesToTEI opts') + (map (elementToTEI opts startLvl)) . hierarchicalize)) + (Just . render colwidth . inlinesToTEI opts) meta' - main = render' $ vcat (map (elementToTEI opts' startLvl) elements) + main = render' $ vcat (map (elementToTEI opts startLvl) elements) context = defField "body" main $ defField "mathml" (case writerHTMLMathMethod opts of MathML _ -> True @@ -90,8 +89,10 @@ elementToTEI opts lvl (Sec _ _num (id',_,_) title elements) = let elements' = if null elements then [Blk (Para [])] else elements + -- level numbering correspond to LaTeX internals divType = case lvl of - n | n == 0 -> "chapter" + n | n == -1 -> "part" + | n == 0 -> "chapter" | n >= 1 && n <= 5 -> "level" ++ show n | otherwise -> "section" in inTags True "div" [("type", divType) | not (null id')] $ |
