главная|main page

состояние|status

блог|blog

файлы|files

программы|software

summaryrefslogtreecommitdiff
path: root/bb.sh
diff options
context:
space:
mode:
authorAlexey Shpakovsky <alexey@shpakovsky.ru>2014-05-25 23:03:14 +0200
committerAlexey Shpakovsky <alexey@shpakovsky.ru>2014-05-25 23:03:14 +0200
commit5b71d1e524a852f38910d7ad607685b7ee8aa818 (patch)
tree7228c7454ebc739af34c40f37c023ad4a03d4d51 /bb.sh
parent39c4a80cec25c3a19f5b2bad0c3c5c1540da24b9 (diff)
add some options regarding filename generation:
* force to lowercase or not * what symbol to use instead of space * what symbols to allow in filenames (makes bashblog more utf-8 friendly)
Diffstat (limited to 'bb.sh')
-rwxr-xr-xbb.sh21
1 files changed, 16 insertions, 5 deletions
diff --git a/bb.sh b/bb.sh
index 921239d..54eac96 100755
--- a/bb.sh
+++ b/bb.sh
@@ -173,6 +173,14 @@ global_variables() {
# prefix for tags/categories files
# please make sure that no other html file starts with this prefix
prefix_tags="tag_"
+ # force characters to lowercase - works with latin characters only
+ filename_lowercase="yes"
+ # when making filenames, replace spaces with this symbol
+ filename_spaces="-"
+ # Regexp explaining forbidden characters in filenames.
+ # Usually it's something like [^allowed-characters]
+ # Example for Cyrillic characters: [^A-z0-9А-я-]
+ filename_forbidden_characters=""
# personalized header and footer (only if you know what you're doing)
# DO NOT name them .header.html, .footer.html or they will be overwritten
# leave blank to generate them, recommended
@@ -533,11 +541,14 @@ parse_file() {
if [ "$3" ]; then
filename=$3
else
- 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=$title
+ [[ "$filename_lowercase" == "yes" ]] && filename="$(echo $filename | tr [:upper:] [:lower:])"
+ filename="$(echo $filename | sed "s/\\s/$filename_spaces/g")"
+ if [ "$filename_forbidden_characters" ]; then
+ filename="$(echo $filename | LC_ALL=C.UTF-8 sed "s/$filename_forbidden_characters//g")"
+ else
+ filename="$(echo $filename | tr -dc '[:alnum:]-')" # html likes alphanumeric
+ fi
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"