Render entryContent as Markdown too :3

This commit is contained in:
Danielle McLean 2017-10-15 01:12:18 +11:00
parent 805e422eba
commit e24e7db641
Signed by: 00dani
GPG key ID: 5A5D2D1AFF12EEC5
3 changed files with 21 additions and 6 deletions

View file

@ -28,7 +28,7 @@ Profile
Entry
kind EntryKind maxlen=255
name Text Maybe maxlen=255
content Text sqltype=longtext
content Markdown sqltype=longtext
published UTCTime
updated UTCTime
authorId UserId

View file

@ -2,14 +2,27 @@
module Model.Entry where
import Model ( Entry, entryName, entryContent )
import Model.Markdown ( Markdown(Markdown), unMarkdown )
import Data.Maybe ( fromMaybe )
import qualified Data.Text as T
import qualified Data.Text.Lazy as TL
entryTitle :: Entry -> T.Text
entryTitle = fromMaybe <$> shorten 30 . entryContent <*> entryName
entryTitle = fromMaybe <$> TL.toStrict . shorten 30 . unMarkdown . entryContent <*> entryName
shorten :: Int -> T.Text -> T.Text
shorten n t
| T.length t > n = flip T.append "..." . T.take (n - 1) $ t
| otherwise = t
class Shorten a where
shorten :: Integral n => n -> a -> a
instance Shorten T.Text where
shorten n t
| T.length t > fromIntegral n = flip T.append "..." . T.take (fromIntegral n - 1) $ t
| otherwise = t
instance Shorten TL.Text where
shorten n t
| TL.length t > fromIntegral n = flip TL.append "..." . TL.take (fromIntegral n - 1) $ t
| otherwise = t
instance Shorten Markdown where
shorten n (Markdown t) = Markdown $ shorten n t

View file

@ -1,4 +1,6 @@
article.h-entry
.e-content p:last-child
margin-bottom: 0
> .card-footer
display: flex
flex-wrap: wrap