@@ -1,11 +1,11 @@ | |||||
{ mkDerivation, base, filepath, hakyll, stdenv }: | |||||
{ mkDerivation, base, filepath, hakyll, hakyll-favicon, stdenv }: | |||||
mkDerivation { | mkDerivation { | ||||
pname = "rf"; | pname = "rf"; | ||||
version = "0.1.1.1"; | version = "0.1.1.1"; | ||||
src = ./.; | src = ./.; | ||||
isLibrary = false; | isLibrary = false; | ||||
isExecutable = true; | isExecutable = true; | ||||
executableHaskellDepends = [ base filepath hakyll ]; | |||||
executableHaskellDepends = [ base filepath hakyll hakyll-favicon ]; | |||||
homepage = "regularflolloping.com"; | homepage = "regularflolloping.com"; | ||||
description = "tA's blog"; | description = "tA's blog"; | ||||
license = stdenv.lib.licenses.bsd3; | license = stdenv.lib.licenses.bsd3; | ||||
@@ -0,0 +1,87 @@ | |||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?> | |||||
<!-- Created with Inkscape (http://www.inkscape.org/) --> | |||||
<svg | |||||
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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" | |||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" | |||||
width="100mm" | |||||
height="100mm" | |||||
viewBox="0 0 100 100" | |||||
version="1.1" | |||||
id="svg8" | |||||
inkscape:version="0.92.1 r15371" | |||||
sodipodi:docname="favicon.svg"> | |||||
<defs | |||||
id="defs2" /> | |||||
<sodipodi:namedview | |||||
id="base" | |||||
pagecolor="#ffffff" | |||||
bordercolor="#666666" | |||||
borderopacity="1.0" | |||||
inkscape:pageopacity="0.0" | |||||
inkscape:pageshadow="2" | |||||
inkscape:zoom="1.4" | |||||
inkscape:cx="253.61209" | |||||
inkscape:cy="209.82653" | |||||
inkscape:document-units="mm" | |||||
inkscape:current-layer="layer1" | |||||
showgrid="false" | |||||
inkscape:window-width="1920" | |||||
inkscape:window-height="1021" | |||||
inkscape:window-x="0" | |||||
inkscape:window-y="1080" | |||||
inkscape:window-maximized="1" /> | |||||
<metadata | |||||
id="metadata5"> | |||||
<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,-197)"> | |||||
<rect | |||||
id="rect3680" | |||||
width="100" | |||||
height="100" | |||||
x="0" | |||||
y="197" | |||||
style="fill:#333333;stroke-width:0.26458332" | |||||
ry="26.458338" /> | |||||
<text | |||||
xml:space="preserve" | |||||
style="font-style:normal;font-weight:normal;font-size:132.40678406px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#5599ff;fill-opacity:1;stroke:none;stroke-width:0.52821857" | |||||
x="8.2092199" | |||||
y="341.92728" | |||||
id="text3684" | |||||
transform="scale(1.2181424,0.82092205)"><tspan | |||||
sodipodi:role="line" | |||||
id="tspan3682" | |||||
x="8.2092199" | |||||
y="341.92728" | |||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:132.40678406px;font-family:Inconsolata;-inkscape-font-specification:Inconsolata;fill:#5599ff;stroke-width:0.52821857">@</tspan></text> | |||||
<flowRoot | |||||
xml:space="preserve" | |||||
id="flowRoot3686" | |||||
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none"><flowRegion | |||||
id="flowRegion3688"><rect | |||||
id="rect3690" | |||||
width="47.142857" | |||||
height="42.857143" | |||||
x="347.14285" | |||||
y="626.09113" /></flowRegion><flowPara | |||||
id="flowPara3692" /></flowRoot> </g> | |||||
</svg> |
@@ -23,5 +23,6 @@ executable site | |||||
build-depends: base | build-depends: base | ||||
, hakyll | , hakyll | ||||
, filepath | , filepath | ||||
, hakyll-favicon | |||||
-- hs-source-dirs: | -- hs-source-dirs: | ||||
default-language: Haskell2010 | default-language: Haskell2010 |
@@ -1,15 +1,17 @@ | |||||
{-# LANGUAGE OverloadedStrings #-} | {-# LANGUAGE OverloadedStrings #-} | ||||
import Hakyll | |||||
import Data.Monoid ((<>)) | import Data.Monoid ((<>)) | ||||
import Data.List (sortBy,isSuffixOf) | import Data.List (sortBy,isSuffixOf) | ||||
import System.FilePath.Posix (takeBaseName,takeDirectory,(</>)) | |||||
import GHC.IO.Encoding | import GHC.IO.Encoding | ||||
import Hakyll | |||||
import Hakyll.Favicon (faviconsRules, faviconsField) | |||||
import System.FilePath.Posix (takeBaseName,takeDirectory,(</>)) | |||||
main :: IO () | main :: IO () | ||||
main = do | main = do | ||||
setLocaleEncoding utf8 | setLocaleEncoding utf8 | ||||
hakyll $ do | hakyll $ do | ||||
faviconsRules "icons/favicon.svg" | |||||
match "humans.txt" $ do | match "humans.txt" $ do | ||||
route idRoute | route idRoute | ||||
compile copyFileCompiler | compile copyFileCompiler | ||||
@@ -57,8 +59,7 @@ main = do | |||||
compile $ do | compile $ do | ||||
posts <- recentFirst =<< loadAll "posts/*" | posts <- recentFirst =<< loadAll "posts/*" | ||||
let indexCtx = | let indexCtx = | ||||
listField "posts" postCtx (return posts) <> | |||||
defaultContext | |||||
listField "posts" postCtx (return posts) <> ctx | |||||
getResourceBody | getResourceBody | ||||
>>= applyAsTemplate indexCtx | >>= applyAsTemplate indexCtx | ||||
>>= loadAndApplyTemplate "templates/default.html" indexCtx | >>= loadAndApplyTemplate "templates/default.html" indexCtx | ||||
@@ -69,7 +70,8 @@ main = do | |||||
match "templates/*" $ compile templateBodyCompiler | match "templates/*" $ compile templateBodyCompiler | ||||
ctx :: Context String | ctx :: Context String | ||||
ctx = defaultContext | |||||
ctx = defaultContext <> | |||||
faviconsField | |||||
postCtx :: Context String | postCtx :: Context String | ||||
postCtx = | postCtx = | ||||
@@ -6,6 +6,7 @@ | |||||
<meta name="viewport" content="width=device-width, initial-scale=1"> | <meta name="viewport" content="width=device-width, initial-scale=1"> | ||||
<title>rf - $title$</title> | <title>rf - $title$</title> | ||||
<link rel="stylesheet" href="/css/default.css" /> | <link rel="stylesheet" href="/css/default.css" /> | ||||
$favicons$ | |||||
</head> | </head> | ||||
<body> | <body> | ||||
<header> | <header> | ||||