packages feed

geek 1.0.0.5 → 1.0.0.6

raw patch · 4 files changed

+14/−13 lines, 4 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- Web.Geek.Type: type Meta = [(Text, Text)]
+ Web.Geek.Type: type Meta = Map Text Text

Files

geek.cabal view
@@ -1,5 +1,5 @@ Name:                 geek-Version:              1.0.0.5+Version:              1.0.0.6 Build-type:           Simple Synopsis:             Geek blog engine Description:          A dynamic blog engine, customizable with standard web technology, i.e. HTML, CSS and Javascript (JSON)
src/Web/Geek/Post.hs view
@@ -20,10 +20,11 @@ import Web.Geek.Config import Web.Geek.Type import qualified Data.Text as T+import qualified Data.Map as Map  post_tags :: Text -> Post -> [Text] post_tags _meta_tag_keyword post = -  case post.meta.lookup _meta_tag_keyword of+  case post.meta.Map.lookup _meta_tag_keyword of     Nothing -> []     Just s -> s.T.splitOn ",".map T.strip @@ -66,7 +67,7 @@  parse_meta :: Text -> (Meta, Text) parse_meta str = -  let no_meta = ([], str)+  let no_meta = (def, str)   in      case str.T.stripStart.T.splitOn "---\n" of@@ -80,7 +81,7 @@                 _ -> Nothing           in           -          let _meta = y.T.lines.reject (T.all isSpace).map parse_line.catMaybes+          let _meta = y.T.lines.reject (T.all isSpace).map parse_line.catMaybes .to_h           in           (_meta, zs.T.unlines.stripStart)         else@@ -106,7 +107,7 @@ spec = do   describe "Post" - do     it "should parse meta data" - do-      parse_meta test_meta === ([("layout", "post"), ("categories", "日常")], "some thing\n\n\n")+      parse_meta test_meta === ([("layout", "post"), ("categories", "日常")].to_h, "some thing\n\n\n")          it "should parse title" - do       let _path = "blog/posts/2010-10-30-dummy title.md"@@ -122,10 +123,10 @@     -}          it "should have tags" - do-      let _post = def {meta = [("tags", "haskell, blog")]} :: Post+      let _post = def {meta = [("tags", "haskell, blog")].to_h} :: Post       post_tags "tags" _post === ["haskell", "blog"]          it "should encode json" - do-      let _post = def {meta = [("tags", "haskell, blog")]} :: Post+      let _post = def {meta = [("tags", "haskell, blog")].to_h} :: Post              _post.encode.decode === Just _post
src/Web/Geek/RSS.hs view
@@ -101,10 +101,10 @@             let pub_date_format_string = "%a, %d %b %Y %H:%M:%S %z"             str - _post.Geek.date.fromMaybe def.formatTime defaultTimeLocale pub_date_format_string             -            let post_link = site_link + "/" +  _post.Geek.link.Geek.unURIEscapedText.T.unpack-            element "link" - do-              str - post_link-            element "guid" ! [attr "isPermaLink" "true"] - do-              str - post_link+          let post_link = site_link + "/" +  _post.Geek.link.Geek.unURIEscapedText.T.unpack+          element "link" - do+            str - post_link+          element "guid" ! [attr "isPermaLink" "true"] - do+            str - post_link                  
src/Web/Geek/Type.hs view
@@ -23,7 +23,7 @@ import Data.Aeson.Generic (toJSON) import Data.Text.Encoding (decodeUtf8) -type Meta = [(Text, Text)]+type Meta = Map Text Text  newtype HTMLText =    HTMLText {unHTMLText :: Text}