mirror of
https://github.com/commercialhaskell/stackage-server.git
synced 2026-01-11 19:58:28 +01:00
Switch to cmark-gfm
This commit is contained in:
parent
77b0b3b396
commit
014114855b
@ -67,7 +67,7 @@ dependencies:
|
||||
- mono-traversable
|
||||
- time
|
||||
- process
|
||||
- markdown
|
||||
- cmark-gfm
|
||||
- formatting
|
||||
- blaze-html
|
||||
- haddock-library
|
||||
|
||||
@ -6,12 +6,13 @@ module Data.WebsiteContent
|
||||
) where
|
||||
|
||||
import ClassyPrelude.Yesod
|
||||
import Text.Markdown (markdown, msXssProtect, msAddHeadingId)
|
||||
import CMarkGFM
|
||||
import Data.GhcLinks
|
||||
import Data.Aeson (withObject)
|
||||
import Data.Yaml
|
||||
import System.FilePath (takeFileName)
|
||||
import Types
|
||||
import Text.Blaze.Html (preEscapedToHtml)
|
||||
|
||||
data WebsiteContent = WebsiteContent
|
||||
{ wcHomepage :: !Html
|
||||
@ -49,13 +50,11 @@ loadWebsiteContent dir = do
|
||||
>>= either throwIO (return . setFromList . map PackageName)
|
||||
return WebsiteContent {..}
|
||||
where
|
||||
readHtml fp = fmap (preEscapedToMarkup . decodeUtf8 :: ByteString -> Html)
|
||||
$ readFile $ dir </> fp
|
||||
readMarkdown fp = fmap (markdown def
|
||||
{ msXssProtect = False
|
||||
, msAddHeadingId = True
|
||||
} . fromStrict . decodeUtf8)
|
||||
$ readFile $ dir </> fp
|
||||
readHtml fp = fmap preEscapedToMarkup $ readFileUtf8 $ dir </> fp
|
||||
readMarkdown fp = fmap (preEscapedToHtml . commonmarkToHtml
|
||||
[optSmart]
|
||||
[extTable, extAutolink])
|
||||
$ readFileUtf8 $ dir </> fp
|
||||
|
||||
loadPosts :: FilePath -> IO (Vector Post)
|
||||
loadPosts dir =
|
||||
@ -80,10 +79,10 @@ loadPosts dir =
|
||||
_ -> error "Does not start with --- frontmatter"
|
||||
case Data.Yaml.decodeEither' $ encodeUtf8 frontmatter of
|
||||
Left e -> throwIO e
|
||||
Right mkPost -> return $ mkPost slug $ markdown def
|
||||
{ msXssProtect = False
|
||||
, msAddHeadingId = True
|
||||
} $ fromStrict body
|
||||
Right mkPost -> return $ mkPost slug $ preEscapedToHtml $ commonmarkToHtml
|
||||
[optSmart]
|
||||
[extTable, extAutolink]
|
||||
body
|
||||
|
||||
instance (slug ~ Text, body ~ Html) => FromJSON (slug -> body -> Post) where
|
||||
parseJSON = withObject "Post" $ \o -> do
|
||||
|
||||
@ -49,12 +49,12 @@ module Stackage.Database
|
||||
import Web.PathPieces (toPathPiece)
|
||||
import qualified Codec.Archive.Tar as Tar
|
||||
import Database.Esqueleto.Internal.Language (From)
|
||||
import Text.Markdown (markdown, msAddHeadingId, def)
|
||||
import CMarkGFM
|
||||
import System.Directory (removeFile)
|
||||
import Stackage.Database.Haddock
|
||||
import System.FilePath (takeBaseName, takeExtension)
|
||||
import ClassyPrelude.Conduit hiding (pi, FilePath, (</>))
|
||||
import Text.Blaze.Html (Html, toHtml)
|
||||
import Text.Blaze.Html (Html, toHtml, preEscapedToHtml)
|
||||
import Yesod.Form.Fields (Textarea (..))
|
||||
import Stackage.Database.Types
|
||||
import System.Directory (getAppUserDataDirectory)
|
||||
@ -351,9 +351,10 @@ addPackage e =
|
||||
fp = Tar.entryPath e
|
||||
base = takeBaseName fp
|
||||
|
||||
renderContent txt "markdown" = markdown
|
||||
(def { msAddHeadingId = True })
|
||||
(fromStrict txt)
|
||||
renderContent txt "markdown" = preEscapedToHtml $ commonmarkToHtml
|
||||
[optSmart, optSafe]
|
||||
[extTable, extAutolink]
|
||||
txt
|
||||
renderContent txt "haddock" = renderHaddock txt
|
||||
renderContent txt _ = toHtml $ Textarea txt
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user