Add create-daily
task
This commit is contained in:
parent
41a55e8651
commit
09ca6183a4
44
run
44
run
|
@ -7,6 +7,50 @@ function clean {
|
||||||
rm -fr output_*/ source/build/
|
rm -fr output_*/ source/build/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Create a new daily email.
|
||||||
|
function create-daily {
|
||||||
|
local date="${1}"
|
||||||
|
local title="${2}"
|
||||||
|
|
||||||
|
if [ "${date}" == "next" ]; then
|
||||||
|
next_date=$(ls -1 source/_daily_emails | tail -n 1 | tr -d '.md' | xargs -I {} date +%Y-%m-%d -d '{} +1 day')
|
||||||
|
else
|
||||||
|
next_date="${date}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
filepath="source/_daily_emails/${next_date}.md"
|
||||||
|
|
||||||
|
shift 1
|
||||||
|
|
||||||
|
# Generate the title and slug.
|
||||||
|
title="${*}"
|
||||||
|
slug=$(echo "${title}" | \
|
||||||
|
tr '[:upper:]' '[:lower:]' | \
|
||||||
|
sed 's/[^a-z0-9]/-/g' | \
|
||||||
|
sed 's/\-\-+/-/g' | \
|
||||||
|
sed 's/^\-//;s/\-$//')
|
||||||
|
|
||||||
|
# Create the file.
|
||||||
|
cp -f --no-clobber stub.md "${filepath}"
|
||||||
|
|
||||||
|
date=$(date -d "${next_date}" +%Y-%m-%d)
|
||||||
|
day=$(date -d "${next_date}" +%d)
|
||||||
|
month=$(date -d "${next_date}" +%m)
|
||||||
|
year=$(date -d "${next_date}" +%Y)
|
||||||
|
|
||||||
|
# Replace the placeholders.
|
||||||
|
sed -i "s/{{ date }}/${date}/" "${filepath}"
|
||||||
|
sed -i "s/{{ title }}/${title}/" "${filepath}"
|
||||||
|
sed -i "s#{{ permalink }}#archive/${year}/${month}/${day}/${slug}#" "${filepath}"
|
||||||
|
|
||||||
|
# Create a commit with the appropriate date in the message
|
||||||
|
git add "${filepath}"
|
||||||
|
git commit --quiet -m "Add daily email for ${date}
|
||||||
|
|
||||||
|
${title}"
|
||||||
|
|
||||||
|
echo "${filepath}"
|
||||||
|
}
|
||||||
function generate {
|
function generate {
|
||||||
local args=()
|
local args=()
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue