First commit
This commit is contained in:
commit
ed39bee596
34 changed files with 6149 additions and 0 deletions
2
.ghci
Executable file
2
.ghci
Executable file
|
@ -0,0 +1,2 @@
|
||||||
|
:set -isrc
|
||||||
|
:set -hide-package monads-tf
|
9
.gitignore
vendored
Normal file
9
.gitignore
vendored
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
*.o
|
||||||
|
*.hi
|
||||||
|
*~
|
||||||
|
dist/
|
||||||
|
cabal-dev/
|
||||||
|
.hsenv
|
||||||
|
TAGS
|
||||||
|
tags
|
||||||
|
*.tag
|
24
LICENSE
Normal file
24
LICENSE
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
Copyright (c) 2014, haskell-lang
|
||||||
|
All rights reserved.
|
||||||
|
|
||||||
|
Redistribution and use in source and binary forms, with or without
|
||||||
|
modification, are permitted provided that the following conditions are met:
|
||||||
|
* Redistributions of source code must retain the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer.
|
||||||
|
* Redistributions in binary form must reproduce the above copyright
|
||||||
|
notice, this list of conditions and the following disclaimer in the
|
||||||
|
documentation and/or other materials provided with the distribution.
|
||||||
|
* Neither the name of haskell-lang nor the
|
||||||
|
names of its contributors may be used to endorse or promote products
|
||||||
|
derived from this software without specific prior written permission.
|
||||||
|
|
||||||
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||||
|
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||||
|
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||||
|
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
|
||||||
|
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||||
|
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||||
|
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
||||||
|
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
|
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||||
|
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
4
README.md
Normal file
4
README.md
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
haskell-lang
|
||||||
|
=====
|
||||||
|
|
||||||
|
Haskell web site.
|
2
Setup.hs
Normal file
2
Setup.hs
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
import Distribution.Simple
|
||||||
|
main = defaultMain
|
2
config/routes
Normal file
2
config/routes
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
/static StaticR Static appStatic
|
||||||
|
/ HomeR GET
|
867
design/design.svg
Normal file
867
design/design.svg
Normal file
|
@ -0,0 +1,867 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="1852.36"
|
||||||
|
height="1488.189"
|
||||||
|
id="svg2"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.48.4 r9939"
|
||||||
|
sodipodi:docname="design.svg">
|
||||||
|
<defs
|
||||||
|
id="defs4">
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient6175">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#f9f6ff;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop6177" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#f9f6ff;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop6179" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient6027">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#4f4371;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop6029" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#6e5d9d;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop6031" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient6021"
|
||||||
|
osb:paint="solid">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#000000;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop6023" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient4579">
|
||||||
|
<stop
|
||||||
|
id="stop4581"
|
||||||
|
offset="0"
|
||||||
|
style="stop-color:#4f4371;stop-opacity:0.24705882;" />
|
||||||
|
<stop
|
||||||
|
id="stop4583"
|
||||||
|
offset="1"
|
||||||
|
style="stop-color:#4f4371;stop-opacity:0;" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient4567">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#4f4371;stop-opacity:0.24705882;"
|
||||||
|
offset="0"
|
||||||
|
id="stop4577" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#4f4371;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop4571" />
|
||||||
|
</linearGradient>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3848">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:none"
|
||||||
|
d="m 1353,-1167.6374 143,217.99996 -139,218 26,12 434,2 -74,-113 c 0,0 161,-27 157,-26 -4,1 -54,-203.99996 -54,-203.99996 l -298,-92 -57,-26 z"
|
||||||
|
id="path3850"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3854">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:none"
|
||||||
|
d="m 575,-882.63744 -148,-230.99996 -136,5 7,27 130,200.99996 -140,226 145,0 143,-219 z"
|
||||||
|
id="path3856"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3854-8">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:none"
|
||||||
|
d="m 575,-882.63744 -148,-230.99996 -136,5 7,27 130,200.99996 -140,226 145,0 143,-219 z"
|
||||||
|
id="path3856-8"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3924">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;stroke:none"
|
||||||
|
d="m 1354.5147,-1165.4256 144.7711,218.92217 -153.5986,231.28072 446.6719,-5.2965 -28.2481,-35.31004 -293.0732,-434.31345 z"
|
||||||
|
id="path3926"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3953">
|
||||||
|
<path
|
||||||
|
style="fill:#4f4371;fill-opacity:1;stroke:none"
|
||||||
|
d="m 1375.3258,-1364.6093 -150.0676,-234.8117 287.7767,12.3585 1.7656,213.6257 z"
|
||||||
|
id="path3955"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3953-0">
|
||||||
|
<path
|
||||||
|
style="fill:#4f4371;fill-opacity:1;stroke:none"
|
||||||
|
d="m 1375.3258,-1364.6093 -150.0676,-234.8117 287.7767,12.3585 1.7656,213.6257 z"
|
||||||
|
id="path3955-1"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3953-0-9">
|
||||||
|
<path
|
||||||
|
style="fill:#4f4371;fill-opacity:1;stroke:none"
|
||||||
|
d="m 1375.3258,-1364.6093 -150.0676,-234.8117 287.7767,12.3585 1.7656,213.6257 z"
|
||||||
|
id="path3955-1-6"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3924-0">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;stroke:none"
|
||||||
|
d="m 1354.5147,-1165.4256 144.7711,218.92217 -153.5986,231.28072 446.6719,-5.2965 -28.2481,-35.31004 -293.0732,-434.31345 z"
|
||||||
|
id="path3926-1"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3854-8-0">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:none"
|
||||||
|
d="m 575,-882.63744 -148,-230.99996 -136,5 7,27 130,200.99996 -140,226 145,0 143,-219 z"
|
||||||
|
id="path3856-8-7"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3953-0-9-1">
|
||||||
|
<path
|
||||||
|
style="fill:#4f4371;fill-opacity:1;stroke:none"
|
||||||
|
d="m 1375.3258,-1364.6093 -150.0676,-234.8117 287.7767,12.3585 1.7656,213.6257 z"
|
||||||
|
id="path3955-1-6-8"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3953-0-9-1-9">
|
||||||
|
<path
|
||||||
|
style="fill:#4f4371;fill-opacity:1;stroke:none"
|
||||||
|
d="m 1375.3258,-1364.6093 -150.0676,-234.8117 287.7767,12.3585 1.7656,213.6257 z"
|
||||||
|
id="path3955-1-6-8-0"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3854-8-0-2">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:none"
|
||||||
|
d="m 575,-882.63744 -148,-230.99996 -136,5 7,27 130,200.99996 -140,226 145,0 143,-219 z"
|
||||||
|
id="path3856-8-7-6"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3924-0-8">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;stroke:none"
|
||||||
|
d="m 1354.5147,-1165.4256 144.7711,218.92217 -153.5986,231.28072 446.6719,-5.2965 -28.2481,-35.31004 -293.0732,-434.31345 z"
|
||||||
|
id="path3926-1-5"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3953-0-9-1-1">
|
||||||
|
<path
|
||||||
|
style="fill:#4f4371;fill-opacity:1;stroke:none"
|
||||||
|
d="m 1375.3258,-1364.6093 -150.0676,-234.8117 287.7767,12.3585 1.7656,213.6257 z"
|
||||||
|
id="path3955-1-6-8-8"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3854-8-0-9">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:none"
|
||||||
|
d="m 575,-882.63744 -148,-230.99996 -136,5 7,27 130,200.99996 -140,226 145,0 143,-219 z"
|
||||||
|
id="path3856-8-7-8"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3924-0-2">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;stroke:none"
|
||||||
|
d="m 1354.5147,-1165.4256 144.7711,218.92217 -153.5986,231.28072 446.6719,-5.2965 -28.2481,-35.31004 -293.0732,-434.31345 z"
|
||||||
|
id="path3926-1-7"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3924-0-1">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;stroke:none"
|
||||||
|
d="m 1354.5147,-1165.4256 144.7711,218.92217 -153.5986,231.28072 446.6719,-5.2965 -28.2481,-35.31004 -293.0732,-434.31345 z"
|
||||||
|
id="path3926-1-2"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3854-8-0-29">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:none"
|
||||||
|
d="m 575,-882.63744 -148,-230.99996 -136,5 7,27 130,200.99996 -140,226 145,0 143,-219 z"
|
||||||
|
id="path3856-8-7-4"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3953-0-9-1-5">
|
||||||
|
<path
|
||||||
|
style="fill:#4f4371;fill-opacity:1;stroke:none"
|
||||||
|
d="m 1375.3258,-1364.6093 -150.0676,-234.8117 287.7767,12.3585 1.7656,213.6257 z"
|
||||||
|
id="path3955-1-6-8-1"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3924-0-1-0">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;stroke:none"
|
||||||
|
d="m 1354.5147,-1165.4256 144.7711,218.92217 -153.5986,231.28072 446.6719,-5.2965 -28.2481,-35.31004 -293.0732,-434.31345 z"
|
||||||
|
id="path3926-1-2-4"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3854-8-0-29-5">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:none"
|
||||||
|
d="m 575,-882.63744 -148,-230.99996 -136,5 7,27 130,200.99996 -140,226 145,0 143,-219 z"
|
||||||
|
id="path3856-8-7-4-2"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3953-0-9-1-5-7">
|
||||||
|
<path
|
||||||
|
style="fill:#4f4371;fill-opacity:1;stroke:none"
|
||||||
|
d="m 1375.3258,-1364.6093 -150.0676,-234.8117 287.7767,12.3585 1.7656,213.6257 z"
|
||||||
|
id="path3955-1-6-8-1-7"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<filter
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="filter4426"
|
||||||
|
color-interpolation-filters="sRGB">
|
||||||
|
<feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="4.4552154"
|
||||||
|
id="feGaussianBlur4428" />
|
||||||
|
</filter>
|
||||||
|
<filter
|
||||||
|
color-interpolation-filters="sRGB"
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="filter4426-1">
|
||||||
|
<feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="4.4552154"
|
||||||
|
id="feGaussianBlur4428-1" />
|
||||||
|
</filter>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3924-0-1-0-7">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;stroke:none"
|
||||||
|
d="m 1354.5147,-1165.4256 144.7711,218.92217 -153.5986,231.28072 446.6719,-5.2965 -28.2481,-35.31004 -293.0732,-434.31345 z"
|
||||||
|
id="path3926-1-2-4-1"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3854-8-0-29-5-3">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:none"
|
||||||
|
d="m 575,-882.63744 -148,-230.99996 -136,5 7,27 130,200.99996 -140,226 145,0 143,-219 z"
|
||||||
|
id="path3856-8-7-4-2-0"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3953-0-9-1-5-7-5">
|
||||||
|
<path
|
||||||
|
style="fill:#4f4371;fill-opacity:1;stroke:none"
|
||||||
|
d="m 1375.3258,-1364.6093 -150.0676,-234.8117 287.7767,12.3585 1.7656,213.6257 z"
|
||||||
|
id="path3955-1-6-8-1-7-6"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3924-0-1-2">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;stroke:none"
|
||||||
|
d="m 1354.5147,-1165.4256 144.7711,218.92217 -153.5986,231.28072 446.6719,-5.2965 -28.2481,-35.31004 -293.0732,-434.31345 z"
|
||||||
|
id="path3926-1-2-6"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3854-8-0-29-50">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:none"
|
||||||
|
d="m 575,-882.63744 -148,-230.99996 -136,5 7,27 130,200.99996 -140,226 145,0 143,-219 z"
|
||||||
|
id="path3856-8-7-4-6"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3953-0-9-1-5-0">
|
||||||
|
<path
|
||||||
|
style="fill:#4f4371;fill-opacity:1;stroke:none"
|
||||||
|
d="m 1375.3258,-1364.6093 -150.0676,-234.8117 287.7767,12.3585 1.7656,213.6257 z"
|
||||||
|
id="path3955-1-6-8-1-2"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6027"
|
||||||
|
id="linearGradient6035"
|
||||||
|
x1="1345.6873"
|
||||||
|
y1="-946.31982"
|
||||||
|
x2="1792.3591"
|
||||||
|
y2="-946.31982"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3953-0-9-1-5-0-2">
|
||||||
|
<path
|
||||||
|
style="fill:#4f4371;fill-opacity:1;stroke:none"
|
||||||
|
d="m 1375.3258,-1364.6093 -150.0676,-234.8117 287.7767,12.3585 1.7656,213.6257 z"
|
||||||
|
id="path3955-1-6-8-1-2-4"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3854-8-0-29-50-9">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:none"
|
||||||
|
d="m 575,-882.63744 -148,-230.99996 -136,5 7,27 130,200.99996 -140,226 145,0 143,-219 z"
|
||||||
|
id="path3856-8-7-4-6-2"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6027-6"
|
||||||
|
id="linearGradient6035-0"
|
||||||
|
x1="1345.6873"
|
||||||
|
y1="-946.31982"
|
||||||
|
x2="1792.3591"
|
||||||
|
y2="-946.31982"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient6027-6">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#4f4371;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop6029-6" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#6e5d9d;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop6031-0" />
|
||||||
|
</linearGradient>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3924-0-1-2-5">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;stroke:none"
|
||||||
|
d="m 1354.5147,-1165.4256 144.7711,218.92217 -153.5986,231.28072 446.6719,-5.2965 -28.2481,-35.31004 -293.0732,-434.31345 z"
|
||||||
|
id="path3926-1-2-6-2"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6027-6"
|
||||||
|
id="linearGradient6057"
|
||||||
|
x1="1345.6873"
|
||||||
|
y1="-946.31982"
|
||||||
|
x2="1792.3591"
|
||||||
|
y2="-946.31982"
|
||||||
|
gradientUnits="userSpaceOnUse" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient6059">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#4f4371;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop6061" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#6e5d9d;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop6063" />
|
||||||
|
</linearGradient>
|
||||||
|
<filter
|
||||||
|
color-interpolation-filters="sRGB"
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="filter4426-1-7">
|
||||||
|
<feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="4.4552154"
|
||||||
|
id="feGaussianBlur4428-1-9" />
|
||||||
|
</filter>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3924-0-1-0-7-6">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;stroke:none"
|
||||||
|
d="m 1354.5147,-1165.4256 144.7711,218.92217 -153.5986,231.28072 446.6719,-5.2965 -28.2481,-35.31004 -293.0732,-434.31345 z"
|
||||||
|
id="path3926-1-2-4-1-7"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3854-8-0-29-5-3-7">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:none"
|
||||||
|
d="m 575,-882.63744 -148,-230.99996 -136,5 7,27 130,200.99996 -140,226 145,0 143,-219 z"
|
||||||
|
id="path3856-8-7-4-2-0-9"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3953-0-9-1-5-7-5-0">
|
||||||
|
<path
|
||||||
|
style="fill:#4f4371;fill-opacity:1;stroke:none"
|
||||||
|
d="m 1375.3258,-1364.6093 -150.0676,-234.8117 287.7767,12.3585 1.7656,213.6257 z"
|
||||||
|
id="path3955-1-6-8-1-7-6-0"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6187-2"
|
||||||
|
id="linearGradient6193-8"
|
||||||
|
x1="1020"
|
||||||
|
y1="101.86254"
|
||||||
|
x2="1085"
|
||||||
|
y2="101.86254"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
gradientTransform="matrix(1.4307693,0,0,2.7118644,-1624.7472,-1379.2373)" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="linearGradient6187-2">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#f1eff6;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop6189-1" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#f1eff6;stop-opacity:0;"
|
||||||
|
offset="1"
|
||||||
|
id="stop6191-7" />
|
||||||
|
</linearGradient>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6027"
|
||||||
|
id="linearGradient6264"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="1345.6873"
|
||||||
|
y1="-946.31982"
|
||||||
|
x2="1792.3591"
|
||||||
|
y2="-946.31982" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6027"
|
||||||
|
id="linearGradient6266"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="1345.6873"
|
||||||
|
y1="-946.31982"
|
||||||
|
x2="1792.3591"
|
||||||
|
y2="-946.31982" />
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6027-6"
|
||||||
|
id="linearGradient6268"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="1345.6873"
|
||||||
|
y1="-946.31982"
|
||||||
|
x2="1792.3591"
|
||||||
|
y2="-946.31982" />
|
||||||
|
<filter
|
||||||
|
color-interpolation-filters="sRGB"
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="filter7536">
|
||||||
|
<feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="4.2040901"
|
||||||
|
id="feGaussianBlur7538" />
|
||||||
|
</filter>
|
||||||
|
<filter
|
||||||
|
color-interpolation-filters="sRGB"
|
||||||
|
inkscape:collect="always"
|
||||||
|
id="filter4426-1-0">
|
||||||
|
<feGaussianBlur
|
||||||
|
inkscape:collect="always"
|
||||||
|
stdDeviation="4.4552154"
|
||||||
|
id="feGaussianBlur4428-1-3" />
|
||||||
|
</filter>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3924-0-1-0-7-90">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;stroke:none"
|
||||||
|
d="m 1354.5147,-1165.4256 144.7711,218.92217 -153.5986,231.28072 446.6719,-5.2965 -28.2481,-35.31004 -293.0732,-434.31345 z"
|
||||||
|
id="path3926-1-2-4-1-42"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3854-8-0-29-5-3-9">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:none"
|
||||||
|
d="m 575,-882.63744 -148,-230.99996 -136,5 7,27 130,200.99996 -140,226 145,0 143,-219 z"
|
||||||
|
id="path3856-8-7-4-2-0-8"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3953-0-9-1-5-7-5-0-4">
|
||||||
|
<path
|
||||||
|
style="fill:#4f4371;fill-opacity:1;stroke:none"
|
||||||
|
d="m 1375.3258,-1364.6093 -150.0676,-234.8117 287.7767,12.3585 1.7656,213.6257 z"
|
||||||
|
id="path3955-1-6-8-1-7-6-9"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6027-3"
|
||||||
|
id="linearGradient6266-6"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="1345.6873"
|
||||||
|
y1="-946.31982"
|
||||||
|
x2="1792.3591"
|
||||||
|
y2="-946.31982" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient6027-3">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#4f4371;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop6029-4" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#6e5d9d;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop6031-0-2" />
|
||||||
|
</linearGradient>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3924-0-1-2-76">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;stroke:none"
|
||||||
|
d="m 1354.5147,-1165.4256 144.7711,218.92217 -153.5986,231.28072 446.6719,-5.2965 -28.2481,-35.31004 -293.0732,-434.31345 z"
|
||||||
|
id="path3926-1-2-6-6"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<linearGradient
|
||||||
|
inkscape:collect="always"
|
||||||
|
xlink:href="#linearGradient6027-3"
|
||||||
|
id="linearGradient7510"
|
||||||
|
gradientUnits="userSpaceOnUse"
|
||||||
|
x1="1345.6873"
|
||||||
|
y1="-946.31982"
|
||||||
|
x2="1792.3591"
|
||||||
|
y2="-946.31982" />
|
||||||
|
<linearGradient
|
||||||
|
id="linearGradient7586">
|
||||||
|
<stop
|
||||||
|
style="stop-color:#4f4371;stop-opacity:1;"
|
||||||
|
offset="0"
|
||||||
|
id="stop7588" />
|
||||||
|
<stop
|
||||||
|
style="stop-color:#6e5d9d;stop-opacity:1;"
|
||||||
|
offset="1"
|
||||||
|
id="stop7590" />
|
||||||
|
</linearGradient>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3854-8-0-29-50-0">
|
||||||
|
<path
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:none"
|
||||||
|
d="m 575,-882.63744 -148,-230.99996 -136,5 7,27 130,200.99996 -140,226 145,0 143,-219 z"
|
||||||
|
id="path3856-8-7-4-6-2-4"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
<clipPath
|
||||||
|
clipPathUnits="userSpaceOnUse"
|
||||||
|
id="clipPath3953-0-9-1-5-0-5">
|
||||||
|
<path
|
||||||
|
style="fill:#4f4371;fill-opacity:1;stroke:none"
|
||||||
|
d="m 1375.3258,-1364.6093 -150.0676,-234.8117 287.7767,12.3585 1.7656,213.6257 z"
|
||||||
|
id="path3955-1-6-8-1-2-3"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</clipPath>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#f1eff6"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="1"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="1"
|
||||||
|
inkscape:cx="1081.9173"
|
||||||
|
inkscape:cy="739.33059"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="g3901-3"
|
||||||
|
showgrid="false"
|
||||||
|
width="1852.36px"
|
||||||
|
inkscape:window-width="2880"
|
||||||
|
inkscape:window-height="1760"
|
||||||
|
inkscape:window-x="0"
|
||||||
|
inkscape:window-y="40"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
showguides="false"
|
||||||
|
inkscape:guide-bbox="true">
|
||||||
|
<sodipodi:guide
|
||||||
|
orientation="1,0"
|
||||||
|
position="88,2443"
|
||||||
|
id="guide3766" />
|
||||||
|
<sodipodi:guide
|
||||||
|
orientation="1,0"
|
||||||
|
position="1972,2045"
|
||||||
|
id="guide3768" />
|
||||||
|
<sodipodi:guide
|
||||||
|
orientation="0,1"
|
||||||
|
position="527,2419"
|
||||||
|
id="guide3770" />
|
||||||
|
</sodipodi:namedview>
|
||||||
|
<metadata
|
||||||
|
id="metadata7">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title />
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Layer 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(0,435.82642)">
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:88.67983246px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#323232;fill-opacity:1;stroke:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Medium"
|
||||||
|
x="833.70312"
|
||||||
|
y="201.72296"
|
||||||
|
id="text6272"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan6274"
|
||||||
|
x="833.70312"
|
||||||
|
y="201.72296">Haskell</tspan></text>
|
||||||
|
<g
|
||||||
|
id="g6233"
|
||||||
|
transform="translate(-348,142)">
|
||||||
|
<g
|
||||||
|
style="opacity:0.15522389;fill:#000000;stroke:none;filter:url(#filter4426-1)"
|
||||||
|
transform="matrix(0.37113195,0,0,0.35490421,827.14867,354.13139)"
|
||||||
|
id="g3901-3-6">
|
||||||
|
<g
|
||||||
|
id="text2990-9-7"
|
||||||
|
style="font-size:417.63537598px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Haskell;-inkscape-font-specification:Haskell"
|
||||||
|
clip-path="url(#clipPath3924-0-1-0-7)"
|
||||||
|
transform="matrix(0.58399349,0,0,0.58399349,-155.23786,-363.83566)">
|
||||||
|
<path
|
||||||
|
style="fill:#000000;stroke:none"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4234-0-4"
|
||||||
|
d="m 1238.7188,-737.50216 138.6679,-208.81769 -138.6679,-208.81765 104.4088,0 138.668,208.81765 -138.668,208.81769 -104.4088,0 m 0,0 0,0 m 138.6679,0 139.4837,-208.81769 -139.4837,-208.81765 104.4089,0 278.1517,417.63534 -104.4089,0 -86.4635,-130.51105 -87.2793,130.51105 -104.4089,0 m 0,0 0,0 m 336.066,-121.53842 -46.4946,-70.14969 162.3232,0 0,70.14969 -115.8286,0 m 0,0 0,0 m -69.334,-104.40884 -46.4945,-70.14968 231.6571,0 0,70.14968 -185.1626,0 m 0,0 0,0" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="text2990-2-1-2"
|
||||||
|
style="font-size:417.63537598px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Haskell;-inkscape-font-specification:Haskell"
|
||||||
|
clip-path="url(#clipPath3854-8-0-29-5-3)"
|
||||||
|
transform="matrix(0.58399349,0,0,0.58399349,379.97409,-402.37923)">
|
||||||
|
<path
|
||||||
|
style="fill:#000000;stroke:none"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4237-4-8"
|
||||||
|
d="m 319.71875,-671.81973 138.668,-208.81768 -138.668,-208.81769 104.40884,0 138.668,208.81769 -138.668,208.81768 -104.40884,0 m 0,0 0,0 m 138.668,0 139.48369,-208.81768 -139.48369,-208.81769 104.40884,0 278.15169,417.63537 -104.40885,0 -86.46357,-130.51105 -87.27927,130.51105 -104.40884,0 m 0,0 0,0 m 336.06596,-121.53841 -46.49456,-70.1497 162.32312,0 0,70.1497 -115.82856,0 m 0,0 0,0 m -69.334,-104.40885 -46.49456,-70.14969 231.65712,0 0,70.14969 -185.16256,0 m 0,0 0,0" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="text2990-27-8-7"
|
||||||
|
style="font-size:417.63537598px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Haskell;-inkscape-font-specification:Haskell"
|
||||||
|
clip-path="url(#clipPath3953-0-9-1-5-7-5)"
|
||||||
|
transform="matrix(0.58399349,0,0,0.58399349,43.373964,-49.619889)">
|
||||||
|
<path
|
||||||
|
style="fill:#000000;stroke:none"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4240-0-3"
|
||||||
|
d="m 896.43237,-1273.5352 138.66803,-208.8177 -138.66803,-208.8177 104.40883,0 138.668,208.8177 -138.668,208.8177 -104.40883,0 m 0,0 0,0 m 138.66803,0 139.4837,-208.8177 -139.4837,-208.8177 104.4088,0 278.1517,417.6354 -104.4088,0 -86.4636,-130.5111 -87.2793,130.5111 -104.4088,0 m 0,0 0,0 m 336.0659,-121.5385 -46.4945,-70.1497 162.3231,0 0,70.1497 -115.8286,0 m 0,0 0,0 m -69.334,-104.4088 -46.4945,-70.1497 231.6571,0 0,70.1497 -185.1626,0 m 0,0 0,0" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
style="stroke:#ffffff;stroke-width:4.11809635;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
transform="matrix(0.37113195,0,0,0.35490421,827.8207,354.45165)"
|
||||||
|
id="g3901-3">
|
||||||
|
<g
|
||||||
|
id="text2990-9"
|
||||||
|
style="font-size:417.63537598px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:url(#linearGradient6266);fill-opacity:1;stroke:#ffffff;stroke-width:7.05161333;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:Haskell;-inkscape-font-specification:Haskell"
|
||||||
|
clip-path="url(#clipPath3924-0-1-2)"
|
||||||
|
transform="matrix(0.58399349,0,0,0.58399349,-155.23786,-363.83566)">
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient6264);fill-opacity:1;stroke:#ffffff;stroke-width:7.05161333;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4234-0"
|
||||||
|
d="m 1238.7188,-737.50216 138.6679,-208.81769 -138.6679,-208.81765 104.4088,0 138.668,208.81765 -138.668,208.81769 -104.4088,0 m 0,0 0,0 m 138.6679,0 139.4837,-208.81769 -139.4837,-208.81765 104.4089,0 278.1517,417.63534 -104.4089,0 -86.4635,-130.51105 -87.2793,130.51105 -104.4089,0 m 0,0 0,0 m 336.066,-121.53842 -46.4946,-70.14969 162.3232,0 0,70.14969 -115.8286,0 m 0,0 0,0 m -69.334,-104.40884 -46.4945,-70.14968 231.6571,0 0,70.14968 -185.1626,0 m 0,0 0,0" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="text2990-2-1"
|
||||||
|
style="font-size:417.63537598px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#453a62;fill-opacity:1;stroke:#ffffff;stroke-width:7.05161333;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:Haskell;-inkscape-font-specification:Haskell"
|
||||||
|
clip-path="url(#clipPath3854-8-0-29-50)"
|
||||||
|
transform="matrix(0.58399349,0,0,0.58399349,379.97409,-402.37923)">
|
||||||
|
<path
|
||||||
|
style="stroke:#ffffff;stroke-width:7.05161333;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4237-4"
|
||||||
|
d="m 319.71875,-671.81973 138.668,-208.81768 -138.668,-208.81769 104.40884,0 138.668,208.81769 -138.668,208.81768 -104.40884,0 m 0,0 0,0 m 138.668,0 139.48369,-208.81768 -139.48369,-208.81769 104.40884,0 278.15169,417.63537 -104.40885,0 -86.46357,-130.51105 -87.27927,130.51105 -104.40884,0 m 0,0 0,0 m 336.06596,-121.53841 -46.49456,-70.1497 162.32312,0 0,70.1497 -115.82856,0 m 0,0 0,0 m -69.334,-104.40885 -46.49456,-70.14969 231.65712,0 0,70.14969 -185.16256,0 m 0,0 0,0" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="text2990-27-8"
|
||||||
|
style="font-size:417.63537598px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#8f4e8b;fill-opacity:1;stroke:#ffffff;stroke-width:7.05161333;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:Haskell;-inkscape-font-specification:Haskell"
|
||||||
|
clip-path="url(#clipPath3953-0-9-1-5-0)"
|
||||||
|
transform="matrix(0.58399349,0,0,0.58399349,43.373964,-49.619889)">
|
||||||
|
<path
|
||||||
|
style="stroke:#ffffff;stroke-width:7.05161333;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4240-0"
|
||||||
|
d="m 896.43237,-1273.5352 138.66803,-208.8177 -138.66803,-208.8177 104.40883,0 138.668,208.8177 -138.668,208.8177 -104.40883,0 m 0,0 0,0 m 138.66803,0 139.4837,-208.8177 -139.4837,-208.8177 104.4088,0 278.1517,417.6354 -104.4088,0 -86.4636,-130.5111 -87.2793,130.5111 -104.4088,0 m 0,0 0,0 m 336.0659,-121.5385 -46.4945,-70.1497 162.3231,0 0,70.1497 -115.8286,0 m 0,0 0,0 m -69.334,-104.4088 -46.4945,-70.1497 231.6571,0 0,70.1497 -185.1626,0 m 0,0 0,0" />
|
||||||
|
</g>
|
||||||
|
<rect
|
||||||
|
style="opacity:0.45373134;color:#000000;fill:#323232;fill-opacity:0.09717868;fill-rule:nonzero;stroke:none;stroke-width:7;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
|
||||||
|
id="rect7376"
|
||||||
|
width="6"
|
||||||
|
height="11"
|
||||||
|
x="1089"
|
||||||
|
y="662.18896"
|
||||||
|
transform="matrix(2.6944595,0,0,2.8176617,-1292.8574,-2626.8442)"
|
||||||
|
rx="14.002699"
|
||||||
|
ry="11" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:137.18835449px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;line-height:125%;letter-spacing:6.6699996px;word-spacing:0px;opacity:0.25400002;fill:#323232;fill-opacity:1;stroke:#ffffff;stroke-width:0;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;filter:url(#filter7536);font-family:Ubuntu;-inkscape-font-specification:Ubuntu Medium"
|
||||||
|
x="228.27711"
|
||||||
|
y="126.65849"
|
||||||
|
id="text6272-8"
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
transform="matrix(2.6944595,0,0,2.8176617,183.60222,-549.34544)"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan6274-2"
|
||||||
|
x="228.27711"
|
||||||
|
y="126.65849">Haskell</tspan></text>
|
||||||
|
<g
|
||||||
|
style="opacity:0.15522389;fill:#000000;stroke:none;filter:url(#filter4426-1-0)"
|
||||||
|
transform="matrix(1.5470073,0,0,1.5470073,-676.52644,1073.9393)"
|
||||||
|
id="g3901-3-6-6">
|
||||||
|
<g
|
||||||
|
id="text2990-9-7-1"
|
||||||
|
style="font-size:417.63537598px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Haskell;-inkscape-font-specification:Haskell"
|
||||||
|
clip-path="url(#clipPath3924-0-1-0-7-90)"
|
||||||
|
transform="matrix(0.58399349,0,0,0.58399349,-155.23786,-363.83566)">
|
||||||
|
<path
|
||||||
|
style="fill:#000000;stroke:none"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4234-0-4-9"
|
||||||
|
d="m 1238.7188,-737.50216 138.6679,-208.81769 -138.6679,-208.81765 104.4088,0 138.668,208.81765 -138.668,208.81769 -104.4088,0 m 0,0 0,0 m 138.6679,0 139.4837,-208.81769 -139.4837,-208.81765 104.4089,0 278.1517,417.63534 -104.4089,0 -86.4635,-130.51105 -87.2793,130.51105 -104.4089,0 m 0,0 0,0 m 336.066,-121.53842 -46.4946,-70.14969 162.3232,0 0,70.14969 -115.8286,0 m 0,0 0,0 m -69.334,-104.40884 -46.4945,-70.14968 231.6571,0 0,70.14968 -185.1626,0 m 0,0 0,0" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="text2990-2-1-2-7"
|
||||||
|
style="font-size:417.63537598px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Haskell;-inkscape-font-specification:Haskell"
|
||||||
|
clip-path="url(#clipPath3854-8-0-29-5-3-9)"
|
||||||
|
transform="matrix(0.58399349,0,0,0.58399349,379.97409,-402.37923)">
|
||||||
|
<path
|
||||||
|
style="fill:#000000;stroke:none"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4237-4-8-8"
|
||||||
|
d="m 319.71875,-671.81973 138.668,-208.81768 -138.668,-208.81769 104.40884,0 138.668,208.81769 -138.668,208.81768 -104.40884,0 m 0,0 0,0 m 138.668,0 139.48369,-208.81768 -139.48369,-208.81769 104.40884,0 278.15169,417.63537 -104.40885,0 -86.46357,-130.51105 -87.27927,130.51105 -104.40884,0 m 0,0 0,0 m 336.06596,-121.53841 -46.49456,-70.1497 162.32312,0 0,70.1497 -115.82856,0 m 0,0 0,0 m -69.334,-104.40885 -46.49456,-70.14969 231.65712,0 0,70.14969 -185.16256,0 m 0,0 0,0" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="text2990-27-8-7-3"
|
||||||
|
style="font-size:417.63537598px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Haskell;-inkscape-font-specification:Haskell"
|
||||||
|
clip-path="url(#clipPath3953-0-9-1-5-7-5-0-4)"
|
||||||
|
transform="matrix(0.58399349,0,0,0.58399349,43.373964,-49.619889)">
|
||||||
|
<path
|
||||||
|
style="fill:#000000;stroke:none"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4240-0-3-6"
|
||||||
|
d="m 896.43237,-1273.5352 138.66803,-208.8177 -138.66803,-208.8177 104.40883,0 138.668,208.8177 -138.668,208.8177 -104.40883,0 m 0,0 0,0 m 138.66803,0 139.4837,-208.8177 -139.4837,-208.8177 104.4088,0 278.1517,417.6354 -104.4088,0 -86.4636,-130.5111 -87.2793,130.5111 -104.4088,0 m 0,0 0,0 m 336.0659,-121.5385 -46.4945,-70.1497 162.3231,0 0,70.1497 -115.8286,0 m 0,0 0,0 m -69.334,-104.4088 -46.4945,-70.1497 231.6571,0 0,70.1497 -185.1626,0 m 0,0 0,0" />
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="text2990-9-4"
|
||||||
|
style="font-size:417.63537598px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:url(#linearGradient6266-6);fill-opacity:1;stroke:#ffffff;stroke-width:7.05161333;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:Haskell;-inkscape-font-specification:Haskell"
|
||||||
|
clip-path="url(#clipPath3924-0-1-2-76)"
|
||||||
|
transform="matrix(0.90344221,0,0,0.90344226,-913.87934,512.47886)">
|
||||||
|
<path
|
||||||
|
style="fill:url(#linearGradient7510);fill-opacity:1;stroke:#ffffff;stroke-width:7.05161333;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4234-0-1"
|
||||||
|
d="m 1238.7188,-737.50216 138.6679,-208.81769 -138.6679,-208.81765 104.4088,0 138.668,208.81765 -138.668,208.81769 -104.4088,0 m 0,0 0,0 m 138.6679,0 139.4837,-208.81769 -139.4837,-208.81765 104.4089,0 278.1517,417.63534 -104.4089,0 -86.4635,-130.51105 -87.2793,130.51105 -104.4089,0 m 0,0 0,0 m 336.066,-121.53842 -46.4946,-70.14969 162.3232,0 0,70.14969 -115.8286,0 m 0,0 0,0 m -69.334,-104.40884 -46.4945,-70.14968 231.6571,0 0,70.14968 -185.1626,0 m 0,0 0,0" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="text2990-2-1-6"
|
||||||
|
style="font-size:417.63537598px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#453a62;fill-opacity:1;stroke:#ffffff;stroke-width:7.05161333;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:Haskell;-inkscape-font-specification:Haskell"
|
||||||
|
clip-path="url(#clipPath3854-8-0-29-50-0)"
|
||||||
|
transform="matrix(0.90344221,0,0,0.90344226,-85.902439,452.85176)">
|
||||||
|
<path
|
||||||
|
style="stroke:#ffffff;stroke-width:7.05161333;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4237-4-9"
|
||||||
|
d="m 319.71875,-671.81973 138.668,-208.81768 -138.668,-208.81769 104.40884,0 138.668,208.81769 -138.668,208.81768 -104.40884,0 m 0,0 0,0 m 138.668,0 139.48369,-208.81768 -139.48369,-208.81769 104.40884,0 278.15169,417.63537 -104.40885,0 -86.46357,-130.51105 -87.27927,130.51105 -104.40884,0 m 0,0 0,0 m 336.06596,-121.53841 -46.49456,-70.1497 162.32312,0 0,70.1497 -115.82856,0 m 0,0 0,0 m -69.334,-104.40885 -46.49456,-70.14969 231.65712,0 0,70.14969 -185.16256,0 m 0,0 0,0" />
|
||||||
|
</g>
|
||||||
|
<g
|
||||||
|
id="text2990-27-8-4"
|
||||||
|
style="font-size:417.63537598px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#8f4e8b;fill-opacity:1;stroke:#ffffff;stroke-width:7.05161333;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:Haskell;-inkscape-font-specification:Haskell"
|
||||||
|
clip-path="url(#clipPath3953-0-9-1-5-0-5)"
|
||||||
|
transform="matrix(0.90344221,0,0,0.90344226,-606.62534,998.57303)">
|
||||||
|
<path
|
||||||
|
style="stroke:#ffffff;stroke-width:7.05161333;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path4240-0-8"
|
||||||
|
d="m 896.43237,-1273.5352 138.66803,-208.8177 -138.66803,-208.8177 104.40883,0 138.668,208.8177 -138.668,208.8177 -104.40883,0 m 0,0 0,0 m 138.66803,0 139.4837,-208.8177 -139.4837,-208.8177 104.4088,0 278.1517,417.6354 -104.4088,0 -86.4636,-130.5111 -87.2793,130.5111 -104.4088,0 m 0,0 0,0 m 336.0659,-121.5385 -46.4945,-70.1497 162.3231,0 0,70.1497 -115.8286,0 m 0,0 0,0 m -69.334,-104.4088 -46.4945,-70.1497 231.6571,0 0,70.1497 -185.1626,0 m 0,0 0,0" />
|
||||||
|
</g>
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text7524"
|
||||||
|
y="-188.20992"
|
||||||
|
x="816.74115"
|
||||||
|
style="font-size:378.00497437px;font-style:normal;font-variant:normal;font-weight:500;font-stretch:normal;line-height:125%;letter-spacing:18.37833023px;word-spacing:0px;fill:#323232;fill-opacity:1;stroke:#ffffff;stroke-width:4.68413258;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;font-family:Ubuntu;-inkscape-font-specification:Ubuntu Medium"
|
||||||
|
xml:space="preserve"
|
||||||
|
transform="scale(0.97789316,1.0226066)"><tspan
|
||||||
|
y="-188.20992"
|
||||||
|
x="816.74115"
|
||||||
|
id="tspan7526"
|
||||||
|
sodipodi:role="line"
|
||||||
|
style="stroke-width:4.68413258">Haskell</tspan></text>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 39 KiB |
1110
design/drawing.svg
Normal file
1110
design/drawing.svg
Normal file
File diff suppressed because it is too large
Load diff
After Width: | Height: | Size: 39 KiB |
2338
design/landing.svg
Normal file
2338
design/landing.svg
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 703 KiB |
1315
design/layout.svg
Normal file
1315
design/layout.svg
Normal file
File diff suppressed because it is too large
Load diff
After Width: | Height: | Size: 51 KiB |
27
hl.cabal
Normal file
27
hl.cabal
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
name: hl
|
||||||
|
version: 0.0.0
|
||||||
|
synopsis: Haskell web site.
|
||||||
|
description: Haskell web site.
|
||||||
|
license: BSD3
|
||||||
|
license-file: LICENSE
|
||||||
|
author: Chris Done
|
||||||
|
maintainer: chrisdone@gmail.com
|
||||||
|
copyright: 2014 Chris Done
|
||||||
|
category: Web
|
||||||
|
build-type: Simple
|
||||||
|
cabal-version: >=1.8
|
||||||
|
|
||||||
|
executable hl
|
||||||
|
hs-source-dirs: src/
|
||||||
|
ghc-options: -Wall -O2
|
||||||
|
main-is: Main.hs
|
||||||
|
build-depends: wai-logger == 2.1.1,
|
||||||
|
fast-logger == 2.1.5,
|
||||||
|
yesod-core == 1.2.6.4,
|
||||||
|
text == 0.11.3.1,
|
||||||
|
lifted-base == 0.2.1.1,
|
||||||
|
yesod == 1.2.4,
|
||||||
|
yesod-static == 1.2.2.1,
|
||||||
|
base >= 4 && < 5,
|
||||||
|
foreign-store == 0.0,
|
||||||
|
blaze == 0.0.2
|
75
hl.org
Normal file
75
hl.org
Normal file
|
@ -0,0 +1,75 @@
|
||||||
|
* What do all existing language sites have?
|
||||||
|
** A theme
|
||||||
|
** Logo
|
||||||
|
** Menu
|
||||||
|
*** Download
|
||||||
|
- Platform http://www.haskell.org/platform/
|
||||||
|
- GHC https://www.haskell.org/ghc/
|
||||||
|
- Hackage http://hackage.haskell.org/
|
||||||
|
*** Community
|
||||||
|
*** Documentation
|
||||||
|
*** News
|
||||||
|
** Visual things
|
||||||
|
*** Opening paragraph
|
||||||
|
**** Python
|
||||||
|
Python is a programming language that lets you work quickly and
|
||||||
|
integrate systems more effectively.
|
||||||
|
**** Ruby
|
||||||
|
Ruby is...
|
||||||
|
A dynamic, open source programming language with a focus on simplicity
|
||||||
|
and productivity. It has an elegant syntax that is natural to read and
|
||||||
|
easy to write.
|
||||||
|
**** Clojure
|
||||||
|
Clojure is a dynamic programming language that targets the Java
|
||||||
|
Virtual Machine (and the CLR, and JavaScript). It is designed to be a
|
||||||
|
general-purpose language, combining the approachability and
|
||||||
|
interactive development of a scripting language with an efficient and
|
||||||
|
robust infrastructure for multithreaded programming. Clojure is a
|
||||||
|
compiled language - it compiles directly to JVM bytecode, yet remains
|
||||||
|
completely dynamic. Every feature supported by Clojure is supported at
|
||||||
|
runtime. Clojure provides easy access to the Java frameworks, with
|
||||||
|
optional type hints and type inference, to ensure that calls to Java
|
||||||
|
can avoid reflection.
|
||||||
|
**** F#
|
||||||
|
F# is a mature, open source, cross-platform, functional-first
|
||||||
|
programming language which empowers users and organizations to tackle
|
||||||
|
complex computing problems with simple, maintainable and robust code.
|
||||||
|
|
||||||
|
F# runs on Linux, Mac OS X, Android, iOS, Windows as well as HTML5 and
|
||||||
|
GPUs. F# is free to use and has an OSI-approved open source license.
|
||||||
|
|
||||||
|
F# is used in a wide range of application areas and is supported by
|
||||||
|
both industry-leading companies providing professional tools, and by
|
||||||
|
an active open community.
|
||||||
|
|
||||||
|
The F# Software Foundation exists to promote, protect, and advance F#,
|
||||||
|
and to support and foster the growth of a diverse international
|
||||||
|
community of F# users.
|
||||||
|
**** Haskell.org
|
||||||
|
Haskell is an advanced purely-functional programming language. An
|
||||||
|
open-source product of more than twenty years of cutting-edge
|
||||||
|
research, it allows rapid development of robust, concise, correct
|
||||||
|
software. With strong support for integration with other languages,
|
||||||
|
built-in concurrency and parallelism, debuggers, profilers, rich
|
||||||
|
libraries and an active community, Haskell makes it easier to produce
|
||||||
|
flexible, maintainable, high-quality software.
|
||||||
|
**** Scala
|
||||||
|
Have the best of both worlds. Construct elegant class hierarchies for
|
||||||
|
maximum code reuse and extensibility, implement their behavior using
|
||||||
|
higher-order functions. Or anything in-between.
|
||||||
|
*** Code sample
|
||||||
|
*** Thumbnails of videos
|
||||||
|
*** Pictures of community stuff
|
||||||
|
*** Screenshots
|
||||||
|
*** Selling points
|
||||||
|
- I like python.org's menu which shows Web Programming, GUI
|
||||||
|
Development, etc. and then next to each the library one would use
|
||||||
|
to accomplish that task.
|
||||||
|
- Linux, OS X, Windows.
|
||||||
|
*** News
|
||||||
|
*** Twitter
|
||||||
|
*** Supporters
|
||||||
|
** Other links
|
||||||
|
*** Application areas / success stories
|
||||||
|
*** Language options
|
||||||
|
** Footer with more links
|
2
src/.dir-locals.el
Normal file
2
src/.dir-locals.el
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
((haskell-mode . ((haskell-process-use-ghci . t)
|
||||||
|
(haskell-indent-spaces . 2))))
|
9
src/Blaze/Prelude.hs
Normal file
9
src/Blaze/Prelude.hs
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
-- | A prelude for when using blaze-html.
|
||||||
|
|
||||||
|
module Blaze.Prelude
|
||||||
|
(module Blaze
|
||||||
|
,module Prelude)
|
||||||
|
where
|
||||||
|
|
||||||
|
import Blaze
|
||||||
|
import Prelude hiding (head,div,max,span,id)
|
3
src/HL.hs
Normal file
3
src/HL.hs
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
-- | Haskell web site.
|
||||||
|
|
||||||
|
module HL where
|
10
src/HL/C/Home.hs
Normal file
10
src/HL/C/Home.hs
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
-- | Home page controller.
|
||||||
|
|
||||||
|
module HL.C.Home where
|
||||||
|
|
||||||
|
import HL.Foundation
|
||||||
|
import HL.V.Home
|
||||||
|
|
||||||
|
-- | Home controller.
|
||||||
|
getHomeR :: Handler Html
|
||||||
|
getHomeR = blaze homeV
|
11
src/HL/Dispatch.hs
Normal file
11
src/HL/Dispatch.hs
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{-# OPTIONS -fno-warn-orphans -fno-warn-name-shadowing #-}
|
||||||
|
{-# LANGUAGE TemplateHaskell #-}
|
||||||
|
|
||||||
|
-- | Make the dispatcher.
|
||||||
|
|
||||||
|
module HL.Dispatch where
|
||||||
|
|
||||||
|
import HL.Foundation
|
||||||
|
import HL.C.Home
|
||||||
|
|
||||||
|
mkYesodDispatch "App" resourcesApp
|
39
src/HL/Foundation.hs
Normal file
39
src/HL/Foundation.hs
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
{-# LANGUAGE TypeFamilies #-}
|
||||||
|
{-# LANGUAGE TemplateHaskell #-}
|
||||||
|
{-# OPTIONS -fno-warn-name-shadowing #-}
|
||||||
|
|
||||||
|
-- | Yesod foundation.
|
||||||
|
|
||||||
|
module HL.Foundation
|
||||||
|
(module HL.Static
|
||||||
|
,module Yesod.Blaze
|
||||||
|
,App(..)
|
||||||
|
,Route(..)
|
||||||
|
,Handler
|
||||||
|
,Widget
|
||||||
|
,resourcesApp)
|
||||||
|
where
|
||||||
|
|
||||||
|
import HL.Static
|
||||||
|
|
||||||
|
import Network.Wai.Logger
|
||||||
|
import System.Log.FastLogger
|
||||||
|
import Yesod
|
||||||
|
import Yesod.Blaze
|
||||||
|
import Yesod.Core.Types
|
||||||
|
import Yesod.Static
|
||||||
|
|
||||||
|
-- | Application state.
|
||||||
|
data App = App
|
||||||
|
{ appStatic :: Static
|
||||||
|
}
|
||||||
|
|
||||||
|
-- | Generate boilerplate.
|
||||||
|
mkYesodData "App" $(parseRoutesFile "config/routes")
|
||||||
|
|
||||||
|
-- | Don't log anything to stdout.
|
||||||
|
instance Yesod App where
|
||||||
|
makeLogger _ = do set <- newFileLoggerSet 1000 "/dev/null"
|
||||||
|
(date,_) <- clockDateCacher
|
||||||
|
return (Logger {loggerSet = set
|
||||||
|
,loggerDate = date})
|
17
src/HL/Server.hs
Normal file
17
src/HL/Server.hs
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{-# LANGUAGE TypeFamilies #-}
|
||||||
|
{-# LANGUAGE TemplateHaskell #-}
|
||||||
|
|
||||||
|
-- | Web server.
|
||||||
|
|
||||||
|
module HL.Server where
|
||||||
|
|
||||||
|
import HL.Foundation
|
||||||
|
import HL.Dispatch ()
|
||||||
|
|
||||||
|
import Yesod.Static
|
||||||
|
|
||||||
|
-- | Start the web server.
|
||||||
|
startServer :: IO ()
|
||||||
|
startServer =
|
||||||
|
do s <- static "static"
|
||||||
|
warp 1990 (App s)
|
7
src/HL/Static.hs
Normal file
7
src/HL/Static.hs
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
{-# LANGUAGE TemplateHaskell #-}
|
||||||
|
|
||||||
|
-- | Static files.
|
||||||
|
module HL.Static where
|
||||||
|
|
||||||
|
import Yesod.Static
|
||||||
|
staticFiles "static/"
|
23
src/HL/V/Home.hs
Normal file
23
src/HL/V/Home.hs
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
|
{-# LANGUAGE NoImplicitPrelude #-}
|
||||||
|
|
||||||
|
-- | Home page view.
|
||||||
|
|
||||||
|
module HL.V.Home where
|
||||||
|
|
||||||
|
import HL.Foundation
|
||||||
|
import HL.V.Template
|
||||||
|
import Blaze.Elements as E
|
||||||
|
import Blaze.Prelude
|
||||||
|
import Blaze.Bootstrap
|
||||||
|
|
||||||
|
-- | Home view.
|
||||||
|
homeV :: Blaze App
|
||||||
|
homeV =
|
||||||
|
template
|
||||||
|
(\url ->
|
||||||
|
container
|
||||||
|
(row
|
||||||
|
(span12
|
||||||
|
(do h1 "hi"
|
||||||
|
with a [class_ "btn btn-primary"] "test"))))
|
52
src/HL/V/Template.hs
Normal file
52
src/HL/V/Template.hs
Normal file
|
@ -0,0 +1,52 @@
|
||||||
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
|
{-# LANGUAGE NoImplicitPrelude #-}
|
||||||
|
|
||||||
|
-- | Templates.
|
||||||
|
|
||||||
|
module HL.V.Template where
|
||||||
|
|
||||||
|
import HL.Foundation
|
||||||
|
import Blaze.Elements as E
|
||||||
|
import Blaze.Attributes as A
|
||||||
|
import Blaze.Prelude
|
||||||
|
import Blaze.Bootstrap
|
||||||
|
|
||||||
|
-- | Render a template.
|
||||||
|
template :: Blaze App -- ^ Content.
|
||||||
|
-> Blaze App
|
||||||
|
template content url =
|
||||||
|
docTypeHtml
|
||||||
|
(do head
|
||||||
|
(do E.title "Haskell"
|
||||||
|
with meta [charset "utf-8"]
|
||||||
|
with meta [httpEquiv "X-UA-Compatible",A.content "IE edge"]
|
||||||
|
with meta [name "viewport",A.content "width=device-width, initial-scale=1"]
|
||||||
|
styles [css_bootstrap_min_css
|
||||||
|
,css_bootstrap_theme_min_css])
|
||||||
|
body
|
||||||
|
(do with div
|
||||||
|
[class_ "wrap"]
|
||||||
|
(do content url
|
||||||
|
with div
|
||||||
|
[class_ "footer"]
|
||||||
|
(container
|
||||||
|
(row
|
||||||
|
(span12
|
||||||
|
(with div
|
||||||
|
[class_ "muted credit"]
|
||||||
|
"Footer")))))
|
||||||
|
scripts [js_jquery_js
|
||||||
|
,js_jquery_cookie_js
|
||||||
|
,js_bootstrap_min_js]))
|
||||||
|
where
|
||||||
|
scripts =
|
||||||
|
mapM_ (\route ->
|
||||||
|
with script
|
||||||
|
[src (url (StaticR route))]
|
||||||
|
(return ()))
|
||||||
|
styles =
|
||||||
|
mapM_ (\route ->
|
||||||
|
with link
|
||||||
|
[rel "stylesheet"
|
||||||
|
,type_ "text/css"
|
||||||
|
,href (url (StaticR route))])
|
12
src/Main.hs
Normal file
12
src/Main.hs
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
-- | Main entry point to haskell-lang.
|
||||||
|
--
|
||||||
|
-- Haskell web site.
|
||||||
|
|
||||||
|
module Main where
|
||||||
|
|
||||||
|
import HL.Server
|
||||||
|
|
||||||
|
-- | Main entry point.
|
||||||
|
main :: IO ()
|
||||||
|
main =
|
||||||
|
startServer
|
18
src/Yesod/Blaze.hs
Normal file
18
src/Yesod/Blaze.hs
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
-- | Useful utilities for using blaze-html with Yesod.
|
||||||
|
|
||||||
|
module Yesod.Blaze
|
||||||
|
(module Yesod.Blaze
|
||||||
|
,module Yesod
|
||||||
|
,module Blaze)
|
||||||
|
where
|
||||||
|
|
||||||
|
import Yesod hiding (object)
|
||||||
|
import Blaze
|
||||||
|
|
||||||
|
type Blaze a = (Route a -> AttributeValue) -> Html
|
||||||
|
|
||||||
|
-- | Output some blaze, passes a URL renderer to the continuation.
|
||||||
|
blaze :: MonadHandler m => ((Route (HandlerSite m) -> AttributeValue) -> b) -> m b
|
||||||
|
blaze f =
|
||||||
|
do render <- getUrlRender
|
||||||
|
return (f (toValue . render))
|
7
static/css/bootstrap-theme.min.css
vendored
Normal file
7
static/css/bootstrap-theme.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
7
static/css/bootstrap.min.css
vendored
Normal file
7
static/css/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
6
static/js/bootstrap.min.js
vendored
Normal file
6
static/js/bootstrap.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
117
static/js/jquery.cookie.js
Normal file
117
static/js/jquery.cookie.js
Normal file
|
@ -0,0 +1,117 @@
|
||||||
|
/*!
|
||||||
|
* jQuery Cookie Plugin v1.4.0
|
||||||
|
* https://github.com/carhartl/jquery-cookie
|
||||||
|
*
|
||||||
|
* Copyright 2013 Klaus Hartl
|
||||||
|
* Released under the MIT license
|
||||||
|
*/
|
||||||
|
(function (factory) {
|
||||||
|
if (typeof define === 'function' && define.amd) {
|
||||||
|
// AMD
|
||||||
|
define(['jquery'], factory);
|
||||||
|
} else if (typeof exports === 'object') {
|
||||||
|
// CommonJS
|
||||||
|
factory(require('jquery'));
|
||||||
|
} else {
|
||||||
|
// Browser globals
|
||||||
|
factory(jQuery);
|
||||||
|
}
|
||||||
|
}(function ($) {
|
||||||
|
|
||||||
|
var pluses = /\+/g;
|
||||||
|
|
||||||
|
function encode(s) {
|
||||||
|
return config.raw ? s : encodeURIComponent(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
function decode(s) {
|
||||||
|
return config.raw ? s : decodeURIComponent(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
function stringifyCookieValue(value) {
|
||||||
|
return encode(config.json ? JSON.stringify(value) : String(value));
|
||||||
|
}
|
||||||
|
|
||||||
|
function parseCookieValue(s) {
|
||||||
|
if (s.indexOf('"') === 0) {
|
||||||
|
// This is a quoted cookie as according to RFC2068, unescape...
|
||||||
|
s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\');
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Replace server-side written pluses with spaces.
|
||||||
|
// If we can't decode the cookie, ignore it, it's unusable.
|
||||||
|
// If we can't parse the cookie, ignore it, it's unusable.
|
||||||
|
s = decodeURIComponent(s.replace(pluses, ' '));
|
||||||
|
return config.json ? JSON.parse(s) : s;
|
||||||
|
} catch(e) {}
|
||||||
|
}
|
||||||
|
|
||||||
|
function read(s, converter) {
|
||||||
|
var value = config.raw ? s : parseCookieValue(s);
|
||||||
|
return $.isFunction(converter) ? converter(value) : value;
|
||||||
|
}
|
||||||
|
|
||||||
|
var config = $.cookie = function (key, value, options) {
|
||||||
|
|
||||||
|
// Write
|
||||||
|
|
||||||
|
if (value !== undefined && !$.isFunction(value)) {
|
||||||
|
options = $.extend({}, config.defaults, options);
|
||||||
|
|
||||||
|
if (typeof options.expires === 'number') {
|
||||||
|
var days = options.expires, t = options.expires = new Date();
|
||||||
|
t.setTime(+t + days * 864e+5);
|
||||||
|
}
|
||||||
|
|
||||||
|
return (document.cookie = [
|
||||||
|
encode(key), '=', stringifyCookieValue(value),
|
||||||
|
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
|
||||||
|
options.path ? '; path=' + options.path : '',
|
||||||
|
options.domain ? '; domain=' + options.domain : '',
|
||||||
|
options.secure ? '; secure' : ''
|
||||||
|
].join(''));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Read
|
||||||
|
|
||||||
|
var result = key ? undefined : {};
|
||||||
|
|
||||||
|
// To prevent the for loop in the first place assign an empty array
|
||||||
|
// in case there are no cookies at all. Also prevents odd result when
|
||||||
|
// calling $.cookie().
|
||||||
|
var cookies = document.cookie ? document.cookie.split('; ') : [];
|
||||||
|
|
||||||
|
for (var i = 0, l = cookies.length; i < l; i++) {
|
||||||
|
var parts = cookies[i].split('=');
|
||||||
|
var name = decode(parts.shift());
|
||||||
|
var cookie = parts.join('=');
|
||||||
|
|
||||||
|
if (key && key === name) {
|
||||||
|
// If second argument (value) is a function it's a converter...
|
||||||
|
result = read(cookie, value);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Prevent storing a cookie that we couldn't decode.
|
||||||
|
if (!key && (cookie = read(cookie)) !== undefined) {
|
||||||
|
result[name] = cookie;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
|
||||||
|
config.defaults = {};
|
||||||
|
|
||||||
|
$.removeCookie = function (key, options) {
|
||||||
|
if ($.cookie(key) === undefined) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Must not alter options, thus extending a fresh object...
|
||||||
|
$.cookie(key, '', $.extend({}, options, { expires: -1 }));
|
||||||
|
return !$.cookie(key);
|
||||||
|
};
|
||||||
|
|
||||||
|
}));
|
4
static/js/jquery.js
vendored
Normal file
4
static/js/jquery.js
vendored
Normal file
File diff suppressed because one or more lines are too long
15
themes/purple/fonts/Haskell.dev.svg
Normal file
15
themes/purple/fonts/Haskell.dev.svg
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<metadata>
|
||||||
|
This is a custom SVG font generated by IcoMoon.
|
||||||
|
<iconset grid="16"></iconset>
|
||||||
|
</metadata>
|
||||||
|
<defs>
|
||||||
|
<font id="Haskell" horiz-adv-x="512" >
|
||||||
|
<font-face units-per-em="512" ascent="480" descent="-32" />
|
||||||
|
<missing-glyph horiz-adv-x="512" />
|
||||||
|
<glyph class="hidden" unicode="" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
|
||||||
|
<glyph unicode="" d="M 0-31.643 L 170.431,224.002 L 0,479.646 L 127.822,479.646 L 298.254,224.002 L 127.822-31.643 L 0-31.643 Z M 0-31.643 M 170.431-31.643 L 340.864,224.002 L 170.431,479.646 L 298.254,479.646 L 639.112-31.643 L 511.289-31.643 L 404.775,128.131 L 298.254-31.643 L 170.431-31.643 Z M 170.431-31.643 M 582.305,117.481 L 525.499,202.693 L 724.331,202.699 L 724.331,117.481 L 582.305,117.481 Z M 582.305,117.481 M 497.092,245.304 L 440.279,330.516 L 724.331,330.522 L 724.331,245.304 L 497.092,245.304 Z M 497.092,245.304 " horiz-adv-x="724.329" data-tags="Haskell-Logo" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="256" />
|
||||||
|
</font></defs></svg>
|
After Width: | Height: | Size: 1.1 KiB |
BIN
themes/purple/fonts/Haskell.eot
Normal file
BIN
themes/purple/fonts/Haskell.eot
Normal file
Binary file not shown.
15
themes/purple/fonts/Haskell.svg
Normal file
15
themes/purple/fonts/Haskell.svg
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<?xml version="1.0" standalone="no"?>
|
||||||
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg">
|
||||||
|
<metadata>
|
||||||
|
This is a custom SVG font generated by IcoMoon.
|
||||||
|
<iconset grid="16"></iconset>
|
||||||
|
</metadata>
|
||||||
|
<defs>
|
||||||
|
<font id="Haskell" horiz-adv-x="512" >
|
||||||
|
<font-face units-per-em="512" ascent="480" descent="-32" />
|
||||||
|
<missing-glyph horiz-adv-x="512" />
|
||||||
|
<glyph class="hidden" unicode="" d="M0,480L 512 -32L0 -32 z" horiz-adv-x="0" />
|
||||||
|
<glyph unicode="" d="M 0-31.643 L 170.431,224.002 L 0,479.646 L 127.822,479.646 L 298.254,224.002 L 127.822-31.643 L 0-31.643 Z M 0-31.643 M 170.431-31.643 L 340.864,224.002 L 170.431,479.646 L 298.254,479.646 L 639.112-31.643 L 511.289-31.643 L 404.775,128.131 L 298.254-31.643 L 170.431-31.643 Z M 170.431-31.643 M 582.305,117.481 L 525.499,202.693 L 724.331,202.699 L 724.331,117.481 L 582.305,117.481 Z M 582.305,117.481 M 497.092,245.304 L 440.279,330.516 L 724.331,330.522 L 724.331,245.304 L 497.092,245.304 Z M 497.092,245.304 " horiz-adv-x="724.329" />
|
||||||
|
<glyph unicode=" " horiz-adv-x="256" />
|
||||||
|
</font></defs></svg>
|
After Width: | Height: | Size: 1.1 KiB |
BIN
themes/purple/fonts/Haskell.ttf
Normal file
BIN
themes/purple/fonts/Haskell.ttf
Normal file
Binary file not shown.
BIN
themes/purple/fonts/Haskell.woff
Normal file
BIN
themes/purple/fonts/Haskell.woff
Normal file
Binary file not shown.
Loading…
Reference in a new issue