Software /
code /
mercurial-template
Changeset
0:2f78b9100113 draft
Init.
author | Trần H. Trung <xmpp:trần.h.trung@trung.fun> |
---|---|
date | Mon, 10 Jul 2023 23:41:04 +0700 |
parents | |
children | 1:7dde48d11103 |
files | README.md bookmarks.tmpl branches.tmpl changeset.tmpl diffstat.tmpl error.tmpl fileannotate.tmpl filecomparison.tmpl filediff.tmpl filelog.tmpl filelogentry.tmpl filerevision.tmpl footer.tmpl graph.tmpl graphentry.tmpl header.tmpl help.tmpl helptopics.tmpl index.tmpl manifest.tmpl map notfound.tmpl search.tmpl shortlog.tmpl shortlogentry.tmpl style-hg.css tags.tmpl |
diffstat | 27 files changed, 2274 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/README.md Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,7 @@ +# Mercurial Template + +This template is what Mercurial is using to serve https://soft.trung.fun/code + +It is based on paper. + +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/bookmarks.tmpl Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,60 @@ +{header} +<title>Bookmarks {repo|escape}</title> +<link rel="alternate" type="application/atom+xml" + href="{url|urlescape}atom-bookmarks" title="Atom feed for {repo|escape}: bookmarks" /> +<link rel="alternate" type="application/rss+xml" + href="{url|urlescape}rss-bookmarks" title="RSS feed for {repo|escape}: bookmarks" /> +</head> +<body> + <div class="main"> + <div class="dd-hover menu"> + <div class="dd-content"> + <hr /> + <h6>{repo|escape}</h6> + <ul> + <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">log</a></li> + <li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li> + <li class="active">Bookmarks</li> + <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li> + </ul> + <hr /> + <ul> + <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li> + </ul> + <div class="atom-logo"> + <a href="{url|urlescape}rss-bookmarks" title="subscribe to RSS feed"> + RSS: <img class="rss-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="RSS feed" /> + </a> + <a href="{url|urlescape}atom-bookmarks" title="subscribe to Atom feed"> + Atom: <img class="atom-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="Atom feed" /> + </a> + </div> + </div> + {logo} + </div> + <main> + <hr /> + <h1 class="breadcrumb"><a href="/">Software</a> {pathdef%breadcrumb}</h1> + + {searchform} + + <h2>Bookmarks</h3> + <table> + <thead> + <tr> + <th>bookmark</th> + <th>node</th> + </tr> + </thead> + <tbody class="stripes2"> + {entries%bookmarkentry} + </tbody> + </table> + <p></p> + <hr /> + </main> + </div> + {logo} + {banner} +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/branches.tmpl Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,60 @@ +{header} +<title>Branches {repo|escape}</title> + <link rel="alternate" type="application/atom+xml" + href="{url|urlescape}atom-branches" title="Atom feed for {repo|escape}: branches" /> + <link rel="alternate" type="application/rss+xml" + href="{url|urlescape}rss-branches" title="RSS feed for {repo|escape}: branches" /> +</head> +<body> + <div class="main"> + <div class="dd-hover menu"> + <div class="dd-content"> + <hr /> + <h6>{repo|escape}</h6> + <ul> + <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">log</a></li> + <li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li> + <li class="active">Branches</li> + </ul> + <hr /> + <ul> + <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li> + </ul> + <div class="atom-logo"> + <a href="{url|urlescape}rss-bookmarks" title="subscribe to RSS feed"> + RSS: <img class="rss-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="RSS feed" /> + </a> + <a href="{url|urlescape}atom-branches" title="subscribe to Atom feed"> + Atom: <img class="atom-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="Atom feed" /> + </a> + </div> + </div> + {logo} + </div> + <main> + <hr /> + <h1 class="breadcrumb"><a href="/">Software</a> {pathdef%breadcrumb}</h1> + + {searchform} + + <h2>Branches</h3> + <table> + <thead> + <tr> + <th>branch</th> + <th>node</th> + </tr> + </thead> + <tbody class="stripes2"> + {entries % branchentry} + </tbody> + </table> + <p></p> + <hr /> + </main> + </div> + {logo} + {banner} +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/changeset.tmpl Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,101 @@ +{header} +<title>Changeset {repo|escape}: {node|short}</title> +</head> +<body> + <div class="main"> + <div class="dd-hover menu"> + <div class="dd-content"> + <hr /> + <h6>{repo|escape}</h6> + <ul> + <li><a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">log</a></li> + <li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li> + <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li> + </ul> + <hr /> + <h6>{symrev}</h6> + <ul> + <li><a href="{url|urlescape}file/{symrev}{sessionvars%urlparameter}">browse</a></li> + <li class="active">Changeset</li> + <li><a href="{url|urlescape}raw-rev/{symrev}{sessionvars%urlparameter}">raw</a></li> + </ul> + <ul> + {archives%archiveentry} + </ul> + <hr /> + <ul> + <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li> + </ul> + </div> + {logo} + </div> + <main> + <hr /> + <h1 class="breadcrumb"><a href="/">Software</a> {pathdef%breadcrumb}</h1> + + {searchform} + + <h2>Changeset</h2> + <h4>{rev}:<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> + {alltags} + </h4> + <div class="description">{desc|strip|escape|websub|nonempty}</div> + + <table id="changesetEntry"> + <tr> + <th class="author">author</th> + <td class="author">{author|obfuscate}</td> + </tr> + <tr> + <th class="date">date</th> + <td class="date age">{date|rfc822date}</td> + </tr> + {if(obsolete, '<tr> + <th>obsolete</th> + <td>{join(succsandmarkers%obsfateentry, '<br>\n')}</td> + </tr>')} + {if(instabilities, '<tr> + <th>unstable</th> + <td>{join(whyunstable%whyunstableentry, '<br>\n')}</td> + </tr>')} + <tr> + <th class="author">parents</th> + <td class="author">{ifeq(count(parent), '2', parent%changesetparentdiff, parent%changesetparent)}</td> + </tr> + <tr> + <th class="author">children</th> + <td class="author">{child%changesetchild}</td> + </tr> + <tr> + <th class="files">files</th> + <td class="files">{files}</td> + </tr> + <tr> + <th class="diffstat">diffstat</th> + <td class="diffstat"> + {diffsummary} + <a id="diffstatexpand" class="diffstattoggle" href="#">[<tt>+</tt>]</a> + <div id="diffstatdetails" style="display:none;"> + <a class="diffstattoggle" href="#">[<tt>-</tt>]</a> + <table class="diffstat-table stripes2">{diffstat}</table> + </div> + </td> + </tr> + </table> + + <div class="overflow"> + <div class="sourcefirst linewraptoggle">line wrap: <a class="linewraplink" href="#">on</a></div> + <div class="sourcefirst"> line diff</div> + <div class="stripes2 diffblocks"> + {diff} + </div> + </div> + <p></p> + <hr /> + </main> + </div> + {logo} + {banner} +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/diffstat.tmpl Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,8 @@ + <tr> + <td class="diffstat-file"><a href="#l{fileno}.1">{file|escape}</a></td> + <td class="diffstat-total" align="right">{total}</td> + <td class="diffstat-graph"> + <span class="diffstat-add" style="width:{addpct}%;"> </span> + <span class="diffstat-remove" style="width:{removepct}%;"> </span> + </td> + </tr>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/error.tmpl Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,39 @@ +{header} +<title>{repo|escape}: error</title> +</head> +<body> + + <div class="main"> + <div class="menu"> + <ul> + <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">log</a></li> + <li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li> + <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li> + </ul> + <ul> + <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li> + </ul> + {logo} + </div> + + <main> + <h1 class="breadcrumb"><a href="/">Software</a> {pathdef%breadcrumb}</h1> + + {searchform} + + <h2>error</h3> + <div class="description"> + <p> + An error occurred while processing your request: + </p> + <p> + {error|escape} + </p> + </div> + </main> + </div> + {banner} + +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fileannotate.tmpl Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,98 @@ +{header} +<title>Annotate {repo|escape}: {file|escape}</title> +</head> +<body> + <div class="main"> + <div class="dd-hover menu"> + <div class="dd-content"> + <hr /> + <h6>{repo|escape}</h6> + <ul> + <li><a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">log</a></li> + <li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li> + <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li> + </ul> + <hr /> + <h6>{symrev}</h6> + <ul> + <li><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">browse</a></li> + <li><a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a></li> + </ul> + <hr /> + <h6>{file|escape}</h6> + <ul> + <li class="active">Annotate</li> + <li><a href="{url|urlescape}comparison/{symrev}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li> + <li><a href="{url|urlescape}diff/{symrev}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li> + </ul> + <ul> + <li><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a></li> + <li><a href="{url|urlescape}raw-file/{symrev}/{file|urlescape}">raw</a></li> + <li><a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">log</a></li> + <li><a href="{url|urlescape}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li> + </ul> + <hr /> + <ul> + <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li> + </ul> + </div> + {logo} + </div> + + <main> + <hr /> + <h1 class="breadcrumb"><a href="/">Software</a> {pathdef%breadcrumb}</h1> + + {searchform} + + <h2>Annotate</h2> + <h4>{file|escape} @ {rev}:<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> + {alltags} + </h4> + <div class="description">{desc|strip|escape|websub|nonempty}</div> + + <table id="changesetEntry"> + <tr> + <th class="author">author</th> + <td class="author">{author|obfuscate}</td> + </tr> + <tr> + <th class="date">date</th> + <td class="date age">{date|rfc822date}</td> + </tr> + {parent%fileannotateparent} + {child%fileannotatechild} + </table> + + {diffoptsform} + + <script type="text/javascript"{if(nonce, ' nonce="{nonce}"')}> + renderDiffOptsForm(); + </script> + + <div class="overflow"> + <table> + <thead> + <tr> + <th class="annotate">rev</th> + <th class="line"> line source</th> + </tr> + </thead> + <tbody class="stripes2 sourcelines" + data-logurl="{url|urlescape}log/{symrev}/{file|urlescape}" + data-selectabletag="TR" + data-ishead="{ishead}"> + {annotate%annotateline} + </tbody> + </table> + </div> + <script type="text/javascript" src="{staticurl|urlescape}followlines.js"></script> + <p></p> + <hr /> + </main> + </div> + {logo} + {banner} +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filecomparison.tmpl Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,105 @@ +{header} +<title>Comparison {repo|escape}: {file|escape}</title> +</head> +<body> +<div class="main"> + <div class="dd-hover menu"> + <div class="dd-content"> + <hr /> + <h6>{repo|escape}</h6> + <ul> + <li><a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">log</a></li> + <li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li> + <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li> + </ul> + <hr /> + <h6>{symrev}</h6> + <ul> + <li><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">browse</a></li> + <li><a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a></li> + </ul> + <hr /> + <h6>{file|escape}</h6> + <ul> + <li><a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li> + <li class="active">Comparison</li> + <li><a href="{url|urlescape}diff/{symrev}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li> + </ul> + <ul> + <li><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a></li> + <li><a href="{url|urlescape}raw-file/{symrev}/{file|urlescape}">raw</a></li> + <li><a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">log</a></li> + <li><a href="{url|urlescape}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li> + </ul> + <hr /> + <ul> + <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li> + </ul> + </div> + {logo} + </div> + +<main> +<hr /> +<h1 class="breadcrumb"><a href="/">Software</a> {pathdef%breadcrumb}</h1> + +{searchform} + +<h2>Comparison</h2> +<h4>{file|escape} @ {rev}:<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> +{alltags} +</h4> +<div class="description">{desc|strip|escape|websub|nonempty}</div> + +<table id="changesetEntry"> +<tr> +<th>author</th> +<td>{author|obfuscate}</td> +</tr> +<tr> +<th>date</th> +<td class="date age">{date|rfc822date}</td> +</tr> +{parent%filecomparisonparent} +{child%filecomparisonchild} +<!-- +<tr> +<th>parents</th> +<td>{parent%filerevparent}</td> +</tr> +<tr> +<th>children</th> +<td>{child%filerevchild}</td> +</tr> +--> +</table> + +<div class="overflow"> +<div class="sourcefirst"> comparison</div> +<div class="legend"> +<span class="legendinfo equal">equal</span> +<span class="legendinfo delete">deleted</span> +<span class="legendinfo insert">inserted</span> +<span class="legendinfo replace">replaced</span> +</div> + +<table> +<thead class="header"> +<tr> +<th>{leftrev}:{leftnode|short}</th> +<th>{rightrev}:{rightnode|short}</th> +</tr> +</thead> +{comparison} +</table> + +</div> +<p></p> +<hr /> +</main> +</div> +{logo} +{banner} +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filediff.tmpl Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,82 @@ +{header} +<title>Diff {repo|escape}: {file|escape}</title> +</head> +<body> +<div class="main"> + <div class="dd-hover menu"> + <div class="dd-content"> + <hr /> + <h6>{repo|escape}</h6> + <ul> + <li><a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">log</a></li> + <li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li> + <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li> + </ul> + <hr /> + <h6>{symrev}</h6> + <ul> + <li><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">browse</a></li> + <li><a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a></li> + </ul> + <hr /> + <h6>{file|escape}</h6> + <ul> + <li><a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li> + <li><a href="{url|urlescape}comparison/{symrev}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li> + <li class="active">Diff</li> + </ul> + <ul> + <li><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a></li> + <li><a href="{url|urlescape}raw-file/{symrev}/{file|urlescape}">raw</a></li> + <li><a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">log</a></li> + <li><a href="{url|urlescape}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li> + </ul> + <hr /> + <ul> + <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li> + </ul> + </div> + {logo} + </div> + +<main> +<hr /> +<h1 class="breadcrumb"><a href="/">Software</a> {pathdef%breadcrumb}</h1> + +{searchform} + +<h2>Diff</h2> +<h4>{file|escape} @ {rev}:<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> + {alltags} +</h4> +<div class="description">{desc|strip|escape|websub|nonempty}</div> + +<table id="changesetEntry"> +<tr> + <th>author</th> + <td>{author|obfuscate}</td> +</tr> +<tr> + <th>date</th> + <td class="date age">{date|rfc822date}</td> +</tr> +{parent%filediffparent} +{child%filediffchild} +</table> + + <div class="overflow"> + <div class="sourcefirst linewraptoggle">line wrap: <a class="linewraplink" href="#">on</a></div> + <div class="sourcefirst"> line diff</div> + <div class="stripes2 diffblocks"> + {diff} + </div> + </div> + <p></p> + <hr /> + </main> +</div> +{logo} +{banner} +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filelog.tmpl Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,98 @@ +{header} +<title>File Log {repo|escape}: {file|escape}</title> +<link rel="alternate" type="application/atom+xml" + href="{url|urlescape}atom-log/tip/{file|urlescape}" title="Atom feed for {repo|escape}:{file}" /> +<link rel="alternate" type="application/rss+xml" + href="{url|urlescape}rss-log/tip/{file|urlescape}" title="RSS feed for {repo|escape}:{file}" /> +</head> +<body> + <div class="main"> + <div class="dd-hover menu"> + <div class="dd-content"> + <hr /> + <h6>{repo|escape}</h6> + <ul> + <li><a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">log</a></li> + <li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li> + <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li> + </ul> + <hr /> + <h6>{symrev}</h6> + <ul> + <li><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">browse</a></li> + <li><a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a></li> + </ul> + <hr /> + <h6>{file|escape}</h6> + <ul> + <li><a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li> + <li><a href="{url|urlescape}comparison/{symrev}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li> + <li><a href="{url|urlescape}diff/{symrev}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li> + </ul> + <ul> + <li><a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a></li> + <li><a href="{url|urlescape}raw-file/{symrev}/{file|urlescape}">raw</a></li> + <li class="active">Log</li> + <li><a href="{url|urlescape}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li> + </ul> + <hr /> + <ul> + <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li> + </ul> + <div class="atom-logo"> + <a href="{url|urlescape}rss-bookmarks" title="subscribe to RSS feed"> + RSS: <img class="rss-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="RSS feed" /> + </a> + <a href="{url|urlescape}atom-log/tip/{file|urlescape}" title="subscribe to Atom feed"> + Atom: <img class="atom-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="Atom feed" /> + </a> + </div> + </div> + {logo} + </div> + <main> + <hr /> + <h1 class="breadcrumb"><a href="/">Software</a> {pathdef%breadcrumb}</h1> + + {searchform} + + <h2>Log</h2> + <h4>{file|escape} @ {rev}:<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> + {alltags} {if(linerange, ' ({linerange}{if(descend, ', descending')}) + </h4> + <h4> + <a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">« all revisions for this file »</a>')} + </h4> + <div class="navigate"> + <a href="{url|urlescape}log/{symrev}/{file|urlescape}{lessvars%urlparameter}">less</a> + <a href="{url|urlescape}log/{symrev}/{file|urlescape}{morevars%urlparameter}">more</a> + | {nav%filenav} + </div> + + <table> + <thead> + <tr> + <th class="description">description</th> + <th class="author">author</th> + <th class="age">age</th> + </tr> + </thead> + <tbody class="stripes2"> + {entries%filelogentry} + </tbody> + </table> + + <div class="navigate"> + <a href="{url|urlescape}log/{symrev}/{file|urlescape}{lessvars%urlparameter}">less</a> + <a href="{url|urlescape}log/{symrev}/{file|urlescape}{morevars%urlparameter}">more</a> + | {nav%filenav} + </div> + <p></p> + <hr /> + </main> + </div> + {logo} + {banner} +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filelogentry.tmpl Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,9 @@ + <tr> + <td class="description"> + <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a> + {alltags}{rename%filelogrename} + </td> + <td class="author">{author|person}</td> + <td class="age">{date|rfc822date}</td> + </tr> + {if(patch, '<tr><td colspan="3">{diff}</td></tr>')}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/filerevision.tmpl Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,94 @@ +{header} +<title>File {repo|escape}: {node|short} {file|escape}</title> +<!-- +<link rel="stylesheet" href="/hl/styles/ir-black.min.css"> +<script type="text/javascript" src="/hl/highlight.min.js"></script> +--> +</head> +<body> + +<div class="main"> + <div class="dd-hover menu"> + <div class="dd-content"> + <hr /> + <h6>{repo|escape}</h6> + <ul> + <li><a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">log</a></li> + <li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li> + <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li> + </ul> + <hr /> + <h6>{symrev}</h6> + <ul> + <li><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">browse</a></li> + <li><a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a></li> + </ul> + <hr /> + <h6>{file|escape}</h6> + <ul> + <li><a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a></li> + <li><a href="{url|urlescape}diff/{symrev}/{file|urlescape}{sessionvars%urlparameter}">diff</a></li> + <li><a href="{url|urlescape}comparison/{symrev}/{file|urlescape}{sessionvars%urlparameter}">comparison</a></li> + </ul> + <ul> + <li class="active">File</li> + <li><a href="{url|urlescape}raw-file/{symrev}/{file|urlescape}">raw</a></li> + <li><a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">log</a></li> + <li><a href="{url|urlescape}file/tip/{file|urlescape}{sessionvars%urlparameter}">latest</a></li> + </ul> + <hr /> + <ul> + <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li> + </ul> + </div> + {logo} + </div> + +<main> +<hr /> +<h1 class="breadcrumb"><a href="/">Software</a> {pathdef%breadcrumb}</h1> + +{searchform} + +<h2>File</h2> +<h4>{file|escape} @ {rev}:<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> + {alltags} +</h4> +<div class="description">{desc|strip|escape|websub|nonempty}</div> + +<table id="changesetEntry"> +<tr> + <th class="author">author</th> + <td class="author">{author|obfuscate}</td> +</tr> +<tr> + <th class="date">date</th> + <td class="date age">{date|rfc822date}</td> +</tr> +{parent%filerevparent} +{child%filerevchild} +</table> + +<div class="overflow"> +<div class="sourcefirst linewraptoggle">line wrap: <a class="linewraplink" href="#">on</a></div> +<div class="sourcefirst"> line source</div> +<pre class="sourcelines stripes4 wrap bottomline" + data-logurl="{url|urlescape}log/{symrev}/{file|urlescape}" + data-selectabletag="SPAN" + data-ishead="{ishead}"> +{text%fileline} +</pre> +</div> + +<script type="text/javascript" src="{staticurl|urlescape}followlines.js"></script> +<!--script>hljs.highlightAll();</script--> + +<p></p> +<hr /> +</main> +</div> +{logo} +{banner} +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/footer.tmpl Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,55 @@ +{motd} + <footer> + <div style="text-align: center"> + <div style="height: 2rem;"></div> + <div> + <a href="{logourl}" title="" target="_blank" rel="noopener"> + <img src="{staticurl|urlescape}{logoimg}" title="Mercurial" alt="Mercurial" /> + </a> + </div> + <h4><a href="#top" title="top">~*~</a></h4> + → → <a href="https://soft.trung.fun/giay-phep.en.html" target="_blank" rel="noopener">license</a> ← ← + <div style="text-align: center">-------------------------</div> + <a href="https://wikipedia.com" target="_blank" rel="noopener">wikipedia</a> | + <a href="https://debian.org" target="_blank" rel="noopener">debian</a> | + <a href="https://suckless.org" target="_blank" rel="noopener">suckless</a> + <div class="footer-seperator">----------------------------------</div> + <div class="footer-ring" style="max-width: 24rem;"> + <p></p> + ₿itcoin →<a href="https://blockstream.info/address/bc1qr4km72q5xqftkhzf2jsvp325cuslfkus2enp2c" target="_blank" rel="noopener"> + bc1qr4km72q5xqftkhzf2jsvp325cuslfkus2enp2c + </a>← ₿itcoin + <p></p> + </div> + <div class="footer-seperator">------------------------------------------------</div> + <div class="footer-seperator">--------------------------------------------------</div> + <div class="footer-ring" style="max-width: 32rem;"> + <p></p> + Monero » <a href="https://trung.fun/monero.en.html" target="_blank" rel="noopener"> + 83BoKzUQ3yz41rdbuFQvUm7NyTVjp26dmMeRreTYp6Q4PhebZYY5d998Z9KFniqVaTQb5nBpQke2QW5snaaJr8acFZLK + </a> « Monero + <p></p> + </div> + <div class="footer-seperator">--------------------------------------------------------</div> + <div class="footer-ring" style="max-width: 48rem;"> + <h4>PGP: <a href="https://trung.fun/lien-lac/Tran-H-Trung.asc"> + 272B C112 E0C1 CA52 2987 8E06 4C2E 262F 6514 7810 + </a> :PGP</h4> + </div> + <div class="footer-seperator">------------------------------------------------------------</div> + <a href="https://trung.fun/gioi-thieu/trung.en.html"> + <h4> © Trần H. Trung </h4> + </a> + <form method="post" action="https://s.trung.fun/" id="search" > + <!-- search --> <input type="search" id="query" name="q" size="50" placeholder="SearXNG" results="5" /> + <!-- categories <input type="hidden" name="categories" value="general,social media" />--> + <!-- language --> <input type="hidden" name="lang" value="all" /> + <!-- locale --> <input type="hidden" name="locale" value="vi" /> + <!-- date filter --> <input type="hidden" name="time_range" value="month" /> + </form> + <div style="height: 2rem;"> </div> + </div> + </footer> + <a id="bottom"></a> + </body> +</html>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graph.tmpl Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,100 @@ +{header} +<title>Graph {repo|escape}: revision</title> +<link rel="alternate" type="application/atom+xml" + href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}: log" /> +<link rel="alternate" type="application/rss+xml" + href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}: log" /> +</head> +<body> + <div class="main"> + <div class="dd-hover menu"> + <div class="dd-content"> + <hr /> + <h6>{repo|escape}</h6> + <ul> + <li><a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">log</a></li> + <li class="active">Graph</li> + <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li> + <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li> + </ul> + <hr /> + <h6>{symrev}</h6> + <ul> + <li><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">browse</a></li> + <li><a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a></li> + </ul> + <ul> + {archives%archiveentry} + </ul> + <hr /> + <ul> + <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li> + </ul> + <div class="atom-logo"> + <a href="{url|urlescape}rss-bookmarks" title="subscribe to RSS feed"> + RSS: <img class="rss-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="RSS feed" /> + </a> + <a href="{url|urlescape}atom-log" title="subscribe to Atom feed"> + Atom: <img class="atom-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="Atom feed" /> + </a> + </div> + </div> + {logo} + </div> + <main> + <hr /> + <h1 class="breadcrumb"><a href="/">Software</a> {pathdef%breadcrumb}</h1> + + {searchform} + + <h2>Graph</h3> + <div class="navigate"> + <a href="{url|urlescape}graph/{symrev}{lessvars%urlparameter}">less</a> + <a href="{url|urlescape}graph/{symrev}{morevars%urlparameter}">more</a> + | rev {rev}: {changenav%navgraph} + </div> + + <noscript><p>The revision graph only works with JavaScript-enabled browsers.</p></noscript> + + <div id="wrapper"> + <canvas id="graph"></canvas> + <ul id="graphnodes" class="stripes2">{nodes%graphentry}</ul> + </div> + + <script type="text/javascript"{if(nonce, ' nonce="{nonce}"')}> + var data = {jsdata|json}; + var graph = new Graph(); + graph.scale({bg_height}); + graph.render(data); + </script> + + <div class="navigate"> + <a href="{url|urlescape}graph/{symrev}{lessvars%urlparameter}">less</a> + <a href="{url|urlescape}graph/{symrev}{morevars%urlparameter}">more</a> + | rev {rev}: {changenav%navgraph} + </div> + + <p>Scroll all the way down to load more.</p> + + <script type="text/javascript"{if(nonce, ' nonce="{nonce}"')}> + ajaxScrollInit( + '{url|urlescape}graph/%next%{graphvars%urlparameter}', + '{nextentry%"{node}"}', <!-- NEXTHASH + function (htmlText) \{ + var m = htmlText.match(/'(\w+)', <!-- NEXTHASH/); + return m ? m[1] : null; + }, + '#wrapper', + '<div class="%class%" style="text-align: center;">%text%</div>', + 'graph' + ); + </script> + + <p></p> + <hr /> + </main> + </div> +{logo} + {banner} +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/graphentry.tmpl Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,9 @@ +<li data-node="{node|short}"> + <div class="fg"> + <span class="desc"> + <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a> + </span> + {alltags} + <div class="info"><span class="age">{date|rfc822date}</span>, by {author|person}</div> + </div> +</li>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/header.tmpl Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,9 @@ +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US"> +<head> +<link rel="icon" href="{staticurl|urlescape}hgicon.png" type="image/png" /> +<meta name="robots" content="index, nofollow" /> +<link rel="stylesheet" href="/style-hg.css" type="text/css" /> +<link rel="stylesheet" href="/style.css" type="text/css" /> +<script type="text/javascript" {if(nonce, ' nonce="{nonce}"')} src="{staticurl|urlescape}mercurial.js"></script> +
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/help.tmpl Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,38 @@ +{header} +<title>Help {topic}</title> +</head> +<body> + <div class="main"> + <div class="dd-hover menu"> + <div class="dd-content"> + <hr /> + <ul> + <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">log</a></li> + <li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li> + <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li> + </ul> + <hr /> + <ul> + <li class="active"><a href="{url|urlescape}help{sessionvars%urlparameter}">Help</a></li> + </ul> + </div> + {logo} + </div> + <main style="max-width: var(--width_max) !important;"> + <hr /> + <h1 class="breadcrumb"><a href="/">Software</a> {pathdef%breadcrumb}</h1> + + {searchform} + + <div id="doc"> + {rstdoc(doc, "html")} + </div> + <p></p> + <hr /> + </main> + </div> + {logo} + {banner} +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/helptopics.tmpl Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,52 @@ +{header} +<title>Help: {title}</title> +</head> +<body> + <div class="main"> + <div class="dd-hover menu"> + <div class="dd-content"> + <hr /> + <ul> + <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">log</a></li> + <li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li> + <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li> + </ul> + <hr /> + <ul> + {if(subindex, + '<li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li>', + '<li class="active">Help</li>' + )} + </ul> + </div> + {logo} + </div> + <main> + <hr /> + <h1 class="breadcrumb"><a href="/">Software</a> {pathdef%breadcrumb}</h1> + + {searchform} + + <table> + <tr><td colspan="2"><h2><a name="topics" href="#topics">Topics</a></h2></td></tr> + {topics % helpentry} + + {if(earlycommands, ' + <tr><td colspan="2"><h2><a name="main" href="#main">Main Commands</a></h2></td></tr> + {earlycommands % helpentry} + ')} + + {if(othercommands, ' + <tr><td colspan="2"><h2><a name="other" href="#other">Other Commands</a></h2></td></tr> + {othercommands % helpentry} + ')} + </table> + <p></p> + <hr /> + </main> + </div> + {logo} + {banner} +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/index.tmpl Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,40 @@ +{header} +<title>Trung - Code</title> +</head> +<body> + <div class="main"> + <div class="dd-hover menu"> + <div class="dd-content"> + <hr /> + <h4> Welcome to my buggy world. </h4> + <hr /> + </div> + {logo} + </div> + <main> + <hr /> + <h1 class="breadcrumb"><a href="/">Software</a> {pathdef%breadcrumb}</h1> + <p></p> + <table> + <caption>click header to sort</caption> + <thead> + <tr> + <th><a href="?sort={sort_name}">Name</a></th> + <th><a href="?sort={sort_description}">Description</a></th> + <th><a href="?sort={sort_contact}">Contact</a></th> + <th><a href="?sort={sort_lastchange}">Last modified</a></th> + <th>Archive</th> + <th>RSS|Atom</th> + </tr> + </thead> + <tbody class="stripes2"> + {entries%indexentry} + </tbody> + </table> + <p></p> + <hr /> + </main> + </div> + {logo} + {banner} +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/manifest.tmpl Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,64 @@ +{header} +<title>Browse {repo|escape}: {node|short} {path|escape}</title> +</head> +<body> +<div class="main"> +<div class="dd-hover menu"> +<div class="dd-content"> + <hr /> + <h6>{repo|escape}</h6> + <ul> + <li><a href="{url|urlescape}shortlog/{symrev}{sessionvars%urlparameter}">log</a></li> + <li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li> + <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li> + </ul> + <hr /> + <h6>{symrev}</h6> + <ul> + <li class="active">Browse</li> + <li><a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a></li> + </ul> + <ul> + {archives%archiveentry} + </ul> + <hr /> + <ul> + <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li> + </ul> + </div> + {logo} +</div> + +<main> +<hr /> +<h1 class="breadcrumb"><a href="/">Software</a> {pathdef%breadcrumb}</h1> + +{searchform} + +<h2>Browse</h2> +<h4>{repo|escape}{path|escape} @ {rev}:<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> + {alltags} +</h4> +<table> +<thead> +<tr> + <th class="name">name</th> + <th class="size">size</th> + <th class="permissions">permissions</th> +</tr> +</thead> +<tbody class="stripes2"> +{ifeq(path, up, '', updirentry)} +{dentries%direntry} +{fentries%fileentry} +</tbody> +</table> +<p></p> +<hr /> +</main> +</div> +{logo} +{banner} +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/map Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,325 @@ +default = 'graph' + +mimetype = 'text/html; charset={encoding}' +header = header.tmpl +footer = footer.tmpl +search = search.tmpl + +changelog = shortlog.tmpl +shortlog = shortlog.tmpl +shortlogentry = shortlogentry.tmpl +graph = graph.tmpl +graphentry = graphentry.tmpl +help = help.tmpl +helptopics = helptopics.tmpl + +helpentry = ' + <tr><td> + <a href="{url|urlescape}help/{topic|escape}{sessionvars%urlparameter}"> + {if(basename, '{basename|escape}', '{topic|escape}')} + </a> + </td><td> + {summary|escape} + </td></tr>' + +naventry = '<a href="{url|urlescape}log/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' +navshortentry = '<a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' +navgraphentry = '<a href="{url|urlescape}graph/{node|short}{sessionvars%urlparameter}">{label|escape}</a> ' +filenaventry = '<a href="{url|urlescape}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{label|escape}</a> ' +filedifflink = '<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> ' +filenodelink = '<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> ' +filenolink = '{file|escape} ' +fileellipses = '...' +diffstatlink = diffstat.tmpl +diffstatnolink = diffstat.tmpl +changelogentry = shortlogentry.tmpl +changeset = changeset.tmpl +manifest = manifest.tmpl + +nav = '{before%naventry} {after%naventry}' +navshort = '{before%navshortentry}{after%navshortentry}' +navgraph = '{before%navgraphentry}{after%navgraphentry}' +filenav = '{before%filenaventry}{after%filenaventry}' + +updirentry = ' + <tr class="fileline"> + <td class="name"> + <a href="{url|urlescape}file/{symrev}{up|urlescape}{sessionvars%urlparameter}">[up]</a> + </td> + <td class="size"></td> + <td class="permissions">drwxr-xr-x</td> + </tr>' + +direntry = ' + <tr class="fileline"> + <td class="name"> + <a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}"> + <img src="{staticurl|urlescape}coal-folder.png" alt="dir."/> {basename|escape}/ + </a> + <a href="{url|urlescape}file/{symrev}{path|urlescape}/{emptydirs|urlescape}{sessionvars%urlparameter}"> + {emptydirs|escape} + </a> + </td> + <td class="size"></td> + <td class="permissions">drwxr-xr-x</td> + </tr>' + +fileentry = ' + <tr class="fileline"> + <td class="filename"> + <a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}"> + <img src="{staticurl|urlescape}coal-file.png" alt="file"/> {basename|escape} + </a> + </td> + <td class="size">{size}</td> + <td class="permissions">{permissions|permissions}</td> + </tr>' + +filerevision = filerevision.tmpl +fileannotate = fileannotate.tmpl +filediff = filediff.tmpl +filecomparison = filecomparison.tmpl +filelog = filelog.tmpl +fileline = ' + <span id="{lineid}">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>' +filelogentry = filelogentry.tmpl + +annotateline = ' + <tr id="{lineid}"{ifeq(node, originalnode, ' class="thisrev"')}> + <td class="annotate parity{blockparity}"> + {if(blockhead, + '<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"> + {rev} + </a>')} + <div class="annotate-info"> + <div> + <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}#l{targetline}"> + {node|short}</a> + {desc|escape|firstline} + </div> + <div><em>{author|obfuscate}</em></div> + <div>parents: {parents%annotateparent}</div> + <a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> + <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">changeset</a> + </div> + </td> + <td class="source followlines-btn-parent"><a href="#{lineid}">{linenumber}</a> {line|escape}</td> + </tr>' +annotateparent = ' + <a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rev}</a>' +diffblock = '<div class="bottomline inc-lineno"><pre class="sourcelines wrap">{lines}</pre></div>' +difflineplus = ' + <span id="{lineid}" class="plusline">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>' +difflineminus = ' + <span id="{lineid}" class="minusline">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>' +difflineat = ' + <span id="{lineid}" class="atline">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>' +diffline = ' + <span id="{lineid}">{strip(line|escape, '\r\n')}</span><a href="#{lineid}"></a>' + +comparisonblock =' + <tbody class="block"> + {lines} + </tbody>' +comparisonline = ' + <tr id="{lineid}"> + <td class="source {type}"><a href="#{lineid}">{leftlinenumber}</a> {leftline|escape}</td> + <td class="source {type}"><a href="#{lineid}">{rightlinenumber}</a> {rightline|escape}</td> + </tr>' + +changesetparent = ' {rev}:<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> ' + +changesetparentdiff = ' + {changesetparent} + {ifeq(node, basenode, '(current diff)', '({difffrom})')}' + +difffrom = '<a href="{url|urlescape}rev/{node|short}:{originalnode|short}{sessionvars%urlparameter}">diff</a>' + +filerename = '{file|escape}@' +filelogrename = ' + <span class="base"> + base + <a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}"> + {file|escape}@{node|short} + </a> + </span>' +tags = tags.tmpl +tagentry = ' + <tr class="tagEntry"> + <td> + <a href="{url|urlescape}rev/{tag|revescape}{sessionvars%urlparameter}"> + {tag|escape} + </a> + </td> + <td class="node"> + <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}"> + {node|short} + </a> + </td> + </tr>' +bookmarks = bookmarks.tmpl +bookmarkentry = ' + <tr class="tagEntry"> + <td> + <a href="{url|urlescape}rev/{bookmark|revescape}{sessionvars%urlparameter}"> + {bookmark|escape} + </a> + </td> + <td class="node"> + <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}"> + {node|short} + </a> + </td> + </tr>' +branches = branches.tmpl +branchentry = ' + <tr class="tagEntry"> + <td> + <a href="{url|urlescape}shortlog/{branch|revescape}{sessionvars%urlparameter}" class="{status}"> + {branch|escape} + </a> + </td> + <td class="node"> + <a href="{url|urlescape}shortlog/{node|short}{sessionvars%urlparameter}" class="{status}"> + {node|short} + </a> + </td> + </tr>' +phasetag = '{ifeq(phase, 'public', '', '<span class="phase">{phase|escape}</span> ')}' +obsoletetag = '{if(obsolete, '<span class="obsolete">obsolete</span> ')}' +instabilitytag = '<span class="instability">{instability|escape}</span> ' +changelogtag = '<span class="tag">{name|escape}</span> ' +changesettag = '<span class="tag">{tag|escape}</span> ' +changesetbookmark = '<span class="tag">{bookmark|escape}</span> ' +changelogbranchhead = '<span class="branchhead">{name|escape}</span> ' +changelogbranchname = '<span class="branchname">{name|escape}</span> ' +alltags = '{phasetag}{obsoletetag}{instabilities%instabilitytag}{inbranch%changelogbranchname}{branches%changelogbranchhead}{tags%changelogtag}{bookmarks%changelogtag}' + +successorlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a> ' +obsfatesuccessors = '{if(successors, ' as ')}{successors%successorlink}' +obsfateverb = '{obsfateverb(successors, markers)}' +obsfateoperations = '{if(obsfateoperations(markers), ' using {join(obsfateoperations(markers), ', ')}')}' +obsfateusers = '{if(obsfateusers(markers), ' by {join(obsfateusers(markers)%'{user|obfuscate}', ', ')}')}' +obsfatedate = '{if(obsfatedate(markers), ' {ifeq(min(obsfatedate(markers)), max(obsfatedate(markers)), '<span class="age">{min(obsfatedate(markers))|rfc822date}</span>', 'between <span class="age">{min(obsfatedate(markers))|rfc822date}</span> and <span class="age">{max(obsfatedate(markers))|rfc822date}</span>')}')}' +obsfateentry = '{obsfateverb}{obsfateoperations}{obsfatesuccessors}{obsfateusers}{obsfatedate}' +instabilitychangesetlink = '<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>' +divergentnode = '{instabilitychangesetlink} ({phase})' +whyunstableentry = '{instability}: {if(divergentnodes, divergentnodes%divergentnode)} {reason} {instabilitychangesetlink}' + +changesetchild = ' {rev}:<a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{node|short}</a>' + +filerevparent = ' + <tr> + <th class="author">parent</th> + <td>{rev}:<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a> + </tr>' +filerevchild = ' + <tr> + <th class="author">child</th> + <td>{rev}:<a href="{url|urlescape}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> + </tr>' + +fileannotateparent = ' + <tr> + <th class="author">parent</th> + <td>{rev}:<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a></td> + </tr>' +fileannotatechild = ' + <tr> + <th class="author">child</th> + <td>{rev}:<a href="{url|urlescape}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' + +filecomparisonparent = ' + <tr> + <th class="author">parent</th> + <td>{rev}:<a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{rename%filerename}{node|short}</a></td> + </tr>' +filecomparisonchild = ' + <tr> + <th class="author">child</th> + <td>{rev}:<a href="{url|urlescape}comparison/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> + </td> + </tr>' + +filediffparent = ' + <tr> + <th class="author">parent</th> + <td>{rev}:<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a></td> + </tr>' +filediffchild = ' + <tr> + <th class="author">child</th> + <td>{rev}:<a href="{url|urlescape}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{node|short}</a> + </td> + </tr>' + +indexentry = ' + <tr> + <td><a href="{url|urlescape}{sessionvars%urlparameter}">{name|escape}</a></td> + <td>{description}</td> + <td>{contact|obfuscate}</td> + <td class="age">{lastchange|rfc822date}</td> + <td class="indexlinks"> + {archives%indexarchiveentry} + </td> + <td class="indexlinks"> + {if(isdirectory, '', + '<a href="{url|urlescape}rss-log" title="subscribe to repository RSS feed"> + <img class="rss-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="subscribe to repository RSS feed"> + </a> + <a href="{url|urlescape}atom-log" title="subscribe to repository Atom feed"> + <img class="atom-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="subscribe to repository Atom feed"> + </a>' + )} + </td> + </tr>\n' +indexarchiveentry = '<a href="{url|urlescape}archive/{node|short}{extension|urlescape}"> ↓{type|escape} </a>' +index = index.tmpl +archiveentry = ' + <li> + <a href="{url|urlescape}archive/{symrev}{extension|urlescape}{ifeq(path,'/','',path|urlescape)}">{type|escape}</a> + </li>' +notfound = notfound.tmpl +error = error.tmpl +urlparameter = '{separator}{name}={value|urlescape}' +hiddenformentry = '<input type="hidden" name="{name}" value="{value|escape}" />' +breadcrumb = '> <a href="{url|urlescape}">{name|escape}</a> ' + +searchform = ' + <form class="search" action="{url|urlescape}log"> + {sessionvars%hiddenformentry} + <p><input name="rev" id="search1" type="text" size="30" value="{query|escape}" /></p> + <div id="hint">{searchhint}</div> + </form> + <p></p> + <hr />' +searchhint = 'Find changesets by keywords (author, files, the commit message), revision + number or hash, or <a href="{url|urlescape}help/revsets">revset expression</a>.' + +diffoptsform = ' + <form id="diffopts-form" + data-ignorews="{if(get(diffopts, 'ignorews'), '1', '0')}" + data-ignorewsamount="{if(get(diffopts, 'ignorewsamount'), '1', '0')}" + data-ignorewseol="{if(get(diffopts, 'ignorewseol'), '1', '0')}" + data-ignoreblanklines="{if(get(diffopts, 'ignoreblanklines'), '1', '0')}"> + <span>Ignore whitespace changes - </span> + <span>Everywhere:</span> + <input id="ignorews-checkbox" type="checkbox" /> + <span>Within whitespace:</span> + <input id="ignorewsamount-checkbox" type="checkbox" /> + <span>At end of lines:</span> + <input id="ignorewseol-checkbox" type="checkbox" /> + </form>' + +logo = ' + <div class="logo"> + <a href="/" title="Trung - Software"> + <img class="logo invert" src="/logo.png" style="width: 100%; max-width: 41em;" /> + </a> + </div>' + +banner = ' + <div class="banner mid invert"> + <img src="https://trung.fun/banners/mid.svg" /> + </div>'
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/notfound.tmpl Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,20 @@ +{header} +<title>Mercurial repository not found</title> +</head> +<body> + {logo} + <div class="main"> + <main> + <hr /> + <h1>Mercurial repository not found</h1> + <p> + The specified repository "{repo|escape}" is unknown, sorry. + </p> + <p> + Please go back to the <a href="{url|urlescape}">main repository list page</a>. + </p> + <hr /> + </main> + </div> + {banner} +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/search.tmpl Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,63 @@ +{header} +<title>Search {repo|escape}: {query|escape}</title> +</head> +<body> + <div class="main"> + <div class="menu"> + <hr /> + <h6>{repo|escape}</h6> + <ul> + <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">log</a></li> + <li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li> + <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li> + </ul> + <hr /> + <ul> + <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li> + </ul> + {logo} + </div> + <main> + <h1 class="breadcrumb"><a href="/">Software</a> {pathdef%breadcrumb}</h1> + {searchform} + + <h2>Results</h2> + <h3>'{query|escape}'</h3> + + <p> + Assuming {modedesc}. + {if(showforcekw, '<a href="{url|urlescape}log?rev={query|urlescape}&forcekw=1"> + Use {showforcekw}</a> instead.')} + {if(showunforcekw, '<a href="{url|urlescape}log?rev={query|urlescape}"> + Use {showunforcekw}</a> instead.')} + </p> + + <div class="navigate"> + <a href="{url|urlescape}log{lessvars%urlparameter}">less</a> + <a href="{url|urlescape}log{morevars%urlparameter}">more</a> + </div> + + <table> + <thead> + <tr> + <th class="description">description</th> + <th class="author">author</th> + <th class="age">age</th> + </tr> + </thead> + <tbody class="stripes2"> + {entries%changelogentry} + </tbody> + </table> + + <div class="navigate"> + <a href="{url|urlescape}log{lessvars%urlparameter}">less</a> + <a href="{url|urlescape}log{morevars%urlparameter}">more</a> + </div> + + </main> + </div> + {banner} +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/shortlog.tmpl Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,98 @@ +{header} +<title>Log {repo|escape}</title> +<link rel="alternate" type="application/atom+xml" + href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}" /> +<link rel="alternate" type="application/rss+xml" + href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}" /> +</head> +<body> +<div class="main"> + <div class="dd-hover menu"> + <div class="dd-content"> + <hr /> + <h6>{repo|escape}</h6> + <ul> + <li class="active">Log</li> + <li><a href="{url|urlescape}graph/{symrev}{sessionvars%urlparameter}">graph</a></li> + <li><a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a></li> + <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li> + <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li> + </ul> + <hr /> + <h6>{symrev}</h6> + <ul> + <li><a href="{url|urlescape}file/{symrev}{path|urlescape}{sessionvars%urlparameter}">browse</a></li> + <li><a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a></li> + </ul> + <ul> + {archives%archiveentry} + </ul> + <hr /> + <ul> + <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li> + </ul> + <div class="atom-logo"> + <a href="{url|urlescape}rss-bookmarks" title="subscribe to RSS feed"> + RSS: <img class="rss-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="RSS feed" /> + </a> + <a href="{url|urlescape}atom-log" title="subscribe to Atom feed"> + Atom: <img class="atom-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="Atom feed" /> + </a> + </div> + </div> + {logo} + </div> + +<main> +<hr /> +<h1 class="breadcrumb"><a href="/">Software</a> {pathdef%breadcrumb}</h1> + +{searchform} + +<h2>Log</h2> +<div class="navigate"> +<a href="{url|urlescape}shortlog/{symrev}{lessvars%urlparameter}">less</a> +<a href="{url|urlescape}shortlog/{symrev}{morevars%urlparameter}">more</a> +| rev {rev}: {changenav%navshort} +</div> + +<table> +<thead> + <tr> + <th class="description">description</th> + <th class="author">author</th> + <th class="age">age</th> + </tr> +</thead> +<tbody class="stripes2"> +{entries%shortlogentry} +</tbody> +</table> + +<div class="navigate"> +<a href="{url|urlescape}shortlog/{symrev}{lessvars%urlparameter}">less</a> +<a href="{url|urlescape}shortlog/{symrev}{morevars%urlparameter}">more</a> +| rev {rev}: {changenav%navshort} +</div> + +<script type="text/javascript"{if(nonce, ' nonce="{nonce}"')}> + ajaxScrollInit( + '{url|urlescape}shortlog/%next%{sessionvars%urlparameter}', + '{nextentry%"{node}"}', <!-- NEXTHASH + function (htmlText) \{ + var m = htmlText.match(/'(\w+)', <!-- NEXTHASH/); + return m ? m[1] : null; + }, + '.bigtable > tbody', + '<tr class="%class%">\\ + <td colspan="3" style="text-align: center;">%text%</td>\\ + </tr>' + ); +</script> +<p></p> +<hr /> +</main> +</div> +{logo} + {banner} +{footer}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/shortlogentry.tmpl Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,8 @@ + <tr> + <td class="description"> + <a href="{url|urlescape}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a> + {alltags} + </td> + <td class="author">{author|person}</td> + <td class="age">{date|rfc822date}</td> + </tr>
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/style-hg.css Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,572 @@ +body { + margin: 0; + padding: 0; + background: var(--color_background); + color: var(--color_foreground); + font-family: sans-serif; +} + +.container { + padding-left: 115px; +} + +/* +.main { + top: 20rem; +} + +#.main { + width: 98%; +} +*/ + +.overflow { + width: 100%; + overflow: auto; +} + +/*.main>main { margin-left: 5rem !important; }*/ + +.menu { + margin-left: auto; + /*margin-right: 5rem;*/ + margin-bottom: auto; + text-align: right; + padding: 2rem; + background: transparent; + transition: background 0.5s ease-in-out; + position: sticky; + top: 17.4rem; + flex-shrink: 12; +} +.menu:hover { background: var(--color_background_main); } +.dd-hover.menu { position: sticky; } + +@media (min-width: 960px) { body>.logo { display: none; } } +@media not (min-width: 960px) { + .menu { padding: 0.5rem; } + .menu>.logo { display: none; } + .menu>.dd-content { display: block !important; width: 0.25rem; } + body>.logo { display: block; } + main { margin-left: 1rem !important; } +} + +.menu ul { + list-style: none; + padding: 0; + margin: 10px 0 0 0; + border-right: 2px solid #999; +} + +.menu li { + margin-bottom: 3px; + padding: 2px 4px; + background: var(--color_background); + color: var(--color_foreground); + font-weight: normal; +} + +.menu li.active { + font-weight: bold; +} + +.menu img { + border: 0; +} + +div.atom-logo { + margin-top: 10px; +} + +.atom-logo img, .rss-logo img { + width: 14px; + height: 14px; + border: 0; +} +img.atom-logo { filter: invert(100%); -webkit-filter: invert(100%); } + +.menu a { color: var(--color_foreground); display: block; } + +.search { text-align: center; } + +form.search div#hint { + display: block; + position: relative; + margin: auto; + width: 72%; + padding: 1.4rem; + background: var(--color_background_border); + text-align: center; + border: 1px solid var(--color_heading_main); + border-radius: 5px; + z-index: 15; +} + +a { text-decoration:none; } +.age { white-space:nowrap; } +.date { white-space:nowrap; } +.indexlinks { white-space:nowrap; } +.parity0, +.stripes4 > :nth-child(4n+1), +.stripes2 > :nth-child(2n+1) { background-color: var(--color_odd); } +.parity1, +.stripes4 > :nth-child(4n+3), +.stripes2 > :nth-child(2n+2) { background-color: var(--color_even); } +.plusline { color: green; } +.minusline { color: #dc143c; } /* crimson */ +.atline { color: var(--color_heading_sub); } + +.diffstat-table { + margin-top: 1em; +} +.diffstat-file { + white-space: nowrap; + font-size: 90%; +} +.diffstat-total { + white-space: nowrap; + font-size: 90%; +} +.diffstat-graph { + width: 100%; +} +.diffstat-add { + background-color: green; + float: left; +} +.diffstat-remove { + background-color: red; + float: left; +} + +.navigate { + text-align: right; + margin: 1em 0; +} + +.phase { + color: #999; + font-size: 70%; + border-bottom: 1px dotted #999; + font-weight: normal; + margin-left: .5em; + vertical-align: baseline; +} + +.obsolete { + color: #999; + font-size: 70%; + border-bottom: 1px dashed #999; + font-weight: normal; + margin-left: .5em; + vertical-align: baseline; +} + +.instability { + color: var(--color_foreground); + font-size: 70%; + border-bottom: 1px solid #000; + font-weight: normal; + margin-left: .5em; + vertical-align: baseline; +} + +.tag { + color: #999; + font-size: 70%; + font-weight: normal; + margin-left: .5em; + vertical-align: baseline; +} + +.branchhead { + color: var(--color_foreground); + font-size: 80%; + font-weight: normal; + margin-left: .5em; + vertical-align: baseline; +} + +ul#graphnodes .branchhead { + font-size: 75%; +} + +.branchname { + color: var(--color_foreground); + font-size: 60%; + font-weight: normal; + margin-left: .5em; + vertical-align: baseline; +} + +/* Common */ +pre { font-family: 'FreeMono'; font-weight: bold; } +/* +pre { margin: 0; } + +h2 { font-size: 120%; border-bottom: 1px solid #999; } +h2 a { color: var(--color_foreground); } +h3 { + margin-top: +.7em; + font-size: 100%; +} +*/ + +/* log and tags tables */ +.bigtable { + border-bottom: 1px solid #999; + border-collapse: collapse; + font-size: 90%; + width: 100%; + font-weight: normal; + text-align: left; +} + +.bigtable td { + padding: 1px 4px; + vertical-align: top; +} + +.bigtable th { + padding: 1px 4px; + border-bottom: 1px solid #999; +} +.bigtable tr { border: none; } +tr { background-color: var(--color_background_border); } +.bigtable .age { width: 7em; } +.bigtable .author { width: 15em; } +.bigtable .description { } +.bigtable .description .base { font-size: 70%; float: right; line-height: 1.66; } +.bigtable .node { width: 5em; font-family: monospace;} +.bigtable .permissions { width: 8em; text-align: left;} +.bigtable .size { width: 5em; text-align: right; } +.bigtable .annotate { text-align: right; } +.bigtable td.annotate { font-size: smaller; } +.bigtable td.source { font-size: inherit; } +tr.thisrev a { color:#999999; text-decoration: none; } +tr.thisrev td.source { color:#009900; } +td.annotate { + white-space: nowrap; +} +div.annotate-info { + z-index: 5; + display: none; + position: absolute; + background-color: var(--color_background); + border: 1px solid #999; + text-align: left; + color: var(--color_foreground); + padding: 5px; +} +div.annotate-info a { color: var(--color_heading_main); } +td.annotate:hover div.annotate-info { display: inline; } + +#diffopts-form { + font-size: smaller; + color: var(--color_foreground); + padding-bottom: 10px; + display: none; +} + +.source, .sourcefirst { + font-family: monospace; + white-space: pre; + padding: 1px 4px; + font-size: 90%; +} +.sourcefirst { + border-bottom: 1px solid #999; + font-weight: bold; + } +.source a { color: #999; font-size: smaller; font-family: monospace;} + +.sourcelines { + position: relative; + counter-reset: lineno; +} + +.wrap > span { + white-space: pre-wrap; +} + +.linewraptoggle { + float: right; +} + +.diffblocks { + counter-reset: lineno; +} +.diffblocks > div { + font-family: 'FreeMono' !important; + counter-increment: lineno; + border: 1px solid #888; + border-radius: 0.3125rem; + margin-top: 0.5rem; +} + +.sourcelines > span { + display: inline-block; + box-sizing: border-box; + width: 100%; + padding: 1px 0px 1px 5em; + counter-increment: lineno; +} + +.sourcelines > span:before { + -moz-user-select: -moz-none; + -khtml-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + display: inline-block; + margin-left: -6em; + width: 4em; + font-size: smaller; + /*color: #999;*/ + text-align: right; + content: counters(lineno, "."); + float: left; +} + +.sourcelines > span:after { + content: ''; + display: inline-block; +} + +.sourcelines > span:target, tr:target td { + background-color: #bfdfff; +} + +/* Followlines */ +tbody.sourcelines > tr.followlines-selected, +pre.sourcelines > span.followlines-selected { + background-color: #99C7E9; +} + +div#followlines { + background-color: var(--color_background); + border: 1px solid #999; + padding: 5px; + position: fixed; +} + +div.followlines-cancel { + text-align: right; +} + +div.followlines-cancel > button { + line-height: 80%; + padding: 0; + border: 0; + border-radius: 2px; + background-color: inherit; + font-weight: bold; +} + +div.followlines-cancel > button:hover { + color: var(--color_background); + background-color: #cc241d; +} + +div.followlines-link { + margin: 2px; + margin-top: 4px; + font-family: sans-serif; +} + +.btn-followlines { + position: absolute; + display: none; + cursor: pointer; + box-sizing: content-box; + font-size: 12px; + width: 13px; + height: 13px; + border-radius: 3px; + margin: 0px; + margin-top: -2px; + padding: 0px; + background-color: #E5FDE5; + border: 1px solid #9BC19B; + font-family: monospace; + text-align: center; + line-height: 5px; +} + +span.followlines-select .btn-followlines { + margin-left: -1.5em; +} + +.btn-followlines:hover { + transform: scale(1.2, 1.2); +} + +.btn-followlines .followlines-plus { + color: #98971a; +} + +.btn-followlines .followlines-minus { + color: #cc241d; +} + +.btn-followlines-end { + background-color: #ffdcdc; +} + +.sourcelines tr:hover .btn-followlines, +.sourcelines span.followlines-select:hover > .btn-followlines { + display: inline; +} + +.btn-followlines-hidden, +.sourcelines tr:hover .btn-followlines-hidden { + display: none; +} + +.sourcelines > a { + display: inline-block; + position: absolute; + left: 0px; + width: 4em; + height: 1em; +} + +.fileline { font-family: monospace; } +.fileline img { border: 0; } + +.tagEntry .closed { color: var(--color_heading_sub); } + +/* Changeset entry */ +#changesetEntry { + border-collapse: collapse; + width: 100%; + margin-bottom: 1em; +} + +#changesetEntry th { + padding: 1px 4px; + width: 4em; + text-align: right; + font-weight: normal; + vertical-align: top; +} + +div.description { + border-left: 2px solid #999; + margin: 1em 0 1em 0; + padding: .3em; + white-space: pre; + font-family: monospace; +} + +/* Graph */ +div#wrapper { + position: relative; + border-top: 1px solid black; + border-bottom: 1px solid black; + margin: 0; + padding: 0; +} + +canvas { + position: absolute; + z-index: 5; + top: -0.7em; + margin: 0; +} + +ul#graphnodes { + list-style: none inside none; + padding: 0; + margin: 0; +} + +ul#graphnodes li { + height: 39px; + overflow: visible; +} + +ul#graphnodes li .fg { + position: absolute; + z-index: 10; +} + +ul#graphnodes li .info { + font-size: 70%; +} + +/* Comparison */ +.legend { + padding: 1.5% 0 1.5% 0; +} + +.legendinfo { + border: 1px solid #999; + font-size: 80%; + text-align: center; + padding: 0.5%; +} + +.equal { background-color: var(--color_background_main); } + +.delete { + background-color: var(--color_alert); + color: var(--color_background); + font-weight: bold; +} + +.insert { + background-color: var(--color_links); + color: var(--color_background); + font-weight: bold; +} + +.replace { + background-color: var(--color_heading_main); + color: var(--color_background); + font-weight: bold; +} + +.header { + text-align: center; +} + +.block { + border-top: 1px solid #999; +} + +.breadcrumb { color: gray; } + +.scroll-loading { + -webkit-animation: change_color 1s linear 0s infinite alternate; + -moz-animation: change_color 1s linear 0s infinite alternate; + -o-animation: change_color 1s linear 0s infinite alternate; + animation: change_color 1s linear 0s infinite alternate; +} + +@-webkit-keyframes change_color { + from { background-color: #A0CEFF; } to { } +} +@-moz-keyframes change_color { + from { background-color: #A0CEFF; } to { } +} +@-o-keyframes change_color { + from { background-color: #A0CEFF; } to { } +} +@keyframes change_color { + from { background-color: #A0CEFF; } to { } +} + +.scroll-loading-error { + background-color: #FFCCCC !important; +} + +/* Fix main css */ +img { + filter: none; +} +.main>main { + width: auto !important; + max-width: 100% !important; + margin-top: 2rem !important; +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tags.tmpl Mon Jul 10 23:41:04 2023 +0700 @@ -0,0 +1,60 @@ +{header} +<title>Tags {repo|escape}</title> +<link rel="alternate" type="application/atom+xml" + href="{url|urlescape}atom-tags" title="Atom feed for {repo|escape}: tags" /> +<link rel="alternate" type="application/rss+xml" + href="{url|urlescape}rss-tags" title="RSS feed for {repo|escape}: tags" /> +</head> +<body> + <div class="main"> + <div class="dd-hover menu"> + <div class="dd-content"> + <hr /> + <h6>{repo|escape}</h6> + <ul> + <li><a href="{url|urlescape}shortlog{sessionvars%urlparameter}">log</a></li> + <li><a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a></li> + <li class="active">Tags</li> + <li><a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a></li> + <li><a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a></li> + </ul> + <hr /> + <ul> + <li><a href="{url|urlescape}help{sessionvars%urlparameter}">help</a></li> + </ul> + <div class="atom-logo"> + <a href="{url|urlescape}rss-bookmarks" title="subscribe to RSS feed"> + RSS: <img class="rss-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="RSS feed" /> + </a> + <a href="{url|urlescape}atom-tags" title="subscribe to Atom feed"> + Atom: <img class="atom-logo" src="{staticurl|urlescape}feed-icon-14x14.png" alt="Atom feed" /> + </a> + </div> + </div> + {logo} + </div> + <main> + <hr /> + <h1 class="breadcrumb"><a href="/">Software</a> {pathdef%breadcrumb}</h1> + + {searchform} + + <h2>Tags</h2> + <table> + <thead> + <tr> + <th>tag</th> + <th>node</th> + </tr> + </thead> + <tbody class="stripes2"> + {entries%tagentry} + </tbody> + </table> + <p></p> + <hr /> + </main> + </div> + {logo} + {banner} +{footer}