ctucx.git: nimstagit

[nimlang] incomplete reimplementation of stagit

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
#? stdtmpl | standard
#proc templateBlobPage(templateContext: TemplateContext, paths: seq[PathObj], blob: Blob): string =
#  result = ""
<!DOCTYPE html>
<html>
    <head>
        <title>$templateContext.repoName - $templateContext.siteTitle</title>

        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta name="description" content="$templateContext.description">
        <meta name="generator" content="https://cgit.ctu.cx/nimstagit">

        <link href="/style.css" rel="stylesheet" />
    </head>
    <body>
        <header>
            <h1><a href="/">$templateContext.siteTitle</a>: $templateContext.repoName</h1>
            <p>$templateContext.description</p>
        </header>
        <nav>
            <a href="/$templateContext.repoUrl">summary</a>
            <a href="/$templateContext.repoUrl/log">log</a>
            <a href="/$templateContext.repoUrl/tree" class="active">tree</a>
            <a href="/$templateContext.repoUrl/refs">refs</a>
        </nav>
        <main>
            <div class="breadcrumb">
            #for path in paths:
            <a href="$path.url">$path.name</a> /
            #end for
            $blob.filename

            <span class="right">$blob.filesize | $blob.lines.len lines | <a href="$blob.filenameUrl">plain</a></span>
            </div>
            #if not blob.isBinary:
            <div class="code">

<pre class="lines">
#for l in blob.lines:
<a id="L$l" href="#L$l">$l</a>
#end for
</pre>
                <pre class="highlight">$blob.content</pre>
            </div>
            #else:
            <br><br>This is a binary file.
            #end if
        </main>
        <footer><p>Generated on $templateContext.generated</p></footer>
    </body>
</html>