3 %# Common Mason machinery for Odin web services
5 %# (c) 2015 Mark Wooding
7 %#----- Licensing notice ----------------------------------------------------
9 %# This file is part of the `odin.gg' service, `odin-cgi'.
11 %# `odin-cgi' is free software; you can redistribute it and/or modify
12 %# it under the terms of the GNU Affero General Public License as
13 %# published by the Free Software Foundation; either version 3 of the
14 %# License, or (at your option) any later version.
16 %# `odin-cgi' is distributed in the hope that it will be useful,
17 %# but WITHOUT ANY WARRANTY; without even the implied warranty of
18 %# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 %# GNU Affero General Public License for more details.
21 %# You should have received a copy of the GNU Affero General Public
22 %# License along with `odin-cgi'; if not, see
23 %# <http://www.gnu.org/licenses/>.
26 Odin::set_mason_failproc $m;
28 Odin::fetch_cookies $r;
29 $r->content_type("text/html; charset=utf8");
34 % $r->header_out(Status => $status) if defined $status;
35 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
36 "http://www.w3c.org/TR/html4/strict.dtd">
40 <link rel="stylesheet" type="text/css" href="<% $Odin::STATIC %>odin.css">
41 <meta name="viewport" content="width=device-width" initial-scale=1.0>
44 % defined $title ? $m->print($title) : $m->comp("SELF:title");
51 (c) 2015–2017 Mark Wooding;
52 <a href=<% $Odin::SRCURL %>>Free software</a><br>
62 <%method title>(Untitled page)</%method>
63 <%method header></%method>
66 <&| SELF:wrapper, status => $status, title => $title // $m->content &>\
68 % if (defined $title) {