Compare commits
10 Commits
3c4d9460fc
...
main
Author | SHA1 | Date | |
---|---|---|---|
7a0665a32e
|
|||
cd187e3092
|
|||
d2adef9dc0
|
|||
b6ee55af9f
|
|||
81820ac7ea | |||
31a8f290b4 | |||
6737d9981c | |||
356e87d48f | |||
4232531d31 | |||
6aa91bd58c |
@ -1,5 +1,5 @@
|
|||||||
# Sample workflow for building and deploying a Hugo site to GitHub Pages
|
# Sample workflow for building and deploying a Hugo site to GitHub Pages
|
||||||
name: Deploy Hugo site to Pages
|
name: Build and deploy site to GitHub Pages
|
||||||
|
|
||||||
on:
|
on:
|
||||||
# Runs on pushes targeting the default branch
|
# Runs on pushes targeting the default branch
|
18
.gitignore
vendored
18
.gitignore
vendored
@ -1,13 +1,11 @@
|
|||||||
|
# Nix build output
|
||||||
|
/result
|
||||||
|
|
||||||
|
# development
|
||||||
|
/.direnv/
|
||||||
|
/themes
|
||||||
|
|
||||||
# Generated files by hugo
|
# Generated files by hugo
|
||||||
/public/
|
/public/
|
||||||
/resources/_gen/
|
/resources/
|
||||||
/assets/jsconfig.json
|
|
||||||
hugo_stats.json
|
|
||||||
|
|
||||||
# Temporary lock file while building
|
|
||||||
/.hugo_build.lock
|
/.hugo_build.lock
|
||||||
|
|
||||||
# Nix
|
|
||||||
.direnv/
|
|
||||||
/result
|
|
||||||
/themes/
|
|
@ -1,12 +1,16 @@
|
|||||||
# Kristian's Reproducible Website
|
# Kristian's Reproducible Website
|
||||||
|
|
||||||
|
[](https://github.com/Krsnik/blog/actions/workflows/blog.yaml)
|
||||||
|
|
||||||
This project is my personal website, using Hugo with asciidoc as a static site generator.
|
This project is my personal website, using Hugo with asciidoc as a static site generator.
|
||||||
The site is hosted on GitLab pages, using the supplied `.gitlab-ci.yaml` file, which just builds the `flake.nix` file.
|
The site is hosted on GitLab pages, using the supplied `.gitlab-ci.yaml` file, which just builds the `flake.nix` file.
|
||||||
|
|
||||||
## Development
|
## Development
|
||||||
|
|
||||||
To preview changes serve the website with `hugo serve` and set `draft: false` in your blogpost.
|
To preview changes serve the website with `hugo serve -D`. This will build all content that has `draf: true` set in the header.
|
||||||
|
This will also build the theme's content, if it includes one.
|
||||||
|
If you are only interested how the published site will look do `hugo serve`.
|
||||||
|
|
||||||
## Deployment
|
## Deployment
|
||||||
|
|
||||||
Just push the changes to GitLab and the automatic CI/CD will build and deploy the website.
|
This repo includes CI/CD configurations for GitHub and GitLab, so all you need to do is push any changes.
|
||||||
|
6
content/posts/example.md
Normal file
6
content/posts/example.md
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
title: "Example"
|
||||||
|
date: 2024-03-03T14:27:40+01:00
|
||||||
|
draft: true
|
||||||
|
---
|
||||||
|
|
@ -4,6 +4,9 @@ title = "me"
|
|||||||
[[entries.entries]]
|
[[entries.entries]]
|
||||||
title = "email: <a href='mailto:contact@krsnik.at'>contact@krsnik.at</a>"
|
title = "email: <a href='mailto:contact@krsnik.at'>contact@krsnik.at</a>"
|
||||||
|
|
||||||
|
[[entries.entries]]
|
||||||
|
title = "gpg: <a href='/gpg.txt'>2DC7 B611 6CFE B225 0B01 5EB4 F91B CD4C AEBD 1403</a>"
|
||||||
|
|
||||||
[[entries]]
|
[[entries]]
|
||||||
title = "rss"
|
title = "rss"
|
||||||
url = "index.xml"
|
url = "index.xml"
|
||||||
|
42
flake.lock
generated
42
flake.lock
generated
@ -1,35 +1,17 @@
|
|||||||
{
|
{
|
||||||
"nodes": {
|
"nodes": {
|
||||||
"flake-utils": {
|
|
||||||
"inputs": {
|
|
||||||
"systems": "systems"
|
|
||||||
},
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1689068808,
|
|
||||||
"narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=",
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "numtide",
|
|
||||||
"repo": "flake-utils",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1692207601,
|
"lastModified": 1709237383,
|
||||||
"narHash": "sha256-tfPGNKQcJT1cvT6ufqO/7ydYNL6mcJClvzbrzhKjB80=",
|
"narHash": "sha256-cy6ArO4k5qTx+l5o+0mL9f5fa86tYUX3ozE1S+Txlds=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "b30c68669df77d981ce4aefd6b9d378563f6fc4e",
|
"rev": "1536926ef5621b09bba54035ae2bb6d806d72ac8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"ref": "nixos-23.05",
|
"ref": "nixos-unstable",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
@ -52,25 +34,9 @@
|
|||||||
},
|
},
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"flake-utils": "flake-utils",
|
|
||||||
"nixpkgs": "nixpkgs",
|
"nixpkgs": "nixpkgs",
|
||||||
"nostyleplease": "nostyleplease"
|
"nostyleplease": "nostyleplease"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"systems": {
|
|
||||||
"locked": {
|
|
||||||
"lastModified": 1681028828,
|
|
||||||
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
|
||||||
"type": "github"
|
|
||||||
},
|
|
||||||
"original": {
|
|
||||||
"owner": "nix-systems",
|
|
||||||
"repo": "default",
|
|
||||||
"type": "github"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"root": "root",
|
"root": "root",
|
||||||
|
68
flake.nix
68
flake.nix
@ -2,8 +2,7 @@
|
|||||||
description = "Kristian's Website";
|
description = "Kristian's Website";
|
||||||
|
|
||||||
inputs = {
|
inputs = {
|
||||||
nixpkgs.url = "github:NixOS/nixpkgs/nixos-23.05";
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
||||||
flake-utils.url = "github:numtide/flake-utils";
|
|
||||||
nostyleplease = {
|
nostyleplease = {
|
||||||
url = "github:Masellum/hugo-theme-nostyleplease";
|
url = "github:Masellum/hugo-theme-nostyleplease";
|
||||||
flake = false;
|
flake = false;
|
||||||
@ -13,49 +12,68 @@
|
|||||||
outputs = {
|
outputs = {
|
||||||
self,
|
self,
|
||||||
nixpkgs,
|
nixpkgs,
|
||||||
flake-utils,
|
|
||||||
nostyleplease,
|
nostyleplease,
|
||||||
}:
|
}: let
|
||||||
flake-utils.lib.eachDefaultSystem (system: let
|
supportedSystems = ["x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin"];
|
||||||
pkgs = nixpkgs.legacyPackages.${system};
|
forAllSystems = nixpkgs.lib.genAttrs supportedSystems;
|
||||||
in {
|
pkgs = forAllSystems (system: nixpkgs.legacyPackages.${system});
|
||||||
formatter = pkgs.alejandra;
|
in {
|
||||||
|
formatter = forAllSystems (system: pkgs.${system}.alejandra);
|
||||||
|
|
||||||
packages.default = pkgs.stdenv.mkDerivation {
|
packages = forAllSystems (system: {
|
||||||
|
default = pkgs.${system}.stdenv.mkDerivation {
|
||||||
name = "blog";
|
name = "blog";
|
||||||
|
|
||||||
meta = with pkgs.lib; {
|
|
||||||
description = "Kristian's personal blog";
|
|
||||||
platforms = platforms.all;
|
|
||||||
};
|
|
||||||
|
|
||||||
# Exclude themes and public folder from build sources
|
# Exclude themes and public folder from build sources
|
||||||
src = builtins.filterSource (path: type:
|
src = builtins.filterSource (path: type: !(type == "directory" && (baseNameOf path == "themes" || baseNameOf path == "public"))) ./.;
|
||||||
!(type
|
|
||||||
== "directory"
|
nativeBuildInputs = with pkgs.${system}; [
|
||||||
&& (baseNameOf path == "themes" || baseNameOf path == "public")))
|
hugo
|
||||||
./.;
|
];
|
||||||
|
|
||||||
# Link theme to themes folder and build
|
# Link theme to themes folder and build
|
||||||
buildPhase = ''
|
buildPhase = ''
|
||||||
mkdir -p themes
|
mkdir -p themes
|
||||||
ln -s ${nostyleplease} themes/nostyleplease
|
ln -s ${nostyleplease} themes/nostyleplease
|
||||||
${pkgs.hugo}/bin/hugo --gc --minify
|
hugo --gc --minify
|
||||||
'';
|
'';
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
cp -r public/. $out
|
cp -r public/. $out
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
});
|
||||||
|
|
||||||
|
devShells = forAllSystems (system: {
|
||||||
|
default = pkgs.${system}.mkShellNoCC {
|
||||||
|
packages = with pkgs.${system}; [
|
||||||
|
hugo
|
||||||
|
];
|
||||||
|
|
||||||
devShells.default = pkgs.mkShellNoCC {
|
|
||||||
packages = with pkgs; [hugo];
|
|
||||||
# Link theme to themes folder
|
# Link theme to themes folder
|
||||||
shellHook = ''
|
shellHook = ''
|
||||||
mkdir -p themes
|
if [ ! -d ./themes ]; then
|
||||||
unlink themes/nostyleplease
|
mkdir ./themes
|
||||||
ln -s ${nostyleplease} themes/nostyleplease
|
fi
|
||||||
|
|
||||||
|
if [ ! -d ./themes/nostyleplease ]; then
|
||||||
|
ln -s ${nostyleplease} ./themes/nostyleplease
|
||||||
|
fi
|
||||||
|
|
||||||
|
alias new='hugo new content'
|
||||||
|
alias serve='hugo serve --buildDrafts'
|
||||||
|
|
||||||
|
greeter_text="
|
||||||
|
* Create new content with:
|
||||||
|
new posts/name-of-post.md
|
||||||
|
|
||||||
|
* Render drafts with:
|
||||||
|
serve
|
||||||
|
"
|
||||||
|
|
||||||
|
echo "$greeter_text"
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
31
static/gpg.txt
Normal file
31
static/gpg.txt
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
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
|
||||||
|
=7G1z
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
Reference in New Issue
Block a user