]> gitweb @ CieloNegro.org - Rakka.git/blobdiff - Rakka/Storage/DefaultPage.hs
Record before an experiment
[Rakka.git] / Rakka / Storage / DefaultPage.hs
index 00fdf06dd9e8557f778d46e727a738823ef16d5e..30b5fcf5f1c918d963052b57cd8db293adcf7bb8 100644 (file)
@@ -10,6 +10,7 @@ import           Control.Arrow.ArrowList
 import qualified Data.ByteString.Lazy as L
 import           Data.Encoding
 import           Data.Encoding.UTF8
+import qualified Data.Map as M
 import           Paths_Rakka -- Cabal が用意する。
 import           Rakka.Page
 import           Rakka.Utils
@@ -81,6 +82,8 @@ parseEntity
     -> do mimeType <- (getXPathTreesInDoc "/page/@type/text()" >>> getText
                        >>> arr read) -< tree
 
+          lang     <- maybeA (getXPathTreesInDoc "/page/@lang/text()" >>> getText) -< tree
+
           isTheme  <- (withDefault (getXPathTreesInDoc "/page/@isTheme/text()" >>> getText) "no"
                        >>> parseYesOrNo) -< tree
           isFeed   <- (withDefault (getXPathTreesInDoc "/page/@isFeed/text()" >>> getText) "no"
@@ -111,6 +114,7 @@ parseEntity
           returnA -< Entity {
                         pageName      = name
                       , pageType      = mimeType
+                      , pageLanguage  = lang
                       , pageIsTheme   = isTheme
                       , pageIsFeed    = isFeed
                       , pageIsLocked  = isLocked
@@ -119,6 +123,6 @@ parseEntity
                       , pageRevision  = Nothing
                       , pageLastMod   = lastMod
                       , pageSummary   = summary
-                      , pageOtherLang = otherLang
+                      , pageOtherLang = M.fromList otherLang
                       , pageContent   = content
                       }
\ No newline at end of file