From b86710983045ada1fb1baaaeb0041679b555c4de Mon Sep 17 00:00:00 2001 From: fiddlosopher Date: Thu, 31 Dec 2009 01:17:55 +0000 Subject: Modified mediawiki writer to use new templates. git-svn-id: https://pandoc.googlecode.com/svn/trunk@1736 788f1e2b-df1e-0410-8736-df70ead52e1b --- src/Text/Pandoc/Writers/MediaWiki.hs | 30 ++++++------- templates/mediawiki.template | 81 ++++-------------------------------- tests/writer.mediawiki | 1 + 3 files changed, 23 insertions(+), 89 deletions(-) diff --git a/src/Text/Pandoc/Writers/MediaWiki.hs b/src/Text/Pandoc/Writers/MediaWiki.hs index f3e0c58fa..572308820 100644 --- a/src/Text/Pandoc/Writers/MediaWiki.hs +++ b/src/Text/Pandoc/Writers/MediaWiki.hs @@ -32,6 +32,7 @@ MediaWiki: module Text.Pandoc.Writers.MediaWiki ( writeMediaWiki ) where import Text.Pandoc.Definition import Text.Pandoc.Shared +import Text.Pandoc.Templates (renderTemplate) import Text.Pandoc.XML ( escapeStringForXML ) import Data.List ( intersect, intercalate ) import Network.URI ( isURI ) @@ -52,21 +53,20 @@ writeMediaWiki opts document = -- | Return MediaWiki representation of document. pandocToMediaWiki :: WriterOptions -> Pandoc -> State WriterState String pandocToMediaWiki opts (Pandoc _ blocks) = do - return "" -- TODO --- let before = writerIncludeBefore opts --- let after = writerIncludeAfter opts --- let head' = if writerStandalone opts --- then writerHeader opts --- else "" --- let toc = if writerTableOfContents opts --- then "__TOC__\n" --- else "" --- body <- blockListToMediaWiki opts blocks --- notesExist <- get >>= return . stNotes --- let notes = if notesExist --- then "\n== Notes ==\n" --- else "" --- return $ head' ++ before ++ toc ++ body ++ after ++ notes + let before = writerIncludeBefore opts + let after = writerIncludeAfter opts + body <- blockListToMediaWiki opts blocks + notesExist <- get >>= return . stNotes + let notes = if notesExist + then "\n== Notes ==\n" + else "" + let main = before ++ body ++ after ++ notes + let context = writerVariables opts ++ + [ ("body", main) ] ++ + [ ("toc", "yes") | writerTableOfContents opts ] + if writerStandalone opts + then return $ renderTemplate context $ writerTemplate opts + else return main -- | Escape special characters for MediaWiki. escapeString :: String -> String diff --git a/templates/mediawiki.template b/templates/mediawiki.template index 993115ab9..b32808d65 100644 --- a/templates/mediawiki.template +++ b/templates/mediawiki.template @@ -1,75 +1,8 @@ - -title$header-includes$ - -

title

section oen

  1. one
    1. two
      1. three
hi
-

footnote1


  1. with code

    code
    -
- +$if(legacy-header)$ +$legacy-header$ +$endif$ +$if(toc)$ +__TOC__ +$endif$ +$body$ diff --git a/tests/writer.mediawiki b/tests/writer.mediawiki index 4dd69708b..fe5ab5035 100644 --- a/tests/writer.mediawiki +++ b/tests/writer.mediawiki @@ -661,3 +661,4 @@ This paragraph should not be part of the note, as it is not indented. == Notes == + -- cgit v1.2.3