49 lines
990 B
Bash
Executable file
49 lines
990 B
Bash
Executable file
#!/bin/zsh
|
|
|
|
classes=( $(cat _site/**/*.html | perl -p -e 's/class="?([a-zA-Z0-9-_]*)/\nCLASS: $1\n/g'|grep CLASS|sort -u|cut -d\ -f 2,2) )
|
|
|
|
chr() {
|
|
[ "$1" -lt 26 ] || return 1
|
|
printf "\\$(printf '%03o' $(( 97 + $1 )))"
|
|
}
|
|
|
|
ord() {
|
|
LC_CTYPE=C printf '%d' "'$1"
|
|
}
|
|
|
|
shortName() {
|
|
if [ "$1" -gt 25 ]; then
|
|
print -- $(shortName $(( ( $1 / 26 ) - 1 )))$(shortName $(( $1 % 26 )))
|
|
else
|
|
chr $1
|
|
fi
|
|
}
|
|
|
|
i=0;
|
|
typeset -A assoc
|
|
for c in $classes; do
|
|
sn=$(shortName $i)
|
|
print "$c $sn"
|
|
assoc[$c]=$sn
|
|
((i++))
|
|
done
|
|
|
|
hmltreplace=''
|
|
cssreplace=''
|
|
for long in $classes; do
|
|
htmlreplace="${htmlreplace}s/\(class=\"\?\)${long}/\$\{1\}${assoc[${long}]}/g;"
|
|
cssreplace="${cssreplace}s/\(\\.\)${long}/\$\{1\}${assoc[${long}]}/g;"
|
|
done
|
|
|
|
print -- $htmlreplace
|
|
print -- $cssreplace
|
|
|
|
for fic in _site/**/*.html; do
|
|
print -- $fic
|
|
perl -pi -e $htmlreplace $fic;
|
|
done
|
|
for fic in _site/**/*.css; do
|
|
echo $fic
|
|
perl -pi -e $cssreplace $fic;
|
|
done
|