the repository which powers this website
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
{% block tree_listing_item(const struct object_id *oid, struct strbuf *base, const char *pathname, unsigned mode, bool border_above) %}
				{# Directory listing entry #}
				{!
					unsigned long size = 0;
					if (!S_ISGITLINK(mode)) {
						oid_object_info(the_repository, oid, &size);
					}
					
					struct strbuf fullpath = STRBUF_INIT;
					strbuf_addf(&fullpath, "%s%s", base->buf, pathname);
				!}
				<div class="pl-3 pr-1 py-2{% if border_above %} border-t border-[#333A45]{% endif %}">
					{# File icon #}
					{% if S_ISGITLINK(mode) %}
					{# Heroicons solid folder #}
					<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="size-5 text-[#a3a29c] mt-[0.1rem]"><path d="M19.5 21a3 3 0 0 0 3-3v-4.5a3 3 0 0 0-3-3h-15a3 3 0 0 0-3 3V18a3 3 0 0 0 3 3h15ZM1.5 10.146V6a3 3 0 0 1 3-3h5.379a2.25 2.25 0 0 1 1.59.659l2.122 2.121c.14.141.331.22.53.22H19.5a3 3 0 0 1 3 3v1.146A4.483 4.483 0 0 0 19.5 9h-15a4.483 4.483 0 0 0-3 1.146Z" /></svg>
					{% elif S_ISDIR(mode) %}
					{# Heroicons solid folder #}
					<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor" class="size-5 text-[#73D0FF] mt-[0.1rem]"><path d="M19.5 21a3 3 0 0 0 3-3v-4.5a3 3 0 0 0-3-3h-15a3 3 0 0 0-3 3V18a3 3 0 0 0 3 3h15ZM1.5 10.146V6a3 3 0 0 1 3-3h5.379a2.25 2.25 0 0 1 1.59.659l2.122 2.121c.14.141.331.22.53.22H19.5a3 3 0 0 1 3 3v1.146A4.483 4.483 0 0 0 19.5 9h-15a4.483 4.483 0 0 0-3 1.146Z" /></svg>
					{% elif S_ISLNK(mode) %}
					{# Heroicons outline link #}
					<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-5 text-[#a3a29c] mt-[0.1rem]"><path stroke-linecap="round" stroke-linejoin="round" d="M13.19 8.688a4.5 4.5 0 0 1 1.242 7.244l-4.5 4.5a4.5 4.5 0 0 1-6.364-6.364l1.757-1.757m13.35-.622 1.757-1.757a4.5 4.5 0 0 0-6.364-6.364l-4.5 4.5a4.5 4.5 0 0 0 1.242 7.244" /></svg>
					{% else %}
					{# Heroicons outline document #}
					<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor" class="size-5 text-[#a3a29c] mt-[0.1rem]"><path stroke-linecap="round" stroke-linejoin="round" d="M19.5 14.25v-2.625a3.375 3.375 0 0 0-3.375-3.375h-1.5A1.125 1.125 0 0 1 13.5 7.125v-1.5a3.375 3.375 0 0 0-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 0 0-9-9Z" /></svg>
					{% endif %}
				</div>
				<div class="font-mono pr-3 py-2{% if border_above %} border-t border-[#333A45]{% endif %}">
					{# File name and link #}
					{% if S_ISGITLINK(mode) %}
						{! cgit_submodule_link("ls-mod", fullpath.buf, pathname, oid_to_hex(oid)); !}
					{% else %}
					<a href="{! cgit_shared_reporevlink_url("tree", ctx.qry.head, ctx.qry.oid, fullpath.buf); !}" class="hover:text-[#73D0FF] hover:underline">
						{{ pathname }}
					</a>
					{% endif %}
				</div>
				<div class="pr-3 py-2{% if border_above %} border-t border-[#333A45]{% endif %} text-[#a3a29c] font-mono">
					{# Mode #}
					{! cgit_print_filemode(mode); !}
				</div>
				<div class="pr-3 py-2{% if border_above %} border-t border-[#333A45]{% endif %} text-[#a3a29c] text-end">
					{# File size #}
					{% if !S_ISGITLINK(mode) && !S_ISDIR(mode) && !S_ISLNK(mode) %}
					{{ size|%ld }}
					{% endif %}
				</div>
				{! strbuf_release(&fullpath); !}
{% endblock %}