From 57dc9d1f00fcf8f9adede09ed8558512e355510e Mon Sep 17 00:00:00 2001 From: Cameron Hyde Date: Tue, 13 Aug 2024 14:11:45 +1000 Subject: [PATCH] Request embedded snippets at /embed/snippet/path.html --- webapp/home/static/home/css/embedded.css | 6 ++++++ webapp/home/templates/embed-snippet.html | 12 ++++++++++++ webapp/home/urls.py | 4 ++++ webapp/home/views.py | 13 +++++++++++++ wiki | 2 +- 5 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 webapp/home/static/home/css/embedded.css create mode 100644 webapp/home/templates/embed-snippet.html diff --git a/webapp/home/static/home/css/embedded.css b/webapp/home/static/home/css/embedded.css new file mode 100644 index 00000000..eb8d35d1 --- /dev/null +++ b/webapp/home/static/home/css/embedded.css @@ -0,0 +1,6 @@ +body { + padding: 1rem; +} +footer { + margin-top: 100px; +} diff --git a/webapp/home/templates/embed-snippet.html b/webapp/home/templates/embed-snippet.html new file mode 100644 index 00000000..78707c18 --- /dev/null +++ b/webapp/home/templates/embed-snippet.html @@ -0,0 +1,12 @@ +{% extends 'home/header-export.html' %} + +{% load static %} + +{% block head %} + +{% endblock %} + + +{% block content %} +{% include snippet_path %} +{% endblock %} diff --git a/webapp/home/urls.py b/webapp/home/urls.py index 297d0bb9..219a1f0a 100644 --- a/webapp/home/urls.py +++ b/webapp/home/urls.py @@ -29,6 +29,10 @@ api.validate_institutional_email, name="validate_institutional_email"), + # Arbitrary HTML snippets + re_path(r'^embed\/([\S\/]+\.html)', views.embed_snippet, + name='embed_snippet'), + # Arbitrary *.html / *.md pages re_path(r'^[\w\d\_-]+\.(?:html|md)$', views.page, name='html_pages'), diff --git a/webapp/home/views.py b/webapp/home/views.py index 99213be7..e5a7354f 100644 --- a/webapp/home/views.py +++ b/webapp/home/views.py @@ -309,3 +309,16 @@ def custom_400(request, exception, template_name="400.html"): return render(request, template_name, { 'exc': exception, }, status=400) + + +def embed_snippet(request, snippet_path): + """Serve an embeddable snippet.""" + try: + if 'snippets' not in snippet_path: + raise Http404 + return render(request, 'embed-snippet.html', { + 'title': 'Galaxy Media - embedded snippet', + 'snippet_path': snippet_path, + }) + except TemplateDoesNotExist: + raise Http404 diff --git a/wiki b/wiki index 1e0e78fb..4e6de0f1 160000 --- a/wiki +++ b/wiki @@ -1 +1 @@ -Subproject commit 1e0e78fb0758ac43ed70b4a36aaa641f9085e738 +Subproject commit 4e6de0f151123df554a8ad02c52709f2f289c701