codepad
[
create a new paste
]
login
|
about
Language:
C
C++
D
Haskell
Lua
OCaml
PHP
Perl
Plain Text
Python
Ruby
Scheme
Tcl
export PRAXIS=/home/phil/praxis awk ' # exercises in chronological order (page "chron") BEGIN { itemsperpage = 30; FS = "\n"; RS = "" split("Jan:Feb:Mar:Apr:May:Jun:Jul:Aug:Sep:Oct:Nov:Dec", monthname, ":") } $1 ~ /^number\t[1-9][0-9]*$/ { for (i=1; i<=NF; i++) if (split($i, f, /\t/) == 2) val[f[1]] = f[2] out[++nitems] = \ sprintf("<tr><td>%d</td><td>%02d %s %d</td>" \ "<td><a href=\"/%d/%02d/%02d/%s/\">%s</a>: %s</td>" \ "<td><a href=\"/%d/%02d/%02d/%s/\">exercise</a> " \ "<a href=\"/%d/%02d/%02d/%s/%d/\">solution</a> " \ "<a href=\"http://programmingpraxis.codepad.org/" \ "%s\">codepad</a></td></tr>", val["number"], val["pubday"], monthname[val["pubmon"]], val["pubyear"], val["pubyear"], val["pubmon"], val["pubday"], val["file"], val["title"], val["blurb"], val["pubyear"], val["pubmon"], val["pubday"], val["file"], val["pubyear"], val["pubmon"], val["pubday"], val["file"], val["soln"], val["codepad"]) } # END { for (i=1; i<=nitems; i++) { # if (i % itemsperpage == 1) # printheader(i, nitems) # print ""; print out[i] # if (i % itemsperpage == 0 || i == nitems) # printfooter(i, nitems) # if (i % itemsperpage == 0 && i != nitems) # printseparator(i, nitems) } } END { print "<table cellpadding=\"10\">" for (i=1; i<=nitems; i++) { print ""; print out[i] } print "</table>" } function ceiling(n) { if (int(n) == n) return n; else return int(n) + 1 } function printheader(i, nitems) { printf("%s", "<big><big>Page: ") for (page=1; page<=ceiling(nitems/itemsperpage); page++) { if (ceiling(i/itemsperpage) == page) printf(" %d", page) else printf(" <a href=\"/chron/%d\">%d</a>", page, page) } print "</big></big>"; print ""; print "<table>" } function printfooter(i, nitems) { print ""; print "</table>" } function printseparator(i, nitems) { print ""; print "<!--nextpage-->\n" } ' $PRAXIS/praxis.info > $PRAXIS/pages/chron
Private
[
?
]
Run code