From a29af90503c97d5387978437f989881807705568 Mon Sep 17 00:00:00 2001 From: nek0 Date: Fri, 6 Jan 2017 18:28:36 +0100 Subject: [PATCH] changing medium description to markdown --- Handler/AdminMediumSettings.hs | 4 +++- Handler/Medium.hs | 3 ++- Handler/MediumSettings.hs | 3 ++- Handler/RootFeed.hs | 8 ++++++-- Handler/Upload.hs | 8 +++++--- Model.hs | 3 ++- config/models | 2 +- eidolon.cabal | 2 ++ 8 files changed, 23 insertions(+), 10 deletions(-) diff --git a/Handler/AdminMediumSettings.hs b/Handler/AdminMediumSettings.hs index 12491c3..159dbf7 100755 --- a/Handler/AdminMediumSettings.hs +++ b/Handler/AdminMediumSettings.hs @@ -17,6 +17,8 @@ module Handler.AdminMediumSettings where import Import +import Yesod.Text.Markdown +import Text.Markdown import Handler.Commons import System.FilePath import qualified Data.Text as T @@ -94,7 +96,7 @@ adminMediumSetForm medium = Medium <*> pure (mediumMime medium) <*> pure (mediumTime medium) <*> pure (mediumOwner medium) - <*> aopt textareaField (bfs ("Description" :: T.Text)) (Just $ mediumDescription medium) + <*> aopt markdownField (bfs ("Description" :: T.Text)) (Just $ mediumDescription medium) <*> areq tagField (bfs ("Tags" :: T.Text)) (Just $ mediumTags medium) <*> pure (mediumAlbum medium) <*> pure (mediumPreview medium) diff --git a/Handler/Medium.hs b/Handler/Medium.hs index c346a81..15fa38a 100755 --- a/Handler/Medium.hs +++ b/Handler/Medium.hs @@ -21,7 +21,8 @@ import Data.Time import Data.Maybe import qualified Data.Text as T import System.FilePath -import Yesod.Markdown +import Text.Markdown +import Yesod.Text.Markdown import Yesod.RssFeed import Yesod.AtomFeed diff --git a/Handler/MediumSettings.hs b/Handler/MediumSettings.hs index 965b5e7..377e379 100755 --- a/Handler/MediumSettings.hs +++ b/Handler/MediumSettings.hs @@ -17,6 +17,7 @@ module Handler.MediumSettings where import Import +import Yesod.Text.Markdown import Handler.Commons import System.FilePath import qualified Data.Text as T @@ -70,7 +71,7 @@ mediumSettingsForm medium = Medium <*> pure (mediumMime medium) <*> pure (mediumTime medium) <*> pure (mediumOwner medium) - <*> aopt textareaField (bfs ("Description" :: T.Text)) (Just $ mediumDescription medium) + <*> aopt markdownField (bfs ("Description" :: T.Text)) (Just $ mediumDescription medium) <*> areq tagField (bfs ("Tags" :: T.Text)) (Just $ mediumTags medium) <*> pure (mediumAlbum medium) <*> pure (mediumPreview medium) diff --git a/Handler/RootFeed.hs b/Handler/RootFeed.hs index d67005e..0d0f032 100755 --- a/Handler/RootFeed.hs +++ b/Handler/RootFeed.hs @@ -17,6 +17,7 @@ module Handler.RootFeed where import Import +import Text.Markdown import qualified Data.Text as T import qualified Data.Text.Lazy as LT import qualified Data.List as L @@ -59,7 +60,7 @@ commentFeedBuilder mId = do |] , feedLanguage = "en" , feedUpdated = time - , feedLogo = Just (StaticR $ StaticRoute (drop 2 $ map T.pack $ splitDirectories $ mediumThumb medium) [], unTextarea $ fromMaybe (Textarea "") $ mediumDescription medium) + , feedLogo = Just (StaticR $ StaticRoute (drop 2 $ map T.pack $ splitDirectories $ mediumThumb medium) [], LT.toStrict $ unMarkdown $ fromMaybe (Markdown "") $ mediumDescription medium) , feedEntries = es } @@ -191,7 +192,7 @@ mediumToEntry ent = do { feedEntryLink = MediumR (entityKey ent) , feedEntryUpdated = mediumTime (entityVal ent) , feedEntryTitle = mediumTitle (entityVal ent) - , feedEntryContent = toHtml (fromMaybe (Textarea "") $ mediumDescription $ entityVal ent) + , feedEntryContent = toHtml (fromMaybe (Markdown "") $ mediumDescription $ entityVal ent) , feedEntryEnclosure = Just $ EntryEnclosure (StaticR $ StaticRoute (drop 2 $ map T.pack $ splitDirectories $ mediumPreview $ entityVal ent) []) size @@ -203,3 +204,6 @@ getSize path = do stat <- P.getFileStatus path P.COff raw <- return $ P.fileSize stat return $ (fromIntegral raw :: Int) + +unMarkdown :: Markdown -> LT.Text +unMarkdown (Markdown t) = t diff --git a/Handler/Upload.hs b/Handler/Upload.hs index ffa73bf..d53c16a 100755 --- a/Handler/Upload.hs +++ b/Handler/Upload.hs @@ -17,6 +17,8 @@ module Handler.Upload where import Import as I +import Yesod.Text.Markdown +import Text.Markdown import Handler.Commons import Data.Time import Data.Maybe @@ -213,7 +215,7 @@ dUploadForm userId user albumId = FileBulk <*> areq multiFileField "Select file(s)" Nothing <*> lift (liftIO getCurrentTime) <*> pure userId - <*> aopt textareaField (bfs ("Description" :: T.Text)) Nothing + <*> aopt markdownField (bfs ("Description" :: T.Text)) Nothing <*> areq tagField (bfs ("Enter tags" :: T.Text)) Nothing <*> pure albumId <*> areq (selectField licences) (bfs ("Licence" :: T.Text)) (defLicence) @@ -228,7 +230,7 @@ data FileBulk = FileBulk , fileBulkFiles :: [FileInfo] , fileBulkTime :: UTCTime , fileBulkOwner :: UserId - , fileBulkDesc :: Maybe Textarea + , fileBulkDesc :: Maybe Markdown , fileBulkTags :: [T.Text] , fileBulkAlbum :: AlbumId , fileBulkLicence :: Int @@ -263,7 +265,7 @@ bulkUploadForm userId user = (\a b c d e f g h -> FileBulk b c d e f g a h) <*> areq multiFileField "Select file(s)" Nothing <*> lift (liftIO getCurrentTime) <*> pure userId - <*> aopt textareaField (bfs ("Description" :: T.Text)) Nothing + <*> aopt markdownField (bfs ("Description" :: T.Text)) Nothing <*> areq tagField (bfs ("Enter tags" :: T.Text)) Nothing <*> areq (selectField licences) (bfs ("Licence" :: T.Text)) (defLicence) <* bootstrapSubmit ("Upload" :: BootstrapSubmit T.Text) diff --git a/Model.hs b/Model.hs index 6327ffb..92537b6 100755 --- a/Model.hs +++ b/Model.hs @@ -18,7 +18,8 @@ module Model where import ClassyPrelude.Yesod import Database.Persist.Quasi -import Yesod.Markdown +import Text.Markdown +import Yesod.Text.Markdown import qualified System.FilePath as FP -- You can define all of your database entities in the entities file. diff --git a/config/models b/config/models index fd89d2d..c4224b1 100755 --- a/config/models +++ b/config/models @@ -48,7 +48,7 @@ Medium mime Text time UTCTime owner UserId - description Textarea Maybe + description Markdown Maybe tags Texts album AlbumId preview FP.FilePath diff --git a/eidolon.cabal b/eidolon.cabal index 5ab6ce6..d25c27a 100755 --- a/eidolon.cabal +++ b/eidolon.cabal @@ -114,6 +114,8 @@ library , cryptonite -- , imagemagick , yesod-markdown >= 0.10 + , yesod-text-markdown >= 0.1.8 + , markdown , blaze-markup >= 0.7 , wai >= 3.0 , yesod-newsfeed >= 1.6