diff --git a/flake.nix b/flake.nix index 98636dc04..ff9e17aa6 100644 --- a/flake.nix +++ b/flake.nix @@ -22,6 +22,7 @@ tailwindcss (import ./drafts.nix { inherit pkgs; }) + (import ./new-draft.nix { inherit pkgs; }) ]; }; diff --git a/new-draft.nix b/new-draft.nix new file mode 100644 index 000000000..703f92ec4 --- /dev/null +++ b/new-draft.nix @@ -0,0 +1,26 @@ +{ pkgs }: + +pkgs.writeShellApplication { + name = "new-draft"; + + runtimeInputs = with pkgs; [ coreutils git ]; + + text = '' + title="$1" + + exclude_words="for|at|and" + + filtered_title=$(echo "$title" | sed -E "s/\b($exclude_words)\b//g") + + slug=$(echo "$filtered_title" | tr '[:upper:]' '[:lower:]' | sed -e 's/[^a-z0-9]/-/g' -e 's/-\+/-/g' -e 's/^-//g' -e 's/-$//g') + + file="source/_posts/$slug.md" + + echo -e "---\ntitle: $title\ndate: ~\ndraft: true\n---" > "$file" + + echo "File created: $file" + + git add "$file" + git commit -s -m "Add draft: $title" + ''; +}