diff --git a/bb.sh b/bb.sh index eacf90b..147cd20 100755 --- a/bb.sh +++ b/bb.sh @@ -143,7 +143,7 @@ global_variables() { # Markdown location. Trying to autodetect by default. # The invocation must support the signature 'markdown_bin in.md > out.html' - markdown_bin="$(which Markdown.pl || which markdown)" + markdown_bin=$(which Markdown.pl || which markdown) } # Check for the validity of some variables @@ -182,8 +182,8 @@ test_markdown() { # Parse a Markdown file into HTML and return the generated file markdown() { - out="$(echo $1 | sed 's/md$/html/g')" - while [ -f "$out" ]; do out="$(echo $out | sed 's/\.html$/\.'$RANDOM'\.html/')"; done + out=$(echo $1 | sed 's/md$/html/g') + while [ -f "$out" ]; do out=$(echo $out | sed 's/\.html$/\.'$RANDOM'\.html/'); done $markdown_bin "$1" > "$out" echo "$out" } @@ -281,12 +281,12 @@ get_html_file_content() { # leave empty for default behavior (edit only text part and change name) edit() { # Original post timestamp - edit_timestamp="$(LC_ALL=C date -r "${1%%.*}.html" +"%a, %d %b %Y %H:%M:%S %z" )" - touch_timestamp="$(LC_ALL=C date -r "${1%%.*}.html" +'%Y%m%d%H%M')" - tags_before="$(tags_in_post "${1%%.*}.html")" + edit_timestamp=$(LC_ALL=C date -r "${1%%.*}.html" +"%a, %d %b %Y %H:%M:%S %z" ) + touch_timestamp=$(LC_ALL=C date -r "${1%%.*}.html" +'%Y%m%d%H%M') + tags_before=$(tags_in_post "${1%%.*}.html") if [ "$2" = "full" ]; then $EDITOR "$1" - filename="$1" + filename=$1 else if [[ "${1##*.}" == "md" ]]; then test_markdown @@ -296,17 +296,17 @@ edit() { fi # editing markdown file $EDITOR "$1" - TMPFILE="$(markdown "$1")" - filename="${1%%.*}.html" + TMPFILE=$(markdown "$1") + filename=${1%%.*}.html else # Create the content file - TMPFILE="$(basename $1).$RANDOM.html" + TMPFILE=$(basename $1).$RANDOM.html # Title echo "$(get_post_title $1)" > "$TMPFILE" # Post text with plaintext tags get_html_file_content 'text' 'text' <$1 | sed "/^

$template_tags_line_header/s|\\1|\\1|g" >> "$TMPFILE" $EDITOR "$TMPFILE" - filename="$1" + filename=$1 fi rm "$filename" if [ "$2" = "keep" ]; then @@ -320,8 +320,8 @@ edit() { touch -t "$touch_timestamp" "$filename" chmod 644 "$filename" echo "Posted $filename" - tags_after="$(tags_in_post $filename)" - relevant_tags="$(echo "$tags_before $tags_after" | tr ',' ' ' | tr ' ' '\n' | sort -u | tr '\n' ' ')" + tags_after=$(tags_in_post $filename) + relevant_tags=$(echo "$tags_before $tags_after" | tr ',' ' ' | tr ' ' '\n' | sort -u | tr '\n' ' ') if [ ! -z "$relevant_tags" ]; then relevant_posts="$(posts_with_tags $relevant_tags) $filename" rebuild_tags "$relevant_posts" "$relevant_tags" @@ -342,7 +342,7 @@ twitter_card() { echo "" image=$(sed -n 's/.*" } @@ -387,7 +387,7 @@ twitter() { # Return 0 (bash return value 'true') if the input file is an index, feed, etc # or 1 (bash return value 'false') if it is a blogpost is_boilerplate_file() { - name="`clean_filename $1`" + name=$(clean_filename $1) if [[ "$name" == "$index_file" ]] || [[ "$name" == "$archive_index" ]] || [[ "$name" == "$tags_index" ]] || [[ "$name" == "$footer_file" ]] || [[ "$name" == "$header_file" ]] || [[ "$name" == "$global_analytics_file" ]] || [[ "$name" = "$prefix_tags"* ]] ; then return 0 else # Check for exclded for excl in ${html_exclude[*]}; do @@ -402,7 +402,7 @@ is_boilerplate_file() { # $1 the file name # returns the clean file name clean_filename() { - name="$1" + name=$1 [[ "${name:0:2}" == "./" ]] && name=${name:2} # Delete leading './' echo $name } @@ -419,11 +419,11 @@ clean_filename() { # $4 title for the html header # $5 original blog timestamp create_html_page() { - content="$1" - filename="$2" - index="$3" - title="$4" - timestamp="$5" + content=$1 + filename=$2 + index=$3 + title=$4 + timestamp=$5 # Create the actual blog post # html, head @@ -443,8 +443,8 @@ create_html_page() { echo '' >> "$filename" # title, header, headerholder echo '

' >> "$filename" - file_url="`clean_filename $filename`" - file_url="$(sed 's/.rebuilt//g' <<< $file_url)" # Get the correct URL when rebuilding + file_url=$(clean_filename $filename) + file_url=$(sed 's/.rebuilt//g' <<< $file_url) # Get the correct URL when rebuilding # one blog entry if [[ "$index" == "no" ]]; then echo '' >> "$filename" # marks the beginning of the whole post @@ -502,22 +502,22 @@ parse_file() { else filename=$title [[ "$convert_filename" ]] && - filename="$(echo $title | eval $convert_filename)" + filename=$(echo $title | eval $convert_filename) [[ "$filename" ]] || filename=$RANDOM # don't allow empty filenames - filename="$filename.html" + filename=$filename.html # Check for duplicate file names while [ -f "$filename" ]; do - suffix="$RANDOM" - filename="$(echo $filename | sed 's/\.html/'$suffix'\.html/g')" + suffix=$RANDOM + filename=$(echo $filename | sed 's/\.html/'$suffix'\.html/g') done fi - content="$filename.tmp" + content=$filename.tmp # Parse possible tags elif [[ "$line" = "

$template_tags_line_header"* ]]; then - tags="$(echo "$line" | cut -d ":" -f 2- | sed -e 's/<\/p>//g' -e 's/^ *//' -e 's/ *$//' -e 's/, /,/g')" + tags=$(echo "$line" | cut -d ":" -f 2- | sed -e 's/<\/p>//g' -e 's/^ *//' -e 's/ *$//' -e 's/, /,/g') IFS=, read -r -a array <<< "$tags" echo -n "

$template_tags_line_header " >> "$content" @@ -538,19 +538,19 @@ parse_file() { # also the drafts write_entry() { test_markdown && fmt="md" || fmt="html" - f="$2" - [[ "$2" == "-html" ]] && fmt="html" && f="$3" + f=$2 + [[ "$2" == "-html" ]] && fmt="html" && f=$3 if [[ "$f" != "" ]]; then - TMPFILE="$f" + TMPFILE=$f if [[ ! -f "$TMPFILE" ]]; then echo "The file doesn't exist" delete_includes exit fi # guess format from TMPFILE - extension="${TMPFILE##*.}" - [[ "$extension" == "md" || "$extension" == "html" ]] && fmt="$extension" + extension=${TMPFILE##*.} + [[ "$extension" == "md" || "$extension" == "html" ]] && fmt=$extension # but let user override it (`bb.sh post -html file.md`) [[ "$2" == "-html" ]] && fmt="html" # Test if Markdown is working before re-posting a .md file @@ -586,7 +586,7 @@ EOF [ "$filename" ] && rm "$filename" # Delete the generated html file, if any $EDITOR "$TMPFILE" if [[ "$fmt" == "md" ]]; then - html_from_md="$(markdown "$TMPFILE")" + html_from_md=$(markdown "$TMPFILE") parse_file "$html_from_md" rm "$html_from_md" else @@ -594,7 +594,7 @@ EOF fi chmod 644 "$filename" - [ "$preview_url" ] || preview_url="$global_url" + [ "$preview_url" ] || preview_url=$global_url echo "To preview the entry, open $preview_url/$filename in your browser" echo -n "[P]ost this entry, [E]dit again, [D]raft for later? (p/E/d) " @@ -603,8 +603,8 @@ EOF mkdir -p "drafts/" chmod 700 "drafts/" - title="$(head -n 1 $TMPFILE)" - [[ "$convert_filename" ]] && title="$(echo $title | eval $convert_filename)" + title=$(head -n 1 $TMPFILE) + [[ "$convert_filename" ]] && title=$(echo $title | eval $convert_filename) [[ "$title" ]] || title=$RANDOM draft="drafts/$title.$fmt" @@ -624,7 +624,7 @@ EOF fi chmod 644 "$filename" echo "Posted $filename" - relevant_tags="$(tags_in_post $filename)" + relevant_tags=$(tags_in_post $filename) if [ ! -z "$relevant_tags" ]; then relevant_posts="$(posts_with_tags $relevant_tags) $filename" rebuild_tags "$relevant_posts" "$relevant_tags" @@ -634,9 +634,9 @@ EOF # Create an index page with all the posts all_posts() { echo -n "Creating an index page with all the posts " - contentfile="$archive_index.$RANDOM" + contentfile=$archive_index.$RANDOM while [ -f "$contentfile" ]; do - contentfile="$archive_index.$RANDOM" + contentfile=$archive_index.$RANDOM done echo "

$template_archive_title

" >> "$contentfile" @@ -645,18 +645,18 @@ all_posts() { is_boilerplate_file "$i" && continue echo -n "." # Month headers - month="$(LC_ALL=$date_locale date -r "$i" +"$date_allposts_header")" + month=$(LC_ALL=$date_locale date -r "$i" +"$date_allposts_header") if [[ "$month" != "$prev_month" ]]; then [[ "$prev_month" ]] && echo "" >> "$contentfile" # Don't close ul before first header echo "

$month

" >> "$contentfile" echo "