diff options
Diffstat (limited to 'bb.sh')
-rwxr-xr-x | bb.sh | 28 |
1 files changed, 19 insertions, 9 deletions
@@ -17,7 +17,7 @@ global_config=".config" # by the 'global_config' file contents global_variables() { global_software_name="BashBlog" - global_software_version="2.5" + global_software_version="2.6" # Blog title global_title="My fancy blog" @@ -394,12 +394,14 @@ is_boilerplate_file() { # "no" to insert new blog posts # $4 title for the html header # $5 original blog timestamp +# $6 post author create_html_page() { content=$1 filename=$2 index=$3 title=$4 timestamp=$5 + author=$6 # Create the actual blog post # html, head @@ -436,7 +438,7 @@ create_html_page() { else echo "<div class=\"subtitle\">$(LC_ALL=$date_locale date +"$date_format" --date="$timestamp") — " fi - echo "$global_author</div>" + echo "$author</div>" echo '<!-- text begin -->' # This marks the text body, after the title, date... fi cat "$content" # Actual content @@ -509,7 +511,7 @@ parse_file() { done < "$1" # Create the actual html page - create_html_page "$content" "$filename" no "$title" "$2" + create_html_page "$content" "$filename" no "$title" "$2" "$global_author" rm "$content" } @@ -644,7 +646,7 @@ all_posts() { echo "<div id=\"all_posts\"><a href=\"./$index_file\">$template_archive_index_page</a></div>" } 3>&1 >"$contentfile" - create_html_page "$contentfile" "$archive_index.tmp" yes "$global_title — $template_archive_title" + create_html_page "$contentfile" "$archive_index.tmp" yes "$global_title — $template_archive_title" "$global_author" mv "$archive_index.tmp" "$archive_index" chmod 644 "$archive_index" rm "$contentfile" @@ -675,7 +677,7 @@ all_tags() { echo "<div id=\"all_posts\"><a href=\"./$index_file\">$template_archive_index_page</a></div>" } 3>&1 > "$contentfile" - create_html_page "$contentfile" "$tags_index.tmp" yes "$global_title — $template_tags_title" + create_html_page "$contentfile" "$tags_index.tmp" yes "$global_title — $template_tags_title" "$global_author" mv "$tags_index.tmp" "$tags_index" chmod 644 "$tags_index" rm "$contentfile" @@ -713,7 +715,7 @@ rebuild_index() { echo "" - create_html_page "$contentfile" "$newindexfile" yes "$global_title" + create_html_page "$contentfile" "$newindexfile" yes "$global_title" "$global_author" rm "$contentfile" mv "$newindexfile" "$index_file" chmod 644 "$index_file" @@ -788,7 +790,7 @@ rebuild_tags() { while IFS='' read -r i; do tagname=${i#./"$prefix_tags"} tagname=${tagname%.tmp.html} - create_html_page "$i" "$prefix_tags$tagname.html" yes "$global_title — $template_tag_title \"$tagname\"" + create_html_page "$i" "$prefix_tags$tagname.html" yes "$global_title — $template_tag_title \"$tagname\"" "$global_author" rm "$i" done < <(ls -t ./"$prefix_tags"*.tmp.html 2>/dev/null) echo @@ -801,6 +803,13 @@ get_post_title() { awk '/<h3><a class="ablack" href=".+">/, /<\/a><\/h3>/{if (!/<h3><a class="ablack" href=".+">/ && !/<\/a><\/h3>/) print}' "$1" } +# Return the post author +# +# $1 the html file +get_post_author() { + awk '/<div class="subtitle">.+/, /<!-- text begin -->/{if (!/<div class="subtitle">.+/ && !/<!-- text begin -->/) print}' "$1" | sed 's/<\/div>//g' +} + # Displays a list of the tags # # $2 if "-n", tags will be sorted by number of posts @@ -873,7 +882,7 @@ make_rss() { get_html_file_content 'text' 'entry' $cut_do <"$i" echo "]]></description><link>$global_url/${i#./}</link>" echo "<guid>$global_url/$i</guid>" - echo "<dc:creator>$global_author</dc:creator>" + echo "<dc:creator>$(get_post_author "$i")</dc:creator>" echo "<pubDate>$(LC_ALL=C date -r "$i" +"%a, %d %b %Y %H:%M:%S %z")</pubDate></item>" n=$(( n + 1 )) @@ -983,12 +992,13 @@ rebuild_all_entries() { echo -n "." # Get the title and entry, and rebuild the html structure from scratch (divs, title, description...) title=$(get_post_title "$i") + get_html_file_content 'text' 'text' <"$i" >> "$contentfile" # Original post timestamp timestamp=$(LC_ALL=C date -r "$i" +"%a, %d %b %Y %H:%M:%S %z" ) - create_html_page "$contentfile" "$i.rebuilt" no "$title" "$timestamp" + create_html_page "$contentfile" "$i.rebuilt" no "$title" "$timestamp" "$(get_post_author "$i")" # keep the original timestamp! timestamp=$(LC_ALL=C date -r "$i" +'%Y%m%d%H%M') mv "$i.rebuilt" "$i" |