SPB Git

spb/spbgit Public MIT

SPB Git — the platform hosting itself

JavaScript 73.9% CSS 11.7% Nunjucks 11.6% Shell 2.7%
2.9 KB · 48 lines jinja
Raw Blame History
1{#2  ─────────────────────────────────────────────3   SPB Git — Personal Git Platform4  ─────────────────────────────────────────────5   Author  : Simon-Pierre Boucher6   Contact : contact@spboucher.ai7   File    : src/web/views/partials/repo-header.njk8   Purpose : Repo page header — breadcrumb, meta, language bar, tabs9   License : MIT © Simon-Pierre Boucher10  ─────────────────────────────────────────────11#}<header class="repo-header">12  <h1 class="repo-title">13    <a href="/" class="repo-owner">spb</a><span class="repo-sep">/</span><a href="/{{ overview.name }}" class="repo-name">{{ overview.name }}</a>14    <span class="chip chip-public">Public</span>15    {% if overview.license %}<span class="chip chip-license" title="License detected from {{ overview.licensePath }}">{{ overview.license }}</span>{% endif %}16  </h1>17  {% if overview.description %}<p class="repo-desc">{{ overview.description }}</p>{% endif %}18  <div class="repo-meta-row">19    {% if overview.homepage %}<a class="repo-homepage" href="{{ overview.homepage }}" rel="noopener noreferrer">🔗 {{ overview.homepage }}</a>{% endif %}20    {% if overview.topics.length %}21    <div class="chip-row">22      {% for topic in overview.topics %}<a class="chip chip-topic" href="/search?q={{ topic }}">{{ topic }}</a>{% endfor %}23    </div>24    {% endif %}25  </div>26  {% if overview.languages.length %}27  <div class="lang-bar" role="img" aria-label="Language composition">28    {% for lang in overview.languages %}29    <span class="lang-bar-seg" style="width:{{ lang.percent }}%;background:{{ lang.color }}" title="{{ lang.name }} {{ lang.percent }}%"></span>30    {% endfor %}31  </div>32  <div class="lang-legend">33    {% for lang in overview.languages %}34    {% if lang.percent >= 0.5 %}35    <span class="lang-dot-label"><span class="lang-dot" style="background:{{ lang.color }}"></span>{{ lang.name }} <span class="muted">{{ lang.percent }}%</span></span>36    {% endif %}37    {% endfor %}38  </div>39  {% endif %}40  <nav class="repo-tabs" aria-label="Repository sections">41    <a class="repo-tab {{ 'active' if tab == 'code' }}" href="/{{ overview.name }}">Code</a>42    <a class="repo-tab {{ 'active' if tab == 'commits' }}" href="/{{ overview.name }}/commits/{{ currentRef }}">Commits <span class="count">{{ overview.commitCount | num }}</span></a>43    <a class="repo-tab {{ 'active' if tab == 'branches' }}" href="/{{ overview.name }}/branches">Branches <span class="count">{{ overview.branchCount }}</span></a>44    <a class="repo-tab {{ 'active' if tab == 'tags' }}" href="/{{ overview.name }}/tags">Tags <span class="count">{{ overview.tagCount }}</span></a>45    <span class="repo-tab-meta muted">{{ overview.sizeBytes | bytes }}</span>46  </nav>47</header>48