Fossil SCM

Automatically generate the <html><head>...</head><body> section at the beginning of each HTML document if the header template does not contain a <body> tag. Likewise for the </body></html> after the footer.

drh 2017-11-03 13:34 trunk
Commit f1bb72ed266f768bac57c8eaab1569ad7b33921543b3f1a59eeeea3d5c035a54
--- skins/black_and_white/footer.txt
+++ skins/black_and_white/footer.txt
@@ -1,4 +1,3 @@
11
<div class="footer">
22
Fossil $release_version $manifest_version $manifest_date
33
</div>
4
-</body></html>
54
--- skins/black_and_white/footer.txt
+++ skins/black_and_white/footer.txt
@@ -1,4 +1,3 @@
1 <div class="footer">
2 Fossil $release_version $manifest_version $manifest_date
3 </div>
4 </body></html>
5
--- skins/black_and_white/footer.txt
+++ skins/black_and_white/footer.txt
@@ -1,4 +1,3 @@
1 <div class="footer">
2 Fossil $release_version $manifest_version $manifest_date
3 </div>
 
4
--- skins/black_and_white/header.txt
+++ skins/black_and_white/header.txt
@@ -1,15 +1,5 @@
1
-<html>
2
-<head>
3
-<base href="$baseurl/$current_page" />
4
-<title>$<project_name>: $<title></title>
5
-<link rel="alternate" type="application/rss+xml" title="RSS Feed"
6
- href="$home/timeline.rss">
7
-<link rel="stylesheet" href="$stylesheet_url" type="text/css"
8
- media="screen">
9
-</head>
10
-<body>
111
<div class="header">
122
<div class="logo">
133
<img src="$logo_image_url" alt="logo">
144
<br />$<project_name>
155
</div>
166
--- skins/black_and_white/header.txt
+++ skins/black_and_white/header.txt
@@ -1,15 +1,5 @@
1 <html>
2 <head>
3 <base href="$baseurl/$current_page" />
4 <title>$<project_name>: $<title></title>
5 <link rel="alternate" type="application/rss+xml" title="RSS Feed"
6 href="$home/timeline.rss">
7 <link rel="stylesheet" href="$stylesheet_url" type="text/css"
8 media="screen">
9 </head>
10 <body>
11 <div class="header">
12 <div class="logo">
13 <img src="$logo_image_url" alt="logo">
14 <br />$<project_name>
15 </div>
16
--- skins/black_and_white/header.txt
+++ skins/black_and_white/header.txt
@@ -1,15 +1,5 @@
 
 
 
 
 
 
 
 
 
 
1 <div class="header">
2 <div class="logo">
3 <img src="$logo_image_url" alt="logo">
4 <br />$<project_name>
5 </div>
6
--- skins/blitz/footer.txt
+++ skins/blitz/footer.txt
@@ -1,12 +1,10 @@
1
- </div> <!-- end div container -->
2
- </div> <!-- end div middle max-full-width -->
3
- <div class="footer">
4
- <div class="container">
5
- <div class="pull-right">
6
- <a href="https://www.fossil-scm.org/">Fossil $release_version $manifest_version $manifest_date</a>
7
- </div>
8
- This page was generated in about <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s
9
- </div>
10
- </div>
11
- </body>
12
-</html>
1
+ </div> <!-- end div container -->
2
+</div> <!-- end div middle max-full-width -->
3
+<div class="footer">
4
+ <div class="container">
5
+ <div class="pull-right">
6
+ <a href="https://www.fossil-scm.org/">Fossil $release_version $manifest_version $manifest_date</a>
7
+ </div>
8
+ This page was generated in about <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s
9
+ </div>
10
+</div>
1311
--- skins/blitz/footer.txt
+++ skins/blitz/footer.txt
@@ -1,12 +1,10 @@
1 </div> <!-- end div container -->
2 </div> <!-- end div middle max-full-width -->
3 <div class="footer">
4 <div class="container">
5 <div class="pull-right">
6 <a href="https://www.fossil-scm.org/">Fossil $release_version $manifest_version $manifest_date</a>
7 </div>
8 This page was generated in about <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s
9 </div>
10 </div>
11 </body>
12 </html>
13
--- skins/blitz/footer.txt
+++ skins/blitz/footer.txt
@@ -1,12 +1,10 @@
1 </div> <!-- end div container -->
2 </div> <!-- end div middle max-full-width -->
3 <div class="footer">
4 <div class="container">
5 <div class="pull-right">
6 <a href="https://www.fossil-scm.org/">Fossil $release_version $manifest_version $manifest_date</a>
7 </div>
8 This page was generated in about <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s
9 </div>
10 </div>
 
 
11
--- skins/blitz/header.txt
+++ skins/blitz/header.txt
@@ -1,43 +1,34 @@
1
-<html>
2
- <head>
3
- <base href="$baseurl/$current_page" />
4
- <title>$<project_name>: $<title></title>
5
- <link rel="alternate" type="application/rss+xml" title="RSS Feed" href="$home/timeline.rss" />
6
- <link rel="stylesheet" href="$stylesheet_url" type="text/css" media="screen" />
7
- </head>
8
-
9
- <body>
10
- <div class="header">
11
- <div class="container">
12
-
13
- <!-- Header -->
14
- <div class="login pull-right">
15
- <th1>
16
- if {[info exists login]} {
17
- html "<b>$login</b> — <a class='button' href='$home/login'>Logout</a>\n"
18
- } else {
19
- html "<a class='button' href='$home/login'>Login</a>\n"
20
- }
21
- </th1>
22
- <div>
23
- <h2><small>$title</small></h2>
24
- </div>
25
- </div>
26
- <div class='logo'>
27
- <img src='$logo_image_url' />
28
- <th1>
29
- if {[anycap jor]} {
30
- html "<a class='rss' href='$home/timeline.rss'></a>"
31
- }
32
- </th1>
33
- </div>
34
-
35
- <!-- Main Menu -->
36
- <div class="mainmenu">
37
- <ul>
38
- <th1>
1
+<div class="header">
2
+ <div class="container">
3
+
4
+ <!-- Header -->
5
+ <div class="login pull-right">
6
+ <th1>
7
+ if {[info exists login]} {
8
+ html "<b>$login</b> — <a class='button' href='$home/login'>Logout</a>\n"
9
+ } else {
10
+ html "<a class='button' href='$home/login'>Login</a>\n"
11
+ }
12
+ </th1>
13
+ <div>
14
+ <h2><small>$title</small></h2>
15
+ </div>
16
+ </div>
17
+ <div class='logo'>
18
+ <img src='$logo_image_url' />
19
+ <th1>
20
+ if {[anycap jor]} {
21
+ html "<a class='rss' href='$home/timeline.rss'></a>"
22
+ }
23
+ </th1>
24
+ </div>
25
+
26
+ <!-- Main Menu -->
27
+ <div class="mainmenu">
28
+ <ul>
29
+ <th1>
3930
proc menulink {url name} {
4031
upvar current_page current
4132
upvar home home
4233
if {[string range $url 0 [string length $current]] eq "/$current"} {
4334
html "<li class='active'>"
4435
--- skins/blitz/header.txt
+++ skins/blitz/header.txt
@@ -1,43 +1,34 @@
1 <html>
2 <head>
3 <base href="$baseurl/$current_page" />
4 <title>$<project_name>: $<title></title>
5 <link rel="alternate" type="application/rss+xml" title="RSS Feed" href="$home/timeline.rss" />
6 <link rel="stylesheet" href="$stylesheet_url" type="text/css" media="screen" />
7 </head>
8
9 <body>
10 <div class="header">
11 <div class="container">
12
13 <!-- Header -->
14 <div class="login pull-right">
15 <th1>
16 if {[info exists login]} {
17 html "<b>$login</b> — <a class='button' href='$home/login'>Logout</a>\n"
18 } else {
19 html "<a class='button' href='$home/login'>Login</a>\n"
20 }
21 </th1>
22 <div>
23 <h2><small>$title</small></h2>
24 </div>
25 </div>
26 <div class='logo'>
27 <img src='$logo_image_url' />
28 <th1>
29 if {[anycap jor]} {
30 html "<a class='rss' href='$home/timeline.rss'></a>"
31 }
32 </th1>
33 </div>
34
35 <!-- Main Menu -->
36 <div class="mainmenu">
37 <ul>
38 <th1>
39 proc menulink {url name} {
40 upvar current_page current
41 upvar home home
42 if {[string range $url 0 [string length $current]] eq "/$current"} {
43 html "<li class='active'>"
44
--- skins/blitz/header.txt
+++ skins/blitz/header.txt
@@ -1,43 +1,34 @@
1 <div class="header">
2 <div class="container">
3
4 <!-- Header -->
5 <div class="login pull-right">
6 <th1>
7 if {[info exists login]} {
8 html "<b>$login</b> — <a class='button' href='$home/login'>Logout</a>\n"
9 } else {
10 html "<a class='button' href='$home/login'>Login</a>\n"
11 }
12 </th1>
13 <div>
14 <h2><small>$title</small></h2>
15 </div>
16 </div>
17 <div class='logo'>
18 <img src='$logo_image_url' />
19 <th1>
20 if {[anycap jor]} {
21 html "<a class='rss' href='$home/timeline.rss'></a>"
22 }
23 </th1>
24 </div>
25
26 <!-- Main Menu -->
27 <div class="mainmenu">
28 <ul>
29 <th1>
 
 
 
 
 
 
 
 
 
30 proc menulink {url name} {
31 upvar current_page current
32 upvar home home
33 if {[string range $url 0 [string length $current]] eq "/$current"} {
34 html "<li class='active'>"
35
--- skins/blitz_no_logo/footer.txt
+++ skins/blitz_no_logo/footer.txt
@@ -1,12 +1,10 @@
1
- </div> <!-- end div container -->
2
- </div> <!-- end div middle max-full-width -->
3
- <div class="footer">
4
- <div class="container">
5
- <div class="pull-right">
6
- <a href="https://www.fossil-scm.org/">Fossil $release_version $manifest_version $manifest_date</a>
7
- </div>
8
- This page was generated in about <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s
9
- </div>
10
- </div>
11
- </body>
12
-</html>
1
+ </div> <!-- end div container -->
2
+</div> <!-- end div middle max-full-width -->
3
+<div class="footer">
4
+ <div class="container">
5
+ <div class="pull-right">
6
+ <a href="https://www.fossil-scm.org/">Fossil $release_version $manifest_version $manifest_date</a>
7
+ </div>
8
+ This page was generated in about <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s
9
+ </div>
10
+</div>
1311
--- skins/blitz_no_logo/footer.txt
+++ skins/blitz_no_logo/footer.txt
@@ -1,12 +1,10 @@
1 </div> <!-- end div container -->
2 </div> <!-- end div middle max-full-width -->
3 <div class="footer">
4 <div class="container">
5 <div class="pull-right">
6 <a href="https://www.fossil-scm.org/">Fossil $release_version $manifest_version $manifest_date</a>
7 </div>
8 This page was generated in about <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s
9 </div>
10 </div>
11 </body>
12 </html>
13
--- skins/blitz_no_logo/footer.txt
+++ skins/blitz_no_logo/footer.txt
@@ -1,12 +1,10 @@
1 </div> <!-- end div container -->
2 </div> <!-- end div middle max-full-width -->
3 <div class="footer">
4 <div class="container">
5 <div class="pull-right">
6 <a href="https://www.fossil-scm.org/">Fossil $release_version $manifest_version $manifest_date</a>
7 </div>
8 This page was generated in about <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s
9 </div>
10 </div>
 
 
11
--- skins/blitz_no_logo/header.txt
+++ skins/blitz_no_logo/header.txt
@@ -1,40 +1,31 @@
1
-<html>
2
- <head>
3
- <base href="$baseurl/$current_page" />
4
- <title>$<project_name>: $<title></title>
5
- <link rel="alternate" type="application/rss+xml" title="RSS Feed" href="$home/timeline.rss" />
6
- <link rel="stylesheet" href="$stylesheet_url" type="text/css" media="screen" />
7
- </head>
8
-
9
- <body>
10
- <div class="header">
11
- <div class="container">
12
-
13
- <div class="login pull-right">
14
- <th1>
15
- if {[info exists login]} {
16
- html "<b>$login</b> — <a class='button' href='$home/login'>Logout</a>\n"
17
- } else {
18
- html "<a class='button' href='$home/login'>Login</a>\n"
19
- }
20
- </th1>
21
- </div>
22
- <div class='title'>
23
- <h1>$<project_name>
24
- <th1>
25
- if {[anycap jor]} {
26
- html "<a class='rss' href='$home/timeline.rss'></a>"
27
- }
28
- </th1>
29
- <small> &nbsp;$<title></small></h1>
30
- </div>
31
-
32
- <!-- Main Menu -->
33
- <div class="mainmenu">
34
- <ul>
35
- <th1>
1
+<div class="header">
2
+ <div class="container">
3
+
4
+ <div class="login pull-right">
5
+ <th1>
6
+ if {[info exists login]} {
7
+ html "<b>$login</b> — <a class='button' href='$home/login'>Logout</a>\n"
8
+ } else {
9
+ html "<a class='button' href='$home/login'>Login</a>\n"
10
+ }
11
+ </th1>
12
+ </div>
13
+ <div class='title'>
14
+ <h1>$<project_name>
15
+ <th1>
16
+ if {[anycap jor]} {
17
+ html "<a class='rss' href='$home/timeline.rss'></a>"
18
+ }
19
+ </th1>
20
+ <small> &nbsp;$<title></small></h1>
21
+ </div>
22
+
23
+ <!-- Main Menu -->
24
+ <div class="mainmenu">
25
+ <ul>
26
+ <th1>
3627
proc menulink {url name} {
3728
upvar current_page current
3829
upvar home home
3930
if {[string range $url 0 [string length $current]] eq "/$current"} {
4031
html "<li class='active'>"
4132
--- skins/blitz_no_logo/header.txt
+++ skins/blitz_no_logo/header.txt
@@ -1,40 +1,31 @@
1 <html>
2 <head>
3 <base href="$baseurl/$current_page" />
4 <title>$<project_name>: $<title></title>
5 <link rel="alternate" type="application/rss+xml" title="RSS Feed" href="$home/timeline.rss" />
6 <link rel="stylesheet" href="$stylesheet_url" type="text/css" media="screen" />
7 </head>
8
9 <body>
10 <div class="header">
11 <div class="container">
12
13 <div class="login pull-right">
14 <th1>
15 if {[info exists login]} {
16 html "<b>$login</b> — <a class='button' href='$home/login'>Logout</a>\n"
17 } else {
18 html "<a class='button' href='$home/login'>Login</a>\n"
19 }
20 </th1>
21 </div>
22 <div class='title'>
23 <h1>$<project_name>
24 <th1>
25 if {[anycap jor]} {
26 html "<a class='rss' href='$home/timeline.rss'></a>"
27 }
28 </th1>
29 <small> &nbsp;$<title></small></h1>
30 </div>
31
32 <!-- Main Menu -->
33 <div class="mainmenu">
34 <ul>
35 <th1>
36 proc menulink {url name} {
37 upvar current_page current
38 upvar home home
39 if {[string range $url 0 [string length $current]] eq "/$current"} {
40 html "<li class='active'>"
41
--- skins/blitz_no_logo/header.txt
+++ skins/blitz_no_logo/header.txt
@@ -1,40 +1,31 @@
1 <div class="header">
2 <div class="container">
3
4 <div class="login pull-right">
5 <th1>
6 if {[info exists login]} {
7 html "<b>$login</b> — <a class='button' href='$home/login'>Logout</a>\n"
8 } else {
9 html "<a class='button' href='$home/login'>Login</a>\n"
10 }
11 </th1>
12 </div>
13 <div class='title'>
14 <h1>$<project_name>
15 <th1>
16 if {[anycap jor]} {
17 html "<a class='rss' href='$home/timeline.rss'></a>"
18 }
19 </th1>
20 <small> &nbsp;$<title></small></h1>
21 </div>
22
23 <!-- Main Menu -->
24 <div class="mainmenu">
25 <ul>
26 <th1>
 
 
 
 
 
 
 
 
 
27 proc menulink {url name} {
28 upvar current_page current
29 upvar home home
30 if {[string range $url 0 [string length $current]] eq "/$current"} {
31 html "<li class='active'>"
32
--- skins/bootstrap/footer.txt
+++ skins/bootstrap/footer.txt
@@ -34,6 +34,5 @@
3434
);
3535
target.classList.toggle('collapse');
3636
target.classList.toggle('collapsed');
3737
};
3838
</script>
39
-</body></html>
4039
--- skins/bootstrap/footer.txt
+++ skins/bootstrap/footer.txt
@@ -34,6 +34,5 @@
34 );
35 target.classList.toggle('collapse');
36 target.classList.toggle('collapsed');
37 };
38 </script>
39 </body></html>
40
--- skins/bootstrap/footer.txt
+++ skins/bootstrap/footer.txt
@@ -34,6 +34,5 @@
34 );
35 target.classList.toggle('collapse');
36 target.classList.toggle('collapsed');
37 };
38 </script>
 
39
--- skins/default/footer.txt
+++ skins/default/footer.txt
@@ -1,6 +1,5 @@
11
<div class="footer">
22
This page was generated in about
33
<th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s by
44
Fossil $release_version $manifest_version $manifest_date
55
</div>
6
-</body></html>
76
--- skins/default/footer.txt
+++ skins/default/footer.txt
@@ -1,6 +1,5 @@
1 <div class="footer">
2 This page was generated in about
3 <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s by
4 Fossil $release_version $manifest_version $manifest_date
5 </div>
6 </body></html>
7
--- skins/default/footer.txt
+++ skins/default/footer.txt
@@ -1,6 +1,5 @@
1 <div class="footer">
2 This page was generated in about
3 <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s by
4 Fossil $release_version $manifest_version $manifest_date
5 </div>
 
6
--- skins/default/header.txt
+++ skins/default/header.txt
@@ -1,28 +1,16 @@
1
-<html>
2
- <head>
3
- <base href="$baseurl/$current_page" />
4
- <title>$<project_name>: $<title></title>
5
- <link rel="alternate" type="application/rss+xml" title="RSS Feed"
6
- href="$home/timeline.rss" />
7
- <link rel="stylesheet" href="$stylesheet_url" type="text/css"
8
- media="screen" />
9
- </head>
10
-
11
- <body>
12
- <div class="header">
13
- <div class="title"><h1>$<project_name></h1>$<title></div>
14
- <div class="status"><th1>
15
- if {[info exists login]} {
16
- html "$login — <a href='$home/login'>Logout</a>\n"
17
- } else {
18
- html "<a href='$home/login'>Login</a>\n"
19
- }
20
- </th1></div>
21
- </div>
22
-
23
- <div class="mainmenu">
1
+<div class="header">
2
+ <div class="title"><h1>$<project_name></h1>$<title></div>
3
+ <div class="status"><th1>
4
+ if {[info exists login]} {
5
+ html "$login — <a href='$home/login'>Logout</a>\n"
6
+ } else {
7
+ html "<a href='$home/login'>Login</a>\n"
8
+ }
9
+ </th1></div>
10
+</div>
11
+<div class="mainmenu">
2412
<th1>
2513
proc menulink {url name} {
2614
upvar current_page current
2715
upvar home home
2816
if {[string range $url 0 [string length $current]] eq "/$current"} {
2917
--- skins/default/header.txt
+++ skins/default/header.txt
@@ -1,28 +1,16 @@
1 <html>
2 <head>
3 <base href="$baseurl/$current_page" />
4 <title>$<project_name>: $<title></title>
5 <link rel="alternate" type="application/rss+xml" title="RSS Feed"
6 href="$home/timeline.rss" />
7 <link rel="stylesheet" href="$stylesheet_url" type="text/css"
8 media="screen" />
9 </head>
10
11 <body>
12 <div class="header">
13 <div class="title"><h1>$<project_name></h1>$<title></div>
14 <div class="status"><th1>
15 if {[info exists login]} {
16 html "$login — <a href='$home/login'>Logout</a>\n"
17 } else {
18 html "<a href='$home/login'>Login</a>\n"
19 }
20 </th1></div>
21 </div>
22
23 <div class="mainmenu">
24 <th1>
25 proc menulink {url name} {
26 upvar current_page current
27 upvar home home
28 if {[string range $url 0 [string length $current]] eq "/$current"} {
29
--- skins/default/header.txt
+++ skins/default/header.txt
@@ -1,28 +1,16 @@
1 <div class="header">
2 <div class="title"><h1>$<project_name></h1>$<title></div>
3 <div class="status"><th1>
4 if {[info exists login]} {
5 html "$login — <a href='$home/login'>Logout</a>\n"
6 } else {
7 html "<a href='$home/login'>Login</a>\n"
8 }
9 </th1></div>
10 </div>
11 <div class="mainmenu">
 
 
 
 
 
 
 
 
 
 
 
 
12 <th1>
13 proc menulink {url name} {
14 upvar current_page current
15 upvar home home
16 if {[string range $url 0 [string length $current]] eq "/$current"} {
17
--- skins/eagle/footer.txt
+++ skins/eagle/footer.txt
@@ -20,6 +20,5 @@
2020
<a href="$fossilUrl/">Fossil</a>
2121
version $release_version $tclVersion
2222
<a href="$fossilUrl/index.html/info/$version">$manifest_version</a>
2323
<a href="$fossilUrl/index.html/timeline?c=$fossilDate&amp;y=ci">$manifest_date</a>
2424
</div>
25
-</body></html>
2625
--- skins/eagle/footer.txt
+++ skins/eagle/footer.txt
@@ -20,6 +20,5 @@
20 <a href="$fossilUrl/">Fossil</a>
21 version $release_version $tclVersion
22 <a href="$fossilUrl/index.html/info/$version">$manifest_version</a>
23 <a href="$fossilUrl/index.html/timeline?c=$fossilDate&amp;y=ci">$manifest_date</a>
24 </div>
25 </body></html>
26
--- skins/eagle/footer.txt
+++ skins/eagle/footer.txt
@@ -20,6 +20,5 @@
20 <a href="$fossilUrl/">Fossil</a>
21 version $release_version $tclVersion
22 <a href="$fossilUrl/index.html/info/$version">$manifest_version</a>
23 <a href="$fossilUrl/index.html/timeline?c=$fossilDate&amp;y=ci">$manifest_date</a>
24 </div>
 
25
--- skins/eagle/header.txt
+++ skins/eagle/header.txt
@@ -1,15 +1,5 @@
1
-<html>
2
-<head>
3
-<base href="$baseurl/$current_page" />
4
-<title>$<project_name>: $<title></title>
5
-<link rel="alternate" type="application/rss+xml" title="RSS Feed"
6
- href="$home/timeline.rss" />
7
-<link rel="stylesheet" href="$stylesheet_url" type="text/css"
8
- media="screen" />
9
-</head>
10
-<body>
111
<div class="header">
122
<div class="logo">
133
<th1>
144
##
155
## NOTE: The purpose of this procedure is to take the base URL of the
166
--- skins/eagle/header.txt
+++ skins/eagle/header.txt
@@ -1,15 +1,5 @@
1 <html>
2 <head>
3 <base href="$baseurl/$current_page" />
4 <title>$<project_name>: $<title></title>
5 <link rel="alternate" type="application/rss+xml" title="RSS Feed"
6 href="$home/timeline.rss" />
7 <link rel="stylesheet" href="$stylesheet_url" type="text/css"
8 media="screen" />
9 </head>
10 <body>
11 <div class="header">
12 <div class="logo">
13 <th1>
14 ##
15 ## NOTE: The purpose of this procedure is to take the base URL of the
16
--- skins/eagle/header.txt
+++ skins/eagle/header.txt
@@ -1,15 +1,5 @@
 
 
 
 
 
 
 
 
 
 
1 <div class="header">
2 <div class="logo">
3 <th1>
4 ##
5 ## NOTE: The purpose of this procedure is to take the base URL of the
6
--- skins/enhanced1/footer.txt
+++ skins/enhanced1/footer.txt
@@ -20,6 +20,5 @@
2020
<a href="$fossilUrl/">Fossil</a>
2121
version $release_version $tclVersion
2222
<a href="$fossilUrl/index.html/info/$version">$manifest_version</a>
2323
<a href="$fossilUrl/index.html/timeline?c=$fossilDate&amp;y=ci">$manifest_date</a>
2424
</div>
25
-</body></html>
2625
--- skins/enhanced1/footer.txt
+++ skins/enhanced1/footer.txt
@@ -20,6 +20,5 @@
20 <a href="$fossilUrl/">Fossil</a>
21 version $release_version $tclVersion
22 <a href="$fossilUrl/index.html/info/$version">$manifest_version</a>
23 <a href="$fossilUrl/index.html/timeline?c=$fossilDate&amp;y=ci">$manifest_date</a>
24 </div>
25 </body></html>
26
--- skins/enhanced1/footer.txt
+++ skins/enhanced1/footer.txt
@@ -20,6 +20,5 @@
20 <a href="$fossilUrl/">Fossil</a>
21 version $release_version $tclVersion
22 <a href="$fossilUrl/index.html/info/$version">$manifest_version</a>
23 <a href="$fossilUrl/index.html/timeline?c=$fossilDate&amp;y=ci">$manifest_date</a>
24 </div>
 
25
--- skins/enhanced1/header.txt
+++ skins/enhanced1/header.txt
@@ -1,15 +1,5 @@
1
-<html>
2
-<head>
3
-<base href="$baseurl/$current_page" />
4
-<title>$<project_name>: $<title></title>
5
-<link rel="alternate" type="application/rss+xml" title="RSS Feed"
6
- href="$home/timeline.rss" />
7
-<link rel="stylesheet" href="$stylesheet_url" type="text/css"
8
- media="screen" />
9
-</head>
10
-<body>
111
<div class="header">
122
<div class="logo">
133
<th1>
144
##
155
## NOTE: The purpose of this procedure is to take the base URL of the
166
--- skins/enhanced1/header.txt
+++ skins/enhanced1/header.txt
@@ -1,15 +1,5 @@
1 <html>
2 <head>
3 <base href="$baseurl/$current_page" />
4 <title>$<project_name>: $<title></title>
5 <link rel="alternate" type="application/rss+xml" title="RSS Feed"
6 href="$home/timeline.rss" />
7 <link rel="stylesheet" href="$stylesheet_url" type="text/css"
8 media="screen" />
9 </head>
10 <body>
11 <div class="header">
12 <div class="logo">
13 <th1>
14 ##
15 ## NOTE: The purpose of this procedure is to take the base URL of the
16
--- skins/enhanced1/header.txt
+++ skins/enhanced1/header.txt
@@ -1,15 +1,5 @@
 
 
 
 
 
 
 
 
 
 
1 <div class="header">
2 <div class="logo">
3 <th1>
4 ##
5 ## NOTE: The purpose of this procedure is to take the base URL of the
6
--- skins/khaki/footer.txt
+++ skins/khaki/footer.txt
@@ -1,4 +1,3 @@
11
<div class="footer">
22
Fossil $release_version $manifest_version $manifest_date
33
</div>
4
-</body></html>
54
--- skins/khaki/footer.txt
+++ skins/khaki/footer.txt
@@ -1,4 +1,3 @@
1 <div class="footer">
2 Fossil $release_version $manifest_version $manifest_date
3 </div>
4 </body></html>
5
--- skins/khaki/footer.txt
+++ skins/khaki/footer.txt
@@ -1,4 +1,3 @@
1 <div class="footer">
2 Fossil $release_version $manifest_version $manifest_date
3 </div>
 
4
--- skins/khaki/header.txt
+++ skins/khaki/header.txt
@@ -1,15 +1,5 @@
1
-<html>
2
-<head>
3
-<base href="$baseurl/$current_page" />
4
-<title>$<project_name>: $<title></title>
5
-<link rel="alternate" type="application/rss+xml" title="RSS Feed"
6
- href="$home/timeline.rss">
7
-<link rel="stylesheet" href="$stylesheet_url" type="text/css"
8
- media="screen">
9
-</head>
10
-<body>
111
<div class="header">
122
<div class="title">$<title></div>
133
<div class="status">
144
<div class="logo">$<project_name></div><br/>
155
<th1>
166
--- skins/khaki/header.txt
+++ skins/khaki/header.txt
@@ -1,15 +1,5 @@
1 <html>
2 <head>
3 <base href="$baseurl/$current_page" />
4 <title>$<project_name>: $<title></title>
5 <link rel="alternate" type="application/rss+xml" title="RSS Feed"
6 href="$home/timeline.rss">
7 <link rel="stylesheet" href="$stylesheet_url" type="text/css"
8 media="screen">
9 </head>
10 <body>
11 <div class="header">
12 <div class="title">$<title></div>
13 <div class="status">
14 <div class="logo">$<project_name></div><br/>
15 <th1>
16
--- skins/khaki/header.txt
+++ skins/khaki/header.txt
@@ -1,15 +1,5 @@
 
 
 
 
 
 
 
 
 
 
1 <div class="header">
2 <div class="title">$<title></div>
3 <div class="status">
4 <div class="logo">$<project_name></div><br/>
5 <th1>
6
--- skins/original/footer.txt
+++ skins/original/footer.txt
@@ -1,6 +1,5 @@
11
<div class="footer">
22
This page was generated in about
33
<th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s by
44
Fossil $release_version $manifest_version $manifest_date
55
</div>
6
-</body></html>
76
--- skins/original/footer.txt
+++ skins/original/footer.txt
@@ -1,6 +1,5 @@
1 <div class="footer">
2 This page was generated in about
3 <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s by
4 Fossil $release_version $manifest_version $manifest_date
5 </div>
6 </body></html>
7
--- skins/original/footer.txt
+++ skins/original/footer.txt
@@ -1,6 +1,5 @@
1 <div class="footer">
2 This page was generated in about
3 <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s by
4 Fossil $release_version $manifest_version $manifest_date
5 </div>
 
6
--- skins/original/header.txt
+++ skins/original/header.txt
@@ -1,15 +1,5 @@
1
-<html>
2
-<head>
3
-<base href="$baseurl/$current_page" />
4
-<title>$<project_name>: $<title></title>
5
-<link rel="alternate" type="application/rss+xml" title="RSS Feed"
6
- href="$home/timeline.rss" />
7
-<link rel="stylesheet" href="$stylesheet_url" type="text/css"
8
- media="screen" />
9
-</head>
10
-<body>
111
<div class="header">
122
<div class="logo">
133
<img src="$logo_image_url" alt="logo" />
144
</div>
155
<div class="title"><small>$<project_name></small><br />$<title></div>
166
--- skins/original/header.txt
+++ skins/original/header.txt
@@ -1,15 +1,5 @@
1 <html>
2 <head>
3 <base href="$baseurl/$current_page" />
4 <title>$<project_name>: $<title></title>
5 <link rel="alternate" type="application/rss+xml" title="RSS Feed"
6 href="$home/timeline.rss" />
7 <link rel="stylesheet" href="$stylesheet_url" type="text/css"
8 media="screen" />
9 </head>
10 <body>
11 <div class="header">
12 <div class="logo">
13 <img src="$logo_image_url" alt="logo" />
14 </div>
15 <div class="title"><small>$<project_name></small><br />$<title></div>
16
--- skins/original/header.txt
+++ skins/original/header.txt
@@ -1,15 +1,5 @@
 
 
 
 
 
 
 
 
 
 
1 <div class="header">
2 <div class="logo">
3 <img src="$logo_image_url" alt="logo" />
4 </div>
5 <div class="title"><small>$<project_name></small><br />$<title></div>
6
--- skins/plain_gray/footer.txt
+++ skins/plain_gray/footer.txt
@@ -1,4 +1,3 @@
11
<div class="footer">
22
Fossil $release_version $manifest_version $manifest_date
33
</div>
4
-</body></html>
54
--- skins/plain_gray/footer.txt
+++ skins/plain_gray/footer.txt
@@ -1,4 +1,3 @@
1 <div class="footer">
2 Fossil $release_version $manifest_version $manifest_date
3 </div>
4 </body></html>
5
--- skins/plain_gray/footer.txt
+++ skins/plain_gray/footer.txt
@@ -1,4 +1,3 @@
1 <div class="footer">
2 Fossil $release_version $manifest_version $manifest_date
3 </div>
 
4
--- skins/plain_gray/header.txt
+++ skins/plain_gray/header.txt
@@ -1,15 +1,5 @@
1
-<html>
2
-<head>
3
-<base href="$baseurl/$current_page" />
4
-<title>$<project_name>: $<title></title>
5
-<link rel="alternate" type="application/rss+xml" title="RSS Feed"
6
- href="$home/timeline.rss">
7
-<link rel="stylesheet" href="$stylesheet_url" type="text/css"
8
- media="screen">
9
-</head>
10
-<body>
111
<div class="header">
122
<div class="title"><small>$<project_name></small><br />$<title></div>
133
<div class="status"><th1>
144
if {[info exists login]} {
155
puts "Logged in as $login"
166
--- skins/plain_gray/header.txt
+++ skins/plain_gray/header.txt
@@ -1,15 +1,5 @@
1 <html>
2 <head>
3 <base href="$baseurl/$current_page" />
4 <title>$<project_name>: $<title></title>
5 <link rel="alternate" type="application/rss+xml" title="RSS Feed"
6 href="$home/timeline.rss">
7 <link rel="stylesheet" href="$stylesheet_url" type="text/css"
8 media="screen">
9 </head>
10 <body>
11 <div class="header">
12 <div class="title"><small>$<project_name></small><br />$<title></div>
13 <div class="status"><th1>
14 if {[info exists login]} {
15 puts "Logged in as $login"
16
--- skins/plain_gray/header.txt
+++ skins/plain_gray/header.txt
@@ -1,15 +1,5 @@
 
 
 
 
 
 
 
 
 
 
1 <div class="header">
2 <div class="title"><small>$<project_name></small><br />$<title></div>
3 <div class="status"><th1>
4 if {[info exists login]} {
5 puts "Logged in as $login"
6
--- skins/rounded1/footer.txt
+++ skins/rounded1/footer.txt
@@ -1,4 +1,3 @@
11
<div class="footer">
22
Fossil $release_version $manifest_version $manifest_date
33
</div>
4
-</body></html>
54
--- skins/rounded1/footer.txt
+++ skins/rounded1/footer.txt
@@ -1,4 +1,3 @@
1 <div class="footer">
2 Fossil $release_version $manifest_version $manifest_date
3 </div>
4 </body></html>
5
--- skins/rounded1/footer.txt
+++ skins/rounded1/footer.txt
@@ -1,4 +1,3 @@
1 <div class="footer">
2 Fossil $release_version $manifest_version $manifest_date
3 </div>
 
4
--- skins/rounded1/header.txt
+++ skins/rounded1/header.txt
@@ -1,15 +1,5 @@
1
-<html>
2
-<head>
3
-<base href="$baseurl/$current_page" />
4
-<title>$<project_name>: $<title></title>
5
-<link rel="alternate" type="application/rss+xml" title="RSS Feed"
6
- href="$home/timeline.rss">
7
-<link rel="stylesheet" href="$stylesheet_url" type="text/css"
8
- media="screen">
9
-</head>
10
-<body>
111
<div class="header">
122
<div class="logo">
133
<img src="$logo_image_url" alt="logo">
144
<br />$<project_name>
155
</div>
166
--- skins/rounded1/header.txt
+++ skins/rounded1/header.txt
@@ -1,15 +1,5 @@
1 <html>
2 <head>
3 <base href="$baseurl/$current_page" />
4 <title>$<project_name>: $<title></title>
5 <link rel="alternate" type="application/rss+xml" title="RSS Feed"
6 href="$home/timeline.rss">
7 <link rel="stylesheet" href="$stylesheet_url" type="text/css"
8 media="screen">
9 </head>
10 <body>
11 <div class="header">
12 <div class="logo">
13 <img src="$logo_image_url" alt="logo">
14 <br />$<project_name>
15 </div>
16
--- skins/rounded1/header.txt
+++ skins/rounded1/header.txt
@@ -1,15 +1,5 @@
 
 
 
 
 
 
 
 
 
 
1 <div class="header">
2 <div class="logo">
3 <img src="$logo_image_url" alt="logo">
4 <br />$<project_name>
5 </div>
6
--- skins/xekri/footer.txt
+++ skins/xekri/footer.txt
@@ -5,7 +5,5 @@
55
</div>
66
<div class="fossil-info">
77
Fossil v$release_version $manifest_version
88
</div>
99
</div>
10
-</body>
11
-</html>
1210
--- skins/xekri/footer.txt
+++ skins/xekri/footer.txt
@@ -5,7 +5,5 @@
5 </div>
6 <div class="fossil-info">
7 Fossil v$release_version $manifest_version
8 </div>
9 </div>
10 </body>
11 </html>
12
--- skins/xekri/footer.txt
+++ skins/xekri/footer.txt
@@ -5,7 +5,5 @@
5 </div>
6 <div class="fossil-info">
7 Fossil v$release_version $manifest_version
8 </div>
9 </div>
 
 
10
--- skins/xekri/header.txt
+++ skins/xekri/header.txt
@@ -1,15 +1,5 @@
1
-<html>
2
-<head>
3
-<base href="$baseurl/$current_page" />
4
-<title>$<project_name>: $<title></title>
5
-<link rel="alternate" type="application/rss+xml" title="RSS Feed"
6
- href="$home/timeline.rss" />
7
-<link rel="stylesheet" href="$stylesheet_url" type="text/css"
8
- media="screen" />
9
-</head>
10
-<body>
111
<div class="header">
122
<div class="logo">
133
<th1>
144
##
155
## NOTE: The purpose of this procedure is to take the base URL of the
166
--- skins/xekri/header.txt
+++ skins/xekri/header.txt
@@ -1,15 +1,5 @@
1 <html>
2 <head>
3 <base href="$baseurl/$current_page" />
4 <title>$<project_name>: $<title></title>
5 <link rel="alternate" type="application/rss+xml" title="RSS Feed"
6 href="$home/timeline.rss" />
7 <link rel="stylesheet" href="$stylesheet_url" type="text/css"
8 media="screen" />
9 </head>
10 <body>
11 <div class="header">
12 <div class="logo">
13 <th1>
14 ##
15 ## NOTE: The purpose of this procedure is to take the base URL of the
16
--- skins/xekri/header.txt
+++ skins/xekri/header.txt
@@ -1,15 +1,5 @@
 
 
 
 
 
 
 
 
 
 
1 <div class="header">
2 <div class="logo">
3 <th1>
4 ##
5 ## NOTE: The purpose of this procedure is to take the base URL of the
6
+26
--- src/style.c
+++ src/style.c
@@ -393,10 +393,28 @@
393393
char *zConfigName = mprintf("%s-image", zImageName);
394394
url_var(zVarPrefix, zConfigName, zImageName);
395395
free(zVarPrefix);
396396
free(zConfigName);
397397
}
398
+
399
+/*
400
+** Default HTML page header text through <body>. If the repository-specific
401
+** header template lacks a <body> tag, then all of the following is
402
+** prepended.
403
+*/
404
+static char zDfltHeader[] =
405
+@ <html>
406
+@ <head>
407
+@ <base href="$baseurl/$current_page" />
408
+@ <title>$<project_name>: $<title></title>
409
+@ <link rel="alternate" type="application/rss+xml" title="RSS Feed"
410
+@ href="$home/timeline.rss" />
411
+@ <link rel="stylesheet" href="$stylesheet_url" type="text/css"
412
+@ media="screen" />
413
+@ </head>
414
+@ <body>
415
+;
398416
399417
/*
400418
** Draw the header.
401419
*/
402420
void style_header(const char *zTitleFormat, ...){
@@ -433,10 +451,13 @@
433451
url_var("stylesheet", "css", "style.css");
434452
image_url_var("logo");
435453
image_url_var("background");
436454
if( !login_is_nobody() ){
437455
Th_Store("login", g.zLogin);
456
+ }
457
+ if( sqlite3_strlike("%<body>%", zHeader, 0)!=0 ){
458
+ Th_Render(zDfltHeader);
438459
}
439460
if( g.thTrace ) Th_Trace("BEGIN_HEADER_SCRIPT<br />\n", -1);
440461
Th_Render(zHeader);
441462
if( g.thTrace ) Th_Trace("END_HEADER<br />\n", -1);
442463
Th_Unstore("title"); /* Avoid collisions with ticket field names */
@@ -660,10 +681,15 @@
660681
if( g.thTrace ){
661682
cgi_append_content("<span class=\"thTrace\"><hr />\n", -1);
662683
cgi_append_content(blob_str(&g.thLog), blob_size(&g.thLog));
663684
cgi_append_content("</span>\n", -1);
664685
}
686
+
687
+ /* Add document end mark if it was not in the footer */
688
+ if( sqlite3_strlike("%</body>%", zFooter, 0)!=0 ){
689
+ @ </body></html>
690
+ }
665691
}
666692
667693
/*
668694
** Begin a side-box on the right-hand side of a page. The title and
669695
** the width of the box are given as arguments. The width is usually
670696
--- src/style.c
+++ src/style.c
@@ -393,10 +393,28 @@
393 char *zConfigName = mprintf("%s-image", zImageName);
394 url_var(zVarPrefix, zConfigName, zImageName);
395 free(zVarPrefix);
396 free(zConfigName);
397 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
398
399 /*
400 ** Draw the header.
401 */
402 void style_header(const char *zTitleFormat, ...){
@@ -433,10 +451,13 @@
433 url_var("stylesheet", "css", "style.css");
434 image_url_var("logo");
435 image_url_var("background");
436 if( !login_is_nobody() ){
437 Th_Store("login", g.zLogin);
 
 
 
438 }
439 if( g.thTrace ) Th_Trace("BEGIN_HEADER_SCRIPT<br />\n", -1);
440 Th_Render(zHeader);
441 if( g.thTrace ) Th_Trace("END_HEADER<br />\n", -1);
442 Th_Unstore("title"); /* Avoid collisions with ticket field names */
@@ -660,10 +681,15 @@
660 if( g.thTrace ){
661 cgi_append_content("<span class=\"thTrace\"><hr />\n", -1);
662 cgi_append_content(blob_str(&g.thLog), blob_size(&g.thLog));
663 cgi_append_content("</span>\n", -1);
664 }
 
 
 
 
 
665 }
666
667 /*
668 ** Begin a side-box on the right-hand side of a page. The title and
669 ** the width of the box are given as arguments. The width is usually
670
--- src/style.c
+++ src/style.c
@@ -393,10 +393,28 @@
393 char *zConfigName = mprintf("%s-image", zImageName);
394 url_var(zVarPrefix, zConfigName, zImageName);
395 free(zVarPrefix);
396 free(zConfigName);
397 }
398
399 /*
400 ** Default HTML page header text through <body>. If the repository-specific
401 ** header template lacks a <body> tag, then all of the following is
402 ** prepended.
403 */
404 static char zDfltHeader[] =
405 @ <html>
406 @ <head>
407 @ <base href="$baseurl/$current_page" />
408 @ <title>$<project_name>: $<title></title>
409 @ <link rel="alternate" type="application/rss+xml" title="RSS Feed"
410 @ href="$home/timeline.rss" />
411 @ <link rel="stylesheet" href="$stylesheet_url" type="text/css"
412 @ media="screen" />
413 @ </head>
414 @ <body>
415 ;
416
417 /*
418 ** Draw the header.
419 */
420 void style_header(const char *zTitleFormat, ...){
@@ -433,10 +451,13 @@
451 url_var("stylesheet", "css", "style.css");
452 image_url_var("logo");
453 image_url_var("background");
454 if( !login_is_nobody() ){
455 Th_Store("login", g.zLogin);
456 }
457 if( sqlite3_strlike("%<body>%", zHeader, 0)!=0 ){
458 Th_Render(zDfltHeader);
459 }
460 if( g.thTrace ) Th_Trace("BEGIN_HEADER_SCRIPT<br />\n", -1);
461 Th_Render(zHeader);
462 if( g.thTrace ) Th_Trace("END_HEADER<br />\n", -1);
463 Th_Unstore("title"); /* Avoid collisions with ticket field names */
@@ -660,10 +681,15 @@
681 if( g.thTrace ){
682 cgi_append_content("<span class=\"thTrace\"><hr />\n", -1);
683 cgi_append_content(blob_str(&g.thLog), blob_size(&g.thLog));
684 cgi_append_content("</span>\n", -1);
685 }
686
687 /* Add document end mark if it was not in the footer */
688 if( sqlite3_strlike("%</body>%", zFooter, 0)!=0 ){
689 @ </body></html>
690 }
691 }
692
693 /*
694 ** Begin a side-box on the right-hand side of a page. The title and
695 ** the width of the box are given as arguments. The width is usually
696

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button