"""
This file provides variables with HTML. It is automatically generated by running bash gen_html.sh.
Do not edit directly.
"""
mailpage="""
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{subject} - {project} bug tracker</title>
<link href="/style" rel="stylesheet">
</head>
<body>
<nav class="formattedheader">
<span class="left">
<a href="/{project}/">{project}</a>/<a href="/{project}/{bug}">{bug}</a>/{pagenr}
{jumptos}
</span>
<span class="right">
bugtype: {bugtype} | status: <span id="status" class="status-{status}">{status}</span>
</span>
</nav>
<h1 class="subject">
<span class="bugnr">#{bug}</span> {subject}
</h1>
<article class="main">
<p>
<a href="mailto:{emailaddr}">Click to comment via email</a> or <a href="mailto:{subscribe}">subscribe</a>
</p>
<p class="center-text">{pageswitcher}</p>
{content}
</article>
<p class="center-text">{pageswitcher}</p>
</body>
</html>
"""
notfound="""
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title></title>
<link href="css/style.css" rel="stylesheet">
</head>
<body>
<h1>Not found</h1>
<p>Not found: {path}</p>
</body>
</html>
"""
projectpage="""
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>{project} bug tracker</title>
<link href="/style" rel="stylesheet">
</head>
<body>
<div id="skiptocontent">
<a href="#searchbar-target">Skip to search</a>
<a href="#results-target">Skip to issue listing</a>
</div>
<nav class="formattedheader">
<span class="left">
<a href="/{project}/">{project}</a>
</span>
</nav>
<h1 class="trackerpage-header">
{project}
</h1>
<article class="usage">
Welcome to the {project} bug tracker! To submit an issue,
<a href="mailto:{emailaddr}">send an email containing your bug to {emailaddr}</a>.<br>
To submit a patch, send your email using <code><a href="https://git-send-email.io">git send-email</a></code>.<br>
Or <a href="mailto:{emailaddr}?subject=%5BDISCUSSION%5D%20%3Creplace%20me%3E">start a discussion</a>.<br>
Also, if you want to receive emails for new items, <a href="mailto:{emailaddr}?subject=SUBSCRIBE">subscribe!</a>.
</article>
<div class="projectpage">
<div id="left">
<article id="readme">
{readme}
</article>
<article id="stats">
<h3>Tracker stats:</h3>
<table>
<tr>
<td>Mail today:</td><td>{mailtoday}</td>
</tr>
<tr>
<td>Total mail:</td><td>{mailtotal}</td>
</tr>
<tr>
<td>Bugs:</td><td>{bugstotal}</td>
</tr>
<tr>
<td>| open:</td><td>{bugsopen}</td>
</tr>
<tr>
<td>| closed:</td><td>{bugsclosed}</td>
</tr>
<tr>
<td>Patches:</td><td>{patchestotal}</td>
</tr>
<tr>
<td>| open:</td><td>{patchesopen}</td>
</tr>
<tr>
<td>| closed:</td><td>{patchesclosed}</td>
</tr>
<tr>
<td>| rejected:</td><td>{patchesrejected}</td>
</tr>
</table>
</article>
</div>
<div id="right">
<form id="bugsearch">
<div id="searchbar">
<input type="text" name="subject" value="{filter_subject}" placeholder="<filter by subject>" id="searchbar-target">
<input type="submit" value="Find!">
</div>
<div class="split5050">
Type:<br>
<input type="checkbox" name="bug" {filter_bug} id="bug"><label for="bug">bugs</label>
<input type="checkbox" name="patch" {filter_patch} id="patch"><label for="patch">patches</label>
<input type="checkbox" name="discus" {filter_discus} id="discus"><label for="discus">discussions</label>
</div>
<div class="split5050">
Status:<br>
<input type="checkbox" name="open" {filter_open} id="open"><label for="open">open</label>
<input type="checkbox" name="closed" {filter_closed} id="closed"><label for="closed">closed</label>
<input type="checkbox" name="reject" {filter_reject} id="reject"><label for="reject">rejected</label>
<br>
<input type="checkbox" name="upstrm" {filter_upstrm} id="upstrm"><label for="upstrm">upstream</label>
<input type="checkbox" name="unconf" {filter_unconf} id="unconf"><label for="unconf">unconfirmed</label>
</div>
</form>
<article>
<table id="results">
<tr> <th id="results-target">#</th> <th>Subject</th> <th>Status</th> <th>Type</th></tr>
{maillist}
</table>
</article>
</div>
</div>
</body>
</html>
"""
style_css="""
:root {
font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
font-size: 1.0em;
--colour: #000000;
--primary-background: #fafafa;
--secondary-background: #dadada;
--tertiary-background: #bbbbbb;
--background-inverted: #101010;
--colour-inverted: #cacaca;
--link-colour: #3344dd;
--link-colour-secondary: #202FBC; /* link colours for on secondary bg */
--accent: #ff8100;
}
@media (prefers-color-scheme: dark) {
:root {
--colour: #fafafa;
--primary-background: #202020;
--secondary-background: #404040;
--tertiary-background: #5f5f5f;
--link-colour: #2491FF;
--link-colour-secondary: #61B0FF;
}
}
:root {
background-color: var(--primary-background);
color: var(--colour);
}
a, a:visited {
color: var(--link-colour);
}
h1, h2 {
color: var(--accent);
margin-left: 1em;
}
h1 {
font-size: 1.5em;
border-bottom: 1px solid var(--tertiary-background);
}
.formattedheader {
background-color: var(--tertiary-background);
padding-left: 10px;
padding-right: 10px;
font-family: monospace;
font-size: 1.2em;
padding: 2px;
.right {
float: right;
}
position: sticky;
top: 0;
--link-colour: var(--link-colour-secondary);
}
.status-OPEN {
background-color: #00ff00;
color: #000;
}
.status-CLOSED {
background-color: #303030;
color: #fafafa;
}
.status-UNCONF {
background-color: #ff8100;
}
.status-REJECT {
background-color: #ff0000;
}
.status-UPSTRM {
background-color: #ac00fd;
}
.email {
font-family: monospace;
font-size: 1.2em;
background-color: var(--secondary-background);
--link-colour: var(--link-colour-secondary);
padding: 1px;
padding-left: 2em;
padding-right: 2em;
}
.highlight {
overflow-y: scroll;
white-space: nowrap;
}
.emailheader {
margin-top: 15px;
border-top: 2px solid var(--tertiary-background);
padding-top: 5px;
}
.bugdesc {
padding: 5px;
border: 2px solid var(--accent);
}
.bugnr {
color: var(--accent);
}
.usage {
padding: 1em;
background-color: var(--secondary-background);
--link-colour: var(--link-colour-secondary);
}
.projectpage {
#left, #right {
float: left;
margin: 1.5%;
box-sizing: border-box;
}
#left {
width: 27%;
#readme, #stats {
padding: 2em;
background-color: var(--secondary-background);
--link-colour: var(--link-colour-secondary);
margin-bottom: 5em;
}
#stats {
padding-top: 5px;
table tr {
border-bottom: 3px solid var(--accent);
td {
padding-right: 1em;
}
}
}
}
#right {
width: 67%;
table {
margin-top: 1em;
width: 100%;
font-family: monospace;
font-size: 1.3em;
tr th {
color: var(--accent);
}
tr #id {
min-width: 3em;
}
tr #subject {
width: 100%;
a {
display: inline-block;
width: 100%;
}
}
tr #status, tr #type {
min-width: 4em;
}
}
table tr:nth-child(2n) {
background-color: var(--primary-background);
}
table tr:nth-child(2n+1) {
background-color: var(--secondary-background);
--link-colour: var(--link-colour-secondary);
}
}
@media screen and (max-width: 859px) {
#left, #right {
width: unset;
margin-left: auto;
margin-right: auto;
float: none;
}
#left {
#readme, #stats {
width: 48%;
margin: 1%;
box-sizing: border-box;
margin-bottom: 2em;
}
#readme {
float: left;
}
#stats {
float: right;
}
}
}
@media screen and (max-width: 489px) {
#left #readme, #left #stats {
width: inherit;
float: none;
margin: inherit;
}
#right {
margin-top: 1em;
}
}
form {
#searchbar {
display: flex;
width: 100%;
input[type="text"] {
flex-grow: 1;
margin-right: 5px;
}
}
.split5050 {
float: left;
margin-right: 15px;
}
}
}
.center-text {
text-align: center;
}
.highlight {
/* python3 -c "from pygments.formattters import HtmlFormatter; print(HtmlFormatter(style="monokai").get_style_defs())" */
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.hll { background-color: #49483e }
.c { color: #959077 } /* Comment */
.err { color: #ED007E; background-color: #1E0010 } /* Error */
.esc { color: #F8F8F2 } /* Escape */
.g { color: #F8F8F2 } /* Generic */
.k { color: #66D9EF } /* Keyword */
.l { color: #AE81FF } /* Literal */
.n { color: #F8F8F2 } /* Name */
.o { color: #FF4689 } /* Operator */
.x { color: #F8F8F2 } /* Other */
.p { color: #F8F8F2 } /* Punctuation */
.ch { color: #959077 } /* Comment.Hashbang */
.cm { color: #959077 } /* Comment.Multiline */
.cp { color: #959077 } /* Comment.Preproc */
.cpf { color: #959077 } /* Comment.PreprocFile */
.c1 { color: #959077 } /* Comment.Single */
.cs { color: #959077 } /* Comment.Special */
.gd { color: #FF4689 } /* Generic.Deleted */
.ge { color: #F8F8F2; font-style: italic } /* Generic.Emph */
.ges { color: #F8F8F2; font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.gr { color: #F8F8F2 } /* Generic.Error */
.gh { color: #F8F8F2 } /* Generic.Heading */
.gi { color: #A6E22E } /* Generic.Inserted */
.go { color: #66D9EF } /* Generic.Output */
.gp { color: #FF4689; font-weight: bold } /* Generic.Prompt */
.gs { color: #F8F8F2; font-weight: bold } /* Generic.Strong */
.gu { color: #959077 } /* Generic.Subheading */
.gt { color: #F8F8F2 } /* Generic.Traceback */
.kc { color: #66D9EF } /* Keyword.Constant */
.kd { color: #66D9EF } /* Keyword.Declaration */
.kn { color: #FF4689 } /* Keyword.Namespace */
.kp { color: #66D9EF } /* Keyword.Pseudo */
.kr { color: #66D9EF } /* Keyword.Reserved */
.kt { color: #66D9EF } /* Keyword.Type */
.ld { color: #E6DB74 } /* Literal.Date */
.m { color: #AE81FF } /* Literal.Number */
.s { color: #E6DB74 } /* Literal.String */
.na { color: #A6E22E } /* Name.Attribute */
.nb { color: #F8F8F2 } /* Name.Builtin */
.nc { color: #A6E22E } /* Name.Class */
.no { color: #66D9EF } /* Name.Constant */
.nd { color: #A6E22E } /* Name.Decorator */
.ni { color: #F8F8F2 } /* Name.Entity */
.ne { color: #A6E22E } /* Name.Exception */
.nf { color: #A6E22E } /* Name.Function */
.nl { color: #F8F8F2 } /* Name.Label */
.nn { color: #F8F8F2 } /* Name.Namespace */
.nx { color: #A6E22E } /* Name.Other */
.py { color: #F8F8F2 } /* Name.Property */
.nt { color: #FF4689 } /* Name.Tag */
.nv { color: #F8F8F2 } /* Name.Variable */
.ow { color: #FF4689 } /* Operator.Word */
.pm { color: #F8F8F2 } /* Punctuation.Marker */
.w { color: #F8F8F2 } /* Text.Whitespace */
.mb { color: #AE81FF } /* Literal.Number.Bin */
.mf { color: #AE81FF } /* Literal.Number.Float */
.mh { color: #AE81FF } /* Literal.Number.Hex */
.mi { color: #AE81FF } /* Literal.Number.Integer */
.mo { color: #AE81FF } /* Literal.Number.Oct */
.sa { color: #E6DB74 } /* Literal.String.Affix */
.sb { color: #E6DB74 } /* Literal.String.Backtick */
.sc { color: #E6DB74 } /* Literal.String.Char */
.dl { color: #E6DB74 } /* Literal.String.Delimiter */
.sd { color: #E6DB74 } /* Literal.String.Doc */
.s2 { color: #E6DB74 } /* Literal.String.Double */
.se { color: #AE81FF } /* Literal.String.Escape */
.sh { color: #E6DB74 } /* Literal.String.Heredoc */
.si { color: #E6DB74 } /* Literal.String.Interpol */
.sx { color: #E6DB74 } /* Literal.String.Other */
.sr { color: #E6DB74 } /* Literal.String.Regex */
.s1 { color: #E6DB74 } /* Literal.String.Single */
.ss { color: #E6DB74 } /* Literal.String.Symbol */
.bp { color: #F8F8F2 } /* Name.Builtin.Pseudo */
.fm { color: #A6E22E } /* Name.Function.Magic */
.vc { color: #F8F8F2 } /* Name.Variable.Class */
.vg { color: #F8F8F2 } /* Name.Variable.Global */
.vi { color: #F8F8F2 } /* Name.Variable.Instance */
.vm { color: #F8F8F2 } /* Name.Variable.Magic */
.il { color: #AE81FF } /* Literal.Number.Integer.Long */
}
/* credits to webaim.org's css for the base */
#skiptocontent a {
padding:6px;
position: absolute;
top:-40px;
color: var(--background-inverted);
border-right:1px solid white;
border-bottom:1px solid white;
background: var(--colour-inverted);
-webkit-transition: top .5s ease-out;
transition: top .5s ease-out;
z-index: 100;
}
#skiptocontent a:focus {
position:absolute;
top:0px;
outline-color:transparent;
-webkit-transition: top .05s ease-in;
transition: top .05s ease-in;
}
@media (prefers-reduced-motion: reduce) {
#skiptocontent a {
transition-duration: 0.001ms !important;
}
}
"""