@@ -2,19 +2,37 @@
2 2 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{% block title %}{{ filepath }} — {{ project.name }} — Fossilrepo{% endblock %}
3 3 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
4 4 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{% block extra_head %}
5 5 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/github-dark.min.css">
6 6 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js"></script>
7 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ <style>
8 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ .code-table { border-collapse: collapse; width: 100%; }
9 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ .code-table td { padding: 0; vertical-align: top; }
10 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ .line-num {
11 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ width: 1%; white-space: nowrap; padding: 0 12px;
12 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ text-align: right; user-select: none; cursor: pointer;
13 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ color: #4b5563; font-size: 0.75rem; line-height: 1.5rem;
14 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
15 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ .line-num:hover { color: #DC394C; }
16 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ .line-num a { color: inherit; text-decoration: none; display: block; }
17 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ .line-code {
18 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ white-space: pre; padding: 0 16px 0 0;
19 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ font-size: 0.8125rem; line-height: 1.5rem;
20 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
21 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ .line-row:hover { background: rgba(220, 57, 76, 0.05); }
22 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ .line-row:target { background: rgba(220, 57, 76, 0.12); }
23 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ .line-row:target .line-num { color: #DC394C; font-weight: 600; }
24 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ </style>
7 25 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{% endblock %}
8 26 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
9 27 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{% block content %}
10 28 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
<h1 class="text-2xl font-bold text-gray-100 mb-2">{{ project.name }}</h1>
11 29 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{% include "fossil/_project_nav.html" %}
12 30 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
13 31 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
<div class="overflow-hidden rounded-lg bg-gray-800 shadow border border-gray-700">
14 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- <!-- File path breadcrumb -->
15 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- <div class="px-4 py-3 border-b border-gray-700">
32 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ <!-- File path breadcrumb + stats -->
33 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ <div class="px-4 py-3 border-b border-gray-700 flex items-center justify-between">
16 34 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
<div class="flex items-center gap-1 text-sm font-mono">
17 35 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
<a href="{% url 'fossil:code' slug=project.slug %}" class="text-brand-light hover:text-brand">{{ project.slug }}</a>
18 36 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{% for crumb in file_breadcrumbs %}
19 37 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
<span class="text-gray-600">/</span>
20 38 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{% if forloop.last %}
@@ -22,19 +40,39 @@
22 40 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{% else %}
23 41 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
<a href="{% url 'fossil:code_dir' slug=project.slug dirpath=crumb.path %}" class="text-brand-light hover:text-brand">{{ crumb.name }}</a>
24 42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{% endif %}
25 43 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{% endfor %}
26 44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
</div>
45 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {% if not is_binary %}
46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ <span class="text-xs text-gray-500">{{ line_count }} line{{ line_count|pluralize }}</span>
47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {% endif %}
27 48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
</div>
28 49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
<div class="overflow-x-auto">
29 50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{% if is_binary %}
30 51 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
<p class="p-4 text-sm text-gray-500">{{ content }}</p>
31 52 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{% else %}
32 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- <pre class="p-0 m-0"><code class="language-{{ language }} text-sm leading-relaxed">{{ content }}</code></pre>
53 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ <table class="code-table">
54 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ <tbody>
55 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {% for line in lines %}
56 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ <tr class="line-row" id="L{{ line.num }}">
57 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ <td class="line-num"><a href="#L{{ line.num }}">{{ line.num }}</a></td>
58 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ <td class="line-code"><code class="language-{{ language }}">{{ line.text }}</code></td>
59 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ </tr>
60 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {% endfor %}
61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ </tbody>
62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ </table>
33 63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{% endif %}
34 64 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
</div>
35 65 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
</div>
36 66 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
37 67 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{% if not is_binary %}
38 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- <script>hljs.highlightAll();</script>
68 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ <script>
69 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // Highlight each code cell
70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ document.querySelectorAll('.line-code code').forEach(el => hljs.highlightElement(el));
71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // Scroll to line if hash present
72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if (window.location.hash) {
73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const el = document.querySelector(window.location.hash);
74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if (el) el.scrollIntoView({ behavior: 'smooth', block: 'center' });
75 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
76 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ </script>
39 77 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{% endif %}
40 78 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{% endblock %}
41 79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!