#!/bin/bash # # gerador de página de weblog. # Copyright © 2003 by Danton Nunes. Licenciado por GPL # # os registros ficam em arquivos de texto puro no diretório corrente # I=1 # primeiro registro a ser montado. 1 é o mais recente N=5 # número de registros a apresentar P='' # prefixo (p/dados arquivados) echo -e 'Content-type: text/html\n' test "${QUERY_STRING_UNESCAPED}" && eval $(echo -n "${QUERY_STRING_UNESCAPED}" | tr -d '\\' | urldecode -q) test "$QUERY_STRING" && eval $(urldecode -q -t "$QUERY_STRING") if [ "$D" = "M" ] # menu na barra lateral? then echo "diretório
" echo "todos os artigos
" ls *.blog | sed -e 's§^\(....-..\).*§\1
§' | sort -r -u exit fi if [ "$D" = "L" ] # diretório geral? then if [ "$W" ] then echo -e "

Resultado da busca por $(echo $W|sed -e 's//\>/g')

\n
    " else echo -e '

    Índice dos artigos

    \n
      ' fi if [ "$W" ] then egrep -li "$W" *.blog else ls *.blog fi | sort -r | while read i do echo -n "
    1. ${i%.blog} " head -1 $i | tr -d '+\n' echo '
    2. ' done echo '
    ' exit fi # caso geral: imprime artigos. # determina se há próximos. set $P*.blog test $# -ge $[I+N] && Nxt=1 # pesca a lista de artigos. set $(ls $P*.blog | sort -rn | tail +$I | head -$N) # publica $N artigos for i do echo "

    ${i%.*}

    " | tr '_' ' ' awk ' BEGIN {RS="";} /^" $0 ""; next} /^=/ {sub("=",""); print "

    " $0 "

    "; next} /^-/ {sub("-",""); print "
    " $0 "
    "; next} {print "

    " $0 "

    "}' $i echo '
    Comentários' if [ -r ${i%.*}.xrmk ] then n=$(fgrep -c '' ${i%.*}.xrmk) echo "($[n])" fi echo '

    ' # echo '
    ' done # publica os links echo '
    ' test $I -gt 1 && { echo "mais recentes |"; } echo 'página de recepção' test "$Nxt" && { echo "| mais antigos"; } exit