diff options
-rw-r--r-- | pysite/views/wiki/special/__init__.py | 1 | ||||
-rw-r--r-- | pysite/views/wiki/special/all_pages.py | 26 | ||||
-rw-r--r-- | pysite/views/wiki/special/index.py | 10 | ||||
-rw-r--r-- | templates/wiki/base.html | 18 | ||||
-rw-r--r-- | templates/wiki/special.html | 17 | ||||
-rw-r--r-- | templates/wiki/special_all.html | 26 |
6 files changed, 88 insertions, 10 deletions
diff --git a/pysite/views/wiki/special/__init__.py b/pysite/views/wiki/special/__init__.py new file mode 100644 index 00000000..9bad5790 --- /dev/null +++ b/pysite/views/wiki/special/__init__.py @@ -0,0 +1 @@ +# coding=utf-8 diff --git a/pysite/views/wiki/special/all_pages.py b/pysite/views/wiki/special/all_pages.py new file mode 100644 index 00000000..2d5376aa --- /dev/null +++ b/pysite/views/wiki/special/all_pages.py @@ -0,0 +1,26 @@ +from operator import itemgetter + +from pysite.base_route import RouteView +from pysite.mixins import DBMixin + + +class PageView(RouteView, DBMixin): + path = "/special/all_pages" + name = "special.all_pages" + table_name = "wiki" + + def get(self): + pages = self.db.pluck(self.table_name, "title", "slug") + pages = sorted(pages, key=itemgetter("title")) + + letters = {} + + for page in pages: + letter = page["title"][0].upper() + + if letter not in letters: + letters[letter] = [] + + letters[letter].append(page) + + return self.render("wiki/special_all.html", letters=letters) diff --git a/pysite/views/wiki/special/index.py b/pysite/views/wiki/special/index.py new file mode 100644 index 00000000..15c0a649 --- /dev/null +++ b/pysite/views/wiki/special/index.py @@ -0,0 +1,10 @@ +from pysite.base_route import RouteView +from pysite.mixins import DBMixin + + +class PageView(RouteView, DBMixin): + path = "/special" + name = "special" + + def get(self): + return self.render("wiki/special.html") diff --git a/templates/wiki/base.html b/templates/wiki/base.html index c6f8deca..28431324 100644 --- a/templates/wiki/base.html +++ b/templates/wiki/base.html @@ -69,14 +69,7 @@ <li><a href="{{ url_for("wiki.page", page="minecraft") }}"> <i class="uk-icon fas fa-fw fa-cube"></i> Minecraft </a></li> -{# <li class="uk-active"><a href="#">active</a></li>#} -{# <li class="uk-parent">#} -{# <a href="#">Contributing</a>#} -{# <ul class="uk-nav-sub">#} -{# <li><a href="#">Sub item</a></li>#} -{# <li><a href="#">Sub item</a></li>#} -{# </ul>#} -{# </li>#} + <li class="uk-nav-divider"></li> {% if (can_edit or debug) and current_page != "edit" %} @@ -115,7 +108,6 @@ </li> {% endif %} - {% if current_page != "source" %} <li> <a href="{{ url_for("wiki.source", page=page) }}"> @@ -129,8 +121,14 @@ </a> </li> {% endif %} + <li class="uk-nav-divider"></li> - <li><a href="{{ url_for("wiki.page", page="help") }}"><i class="fas fa-fw fa-question-circle"></i> Help</a></li> + <li><a href="{{ url_for("wiki.special") }}"> + <i class="uk-icon fas fa-fw fa-ellipsis-h"></i> Special Pages + </a></li> + <li><a href="{{ url_for("wiki.page", page="help") }}"> + <i class="fas fa-fw fa-question-circle"></i> Help + </a></li> </ul> </div> <div class="uk-section" style="flex-grow: 1; margin: 0 1rem 1rem;"> diff --git a/templates/wiki/special.html b/templates/wiki/special.html new file mode 100644 index 00000000..12e9cb18 --- /dev/null +++ b/templates/wiki/special.html @@ -0,0 +1,17 @@ +{% extends "wiki/base.html" %} +{% block title %}Wiki | Special Pages{% endblock %} +{% block og_title %}Wiki | Special Pages{% endblock %} +{% block og_description %}Wiki special pages, non-article informational pages{% endblock %} +{% block content %} + <div class="uk-container uk-container-small"> + <h2 class="uk-title"> + Special Pages + </h2> + + <ul> + <li><a href="{{ url_for("wiki.special.all_pages") }}"> + Special: All Pages + </a></li> + </ul> + </div> +{% endblock %}
\ No newline at end of file diff --git a/templates/wiki/special_all.html b/templates/wiki/special_all.html new file mode 100644 index 00000000..60df4ac3 --- /dev/null +++ b/templates/wiki/special_all.html @@ -0,0 +1,26 @@ +{% extends "wiki/base.html" %} +{% block title %}Wiki | Special: All Pages{% endblock %} +{% block og_title %}Wiki | Special: All Pages{% endblock %} +{% block og_description %}A listing for all pages on the wiki{% endblock %} +{% block content %} + <div class="uk-container uk-container-small"> + <h2 class="uk-title"> + Special: All Pages + </h2> + <p class="uk-text-meta"> + A listing for all pages on the wiki + </p> + + {% for letter, pages in letters.items() %} + <h3 class="uk-heading-divider">{{ letter }}</h3> + + <ul> + {% for page in pages %} + <li><a href="{{ page.slug }}"> + {{ page.title }} (<span style="font-family: monospace;">{{ page.slug }}</span>) + </a></li> + {% endfor %} + </ul> + {% endfor %} + </div> +{% endblock %}
\ No newline at end of file |