]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - Rakka/Wiki/Engine.hs
Wrote more
[Rakka.git] / Rakka / Wiki / Engine.hs
index 8d5c8eecc0fa87ffbf53812a8916aece7cb1fa72..bb8dc3be9ca4bbe5bc26c90f6acc6b701c4d0816 100644 (file)
@@ -60,6 +60,10 @@ formatEntirePage sto sysConf interpTable
                                 Just x -> sattr "lang" x
                                 _      -> none
                             )
+                         += ( case pageFileName page of
+                                Just x -> sattr "fileName" x
+                                _      -> none
+                            )
                          += ( case pageType page of
                                 MIMEType "text" "css" _
                                     -> sattr "isTheme" (yesOrNo $ pageIsTheme page)
@@ -212,6 +216,18 @@ wikifyPage interpTable page
                  case parse parser "" source of
                    Left err -> wikifyParseError err
                    Right xs -> xs
+
+        MIMEType "image" _ _
+            -> [ Paragraph [ Image (pageName page) Nothing ] ]
+
+        _   -> if pageIsBinary page then
+                   -- object へのリンクのみ
+                   [ Paragraph [ ObjectLink (pageName page) (Just $ pageFileName' page) ] ]
+               else
+                   -- pre
+                   let text = decodeLazy UTF8 (pageContent page)
+                   in
+                     [ Preformatted [ Text text ] ]
     where
       tableToFunc :: String -> Maybe CommandType
       tableToFunc name
@@ -288,6 +304,7 @@ makeDraft interpTable page
          setAttribute doc "@lang"          $ pageLanguage page
          setAttribute doc "@type"          $ Just $ show $ pageType page
          setAttribute doc "@mdate"         $ Just $ formatW3CDateTime $ pageLastMod page
+         setAttribute doc "rakka:fileName" $ pageFileName page
          setAttribute doc "rakka:isLocked" $ Just $ yesOrNo $ pageIsLocked page
          setAttribute doc "rakka:isBoring" $ Just $ yesOrNo $ pageIsBoring page
          setAttribute doc "rakka:isBinary" $ Just $ yesOrNo $ pageIsBinary page
@@ -328,6 +345,11 @@ makeDraft interpTable page
           = do case i of
                  Text text
                      -> addText doc text
+                 ObjectLink page Nothing
+                     -> addText doc page
+                 ObjectLink page (Just text)
+                     -> do addHiddenText doc page
+                           addText doc text
                  PageLink page fragment Nothing
                      -> addText doc (fromMaybe "" page ++
                                      fromMaybe "" fragment)