Initial commit
This commit is contained in:
commit
b1b9a4243e
24
.gitignore
vendored
Normal file
24
.gitignore
vendored
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
dist
|
||||||
|
dist-*
|
||||||
|
cabal-dev
|
||||||
|
*.o
|
||||||
|
*.hi
|
||||||
|
*.chi
|
||||||
|
*.chs.h
|
||||||
|
*.dyn_o
|
||||||
|
*.dyn_hi
|
||||||
|
.hpc
|
||||||
|
.hsenv
|
||||||
|
.cabal-sandbox/
|
||||||
|
cabal.sandbox.config
|
||||||
|
*.prof
|
||||||
|
*.aux
|
||||||
|
*.hp
|
||||||
|
*.eventlog
|
||||||
|
.stack-work/
|
||||||
|
cabal.project.local
|
||||||
|
cabal.project.local~
|
||||||
|
.HTF/
|
||||||
|
.ghc.environment.*
|
||||||
|
_site/
|
||||||
|
_cache/
|
5
ChangeLog.md
Normal file
5
ChangeLog.md
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
# Revision history for rf
|
||||||
|
|
||||||
|
## 0.1.0.0 -- 2018-08-18
|
||||||
|
|
||||||
|
* First version, counting from when I got around to putting it on git.
|
30
LICENSE
Normal file
30
LICENSE
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
Copyright (c) 2018, Shaun Kerr
|
||||||
|
|
||||||
|
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 Shaun Kerr nor the names of other
|
||||||
|
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 THE COPYRIGHT
|
||||||
|
OWNER OR CONTRIBUTORS 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.
|
73
README.md
Normal file
73
README.md
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
# Regular Flolloping
|
||||||
|
|
||||||
|
tA's Blog
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
|
||||||
|
What you need to get the generator up and running.
|
||||||
|
|
||||||
|
### Prerequisites
|
||||||
|
|
||||||
|
Assumes you have Cabal and Nix.
|
||||||
|
Nix can be installed with:
|
||||||
|
```
|
||||||
|
curl https://nixos.org/nix/install | sh
|
||||||
|
```
|
||||||
|
And Cabal can be installed with your package manager of choice.
|
||||||
|
|
||||||
|
### Installing
|
||||||
|
|
||||||
|
Enter the build environment
|
||||||
|
|
||||||
|
```
|
||||||
|
nix-shell --attr env rf.nix
|
||||||
|
```
|
||||||
|
|
||||||
|
Compile the generator
|
||||||
|
|
||||||
|
```
|
||||||
|
cabal build
|
||||||
|
```
|
||||||
|
|
||||||
|
Generate the site
|
||||||
|
|
||||||
|
```
|
||||||
|
cabal run site clean
|
||||||
|
cabal run site build
|
||||||
|
```
|
||||||
|
|
||||||
|
And test it out
|
||||||
|
|
||||||
|
```
|
||||||
|
cabal run site watch
|
||||||
|
```
|
||||||
|
|
||||||
|
The site will now be avaliable at `localhost:8000`
|
||||||
|
|
||||||
|
## Deployment
|
||||||
|
|
||||||
|
Site will be completely static, so simply point your server to the `_site` directory
|
||||||
|
|
||||||
|
## Built With
|
||||||
|
|
||||||
|
* [Hakyll](https://jaspervdj.be) - The web framework used
|
||||||
|
* [Nix](https://nixos.org) - Package Management
|
||||||
|
* [Cabal](https://cabal.readthedocs.io) - Build System
|
||||||
|
|
||||||
|
## Versioning
|
||||||
|
|
||||||
|
Is very airy fairy and mainly based on what I think constitutes major / minor updates.
|
||||||
|
|
||||||
|
## Authors
|
||||||
|
|
||||||
|
* **Shaun Kerr** - [tA](https://github.com/techieAgnostic)
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
This project is licensed under the BSD3 License - see the [LICENSE.md](LICENSE.md) file for details
|
||||||
|
|
||||||
|
## Acknowledgments
|
||||||
|
|
||||||
|
* Hakyll for having an incredible default, of which 90% was kept
|
||||||
|
* Douglas Adam's for providing the name
|
||||||
|
* You, for reading this :)
|
34
about.md
Normal file
34
about.md
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
---
|
||||||
|
title: About
|
||||||
|
---
|
||||||
|
|
||||||
|
what is **Regular Flolloping**?
|
||||||
|
|
||||||
|
# jokingly
|
||||||
|
**Regular Flolloping** is:
|
||||||
|
|
||||||
|
* my blog
|
||||||
|
* filled with armchair psychology
|
||||||
|
* filled with bad opinions on tech
|
||||||
|
* something mattresses need to do
|
||||||
|
|
||||||
|
# technically
|
||||||
|
**Regular Flolloping** is:
|
||||||
|
|
||||||
|
* powered by [Hakyll](https://jaspervdj.be/hakyll/)
|
||||||
|
* running on [Digital Ocean](https://www.digitalocean.com/)
|
||||||
|
* sourced from [GitHub](https://github.com)
|
||||||
|
* probably badly written
|
||||||
|
|
||||||
|
# pretensiously
|
||||||
|
**Regular Flolloping** is **Layer 03** of the [Protocol Seven System](https://p7.co.nz)
|
||||||
|
|
||||||
|
**Layer 03**, also known as **Psyche**
|
||||||
|
|
||||||
|
the complexities of the human brain through the medium of text,
|
||||||
|
a carefully and oft not-so-carefully curated mask for the identity that is **tA**,
|
||||||
|
a slight variation of common knowledge,
|
||||||
|
yet of more importance than the content,
|
||||||
|
the characterisation of the reaction to said knowledge
|
||||||
|
|
||||||
|
> If you use Psyche as a processor, you're missing the point. ~ *layer03::Psyche*
|
9
archive.md
Normal file
9
archive.md
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
you access archives and find:
|
||||||
|
|
||||||
|
* An [SSL Endorsement](https://netrunnerdb.com/en/card/21038)
|
||||||
|
* A [Degree Mill](https://netrunnerdb.com/en/card/21055)
|
||||||
|
* A [15 Minutes](https://netrunnerdb.com/en/card/09004)
|
||||||
|
|
||||||
|
and make me very sad.
|
||||||
|
|
||||||
|
you also find all of this junk:
|
9
contact.md
Normal file
9
contact.md
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
---
|
||||||
|
title: Contact
|
||||||
|
---
|
||||||
|
|
||||||
|
* email me at [s@p7.co.nz](mailto:s@p7.co.nz)
|
||||||
|
* come chill at **#scoots** on [ServerChan](https://p7.co.nz/layer08/)
|
||||||
|
* if you see a **tA**, **techieAgnostic** or anything in the form of **t\*A\*** on irc its probably me
|
||||||
|
* i hang out on [Ocean Lounge](https://discord.gg/0oqynmoeGIUO49rW) a fair bit
|
||||||
|
* if you're an [urbit](https://urbit.org) i'm occasionally on as **~bannum-magtus**
|
138
css/default.css
Normal file
138
css/default.css
Normal file
@ -0,0 +1,138 @@
|
|||||||
|
html {
|
||||||
|
font-size: 62.5%;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-size: 1.6rem;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
header {
|
||||||
|
border-bottom: 0.2rem solid #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav {
|
||||||
|
text-align: right;
|
||||||
|
}
|
||||||
|
|
||||||
|
nav a {
|
||||||
|
font-size: 1.8rem;
|
||||||
|
font-weight: bold;
|
||||||
|
color: black;
|
||||||
|
text-decoration: none;
|
||||||
|
text-transform: uppercase;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer {
|
||||||
|
margin-top: 3rem;
|
||||||
|
padding: 1.2rem 0;
|
||||||
|
border-top: 0.2rem solid #000;
|
||||||
|
font-size: 1.2rem;
|
||||||
|
color: #555;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 2.4rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
article .header {
|
||||||
|
font-size: 1.4rem;
|
||||||
|
font-style: italic;
|
||||||
|
color: #555;
|
||||||
|
}
|
||||||
|
|
||||||
|
.logo a {
|
||||||
|
font-weight: bold;
|
||||||
|
font-size: 3.4rem;
|
||||||
|
color: #000;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (max-width: 319px) {
|
||||||
|
body {
|
||||||
|
width: 90%;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0 5%;
|
||||||
|
}
|
||||||
|
header {
|
||||||
|
margin: 4.2rem 0;
|
||||||
|
}
|
||||||
|
nav {
|
||||||
|
margin: 0 auto 3rem;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
footer {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.logo {
|
||||||
|
text-align: center;
|
||||||
|
margin: 1rem auto 3rem;
|
||||||
|
}
|
||||||
|
.logo a {
|
||||||
|
}
|
||||||
|
nav a {
|
||||||
|
display: block;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 320px) {
|
||||||
|
body {
|
||||||
|
width: 90%;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0 5%;
|
||||||
|
}
|
||||||
|
header {
|
||||||
|
margin: 4.2rem 0;
|
||||||
|
}
|
||||||
|
nav {
|
||||||
|
margin: 0 auto 3rem;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
footer {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.logo {
|
||||||
|
text-align: center;
|
||||||
|
margin: 1rem auto 3rem;
|
||||||
|
}
|
||||||
|
.logo a {
|
||||||
|
}
|
||||||
|
nav a {
|
||||||
|
display: inline;
|
||||||
|
margin: 0 0.6rem;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 640px) {
|
||||||
|
body {
|
||||||
|
width: 60rem;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
header {
|
||||||
|
margin: 0 0 3rem;
|
||||||
|
padding: 1.2rem 0;
|
||||||
|
}
|
||||||
|
nav {
|
||||||
|
margin: 0 auto 3rem;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
footer {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
.logo {
|
||||||
|
text-align: center;
|
||||||
|
margin: 1rem auto 3rem;
|
||||||
|
}
|
||||||
|
.logo a {
|
||||||
|
}
|
||||||
|
nav a {
|
||||||
|
display: inline;
|
||||||
|
margin: 0 0.6rem;
|
||||||
|
}
|
||||||
|
}
|
12
default.nix
Normal file
12
default.nix
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
{ mkDerivation, base, filepath, hakyll, stdenv }:
|
||||||
|
mkDerivation {
|
||||||
|
pname = "rf";
|
||||||
|
version = "0.1.0.0";
|
||||||
|
src = ./.;
|
||||||
|
isLibrary = false;
|
||||||
|
isExecutable = true;
|
||||||
|
executableHaskellDepends = [ base filepath hakyll ];
|
||||||
|
homepage = "regularflolloping.com";
|
||||||
|
description = "tA's blog";
|
||||||
|
license = stdenv.lib.licenses.bsd3;
|
||||||
|
}
|
10
humans.txt
Normal file
10
humans.txt
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
==
|
||||||
|
= humans.txt for regularflolloping.com
|
||||||
|
==
|
||||||
|
|
||||||
|
my name is shaun and i am a human
|
||||||
|
i usually go by either tA, techieAgnostic, or some name of the form t*A*
|
||||||
|
my email is s@p7.co.nz and it is functioning at least 30% of the time
|
||||||
|
i made this site with help from the people who made hakyll
|
||||||
|
|
||||||
|
i hope we can be friends
|
12
index.html
Normal file
12
index.html
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
title: Home
|
||||||
|
---
|
||||||
|
|
||||||
|
<p>please don't laugh at me i really like swatch internet time</p>
|
||||||
|
|
||||||
|
<p>here are some recent (for a very liberal definition of the word) posts:</p>
|
||||||
|
|
||||||
|
<h2>"Recent" Posts</h2>
|
||||||
|
$partial("templates/post-list.html")$
|
||||||
|
|
||||||
|
<p>…or for a chance to nab seven agenda points, check the <a href="/archive/index.html">archives</a>.</p>
|
42
posts/things-i-like.md
Normal file
42
posts/things-i-like.md
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
---
|
||||||
|
title: Things I Like
|
||||||
|
published: 2018-08-17
|
||||||
|
---
|
||||||
|
|
||||||
|
howdy one and all, to my inaugural post.
|
||||||
|
what follows is a list of potentially somewhat obscure feelings, that instill a subtle, non-zero amount of joy in me, without reaching levels for me to register them as good feelings.
|
||||||
|
|
||||||
|
without further ado:
|
||||||
|
|
||||||
|
## lowercase letters
|
||||||
|
|
||||||
|
much, i imagine, to the disgust of my english teacher mother, i really enjoy writing entirely in lowercase when i can. i believe it started on irc as a homestuck style (yet subtle enough to not give away being trash) quirk for some sense of identity that was seperate to having an actual personality.
|
||||||
|
|
||||||
|
## using the (y) emoji outside of facebook
|
||||||
|
|
||||||
|
on facebook, using `(y)` will produce a thumbs up emoji that is different to the current readily and easily avaliable one, so already it's pretty nice. theres something completely different about using it outside of facebook. i once met someone on discord who did the same thing. i have not talked to them since, nor can i remember their name, but i consider them a friend in the same way i consider anyone who uses dvorak a friend
|
||||||
|
|
||||||
|
## the jazzy bit in the middle of Fluff's Travels by Phish
|
||||||
|
|
||||||
|
shouldn't really need an explanation, [Fluffhead // Fluff's Travels](https://www.youtube.com/watch?v=Q54O03orQ4s) is such a good two piece and the jazz bit is the best part.
|
||||||
|
|
||||||
|
## the following dialog from "The Point (1971)"
|
||||||
|
|
||||||
|
>"if everything has a point, then i must have one too"
|
||||||
|
>"he's got a point there!"
|
||||||
|
|
||||||
|
## swatch internet time in my shell prompt
|
||||||
|
|
||||||
|
one day there'll be enough of us to make swatch beats a standard, until then i'll just await the day my pebble battery dies and i have to go back to a normal watch
|
||||||
|
|
||||||
|
## people you know not noticing you in public
|
||||||
|
|
||||||
|
all the upsides of being a social person and realising you know a lot more people than you think you do, but with none of the downsides of actually having to talk to people and take your headphones off
|
||||||
|
|
||||||
|
## half-assed projects
|
||||||
|
|
||||||
|
...of which this post is included. one day i'll finish something and maintain it, but until then theres something comfy about looking into `~/projects` and finding about seven variations on `ta_sdl_game_engine` dating back to highschool
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
hopefully you enjoyed these half assed ramblings. until next time, peace out, ima' bounce, and carry on my dudes.xvid.h264.mkv
|
27
rf.cabal
Normal file
27
rf.cabal
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
-- Initial rf.cabal generated by cabal init. For further documentation,
|
||||||
|
-- see http://haskell.org/cabal/users-guide/
|
||||||
|
|
||||||
|
name: rf
|
||||||
|
version: 0.1.0.0
|
||||||
|
synopsis: tA's blog
|
||||||
|
-- description:
|
||||||
|
homepage: regularflolloping.com
|
||||||
|
license: BSD3
|
||||||
|
license-file: LICENSE
|
||||||
|
author: Shaun Kerr
|
||||||
|
maintainer: s@p7.co.nz
|
||||||
|
-- copyright:
|
||||||
|
category: Web
|
||||||
|
build-type: Simple
|
||||||
|
extra-source-files: ChangeLog.md
|
||||||
|
cabal-version: >=1.10
|
||||||
|
|
||||||
|
executable site
|
||||||
|
main-is: site.hs
|
||||||
|
-- other-modules:
|
||||||
|
-- other-extensions:
|
||||||
|
build-depends: base >=4.10 && <4.11
|
||||||
|
, hakyll
|
||||||
|
, filepath
|
||||||
|
-- hs-source-dirs:
|
||||||
|
default-language: Haskell2010
|
4
rf.nix
Normal file
4
rf.nix
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
let
|
||||||
|
pkgs = import <nixpkgs> { };
|
||||||
|
in
|
||||||
|
pkgs.haskellPackages.callPackage ./default.nix { }
|
106
site.hs
Normal file
106
site.hs
Normal file
@ -0,0 +1,106 @@
|
|||||||
|
{-# LANGUAGE OverloadedStrings #-}
|
||||||
|
|
||||||
|
import Hakyll
|
||||||
|
import Data.Monoid (mappend)
|
||||||
|
import Data.List (sortBy,isSuffixOf)
|
||||||
|
import System.FilePath.Posix (takeBaseName,takeDirectory,(</>))
|
||||||
|
import GHC.IO.Encoding
|
||||||
|
|
||||||
|
main :: IO ()
|
||||||
|
main = do
|
||||||
|
setLocaleEncoding utf8
|
||||||
|
hakyll $ do
|
||||||
|
match "humans.txt" $ do
|
||||||
|
route idRoute
|
||||||
|
compile copyFileCompiler
|
||||||
|
|
||||||
|
match "images/*" $ do
|
||||||
|
route idRoute
|
||||||
|
compile copyFileCompiler
|
||||||
|
|
||||||
|
match "css/*" $ do
|
||||||
|
route idRoute
|
||||||
|
compile compressCssCompiler
|
||||||
|
|
||||||
|
match (fromList ["about.md", "contact.md"]) $ do
|
||||||
|
route $ cleanRoute
|
||||||
|
compile $ pandocCompiler
|
||||||
|
>>= loadAndApplyTemplate "templates/default.html" defaultContext
|
||||||
|
>>= relativizeUrls
|
||||||
|
>>= cleanIndexUrls
|
||||||
|
|
||||||
|
match "archive.md" $ do
|
||||||
|
route $ cleanRoute
|
||||||
|
compile $ pandocCompiler
|
||||||
|
>>= loadAndApplyTemplate "templates/archive.html" defaultContext
|
||||||
|
>>= relativizeUrls
|
||||||
|
>>= cleanIndexUrls
|
||||||
|
|
||||||
|
compile $ do
|
||||||
|
posts <- recentFirst =<< loadAll "posts/*"
|
||||||
|
let archiveCtx =
|
||||||
|
listField "posts" postCtx (return posts) `mappend`
|
||||||
|
constField "title" "Archives" `mappend`
|
||||||
|
defaultContext
|
||||||
|
pandocCompiler
|
||||||
|
>>= loadAndApplyTemplate "templates/archive.html" archiveCtx
|
||||||
|
>>= loadAndApplyTemplate "templates/default.html" archiveCtx
|
||||||
|
>>= relativizeUrls
|
||||||
|
>>= cleanIndexUrls
|
||||||
|
|
||||||
|
match "posts/*" $ do
|
||||||
|
route $ cleanRoute
|
||||||
|
compile $ pandocCompiler
|
||||||
|
>>= loadAndApplyTemplate "templates/post.html" postCtx
|
||||||
|
>>= loadAndApplyTemplate "templates/default.html" postCtx
|
||||||
|
>>= relativizeUrls
|
||||||
|
>>= cleanIndexUrls
|
||||||
|
>>= cleanIndexHtmls
|
||||||
|
|
||||||
|
create ["archive/index.html"] $ do
|
||||||
|
route idRoute
|
||||||
|
|
||||||
|
match "index.html" $ do
|
||||||
|
route idRoute
|
||||||
|
compile $ do
|
||||||
|
posts <- recentFirst =<< loadAll "posts/*"
|
||||||
|
let indexCtx =
|
||||||
|
listField "posts" postCtx (return posts) `mappend`
|
||||||
|
constField "title" "Home" `mappend`
|
||||||
|
defaultContext
|
||||||
|
|
||||||
|
getResourceBody
|
||||||
|
>>= applyAsTemplate indexCtx
|
||||||
|
>>= loadAndApplyTemplate "templates/default.html" indexCtx
|
||||||
|
>>= relativizeUrls
|
||||||
|
>>= cleanIndexUrls
|
||||||
|
>>= cleanIndexHtmls
|
||||||
|
|
||||||
|
match "templates/*" $ compile templateBodyCompiler
|
||||||
|
|
||||||
|
postCtx :: Context String
|
||||||
|
postCtx =
|
||||||
|
dateField "date" "%B %e, %Y" `mappend`
|
||||||
|
defaultContext
|
||||||
|
|
||||||
|
cleanRoute :: Routes
|
||||||
|
cleanRoute = customRoute createIndexRoute
|
||||||
|
where
|
||||||
|
createIndexRoute ident =
|
||||||
|
takeDirectory p </> takeBaseName p </> "index.html"
|
||||||
|
where p = toFilePath ident
|
||||||
|
|
||||||
|
cleanIndexUrls :: Item String -> Compiler (Item String)
|
||||||
|
cleanIndexUrls = return . fmap (withUrls cleanIndex)
|
||||||
|
|
||||||
|
cleanIndexHtmls :: Item String -> Compiler (Item String)
|
||||||
|
cleanIndexHtmls = return . fmap (replaceAll pattern replacement)
|
||||||
|
where
|
||||||
|
pattern = "/index.html"
|
||||||
|
replacement = const "/"
|
||||||
|
|
||||||
|
cleanIndex :: String -> String
|
||||||
|
cleanIndex url
|
||||||
|
| idx `isSuffixOf` url = take (length url - length idx) url
|
||||||
|
| otherwise = url
|
||||||
|
where idx = "index.html"
|
2
templates/archive.html
Normal file
2
templates/archive.html
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
$body$
|
||||||
|
$partial("templates/post-list.html")$
|
32
templates/default.html
Normal file
32
templates/default.html
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||||
|
<title>rf - $title$</title>
|
||||||
|
<link rel="stylesheet" href="/css/default.css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<header>
|
||||||
|
<div class="logo">
|
||||||
|
<a href="/">Regular Flolloping</a>
|
||||||
|
</div>
|
||||||
|
<nav>
|
||||||
|
<a href="/">Home</a>
|
||||||
|
<a href="/about/">About</a>
|
||||||
|
<a href="/contact/">Contact</a>
|
||||||
|
<a href="/archive/">Archive</a>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
|
|
||||||
|
<main role="main">
|
||||||
|
<h1>$title$</h1>
|
||||||
|
$body$
|
||||||
|
</main>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
powered by <a href="http://jaspervdj.be/hakyll">Hakyll</a>
|
||||||
|
</footer>
|
||||||
|
</body>
|
||||||
|
</html>
|
1
templates/post-item.html
Normal file
1
templates/post-item.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<li><a href="$url$">$title$</a> ~ $published$</li>
|
7
templates/post-list.html
Normal file
7
templates/post-list.html
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
<ul>
|
||||||
|
$for(posts)$
|
||||||
|
<li>
|
||||||
|
<a href="$url$">$title$</a> - $date$
|
||||||
|
</li>
|
||||||
|
$endfor$
|
||||||
|
</ul>
|
11
templates/post.html
Normal file
11
templates/post.html
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
<article>
|
||||||
|
<section class="header">
|
||||||
|
Posted on $date$
|
||||||
|
$if(author)$
|
||||||
|
by $author$
|
||||||
|
$endif$
|
||||||
|
</section>
|
||||||
|
<section>
|
||||||
|
$body$
|
||||||
|
</section>
|
||||||
|
</article>
|
Loading…
Reference in New Issue
Block a user