adrian-altner.com/scripts/new-post-prompt.sh
Adrian Altner 89113060ea
Some checks are pending
🪞 Mirror to Codeberg / codeberg (push) Waiting to run
update
2026-04-03 13:17:23 +02:00

38 lines
957 B
Bash
Executable file

#!/usr/bin/env bash
# Standalone wrapper für Obsidian Script Runner — neuen Blog-Post anlegen
set -euo pipefail
VAULT='/Users/adrian/Obsidian/Web/adrian-altner-com'
TITLE=$(osascript \
-e 'Tell application "System Events" to display dialog "Post title:" default answer ""' \
-e 'text returned of result' 2>/dev/null) || exit 0
if [[ -z "$TITLE" ]]; then exit 0; fi
SLUG=$(echo "$TITLE" | tr '[:upper:]' '[:lower:]' | sed 's/[^a-z0-9 -]//g' | sed 's/ \+/-/g' | sed 's/^-\+//;s/-\+$//')
DATE_FOLDER=$(date +%Y/%m/%d)
PUBLISH_DATE=$(date +%Y-%m-%dT%H:%M:%S%z)
DIR="$VAULT/content/blog/posts/$DATE_FOLDER"
FILE="$DIR/$SLUG.md"
mkdir -p "$DIR"
if [[ -f "$FILE" ]]; then
osascript -e "display notification \"File already exists: $SLUG.md\" with title \"New Post\"" 2>/dev/null || true
exit 1
fi
cat > "$FILE" << EOF
---
title: "$TITLE"
description: ""
publishDate: $PUBLISH_DATE
tags:
-
draft: true
syndication:
---
EOF
echo "Created: $FILE"