clckwrks-plugin-page 0.1.5 → 0.1.8
raw patch · 3 files changed
+31/−12 lines, 3 filesdep ~clckwrks
Dependency ranges changed: clckwrks
Files
Clckwrks/Page/BlogPage.hs view
@@ -19,7 +19,7 @@ postHTML :: Page -> XMLGenT PageM XML postHTML Page{..} = <li class="blog-post">- <h2><% pageTitle %></h2>+ <h2><a href=(ViewPage pageId)><% pageTitle %></a></h2> <span class="pub-date"><% pageDate %></span> <% (markupToContent pageSrc) :: PageM Content %> <p><a href=(ViewPage pageId)>permalink</a></p>
Clckwrks/Page/PreProcess.hs view
@@ -3,7 +3,7 @@ module Clckwrks.Page.PreProcess where import Control.Monad.Trans (MonadIO(..))-import Control.Applicative ((<*>), (*>), (<$>), (<|>), optional)+import Control.Applicative ((<*>), (*>), (<$>), (<|>), optional, pure) import Clckwrks.Monad (ClckT, ClckState, transform, query, segments) import Clckwrks.Page.Acid (GetPageTitle(..), PageState) import Clckwrks.Page.URL (PageURL(ViewPageSlug))@@ -40,14 +40,20 @@ qtext = pack <$> (char '"' *> manyTill qchar (try $ char '"')) data PageCmd- = LinkPage PageId (Maybe Text)+ = PageLink PageId (Maybe Text) Bool+ | PageTitle PageId deriving (Eq, Ord, Show) -pageId :: Parser PageCmd-pageId = LinkPage <$> (parseAttr (fromString "id") *> (PageId <$> decimal)) <*> (optional $ parseAttr (fromString "title") *> qtext)- parseCmd :: Parser PageCmd-parseCmd = pageId+parseCmd =+ do pid <- parseAttr (fromString "id") *> (PageId <$> decimal)+ linkOnly <- skipMany space >> stringCI "title-only"+ return $ PageTitle pid+ <|>+ do pid <- parseAttr (fromString "id") *> (PageId <$> decimal)+ mTitle <- optional $ parseAttr (fromString "title") *> qtext+ linkOnly <- (skipMany space >> (stringCI "link-only")) *> pure True <|> pure False+ return $ PageLink pid mTitle linkOnly pageCmd :: (Functor m, MonadIO m) => AcidState PageState@@ -61,7 +67,13 @@ do b <- transform (applyCmd pageAcid clckShowURL) segments return $ B.toLazyText b -applyCmd pageAcid clckShowURL l@(LinkPage pid mTitle) =+applyCmd pageAcid clckShowURL l@(PageTitle pid) =+ do mttl <- query' pageAcid (GetPageTitle pid)+ case mttl of+ Nothing -> return $ B.fromText "Untitled"+ (Just (ttl,_)) -> return $ B.fromText ttl++applyCmd pageAcid clckShowURL l@(PageLink pid mTitle linkOnly) = do (ttl, slug) <- case mTitle of (Just t) -> return (t, Just $ slugify t)@@ -69,5 +81,12 @@ case mttl of Nothing -> return $ (pack "Untitled", Nothing) (Just ttlSlug) -> return ttlSlug- html <- unXMLGenT $ <a href=(clckShowURL (ViewPageSlug pid (toSlug ttl slug)) [])><% ttl %></a>- return $ B.fromString $ concat $ lines $ renderAsHTML html+ case linkOnly of+ False ->+ do html <- unXMLGenT $ <a href=(clckShowURL (ViewPageSlug pid (toSlug ttl slug)) [])><% ttl %></a>+ return $ B.fromString $ concat $ lines $ renderAsHTML html+ True ->+ return $ B.fromText $ clckShowURL (ViewPageSlug pid (toSlug ttl slug)) []+++
clckwrks-plugin-page.cabal view
@@ -1,5 +1,5 @@ name: clckwrks-plugin-page-version: 0.1.5+version: 0.1.8 synopsis: support for CMS/Blogging in clckwrks homepage: http://www.clckwrks.com/ license: BSD3@@ -42,7 +42,7 @@ aeson == 0.6.*, acid-state == 0.8.*, attoparsec == 0.10.*,- clckwrks == 0.16.*,+ clckwrks >= 0.16 && < 0.18, containers >= 0.4 && < 0.6, directory >= 1.1 && < 1.3, filepath >= 1.2 && < 1.4,