Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | 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. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
f1bb72ed266f768bac57c8eaab1569ad |
| User & Date: | drh 2017-11-03 13:34:07.465 |
Context
|
2017-11-04
| ||
| 13:16 | Fix a minor typo in a comment. No changes to code. ... (check-in: 9b20b8a18c user: drh tags: trunk) | |
|
2017-11-03
| ||
| 13:34 | 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. ... (check-in: f1bb72ed26 user: drh tags: trunk) | |
| 12:54 | Changed the color of the Reader privilege subscript to be more readable in the Xekri skin. ... (check-in: bfbcc126d3 user: zakero tags: trunk) | |
Changes
Changes to skins/black_and_white/footer.txt.
1 2 3 | <div class="footer"> Fossil $release_version $manifest_version $manifest_date </div> | < | 1 2 3 | <div class="footer"> Fossil $release_version $manifest_version $manifest_date </div> |
Changes to skins/black_and_white/header.txt.
|
| < < < < < < < < < < | 1 2 3 4 5 6 7 |
<div class="header">
<div class="logo">
<img src="$logo_image_url" alt="logo">
<br />$<project_name>
</div>
<div class="title">$<title></div>
<div class="status"><th1>
|
| ︙ | ︙ |
Changes to skins/blitz/footer.txt.
|
| | | | | | | | | | | < < | 1 2 3 4 5 6 7 8 9 10 |
</div> <!-- end div container -->
</div> <!-- end div middle max-full-width -->
<div class="footer">
<div class="container">
<div class="pull-right">
<a href="https://www.fossil-scm.org/">Fossil $release_version $manifest_version $manifest_date</a>
</div>
This page was generated in about <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s
</div>
</div>
|
Changes to skins/blitz/header.txt.
|
| < < < < < < < < < | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
<div class="header">
<div class="container">
<!-- Header -->
<div class="login pull-right">
<th1>
if {[info exists login]} {
html "<b>$login</b> — <a class='button' href='$home/login'>Logout</a>\n"
} else {
html "<a class='button' href='$home/login'>Login</a>\n"
}
</th1>
<div>
<h2><small>$title</small></h2>
</div>
</div>
<div class='logo'>
<img src='$logo_image_url' />
<th1>
if {[anycap jor]} {
html "<a class='rss' href='$home/timeline.rss'></a>"
}
</th1>
</div>
<!-- Main Menu -->
<div class="mainmenu">
<ul>
<th1>
proc menulink {url name} {
upvar current_page current
upvar home home
if {[string range $url 0 [string length $current]] eq "/$current"} {
html "<li class='active'>"
} else {
html "<li>"
|
| ︙ | ︙ |
Changes to skins/blitz_no_logo/footer.txt.
|
| | | | | | | | | | | < < | 1 2 3 4 5 6 7 8 9 10 |
</div> <!-- end div container -->
</div> <!-- end div middle max-full-width -->
<div class="footer">
<div class="container">
<div class="pull-right">
<a href="https://www.fossil-scm.org/">Fossil $release_version $manifest_version $manifest_date</a>
</div>
This page was generated in about <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s
</div>
</div>
|
Changes to skins/blitz_no_logo/header.txt.
|
| < < < < < < < < < | | | | | | | | | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
<div class="header">
<div class="container">
<div class="login pull-right">
<th1>
if {[info exists login]} {
html "<b>$login</b> — <a class='button' href='$home/login'>Logout</a>\n"
} else {
html "<a class='button' href='$home/login'>Login</a>\n"
}
</th1>
</div>
<div class='title'>
<h1>$<project_name>
<th1>
if {[anycap jor]} {
html "<a class='rss' href='$home/timeline.rss'></a>"
}
</th1>
<small> $<title></small></h1>
</div>
<!-- Main Menu -->
<div class="mainmenu">
<ul>
<th1>
proc menulink {url name} {
upvar current_page current
upvar home home
if {[string range $url 0 [string length $current]] eq "/$current"} {
html "<li class='active'>"
} else {
html "<li>"
|
| ︙ | ︙ |
Changes to skins/bootstrap/footer.txt.
| ︙ | ︙ | |||
32 33 34 35 36 37 38 |
var target = document.querySelector(
collapse.getAttribute('data-target')
);
target.classList.toggle('collapse');
target.classList.toggle('collapsed');
};
</script>
| < | 32 33 34 35 36 37 38 |
var target = document.querySelector(
collapse.getAttribute('data-target')
);
target.classList.toggle('collapse');
target.classList.toggle('collapsed');
};
</script>
|
Changes to skins/default/footer.txt.
1 2 3 4 5 |
<div class="footer">
This page was generated in about
<th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s by
Fossil $release_version $manifest_version $manifest_date
</div>
| < | 1 2 3 4 5 |
<div class="footer">
This page was generated in about
<th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s by
Fossil $release_version $manifest_version $manifest_date
</div>
|
Changes to skins/default/header.txt.
|
| < < < < < < < < < < < | | | | | | | | | | < | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
<div class="header">
<div class="title"><h1>$<project_name></h1>$<title></div>
<div class="status"><th1>
if {[info exists login]} {
html "$login — <a href='$home/login'>Logout</a>\n"
} else {
html "<a href='$home/login'>Login</a>\n"
}
</th1></div>
</div>
<div class="mainmenu">
<th1>
proc menulink {url name} {
upvar current_page current
upvar home home
if {[string range $url 0 [string length $current]] eq "/$current"} {
html "<a href='$home$url' class='active'>$name</a>\n"
} else {
|
| ︙ | ︙ |
Changes to skins/eagle/footer.txt.
| ︙ | ︙ | |||
18 19 20 21 22 23 24 |
This page was generated in about
<th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s by
<a href="$fossilUrl/">Fossil</a>
version $release_version $tclVersion
<a href="$fossilUrl/index.html/info/$version">$manifest_version</a>
<a href="$fossilUrl/index.html/timeline?c=$fossilDate&y=ci">$manifest_date</a>
</div>
| < | 18 19 20 21 22 23 24 |
This page was generated in about
<th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s by
<a href="$fossilUrl/">Fossil</a>
version $release_version $tclVersion
<a href="$fossilUrl/index.html/info/$version">$manifest_version</a>
<a href="$fossilUrl/index.html/timeline?c=$fossilDate&y=ci">$manifest_date</a>
</div>
|
Changes to skins/eagle/header.txt.
|
| < < < < < < < < < < | 1 2 3 4 5 6 7 |
<div class="header">
<div class="logo">
<th1>
##
## NOTE: The purpose of this procedure is to take the base URL of the
## Fossil project and return the root of the entire web site using
## the same URI scheme as the base URL (e.g. http or https).
|
| ︙ | ︙ |
Changes to skins/enhanced1/footer.txt.
| ︙ | ︙ | |||
18 19 20 21 22 23 24 |
This page was generated in about
<th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s by
<a href="$fossilUrl/">Fossil</a>
version $release_version $tclVersion
<a href="$fossilUrl/index.html/info/$version">$manifest_version</a>
<a href="$fossilUrl/index.html/timeline?c=$fossilDate&y=ci">$manifest_date</a>
</div>
| < | 18 19 20 21 22 23 24 |
This page was generated in about
<th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s by
<a href="$fossilUrl/">Fossil</a>
version $release_version $tclVersion
<a href="$fossilUrl/index.html/info/$version">$manifest_version</a>
<a href="$fossilUrl/index.html/timeline?c=$fossilDate&y=ci">$manifest_date</a>
</div>
|
Changes to skins/enhanced1/header.txt.
|
| < < < < < < < < < < | 1 2 3 4 5 6 7 |
<div class="header">
<div class="logo">
<th1>
##
## NOTE: The purpose of this procedure is to take the base URL of the
## Fossil project and return the root of the entire web site using
## the same URI scheme as the base URL (e.g. http or https).
|
| ︙ | ︙ |
Changes to skins/khaki/footer.txt.
1 2 3 | <div class="footer"> Fossil $release_version $manifest_version $manifest_date </div> | < | 1 2 3 | <div class="footer"> Fossil $release_version $manifest_version $manifest_date </div> |
Changes to skins/khaki/header.txt.
|
| < < < < < < < < < < | 1 2 3 4 5 6 7 |
<div class="header">
<div class="title">$<title></div>
<div class="status">
<div class="logo">$<project_name></div><br/>
<th1>
if {[info exists login]} {
puts "Logged in as $login"
|
| ︙ | ︙ |
Changes to skins/original/footer.txt.
1 2 3 4 5 |
<div class="footer">
This page was generated in about
<th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s by
Fossil $release_version $manifest_version $manifest_date
</div>
| < | 1 2 3 4 5 |
<div class="footer">
This page was generated in about
<th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s by
Fossil $release_version $manifest_version $manifest_date
</div>
|
Changes to skins/original/header.txt.
|
| < < < < < < < < < < | 1 2 3 4 5 6 7 |
<div class="header">
<div class="logo">
<img src="$logo_image_url" alt="logo" />
</div>
<div class="title"><small>$<project_name></small><br />$<title></div>
<div class="status"><th1>
if {[info exists login]} {
|
| ︙ | ︙ |
Changes to skins/plain_gray/footer.txt.
1 2 3 | <div class="footer"> Fossil $release_version $manifest_version $manifest_date </div> | < | 1 2 3 | <div class="footer"> Fossil $release_version $manifest_version $manifest_date </div> |
Changes to skins/plain_gray/header.txt.
|
| < < < < < < < < < < | 1 2 3 4 5 6 7 |
<div class="header">
<div class="title"><small>$<project_name></small><br />$<title></div>
<div class="status"><th1>
if {[info exists login]} {
puts "Logged in as $login"
} else {
puts "Not logged in"
|
| ︙ | ︙ |
Changes to skins/rounded1/footer.txt.
1 2 3 | <div class="footer"> Fossil $release_version $manifest_version $manifest_date </div> | < | 1 2 3 | <div class="footer"> Fossil $release_version $manifest_version $manifest_date </div> |
Changes to skins/rounded1/header.txt.
|
| < < < < < < < < < < | 1 2 3 4 5 6 7 |
<div class="header">
<div class="logo">
<img src="$logo_image_url" alt="logo">
<br />$<project_name>
</div>
<div class="title">$<title></div>
<div class="status"><th1>
|
| ︙ | ︙ |
Changes to skins/xekri/footer.txt.
1 2 3 4 5 6 7 8 9 |
</div>
<div class="footer">
<div class="page-time">
Generated in <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s
</div>
<div class="fossil-info">
Fossil v$release_version $manifest_version
</div>
</div>
| < < | 1 2 3 4 5 6 7 8 9 |
</div>
<div class="footer">
<div class="page-time">
Generated in <th1>puts [expr {([utime]+[stime]+1000)/1000*0.001}]</th1>s
</div>
<div class="fossil-info">
Fossil v$release_version $manifest_version
</div>
</div>
|
Changes to skins/xekri/header.txt.
|
| < < < < < < < < < < | 1 2 3 4 5 6 7 |
<div class="header">
<div class="logo">
<th1>
##
## NOTE: The purpose of this procedure is to take the base URL of the
## Fossil project and return the root of the entire web site using
## the same URI scheme as the base URL (e.g. http or https).
|
| ︙ | ︙ |
Changes to src/style.c.
| ︙ | ︙ | |||
391 392 393 394 395 396 397 398 399 400 401 402 403 404 |
static void image_url_var(const char *zImageName){
char *zVarPrefix = mprintf("%s_image", zImageName);
char *zConfigName = mprintf("%s-image", zImageName);
url_var(zVarPrefix, zConfigName, zImageName);
free(zVarPrefix);
free(zConfigName);
}
/*
** Draw the header.
*/
void style_header(const char *zTitleFormat, ...){
va_list ap;
char *zTitle;
| > > > > > > > > > > > > > > > > > > | 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 |
static void image_url_var(const char *zImageName){
char *zVarPrefix = mprintf("%s_image", zImageName);
char *zConfigName = mprintf("%s-image", zImageName);
url_var(zVarPrefix, zConfigName, zImageName);
free(zVarPrefix);
free(zConfigName);
}
/*
** Default HTML page header text through <body>. If the repository-specific
** header template lacks a <body> tag, then all of the following is
** prepended.
*/
static char zDfltHeader[] =
@ <html>
@ <head>
@ <base href="$baseurl/$current_page" />
@ <title>$<project_name>: $<title></title>
@ <link rel="alternate" type="application/rss+xml" title="RSS Feed"
@ href="$home/timeline.rss" />
@ <link rel="stylesheet" href="$stylesheet_url" type="text/css"
@ media="screen" />
@ </head>
@ <body>
;
/*
** Draw the header.
*/
void style_header(const char *zTitleFormat, ...){
va_list ap;
char *zTitle;
|
| ︙ | ︙ | |||
431 432 433 434 435 436 437 438 439 440 441 442 443 444 |
Th_Store("manifest_date", MANIFEST_DATE);
Th_Store("compiler_name", COMPILER_NAME);
url_var("stylesheet", "css", "style.css");
image_url_var("logo");
image_url_var("background");
if( !login_is_nobody() ){
Th_Store("login", g.zLogin);
}
if( g.thTrace ) Th_Trace("BEGIN_HEADER_SCRIPT<br />\n", -1);
Th_Render(zHeader);
if( g.thTrace ) Th_Trace("END_HEADER<br />\n", -1);
Th_Unstore("title"); /* Avoid collisions with ticket field names */
cgi_destination(CGI_BODY);
g.cgiOutput = 1;
| > > > | 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 |
Th_Store("manifest_date", MANIFEST_DATE);
Th_Store("compiler_name", COMPILER_NAME);
url_var("stylesheet", "css", "style.css");
image_url_var("logo");
image_url_var("background");
if( !login_is_nobody() ){
Th_Store("login", g.zLogin);
}
if( sqlite3_strlike("%<body>%", zHeader, 0)!=0 ){
Th_Render(zDfltHeader);
}
if( g.thTrace ) Th_Trace("BEGIN_HEADER_SCRIPT<br />\n", -1);
Th_Render(zHeader);
if( g.thTrace ) Th_Trace("END_HEADER<br />\n", -1);
Th_Unstore("title"); /* Avoid collisions with ticket field names */
cgi_destination(CGI_BODY);
g.cgiOutput = 1;
|
| ︙ | ︙ | |||
658 659 660 661 662 663 664 665 666 667 668 669 670 671 |
/* Render trace log if TH1 tracing is enabled. */
if( g.thTrace ){
cgi_append_content("<span class=\"thTrace\"><hr />\n", -1);
cgi_append_content(blob_str(&g.thLog), blob_size(&g.thLog));
cgi_append_content("</span>\n", -1);
}
}
/*
** Begin a side-box on the right-hand side of a page. The title and
** the width of the box are given as arguments. The width is usually
** a percentage of total screen width.
*/
| > > > > > | 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 |
/* Render trace log if TH1 tracing is enabled. */
if( g.thTrace ){
cgi_append_content("<span class=\"thTrace\"><hr />\n", -1);
cgi_append_content(blob_str(&g.thLog), blob_size(&g.thLog));
cgi_append_content("</span>\n", -1);
}
/* Add document end mark if it was not in the footer */
if( sqlite3_strlike("%</body>%", zFooter, 0)!=0 ){
@ </body></html>
}
}
/*
** Begin a side-box on the right-hand side of a page. The title and
** the width of the box are given as arguments. The width is usually
** a percentage of total screen width.
*/
|
| ︙ | ︙ |