FossilRepo

Wiki: Home page first, then alphabetical. Home highlighted in sidebar nav.

lmata 2026-04-07 19:33 trunk
Commit 725b14a32365c3532d01b0577c9d5d0f178535d9484d3bf8c01e79fed2c5cfd1
--- fossil/views.py
+++ fossil/views.py
@@ -761,10 +761,13 @@
761761
762762
with reader:
763763
pages = reader.get_wiki_pages()
764764
home_page = reader.get_wiki_page("Home")
765765
766
+ # Sort: Home first, then alphabetical
767
+ pages = sorted(pages, key=lambda p: ("" if p.name == "Home" else "~" + p.name.lower()))
768
+
766769
search = request.GET.get("search", "").strip()
767770
if search:
768771
pages = [p for p in pages if search.lower() in p.name.lower()]
769772
770773
per_page = get_per_page(request)
771774
--- fossil/views.py
+++ fossil/views.py
@@ -761,10 +761,13 @@
761
762 with reader:
763 pages = reader.get_wiki_pages()
764 home_page = reader.get_wiki_page("Home")
765
 
 
 
766 search = request.GET.get("search", "").strip()
767 if search:
768 pages = [p for p in pages if search.lower() in p.name.lower()]
769
770 per_page = get_per_page(request)
771
--- fossil/views.py
+++ fossil/views.py
@@ -761,10 +761,13 @@
761
762 with reader:
763 pages = reader.get_wiki_pages()
764 home_page = reader.get_wiki_page("Home")
765
766 # Sort: Home first, then alphabetical
767 pages = sorted(pages, key=lambda p: ("" if p.name == "Home" else "~" + p.name.lower()))
768
769 search = request.GET.get("search", "").strip()
770 if search:
771 pages = [p for p in pages if search.lower() in p.name.lower()]
772
773 per_page = get_per_page(request)
774
--- templates/fossil/wiki_list.html
+++ templates/fossil/wiki_list.html
@@ -50,12 +50,19 @@
5050
<div class="sticky top-6">
5151
<h3 class="text-xs font-semibold uppercase tracking-wider text-gray-500 mb-3">Wiki Pages</h3>
5252
<nav class="space-y-0.5">
5353
{% for p in pages %}
5454
<a href="{% url 'fossil:wiki_page' slug=project.slug page_name=p.name %}"
55
- class="block rounded-md px-3 py-1.5 text-sm text-gray-400 hover:text-gray-200 hover:bg-gray-800/50">
55
+ class="block rounded-md px-3 py-1.5 text-sm {% if p.name == 'Home' %}text-brand-light font-medium{% else %}text-gray-400{% endif %} hover:text-gray-200 hover:bg-gray-800/50">
56
+ {% if p.name == "Home" %}
57
+ <span class="flex items-center gap-1.5">
58
+ <svg class="h-3 w-3" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M2.25 12l8.954-8.955a1.126 1.126 0 011.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25" /></svg>
59
+ {{ p.name }}
60
+ </span>
61
+ {% else %}
5662
{{ p.name }}
63
+ {% endif %}
5764
</a>
5865
{% endfor %}
5966
</nav>
6067
{% if not pages %}
6168
<p class="text-xs text-gray-600 px-3">No pages.</p>
6269
--- templates/fossil/wiki_list.html
+++ templates/fossil/wiki_list.html
@@ -50,12 +50,19 @@
50 <div class="sticky top-6">
51 <h3 class="text-xs font-semibold uppercase tracking-wider text-gray-500 mb-3">Wiki Pages</h3>
52 <nav class="space-y-0.5">
53 {% for p in pages %}
54 <a href="{% url 'fossil:wiki_page' slug=project.slug page_name=p.name %}"
55 class="block rounded-md px-3 py-1.5 text-sm text-gray-400 hover:text-gray-200 hover:bg-gray-800/50">
 
 
 
 
 
 
56 {{ p.name }}
 
57 </a>
58 {% endfor %}
59 </nav>
60 {% if not pages %}
61 <p class="text-xs text-gray-600 px-3">No pages.</p>
62
--- templates/fossil/wiki_list.html
+++ templates/fossil/wiki_list.html
@@ -50,12 +50,19 @@
50 <div class="sticky top-6">
51 <h3 class="text-xs font-semibold uppercase tracking-wider text-gray-500 mb-3">Wiki Pages</h3>
52 <nav class="space-y-0.5">
53 {% for p in pages %}
54 <a href="{% url 'fossil:wiki_page' slug=project.slug page_name=p.name %}"
55 class="block rounded-md px-3 py-1.5 text-sm {% if p.name == 'Home' %}text-brand-light font-medium{% else %}text-gray-400{% endif %} hover:text-gray-200 hover:bg-gray-800/50">
56 {% if p.name == "Home" %}
57 <span class="flex items-center gap-1.5">
58 <svg class="h-3 w-3" fill="none" viewBox="0 0 24 24" stroke-width="1.5" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" d="M2.25 12l8.954-8.955a1.126 1.126 0 011.591 0L21.75 12M4.5 9.75v10.125c0 .621.504 1.125 1.125 1.125H9.75v-4.875c0-.621.504-1.125 1.125-1.125h2.25c.621 0 1.125.504 1.125 1.125V21h4.125c.621 0 1.125-.504 1.125-1.125V9.75M8.25 21h8.25" /></svg>
59 {{ p.name }}
60 </span>
61 {% else %}
62 {{ p.name }}
63 {% endif %}
64 </a>
65 {% endfor %}
66 </nav>
67 {% if not pages %}
68 <p class="text-xs text-gray-600 px-3">No pages.</p>
69

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button