set up hakyll
This commit is contained in:
commit
faec92ae37
4
.dir-locals.el
Normal file
4
.dir-locals.el
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
;;; Directory Local Variables
|
||||||
|
;;; For more information see (info "(emacs) Directory Variables")
|
||||||
|
|
||||||
|
((haskell-mode . ((tab-width . 4))))
|
||||||
15
.gitignore
vendored
Normal file
15
.gitignore
vendored
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
**/.direnv
|
||||||
|
**/result
|
||||||
|
**/result-*
|
||||||
|
|
||||||
|
.stack-work
|
||||||
|
|
||||||
|
_cache
|
||||||
|
_site
|
||||||
|
|
||||||
|
**/#*#
|
||||||
|
**/.#*
|
||||||
|
|
||||||
|
.pre-commit-config.yaml
|
||||||
|
|
||||||
|
uniworx-de.cabal
|
||||||
1
content/index.html
Normal file
1
content/index.html
Normal file
@ -0,0 +1 @@
|
|||||||
|
<span class="red">Hello World</span>
|
||||||
170
flake.lock
Normal file
170
flake.lock
Normal file
@ -0,0 +1,170 @@
|
|||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"flake-compat": {
|
||||||
|
"flake": false,
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1673956053,
|
||||||
|
"narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=",
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "edolstra",
|
||||||
|
"repo": "flake-compat",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-parts": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs-lib": "nixpkgs-lib"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1683560683,
|
||||||
|
"narHash": "sha256-XAygPMN5Xnk/W2c1aW0jyEa6lfMDZWlQgiNtmHXytPc=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"rev": "006c75898cf814ef9497252b022e91c946ba8e17",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "flake-parts",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"flake-utils": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1667395993,
|
||||||
|
"narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=",
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "numtide",
|
||||||
|
"repo": "flake-utils",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"gitignore": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": [
|
||||||
|
"pre-commit-hooks-nix",
|
||||||
|
"nixpkgs"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1660459072,
|
||||||
|
"narHash": "sha256-8DFJjXG8zqoONA1vXtgeKXy68KdJL5UaXR8NtVMUbx8=",
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"rev": "a20de23b925fd8264fd7fad6454652e142fd7f73",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "hercules-ci",
|
||||||
|
"repo": "gitignore.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1683786124,
|
||||||
|
"narHash": "sha256-0NdMJ09GrR8NulIQSThytukQrTz2oDcsczMUy2u/qKg=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "0bda75b5203a0a8bdad82a787039e8c8bc0a8746",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-lib": {
|
||||||
|
"locked": {
|
||||||
|
"dir": "lib",
|
||||||
|
"lastModified": 1682879489,
|
||||||
|
"narHash": "sha256-sASwo8gBt7JDnOOstnps90K1wxmVfyhsTPPNTGBPjjg=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "da45bf6ec7bbcc5d1e14d3795c025199f28e0de0",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"dir": "lib",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs-stable": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1678872516,
|
||||||
|
"narHash": "sha256-/E1YwtMtFAu2KUQKV/1+KFuReYPANM2Rzehk84VxVoc=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "9b8e5abb18324c7fe9f07cb100c3cd4a29cda8b8",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-22.11",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"nixpkgs_2": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681303793,
|
||||||
|
"narHash": "sha256-JEdQHsYuCfRL2PICHlOiH/2ue3DwoxUX7DJ6zZxZXFk=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "fe2ecaf706a5907b5e54d979fbde4924d84b65fc",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixos-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"pre-commit-hooks-nix": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-compat": "flake-compat",
|
||||||
|
"flake-utils": "flake-utils",
|
||||||
|
"gitignore": "gitignore",
|
||||||
|
"nixpkgs": "nixpkgs_2",
|
||||||
|
"nixpkgs-stable": "nixpkgs-stable"
|
||||||
|
},
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1682596858,
|
||||||
|
"narHash": "sha256-Hf9XVpqaGqe/4oDGr30W8HlsWvJXtMsEPHDqHZA6dDg=",
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "pre-commit-hooks.nix",
|
||||||
|
"rev": "fb58866e20af98779017134319b5663b8215d912",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "cachix",
|
||||||
|
"repo": "pre-commit-hooks.nix",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"flake-parts": "flake-parts",
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"pre-commit-hooks-nix": "pre-commit-hooks-nix"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
||||||
90
flake.nix
Normal file
90
flake.nix
Normal file
@ -0,0 +1,90 @@
|
|||||||
|
{
|
||||||
|
inputs = {
|
||||||
|
nixpkgs = {
|
||||||
|
type = "github";
|
||||||
|
owner = "NixOS";
|
||||||
|
repo = "nixpkgs";
|
||||||
|
};
|
||||||
|
|
||||||
|
flake-parts = {
|
||||||
|
type = "github";
|
||||||
|
owner = "hercules-ci";
|
||||||
|
repo = "flake-parts";
|
||||||
|
};
|
||||||
|
|
||||||
|
pre-commit-hooks-nix = {
|
||||||
|
type = "github";
|
||||||
|
owner = "cachix";
|
||||||
|
repo = "pre-commit-hooks.nix";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = inputs @ {
|
||||||
|
self,
|
||||||
|
nixpkgs,
|
||||||
|
flake-parts,
|
||||||
|
pre-commit-hooks-nix,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
flake-parts.lib.mkFlake
|
||||||
|
{inherit inputs;}
|
||||||
|
({...}: {
|
||||||
|
imports = [
|
||||||
|
pre-commit-hooks-nix.flakeModule
|
||||||
|
];
|
||||||
|
|
||||||
|
config = {
|
||||||
|
systems = ["x86_64-linux"];
|
||||||
|
|
||||||
|
perSystem = {
|
||||||
|
system,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
devShells.default = pkgs.mkShell {
|
||||||
|
packages = with pkgs; [
|
||||||
|
(pkgs.symlinkJoin {
|
||||||
|
inherit (stack) name;
|
||||||
|
paths = [stack];
|
||||||
|
nativeBuildInputs = [makeWrapper];
|
||||||
|
|
||||||
|
postBuild = ''
|
||||||
|
wrapProgram $out/bin/stack \
|
||||||
|
--add-flags "\
|
||||||
|
--nix \
|
||||||
|
--no-nix-pure \
|
||||||
|
--nix-shell-file=${pkgs.writeText "shell.nix" ''
|
||||||
|
{ ghc }:
|
||||||
|
|
||||||
|
with (import <nixpkgs> {});
|
||||||
|
|
||||||
|
haskell.lib.buildStackProject {
|
||||||
|
inherit ghc;
|
||||||
|
name = "uniworx-de";
|
||||||
|
buildInputs = [ zlib ];
|
||||||
|
}
|
||||||
|
''} \
|
||||||
|
--nix-path=nixpkgs=${nixpkgs} \
|
||||||
|
"
|
||||||
|
'';
|
||||||
|
})
|
||||||
|
];
|
||||||
|
shellHook = ''
|
||||||
|
${config.pre-commit.installationScript}
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
pre-commit = {
|
||||||
|
settings.hooks = {
|
||||||
|
alejandra.enable = true;
|
||||||
|
fourmolu.enable = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
packages = {
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
});
|
||||||
|
}
|
||||||
1
fourmolu.yaml
Normal file
1
fourmolu.yaml
Normal file
@ -0,0 +1 @@
|
|||||||
|
indentation: 2
|
||||||
28
package.yaml
Normal file
28
package.yaml
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
name: uniworx-de
|
||||||
|
version: 1.0.0
|
||||||
|
|
||||||
|
default-extensions:
|
||||||
|
- OverloadedStrings
|
||||||
|
- NoImplicitPrelude
|
||||||
|
- ViewPatterns
|
||||||
|
|
||||||
|
executables:
|
||||||
|
site:
|
||||||
|
main: Main
|
||||||
|
source-dirs: src
|
||||||
|
|
||||||
|
ghc-options:
|
||||||
|
- -threaded
|
||||||
|
- -Werror
|
||||||
|
- -Wall
|
||||||
|
- -Wmissing-home-modules
|
||||||
|
- -Wredundant-constraints
|
||||||
|
- -Widentities
|
||||||
|
- -Wincomplete-uni-patterns
|
||||||
|
- -fwarn-tabs
|
||||||
|
- -j
|
||||||
|
|
||||||
|
dependencies:
|
||||||
|
- base
|
||||||
|
- hakyll
|
||||||
|
- filepath
|
||||||
28
src/Main.hs
Normal file
28
src/Main.hs
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
module Main (main) where
|
||||||
|
|
||||||
|
import Prelude
|
||||||
|
|
||||||
|
import Hakyll
|
||||||
|
|
||||||
|
import qualified Data.List as List
|
||||||
|
import Data.Maybe
|
||||||
|
import System.FilePath
|
||||||
|
|
||||||
|
config :: Configuration
|
||||||
|
config = defaultConfiguration
|
||||||
|
|
||||||
|
stripPathPrefix :: FilePath -> Routes
|
||||||
|
stripPathPrefix (splitDirectories -> prefix) =
|
||||||
|
customRoute $
|
||||||
|
joinPath . (\x -> fromMaybe x $ List.stripPrefix prefix x) . splitDirectories . toFilePath
|
||||||
|
|
||||||
|
main :: IO ()
|
||||||
|
main = hakyllWith config $ do
|
||||||
|
match "content/index.html" $ do
|
||||||
|
route $ stripPathPrefix "content"
|
||||||
|
|
||||||
|
compile $ do
|
||||||
|
getResourceBody
|
||||||
|
>>= loadAndApplyTemplate "templates/site-layout.html" defaultContext
|
||||||
|
|
||||||
|
match "templates/*" $ compile templateBodyCompiler
|
||||||
3
stack.yaml
Normal file
3
stack.yaml
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
resolver: lts-20.20
|
||||||
|
packages:
|
||||||
|
- .
|
||||||
12
stack.yaml.lock
Normal file
12
stack.yaml.lock
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
# This file was autogenerated by Stack.
|
||||||
|
# You should not edit this file by hand.
|
||||||
|
# For more information, please see the documentation at:
|
||||||
|
# https://docs.haskellstack.org/en/stable/lock_files
|
||||||
|
|
||||||
|
packages: []
|
||||||
|
snapshots:
|
||||||
|
- completed:
|
||||||
|
sha256: 126fa33ceb11f5e85ceb4e86d434756bd9a8439e2e5776d306a15fbc63b01e89
|
||||||
|
size: 650041
|
||||||
|
url: https://raw.githubusercontent.com/commercialhaskell/stackage-snapshots/master/lts/20/20.yaml
|
||||||
|
original: lts-20.20
|
||||||
12
templates/site-layout.html
Normal file
12
templates/site-layout.html
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
<!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">
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
$body$
|
||||||
|
</body>
|
||||||
|
</html>
|
||||||
Loading…
Reference in New Issue
Block a user