[clckwrks-plugin-page-0.1.6: add link-only and title-only options to preprocessor Jeremy Shaw **20130318045033 Ignore-this: 5c457021ab6188ab9d611bf59e0cebe6 ] hunk ./clckwrks-plugin-page/Clckwrks/Page/PreProcess.hs 6 -import Control.Applicative ((<*>), (*>), (<$>), (<|>), optional) +import Control.Applicative ((<*>), (*>), (<$>), (<|>), optional, pure) hunk ./clckwrks-plugin-page/Clckwrks/Page/PreProcess.hs 43 - = LinkPage PageId (Maybe Text) + = PageLink PageId (Maybe Text) Bool + | PageTitle PageId hunk ./clckwrks-plugin-page/Clckwrks/Page/PreProcess.hs 47 -pageId :: Parser PageCmd -pageId = LinkPage <$> (parseAttr (fromString "id") *> (PageId <$> decimal)) <*> (optional $ parseAttr (fromString "title") *> qtext) - hunk ./clckwrks-plugin-page/Clckwrks/Page/PreProcess.hs 48 -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 hunk ./clckwrks-plugin-page/Clckwrks/Page/PreProcess.hs 70 -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) = hunk ./clckwrks-plugin-page/Clckwrks/Page/PreProcess.hs 84 - html <- unXMLGenT $ <% ttl %> - return $ B.fromString $ concat $ lines $ renderAsHTML html + case linkOnly of + False -> + do html <- unXMLGenT $ <% ttl %> + return $ B.fromString $ concat $ lines $ renderAsHTML html + True -> + return $ B.fromText $ clckShowURL (ViewPageSlug pid (toSlug ttl slug)) [] + + + hunk ./clckwrks-plugin-page/clckwrks-plugin-page.cabal 2 -version: 0.1.5 +version: 0.1.6