#!/usr/bin/wapptclsh
package require wapp
proc common-header {} {
wapp-trim {
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link href="%url([wapp-param SCRIPT_NAME]/style.css)" rel="stylesheet">
<body>
}
}
proc common-footer {} {
wapp-trim {
</body>
</html>
}
}
proc wapp-default {} {
set self [wapp-param SCRIPT_FILENAME {}]
cd [file dir $self]
set selftail [file tail $self]
regsub {/[^/]+$} [wapp-param BASE_URL] {} base
common-header
wapp-trim {
<h1>Available Demos:</h1>
<ol>
}
foreach file [lsort [glob -nocomplain *]] {
if {[file isdir $file]} continue
if {![file readable $file]} continue
if {$file==$selftail} {
wapp-trim {
<li><a href="%html($base/$file)/self">(This script)</a></li>
}
} else {
wapp-trim {
<li><a href="%html($base/$file)">%html($file)</a></li>
}
}
}
wapp-trim {
</ol>
}
common-footer
}
# The /self page that shows the text of this script.
#
proc wapp-page-self {} {
wapp-cache-control max-age=3600
common-header
set base [wapp-param BASE_URL]
set fd [open [wapp-param SCRIPT_FILENAME] rb]
set script [read $fd]
close $fd
wapp-trim {
<h1>Wapp Script That Generates <a href="%html($base)">%html($base)</a></h1>
<pre>%html($script)</pre>
}
common-footer
}
proc wapp-page-style.css {} {
wapp-mimetype text/css
wapp-cache-control max-age=3600
wapp-trim {
pre {
border: 1px solid black;
padding: 1ex;
}
}
}
wapp-start $argv