aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Gareth Coles <[email protected]>2018-05-02 13:28:51 +0100
committerGravatar Gareth Coles <[email protected]>2018-05-02 13:28:51 +0100
commit3bdffd9cfb61c8a8e75c472765fbb738a67c6ca0 (patch)
treef92ee5acfb48461c9a66da46460f51ff8d62828a
parentFixed those pesky rapper names. (#66) (diff)
Add special pages and an "all pages" special page
-rw-r--r--pysite/views/wiki/special/__init__.py1
-rw-r--r--pysite/views/wiki/special/all_pages.py26
-rw-r--r--pysite/views/wiki/special/index.py10
-rw-r--r--templates/wiki/base.html18
-rw-r--r--templates/wiki/special.html17
-rw-r--r--templates/wiki/special_all.html26
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> &nbsp;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> &nbsp;Help</a></li>
+ <li><a href="{{ url_for("wiki.special") }}">
+ <i class="uk-icon fas fa-fw fa-ellipsis-h"></i> &nbsp;Special Pages
+ </a></li>
+ <li><a href="{{ url_for("wiki.page", page="help") }}">
+ <i class="fas fa-fw fa-question-circle"></i> &nbsp;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