diff options
Diffstat (limited to 'skins/eagle')
| -rw-r--r-- | skins/eagle/README.md | 4 | ||||
| -rw-r--r-- | skins/eagle/css.txt | 460 | ||||
| -rw-r--r-- | skins/eagle/details.txt | 5 | ||||
| -rw-r--r-- | skins/eagle/footer.txt | 24 | ||||
| -rw-r--r-- | skins/eagle/header.txt | 111 |
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&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'>☰</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> |
