diff --git a/README.md b/README.md index 6c0ee82..771afff 100644 --- a/README.md +++ b/README.md @@ -19,9 +19,15 @@ $ zola serve Send changes to https://git.clan.lol/clan/clan-homepage - ## To update the website ``` $ nix run .#deploy ``` + + +## Create a new post + +``` +$ nix run .#new-post "September Changelog" +``` diff --git a/content/blog/hello-world.md b/content/blog/2023-05-01-hello-world.md similarity index 100% rename from content/blog/hello-world.md rename to content/blog/2023-05-01-hello-world.md diff --git a/flake-parts/new-post.nix b/flake-parts/new-post.nix new file mode 100644 index 0000000..7af88f8 --- /dev/null +++ b/flake-parts/new-post.nix @@ -0,0 +1,41 @@ +{ + perSystem = { + lib, + pkgs, + self', + ... + }: { + apps.new-post.program = builtins.toString (pkgs.writeShellScript "new-post.sh" '' + export PATH="${lib.makeBinPath [ + pkgs.coreutils pkgs.gitMinimal + ]}" + if [ -z "$1" ]; then + echo "Usage: new-post.sh " + exit 1 + fi + title=$(echo "$1" | tr '[:upper:]' '[:lower:]' | tr ' ' '-') + root=$(git rev-parse --show-toplevel) + fname="$root/content/blog/$(date +%Y-%m-%d)-$title.md" + if [ -f "$fname" ]; then + echo "File already exists: $fname" + exit 1 + fi + cat <<EOF > "$fname" + +++ + title = "$1" + date = "$(date --iso-8601=seconds)" + draft = true + template = "blog/page.html" + [taxonomies] + authors = [] # TODO + [extra] + lead = "Some lead" + +++ + + Some text + EOF + echo "Created $fname" + git add "$fname" + ''); + }; +} diff --git a/flake.nix b/flake.nix index cd23623..f3b8194 100644 --- a/flake.nix +++ b/flake.nix @@ -15,6 +15,7 @@ systems = [ "x86_64-linux" ]; imports = [ ./flake-parts/deploy.nix + ./flake-parts/new-post.nix ./flake-parts/devShells ]; perSystem = { pkgs, ... }: {