stackage-server/templates/home.hamlet
2025-02-02 23:15:31 +08:00

67 lines
4.1 KiB
Plaintext

<div .container>
<div>
<div .span5>
<img src=@{StaticR img_logo_png} .logo>
<div .span3>
<p>
<form class="hoogle" action="/#{latestLtsNameWithHoogle}/hoogle">
<div class="input-append hoogle-q">
<input class="search span3" type="search" autofocus="" name="q" value="" placeholder="Hoogle search LTS">
<button class="btn" type="submit">
Search
<label class="checkbox exact-lookup" for="exact" title="Only find identifiers matching your search term precisely">
<input type="checkbox" name="exact" id="exact">
Exact lookup
<div>
<div .span6>
<h3>Stable Haskell package sets
<ul>
<li>A distribution of compatible Haskell packages from <a href="https://hackage.haskell.org">Hackage</a> that build together
<li>Stackage is a community project: <a href="https://github.com/commercialhaskell/stackage/blob/master/MAINTAINERS.md#adding-a-package"><b>how to add packages to Stackage</b></a>
<li><a href="https://haskellstack.org">stack</a> makes using Stackage easy
<div .span6>
$maybe post <- mrecentBlog
<h3>News
<p>
\<a href=@{BlogPostR (postYear post) (postMonth post) (postSlug post)}>#{postTitle post}</a>,
<abbr title=#{show $ postTime post}>#{dateDiff now' (utctDay $ postTime post)}
<div .span6>
<h3>
Latest releases per GHC version
<ul>
$forall stackages <- latestNightly
$forall (ident, title, uploaded) <- stackages
<li>
<a href=@{SnapshotR ident StackageHomeR}>#{title}</a>, #{uploaded}
$forall (major, minor, ghc, date) <- latestLtsByGhc
<li>
<a href=@{SnapshotR (SNLts major minor) StackageHomeR}>LTS #{major}.#{minor} for #{ghc}#
\, published #{dateDiff now' date}
<div .span6>
<h3 id="about">
About Stackage
<p>
Stackage provides consistent sets of Haskell packages, known to build together and pass their tests before becoming <a href="/nightly">Stackage Nightly</a> snapshots and <a href="/lts">LTS</a>
(<a href="https://github.com/commercialhaskell/lts-haskell#readme">Long Term Support</a>) releases.
<p>
It is a distribution of a subset of packages from <a href="https://hackage.haskell.org">Hackage</a>, each package chosen at a version to make the set self-consistent. Note that Stackage does not patch any packages.
<p>
We recommend using the <a href="https://haskellstack.org">stack</a> tool, which makes using Stackage snapshots easy and convenient.
But Stackage can also be used in other ways: as a source of consistent packages that work well together, or to ensure that Haskell packages you author or care about work well with others.
\<a href="https://haskell.fpcomplete.com/get-started">Get started with Stack</a>.
<p>
Stackage is a community project: Haskell users around the world work together to keep Stackage snapshots up to date with recent package versions:
Stackage itself and all the tools surrounding it are open-source.
See #
\<a href="https://github.com/commercialhaskell/stackage/blob/master/MAINTAINERS.md#adding-a-package"><b>how to add packages to Stackage</b></a>.
<p>
Have more questions? We have a #
\<a href="https://github.com/commercialhaskell/stackage#frequently-asked-questions">FAQ section on Github</a>.
<p>
Stackage's infrastructure, build machines, initial creation and ongoing maintenance were proudly sponsored by <a href="https://www.fpcomplete.com">FP Complete</a> from 2014 to 2024.
<p>
Today it is a service provided by the <a href="https://haskell.foundation">Haskell Foundation</a>.