From b4e843ebc1fa35c457e59bfff252b252ef2ef77f Mon Sep 17 00:00:00 2001 From: Hedy Li Date: Fri, 19 Nov 2021 10:11:18 +0800 Subject: feat: Edit on GitHub button for content articles - Using `if pages` to check whether the page is an article or category doesn't work for /pages/guides - I still need to modify the styling and position of the button a bit - Should probably just use a static method and put src_url as context instead of having a template tag --- pydis_site/apps/content/templatetags/__init__.py | 0 pydis_site/apps/content/templatetags/page_src.py | 22 ++++++++++++++++++++++ 2 files changed, 22 insertions(+) create mode 100644 pydis_site/apps/content/templatetags/__init__.py create mode 100644 pydis_site/apps/content/templatetags/page_src.py (limited to 'pydis_site/apps') diff --git a/pydis_site/apps/content/templatetags/__init__.py b/pydis_site/apps/content/templatetags/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/pydis_site/apps/content/templatetags/page_src.py b/pydis_site/apps/content/templatetags/page_src.py new file mode 100644 index 00000000..33f24b82 --- /dev/null +++ b/pydis_site/apps/content/templatetags/page_src.py @@ -0,0 +1,22 @@ +from django import template + + +register = template.Library() + + +@register.filter() +def page_src_url(request_path: str) -> str: + """ + Return the corresponding GitHub source URL for the current content article. + + request_path is the relative path of an article, as returned by `request.path` in templates. + + For example: /pages/rules/ would return: + https://github.com/python-discord/site/tree/main/pydis_site/apps/content/resources/rules.md + """ + src_url = request_path.replace( + "/pages/", + "https://github.com/python-discord/site/tree/main/pydis_site/apps/content/resources/", + ) + src_url = src_url[:-1] + ".md" + return src_url -- cgit v1.2.3