#!/bin/sh # CONFIG: OUT=`pwd` TPLS=tpl/ HEADER=header END=end PAGE_SUFFIX='.html' TEMPLATES="$1" DEFAULT_MENU='-menu-none' [ "$TEMPLATES" = '' ] && TEMPLATES="*" if [ "$TEMPLATES" = '+' ] then TEMPLATES_PAGE="*" TEMPLATES_DYN="NO-TEMPLATES" elif [ "$TEMPLATES" = '~' ] then TEMPLATES_PAGE="NO-TEMPLATES" TEMPLATES_DYN="*" else TEMPLATES_PAGE="$TEMPLATES" TEMPLATES_DYN="$TEMPLATES" fi # CODE: cd $TPLS gen_faq() { find FAQ/ -type d -not -wholename \*CVS\* | sed 's#^FAQ/##;' | grep -v ^$ | sort > "$OF.FAQCATS" find FAQ/ -type f -not -wholename \*CVS\* -and -name \*.faq | sed 's#^FAQ/##; s#\.faq$##' | sort > "$OF.FAQINDEX" echo echo "
" sed 's#^$#
#' < "FAQ/$cat/$q.faq" echo "
" done done < "$OF.FAQCATS" echo } proc_page() { _tpl="$1" CLEANTPLNAME=$(echo "$_tpl" | sed 's/^[\-\+\~]//') OF="$OUT"/"$CLEANTPLNAME""$PAGE_SUFFIX" echo "Compiling $CLEANTPLNAME -> $OF" SECTIONS=`for _sec in $(grep --no-filename -- "^$_tpl[^a-zA-Z0-9]" '#section-index'* | sed 's/^[^ \t]*[ \t]*[ \t]//'); do O=''; for i in $(tr . ' ' <<<"$_sec"); do O="$O.$i"; echo $O; done; done` # echo "Sections: $SECTIONS" SECTIONS_REGEX=$(for _sec in $SECTIONS; do echo "s/(section==$_sec:\([^)]*\):)/\1/g;"; done; echo "s/(section==.*:.*:)//g") MENU=$(grep --no-filename -- "^$_tpl[^a-zA-Z0-9]" '#menu-index'* | sed 's/^[^ \t]*[ \t]*[ \t]//'); [ "$MENU" = '' ] && MENU="$DEFAULT_MENU" { cat -- -$HEADER cat -- "$MENU" cat -- -menu-mid cat -- $_tpl [ "$CLEANTPLNAME" = 'FAQ' ] && gen_faq cat -- -$END } | \ sed "$SECTIONS_REGEX" | \ # sed 's#href="+\(.*\)"#href="\1'"$PAGE_SUFFIX"'"#g' > $OF perl -pe's#href="\+(.+?)"#href="$1'"$PAGE_SUFFIX"'"#g' > $OF } for i in +$TEMPLATES_PAGE \~$TEMPLATES_DYN do [ -f "./$i" ] && proc_page "$i" done #ll