Show README and changelog from metadata table

@snoyberg

Check out these locally when your data is generated, they demonstrate
varying readme and changelog formats.

http://localhost:3000/package/yesod-core

http://localhost:3000/package/fay

http://localhost:3000/package/base

http://localhost:3000/package/conduit

http://localhost:3000/package/aeson

http://localhost:3000/package/bytestring

Pity there's no standard CHANGELOG format but it's better than
nothing and looks pretty in the conduit/base case.
This commit is contained in:
Chris Done 2014-11-03 17:47:32 +01:00
parent d195dea789
commit b1d9b7e6d9
3 changed files with 32 additions and 9 deletions

View File

@ -13,7 +13,6 @@ import qualified Database.Esqueleto as E
import Formatting
import Import
import Text.Email.Validate
import Text.Markdown
-- | Page metadata package.
getPackageR :: PackageName -> Handler Html
@ -38,9 +37,7 @@ getPackageR pn = do
recentDownloads <- count [DownloadPackage ==. pn, DownloadTimestamp >=. nowMinus30]
metadata <- getBy404 (UniqueMetadata pn)
return (packages, downloads, recentDownloads, metadata)
readmeText <- return "TODO"
let readmeHtml = markdown def readmeText
deps = enumerate (metadataDeps metadata)
let deps = enumerate (metadataDeps metadata)
authors = enumerate (parseIdentitiesLiberally (metadataAuthor metadata))
maintainers = let ms = enumerate (parseIdentitiesLiberally (metadataMaintainer metadata))
in if ms == authors

View File

@ -109,12 +109,22 @@ $newline never
<td>
<a href=@{StackageHomeR ident}>#{fromMaybe title $ stripSuffix ", exclusive" title}
<div .readme-container>
<div .markdown-container .readme-container>
<div .container>
<div .row>
<div .span12>
<div .readme>
#{readmeHtml}
#{metadataReadme metadata}
$maybe log <- metadataChangelog metadata
<div .container>
<div .row>
<div .span12>
<h2 .changes-title>Changes
<div .markdown-container .changelog-container>
<div .container>
<div .row>
<div .span12>
#{log}
<div .container>
<div .row>

View File

@ -79,13 +79,13 @@ h3 {
}
}
.readme-container {
.markdown-container {
margin-top: 1em;
border-top: 1px solid #ddd;
padding-top: 1em;
margin-bottom: 0em;
border-bottom: 1px solid #ddd;
padding-bottom: 2em;
padding-bottom: 1em;
background: #f4f4f4;
h1,h2,h3,h4,h5 {
@ -124,3 +124,19 @@ h3 {
padding: 1em;
}
}
.changelog-container {
margin-top: 0.5em;
h1 { font-size: 1.2em; }
h2,h3,h4,h5 { font-size: 1.2em; }
}
h2.changes-title {
margin-top: 1em;
font-size: 1.5em;
color: #555;
}
.readme-container {
margin-top: 1em;
}