126 lines
2.4 KiB
Bash
126 lines
2.4 KiB
Bash
#!/bin/bash
|
|
|
|
newpost() {
|
|
|
|
# 'builtin cd' into the local jekyll root
|
|
|
|
builtin cd "$JEKYLL_LOCAL_ROOT/_posts"
|
|
|
|
# Get the date for the new post's filename
|
|
|
|
FNAME_DATE=$(date "+%Y-%m-%d")
|
|
|
|
# If the user is using markdown formatting, let them choose what type of post they want. Sort of like Tumblr.
|
|
# TODO: Add support for Textile formatting too.
|
|
|
|
OPTIONS="Text Quote Image Audio Video"
|
|
|
|
select OPTION in $OPTIONS
|
|
do
|
|
if [[ $OPTION = "Text" ]]
|
|
then
|
|
POST_TYPE="Text"
|
|
break
|
|
fi
|
|
|
|
if [[ $OPTION = "Quote" ]]
|
|
then
|
|
POST_TYPE="Quote"
|
|
break
|
|
fi
|
|
|
|
if [[ $OPTION = "Image" ]]
|
|
then
|
|
POST_TYPE="Image"
|
|
break
|
|
fi
|
|
|
|
if [[ $OPTION = "Audio" ]]
|
|
then
|
|
POST_TYPE="Audio"
|
|
break
|
|
fi
|
|
|
|
if [[ $OPTION = "Video" ]]
|
|
then
|
|
POST_TYPE="Video"
|
|
break
|
|
fi
|
|
done
|
|
|
|
# Get the title for the new post
|
|
|
|
read -p "Enter title of the new post: " POST_TITLE
|
|
|
|
# Convert the spaces in the title to hyphens for use in the filename
|
|
|
|
FNAME_POST_TITLE=`echo $POST_TITLE | tr ' ' "-"`
|
|
|
|
# Now, put it all together for the full filename
|
|
|
|
FNAME="$FNAME_DATE-$FNAME_POST_TITLE.$JEKYLL_FORMATTING"
|
|
|
|
# And, finally, create the actual post file. But we're not done yet...
|
|
|
|
touch "$FNAME"
|
|
|
|
# Write a little stuff to the file for the YAML Front Matter
|
|
|
|
echo "---" >> $FNAME
|
|
|
|
# Now we have to get the date, again. But this time for in the header (YAML Front Matter) of
|
|
# the file
|
|
|
|
YAML_DATE=$(date "+%B %d %X")
|
|
|
|
# Echo the YAML Formatted date to the post file
|
|
|
|
echo "date: $YAML_DATE" >> $FNAME
|
|
|
|
# Echo the original post title to the YAML Front Matter header
|
|
|
|
echo "title: $POST_TITLE" >> $FNAME
|
|
|
|
# And, now, echo the "post" layout to the YAML Front Matter header
|
|
|
|
echo "layout: post" >> $FNAME
|
|
|
|
# Close the YAML Front Matter Header
|
|
|
|
echo "---" >> $FNAME
|
|
echo >> $FNAME
|
|
|
|
# Generate template text based on the post type
|
|
|
|
if [[ $POST_TYPE = "Text" ]]
|
|
then
|
|
true
|
|
fi
|
|
|
|
if [[ $POST_TYPE = "Quote" ]]
|
|
then
|
|
echo "> Quote" >> $FNAME
|
|
echo >> $FNAME
|
|
echo "— Author" >> $FNAME
|
|
fi
|
|
|
|
if [[ $POST_TYPE = "Image" ]]
|
|
then
|
|
echo "" >> $FNAME
|
|
fi
|
|
|
|
if [[ $POST_TYPE = "Audio" ]]
|
|
then
|
|
echo "<audio src=\"/path/to/audio/file\" controls=\"controls\"></audio>" >> $FNAME
|
|
fi
|
|
|
|
if [[ $POST_TYPE = "Video" ]]
|
|
then
|
|
echo "<video src=\"/path/to/video\" controls=\"controls\"></video>" >> $FNAME
|
|
fi
|
|
|
|
# Open the file in your favorite editor
|
|
|
|
$EDITOR $FNAME
|
|
}
|