summaryrefslogtreecommitdiff
path: root/skins/eagle
diff options
context:
space:
mode:
Diffstat (limited to 'skins/eagle')
-rw-r--r--skins/eagle/README.md4
-rw-r--r--skins/eagle/css.txt460
-rw-r--r--skins/eagle/details.txt5
-rw-r--r--skins/eagle/footer.txt24
-rw-r--r--skins/eagle/header.txt111
5 files changed, 604 insertions, 0 deletions
diff --git a/skins/eagle/README.md b/skins/eagle/README.md
new file mode 100644
index 0000000..ca4b86c
--- /dev/null
+++ b/skins/eagle/README.md
@@ -0,0 +1,4 @@
+For this skin to look exactly as it was intended to, the **white-foreground**
+setting should be enabled.
+
+This skin was contributed by Joe Mistachkin.
diff --git a/skins/eagle/css.txt b/skins/eagle/css.txt
new file mode 100644
index 0000000..6ccdd3e
--- /dev/null
+++ b/skins/eagle/css.txt
@@ -0,0 +1,460 @@
+/* General settings for the entire page */
+body {
+ margin: 0ex 1ex;
+ padding: 0px;
+ background-color: #485D7B;
+ font-family: sans-serif;
+ color: white;
+}
+
+/* The project logo in the upper left-hand corner of each page */
+div.logo {
+ display: table-cell;
+ text-align: center;
+ vertical-align: bottom;
+ font-weight: bold;
+ color: white;
+ min-width: 50px;
+ white-space: nowrap;
+ position: relative;
+ filter: drop-shadow(2px 4px 6px rgba(0,0,0,0.75));
+ top: 0.5em;
+ right: -0.5em;
+}
+div.logo img{
+ border-radius: 2mm;
+}
+
+/* The page title centered at the top of each page */
+div.title {
+ display: table-cell;
+ font-size: 2em;
+ font-weight: bold;
+ text-align: left;
+ padding: 0 0 0 1em;
+ color: white;
+ vertical-align: bottom;
+ width: 100%;
+}
+
+/* The login status message in the top right-hand corner */
+div.status {
+ display: table-cell;
+ text-align: right;
+ vertical-align: bottom;
+ color: white;
+ font-size: 0.8em;
+ font-weight: bold;
+ white-space: nowrap;
+}
+
+/* The header across the top of the page */
+header {
+ display: table;
+ width: 100%;
+}
+
+/* The main menu bar that appears at the top of the page beneath
+** the header */
+nav.mainmenu {
+ padding: 5px 10px 5px 10px;
+ font-size: 0.9em;
+ font-weight: bold;
+ text-align: center;
+ letter-spacing: 1px;
+ background-color: #76869D;
+ border-top-left-radius: 8px;
+ border-top-right-radius: 8px;
+ color: white;
+}
+
+nav#hbdrop {
+ background-color: #485D7B;
+ border-radius: 0 0 15px 15px;
+ border-left: 0.5em solid #76869d;
+ border-bottom: 1.2em solid #76869d;
+ display: none;
+ width: 98%;
+ position: absolute;
+ z-index: 20;
+}
+
+
+/* The submenu bar that *sometimes* appears below the main menu */
+div.submenu, div.sectionmenu {
+ padding: 3px 10px 3px 0px;
+ font-size: 0.9em;
+ font-weight: bold;
+ text-align: center;
+ background-color: #485D7B;
+ color: white;
+}
+nav.mainmenu a, nav.mainmenu a:visited, div.submenu a, div.submenu a:visited,
+div.sectionmenu>a.button:link, div.sectionmenu>a.button:visited,
+div.submenu label {
+ padding: 3px 10px 3px 10px;
+ color: white;
+ text-decoration: none;
+}
+nav.mainmenu a:hover, div.submenu a:hover, div.sectionmenu>a.button:hover,
+div.submenu label:hover {
+ text-decoration: underline;
+}
+
+/* All page content from the bottom of the menu or submenu down to
+** the footer */
+div.content {
+ padding: 0ex 1ex 0ex 2ex;
+}
+
+/* Some pages have section dividers */
+div.section {
+ margin-bottom: 0px;
+ margin-top: 1em;
+ padding: 1px 1px 1px 1px;
+ font-size: 1.2em;
+ font-weight: bold;
+ background-color: #485D7B;
+ color: white;
+ white-space: nowrap;
+}
+
+/* The "Date" that occurs on the left hand side of timelines */
+div.divider {
+ background: #9DB0CC;
+ color: white;
+ border: 2px white solid;
+ font-size: 1em; font-weight: normal;
+ padding: .25em;
+ margin: .2em 0 .2em 0;
+ float: left;
+ clear: left;
+ white-space: nowrap;
+}
+
+/* The footer at the very bottom of the page */
+footer {
+ clear: both;
+ font-size: 0.8em;
+ margin-top: 12px;
+ padding: 5px 10px 5px 10px;
+ text-align: right;
+ background-color: #485D7B;
+ border-bottom-left-radius: 8px;
+ border-bottom-right-radius: 8px;
+ color: white;
+}
+
+/* Hyperlink colors in the footer */
+a { color: white; }
+a:link { color: white; }
+a:visited { color: white; }
+a:hover { color: #9DB0CC; }
+
+/* verbatim blocks */
+pre.verbatim {
+ background-color: #485D7B;
+ color: white;
+ padding: 0.5em;
+ white-space: pre-wrap;
+}
+
+/* The label/value pairs on (for example) the ci page */
+table.label-value th {
+ vertical-align: top;
+ text-align: right;
+ padding: 0.2ex 2ex;
+}
+
+/* The nomenclature sidebox for branches,.. */
+div.sidebox {
+ float: right;
+ background-color: #485D7B;
+ border-width: medium;
+ border-style: double;
+ margin: 10px;
+}
+
+/* the format for the timeline data table */
+table.timelineTable {
+ cellspacing: 0;
+ border: 0;
+ cellpadding: 0;
+ font-family: "courier new";
+ border-spacing: 0px 2px;
+ /* border-collapse: collapse; */
+}
+
+.timelineSelected {
+ background-color: #7EA2D9;
+}
+.timelineSecondary {
+ background-color: #7EA27E;
+}
+
+/* commit node */
+.tl-node {
+ width: 10px;
+ height: 10px;
+ border: 1px solid #fff;
+ background: #485D7B;
+ cursor: pointer;
+}
+
+/* leaf commit marker */
+.tl-node.leaf:after {
+ content: '';
+ position: absolute;
+ top: 3px;
+ left: 3px;
+ width: 4px;
+ height: 4px;
+ background: #fff;
+}
+
+/* closed leaf commit marker */
+.tl-node.closed-leaf svg {
+ position: absolute;
+ top: 0px;
+ left: 0px;
+ width: 10px;
+ height: 10px;
+ color: #fff;
+}
+
+/* up arrow */
+.tl-arrow.u {
+ margin-top: -1px;
+ border-width: 0 3px;
+ border-bottom: 7px solid #fff;
+}
+
+/* small up arrow */
+.tl-arrow.u.sm {
+ border-bottom: 5px solid #fff;
+}
+
+/* line */
+.tl-line {
+ background: #fff;
+ width: 2px;
+}
+
+/* left merge arrow */
+.tl-arrow.merge.l {
+ border-right: 3px solid #fff;
+}
+
+/* right merge arrow */
+.tl-arrow.merge.r {
+ border-left: 3px solid #fff;
+}
+
+.tl-arrow.cherrypick {
+ height: 1px;
+ border-width: 2px 0;
+}
+.tl-arrow.cherrypick.l {
+ border-right: 3px solid #fff;
+}
+.tl-arrow.cherrypick.r {
+ border-left: 3px solid #fff;
+}
+.tl-line.cherrypick.h {
+ width: 0px;
+ border-top: 1px dashed #fff;
+ border-left: 0px dashed #fff;
+ background: rgba(255,255,255,0);
+}
+.tl-line.cherrypick.v {
+ width: 0px;
+ border-top: 0px dashed #fff;
+ border-left: 1px dashed #fff;
+ background: rgba(255,255,255,0);
+}
+
+
+/* Side-by-side diff */
+table.splitdiff {
+ background-color: #485D7B;
+ font-family: fixed, Dejavu Sans Mono, Monaco, Lucida Console, monospace;
+ font-size: 8pt;
+ border-collapse:collapse;
+ white-space: pre;
+ border: 1px #000 dashed;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+/* format for the layout table, used for the captcha display */
+table.captcha {
+ margin: auto;
+ padding: 10px;
+ border-width: 4px;
+ border-style: double;
+ border-color: white;
+}
+
+/* format for the user list table on the user setup page */
+table.usetupUserList {
+ outline-style: double;
+ outline-width: 1px;
+ outline-color: white;
+ padding: 10px;
+}
+
+/* color for capabilities, inherited by reader */
+span.ueditInheritReader {
+ color: white;
+}
+
+/* format for values on ticket display page */
+td.tktDspValue {
+ text-align: left;
+ vertical-align: top;
+ background-color: #485D7B;
+}
+
+/* Ticket display on timelines */
+td.tktTlOpen {
+ color: #ffc0c0;
+}
+td.tktTlClose {
+ color: #c0c0c0;
+}
+
+/* format for example table cells on the report edit page */
+td.rpteditex {
+ border-width: thin;
+ border-color: white;
+ border-style: solid;
+}
+
+/* List of files in a timeline */
+ul.filelist {
+ margin-top: 3px;
+ line-height: 100%;
+}
+
+/* side-by-side diff display */
+div.splitdiff {
+ font-family: monospace;
+ font-size: smaller;
+ white-space: pre;
+}
+
+/* context diff display */
+table.udiff {
+ font-family: monospace;
+ white-space: pre;
+}
+
+/* added code in a diff */
+td.difftxt ins > ins, td.diffln ins {
+ background-color: rgb(100, 200, 100);
+}
+td.difftxt ins {
+ background-color: inherit;
+}
+
+/* deleted in a diff */
+td.difftxt del > del, td.diffln del {
+ background-color: rgb(230, 110, 110);
+}
+td.difftxt del {
+ background-color: inherit;
+}
+tr.diffskip.jchunk {
+ background-color: #7EA2D9;
+}
+tr.diffskip > td.chunkctrl .jcbutton{
+ color: white;
+ background-color: #485D7B;
+}
+
+.fileage tr:hover {
+ background-color: #7EA2D9;
+}
+
+span.modpending {
+ color: #c0c0c0;
+ font-style: italic;
+}
+span.forum_author {
+ color: white;
+ font-size: 75%;
+}
+span.forum_age {
+ color: white;
+ font-size: 85%;
+}
+span.forum_npost {
+ color: white;
+ font-size: 75%;
+}
+.debug {
+ background-color: #808080;
+ border: 2px solid white;
+}
+div.forumEdit {
+ border: 1px solid white;
+}
+div.forumTimeline {
+ border: 1px solid white;
+}
+div.forumTime {
+ border: 1px solid white;
+}
+div.forumSel {
+ background-color: #808080;
+}
+div.forumObs {
+ color: white;
+}
+body.forum .forumPosts.fileage a:visited {
+ color: rgba(176,176,176,1.0);
+}
+
+.fileage td {
+ font-family: "courier new";
+}
+
+div.filetreeline:hover {
+ background-color: #7EA2D9;
+}
+
+table.numbered-lines td.line-numbers span.selected-line {
+ background-color: #7EA2D9;
+}
+
+.statistics-report-graph-line {
+ border: 2px solid #7EA2D9;
+ background-color: #7EA2D9;
+}
+.statistics-report-graph-extra {
+ border: 2px solid #7EA2D9;
+ border-left-style: none;
+}
+
+.timelineModernCell[id], .timelineColumnarCell[id], .timelineDetailCell[id] {
+ background-color: #455978;
+}
+
+.capsumOff {
+ background-color: #bbbbbb;
+}
+.capsumRead {
+ background-color: #006d00;
+}
+.capsumWrite {
+ background-color: #e5e500;
+}
+
+body.branch .brlist > table > tbody > tr:hover:not(.selected),
+body.branch .brlist > table > tbody > tr.selected {
+ background-color: #7EA2D9;
+}
+
+p.noMoreShun {
+ color: #e5e500;
+}
diff --git a/skins/eagle/details.txt b/skins/eagle/details.txt
new file mode 100644
index 0000000..14eac9c
--- /dev/null
+++ b/skins/eagle/details.txt
@@ -0,0 +1,5 @@
+timeline-arrowheads: 1
+timeline-circle-nodes: 0
+timeline-color-graph-lines: 0
+white-foreground: 1
+pikchr-background: 0x485d7b
diff --git a/skins/eagle/footer.txt b/skins/eagle/footer.txt
new file mode 100644
index 0000000..1db1895
--- /dev/null
+++ b/skins/eagle/footer.txt
@@ -0,0 +1,24 @@
+<footer>
+ <th1>
+ proc getTclVersion {} {
+ if {[catch {tclEval info patchlevel} tclVersion] == 0} {
+ return "<a href=\"https://www.tcl.tk/\">Tcl</a> version $tclVersion"
+ }
+ return ""
+ }
+ proc getVersion { version } {
+ set length [string length $version]
+ return [string range $version 1 [expr {$length - 2}]]
+ }
+ set version [getVersion $manifest_version]
+ set tclVersion [getTclVersion]
+ set fossilUrl https://fossil-scm.org
+ set fossilDate [string range $manifest_date 0 9]T[string range $manifest_date 11 end]
+ </th1>
+ 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&amp;y=ci">$manifest_date</a>
+</footer>
diff --git a/skins/eagle/header.txt b/skins/eagle/header.txt
new file mode 100644
index 0000000..fc04695
--- /dev/null
+++ b/skins/eagle/header.txt
@@ -0,0 +1,111 @@
+<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).
+ ##
+ proc getLogoUrl { baseurl } {
+ set idx(first) [string first // $baseurl]
+ if {$idx(first) != -1} {
+ ##
+ ## NOTE: Skip second slash.
+ ##
+ set idx(first+1) [expr {$idx(first) + 2}]
+ ##
+ ## NOTE: (part 1) The [string first] command does NOT actually
+ ## support the optional startIndex argument as specified
+ ## in the TH1 support manual; therefore, we fake it by
+ ## using the [string range] command and then adding the
+ ## necessary offset to the resulting index manually
+ ## (below). In Tcl, we could use the following instead:
+ ##
+ ## set idx(next) [string first / $baseurl $idx(first+1)]
+ ##
+ set idx(nextRange) [string range $baseurl $idx(first+1) end]
+ set idx(next) [string first / $idx(nextRange)]
+ if {$idx(next) != -1} {
+ ##
+ ## NOTE: (part 2) Add the necessary offset to the result of
+ ## the search for the next slash (i.e. the one after
+ ## the initial search for the two slashes).
+ ##
+ set idx(next) [expr {$idx(next) + $idx(first+1)}]
+ ##
+ ## NOTE: Back up one character from the next slash.
+ ##
+ set idx(next-1) [expr {$idx(next) - 1}]
+ ##
+ ## NOTE: Extract the URI scheme and host from the base URL.
+ ##
+ set scheme [string range $baseurl 0 $idx(first)]
+ set host [string range $baseurl $idx(first+1) $idx(next-1)]
+ ##
+ ## NOTE: Try to stay in SSL mode if we are there now.
+ ##
+ if {[string compare $scheme http:/] == 0} {
+ set scheme http://
+ } else {
+ set scheme https://
+ }
+ set logourl $scheme$host/
+ } else {
+ set logourl $baseurl
+ }
+ } else {
+ set logourl $baseurl
+ }
+ return $logourl
+ }
+ if {1} {
+ # Link logo to the top of the current domain
+ set logourl [getLogoUrl $baseurl]
+ } else {
+ # Link logo to the top of the current repo
+ set logourl $baseurl
+ }
+ </th1>
+ <a href="$logourl">
+ <img src="$logo_image_url" border="0" alt="$<project_name>">
+ </a>
+ </div>
+ <div class="title">$<title></div>
+ <div class="status"><nobr><th1>
+ if {[info exists login]} {
+ puts "Logged in as $login"
+ } else {
+ puts "Not logged in"
+ }
+ </th1></nobr><small><div id="clock"></div></small></div>
+</header>
+<th1>html "<script nonce='$nonce'>"</th1>
+ (function updateClock(){
+ var e = document.getElementById("clock");
+ if(!e) return;
+ if(!updateClock.fmt){
+ updateClock.fmt = function(n){
+ return n < 10 ? '0' + n : n;
+ };
+ }
+ var d = new Date();
+ e.innerHTML = d.getUTCFullYear()+ '-' +
+ updateClock.fmt(d.getUTCMonth() + 1) + '-' +
+ updateClock.fmt(d.getUTCDate()) + ' ' +
+ updateClock.fmt(d.getUTCHours()) + ':' +
+ updateClock.fmt(d.getUTCMinutes());
+ setTimeout(updateClock,(60-d.getUTCSeconds())*1000);
+ })();
+</script>
+<nav class="mainmenu" title="Main Menu">
+ <th1>
+ html "<a id='hbbtn' href='$home/sitemap' aria-label='Site Map'>&#9776;</a>\n"
+ builtin_request_js hbmenu.js
+ foreach {name url expr class} $mainmenu {
+ if {![capexpr $expr]} continue
+ if {[string match /* $url]} {set url $home$url}
+ html "<a href='$url' class='$class'>$name</a>\n"
+ }
+ </th1>
+</nav>
+<nav id="hbdrop" class='hbdrop' title="sitemap"></nav>