diff --git a/bb.sh b/bb.sh index 05cd414..c3b6383 100755 --- a/bb.sh +++ b/bb.sh @@ -178,6 +178,9 @@ global_variables() { # extra content to add just after we open the
tag # and before the actual blog content body_begin_file="" + # CSS files to include on every page, f.ex. css_include=('main.css' 'blog.css') + # leave empty to use generated + css_include=() # Localization and i18n # "Comments?" (used in twitter link after every post) @@ -489,14 +492,18 @@ create_html_page() { parse_file() { # Read for the title and check that the filename is ok title="" - while read line; do + while IFS='' read line; do if [[ "$title" == "" ]]; then # set title and # remove extraand
added by markdown title=$(echo "$line" | sed 's/<\/*p>//g') filename="$(echo $title | tr [:upper:] [:lower:])" filename="$(echo $filename | sed 's/\ /-/g')" + filename="$(echo $filename | sed 'y/йцукенгшщзхъфывапролджэячсмитьбю/jcukengsszh-fyvaproldzeahsmit-by/')" + filename="$(echo $filename | sed 'y/ЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ/jcukengsszh-fyvaproldzeahsmit-by/')" filename="$(echo $filename | tr -dc '[:alnum:]-')" # html likes alphanumeric + filename="$(echo $filename | sed 's/^-*//')" # unix utilities are unhappy if filename starts with - + [ "$filename" ] || filename=$RANDOM # if filename gets empty, put something in it filename="$filename.html" content="$filename.tmp" @@ -659,7 +666,7 @@ all_tags() { echo "$template_tags_line_header"* ]]; then # 'split' tags by commas echo "$line" | cut -c 10- | while IFS="," read -a tags; do @@ -732,7 +743,7 @@ rebuild_tags() { done done fi - done < "$tmpfile" + done < "$i" rm "$tmpfile" done # Now generate the tag files with headers, footers, etc @@ -817,8 +828,9 @@ create_includes() { echo '' > ".header.html" echo '
' >> ".header.html" echo '' >> ".header.html" - echo '' >> ".header.html" - echo '' >> ".header.html" + for css_file in ${css_include[*]}; do + echo '' >> ".header.html" + done if [[ "$global_feedburner" == "" ]]; then echo '' >> ".header.html" else @@ -843,6 +855,7 @@ delete_includes() { create_css() { # To avoid overwriting manual changes. However it is recommended that # this function is modified if the user changes the blog.css file + [ $css_include ] && return || css_include=('main.css' 'blog.css') if [[ ! -f "blog.css" ]]; then # blog.css directives will be loaded after main.css and thus will prevail echo '#title{font-size: x-large;} @@ -1017,11 +1030,15 @@ do_main() { tar cfz ".backup.tar.gz" *.html && chmod 600 ".backup.tar.gz" + # Keep first backup of this day containing yesterday's version of the blog + [ "$(date -r .yesterday.tar.gz +'%d')" != "$(date +'%d')" ] && + cp .backup.tar.gz .yesterday.tar.gz &> /dev/null + [[ "$1" == "reset" ]] && reset && exit - create_includes create_css + create_includes [[ "$1" == "post" ]] && write_entry "$@" [[ "$1" == "rebuild" ]] && rebuild_all_entries [[ "$1" == "delete" ]] && rm "$2" &> /dev/null @@ -1048,3 +1065,5 @@ do_main() { # Do not change anything here. If you want to modify the code, edit do_main() # do_main $* + +# vim: set shiftwidth=4 expandtab: