-##################################################
-
-my %orig_header_templates = (
- en => <<'HTML',
-<!DOCTYPE html>
-<title>TITLE_GOES_HERE</title>
-<link rel="stylesheet" href="/gm.css">
-<script src="/zepto.var" defer></script>
-<script src="/view.js" defer></script>
-<script src="/form.js" defer></script>
-<meta charset="utf-8">
-
-<span id="admin"></span>
-<div id="title"><span class="i">i</span><span class="Eval">Eval</span></div>
-<div id="subtitle">TITLE_GOES_HERE</div>
-
-<nav><ul><li><a href="/learn.var">Learn</a><li><a href="/pb/">Practice</a><li><a href="/ct/">Compete</a><li><a href="/log/">Job log</a></ul></nav>
-
-HTML
-);
-
-my %orig_footer_templates = (
- en => <<'HTML',
-
-<footer>
-Dilmom: Why don't you call your product the Gruntmaster 6000?
-Dilbert: What kind of product do you see when you imagine a Gruntmaster 6000?
-Dilmom: Well, it's a stripped-down version of the Gruntmaster 9000, of course. But it's software-upgradeable.
-</footer>
-HTML
-);
-
-sub patch_templates {
- my $root = $ENV{GRUNTMASTER_TEMPLATE_ROOT} or return %{$_[0]};
- my ($templates, $name) = @_;
- my %out = %$templates;
- for (<$root/$name.*>) {
- m/\.(.+)$/;
- $out{$1} = read_file $_
- }
-
- %out
-}
-
-sub reload_templates (){ $ENV{GRUNTMASTER_RELOAD_TEMPLATES} }
-
-my %header_templates = patch_templates \%orig_header_templates, 'header';
-my %footer_templates = patch_templates \%orig_footer_templates, 'footer';