make new-post.sh script
This commit is contained in:
parent
76e6a6c905
commit
8bcd9699c3
79
new-post.sh
Executable file
79
new-post.sh
Executable file
@ -0,0 +1,79 @@
|
||||
#!/bin/sh
|
||||
|
||||
set -e
|
||||
|
||||
numargs=2
|
||||
function usage {
|
||||
echo "Usage: $0 [options] <post title> <post description>
|
||||
Options:
|
||||
-i Create image directory
|
||||
-d \"YYYY-MM-DD\" Custom date to use instead of today
|
||||
-V Verbose
|
||||
-x Dry run, don't make any changes
|
||||
"
|
||||
exit 1
|
||||
}
|
||||
|
||||
td=$(date "+%Y-%m-%d")
|
||||
|
||||
while [ "$(echo $1 | head -c1)" = '-' -o "$#" -gt $numargs ]; do
|
||||
arg="$1"
|
||||
shift
|
||||
|
||||
case "$arg" in
|
||||
"-i") IMG_DIR=1;;
|
||||
"-d") td=$1; shift;;
|
||||
"-V") VERBOSE=1;;
|
||||
"-x") DRY_RUN=1;;
|
||||
*)
|
||||
echo "Unknown option '$arg'"
|
||||
usage;;
|
||||
esac
|
||||
done
|
||||
|
||||
if [ "$#" != $numargs ]; then usage; fi
|
||||
|
||||
if [ ! -z $VERBOSE ]; then set -x; fi
|
||||
|
||||
title="$1"
|
||||
clean_title=$(echo "$title" |\
|
||||
tr '[:upper:]' '[:lower:]' |\
|
||||
sed 's/[^a-z0-9 ]//g' |\
|
||||
tr ' ' '-' \
|
||||
)
|
||||
|
||||
description="$2"
|
||||
if $(echo "$description" | grep -q '[^.$!]$'); then
|
||||
echo 'Description needs to be a complete sentence, with ending punctuation.'
|
||||
exit 1
|
||||
fi
|
||||
|
||||
postFileName=_posts/$td-$clean_title.md
|
||||
echo "Creating $postFileName"
|
||||
postContent=$(cat <<EOF
|
||||
---
|
||||
title: >-
|
||||
$title
|
||||
description: >-
|
||||
$description
|
||||
---
|
||||
|
||||
Write stuff here, title will automatically be added as an h1
|
||||
|
||||
## Secondary header
|
||||
|
||||
Title is already h1 so all sub-titles should be h2 or below.
|
||||
EOF
|
||||
)
|
||||
|
||||
if [ -z $DRY_RUN ]; then
|
||||
echo "$postContent" > "$postFileName"
|
||||
fi
|
||||
|
||||
if [ ! -z $IMG_DIR ]; then
|
||||
imgDirName="img/$clean_title"
|
||||
echo "Creating directory $imgDirName"
|
||||
if [ -z $DRY_RUN ]; then
|
||||
mkdir -p "$imgDirName"
|
||||
fi
|
||||
fi
|
Loading…
Reference in New Issue
Block a user