From 82dbe5a51e62a255294b5b382c1a3ea1db84ccc1 Mon Sep 17 00:00:00 2001 From: Rico Hoppe Date: Tue, 28 May 2024 16:18:51 +0000 Subject: [PATCH] add a module to handle open graph metadata Signed-off-by: Rico Hoppe --- Makefile.am | 1 + src/templates/modules/open-graph.html | 3 +++ src/web/__init__.py | 1 + src/web/ui_modules.py | 15 +++++++++++++++ 4 files changed, 20 insertions(+) create mode 100644 src/templates/modules/open-graph.html diff --git a/Makefile.am b/Makefile.am index 95220c2e..49c23a25 100644 --- a/Makefile.am +++ b/Makefile.am @@ -293,6 +293,7 @@ templates_messagesdir = $(templatesdir)/messages templates_modules_DATA = \ src/templates/modules/ipfire-logo.html \ src/templates/modules/map.html \ + src/templates/modules/open-graph.html \ src/templates/modules/progress-bar.html templates_modulesdir = $(templatesdir)/modules diff --git a/src/templates/modules/open-graph.html b/src/templates/modules/open-graph.html new file mode 100644 index 00000000..8cd98a6f --- /dev/null +++ b/src/templates/modules/open-graph.html @@ -0,0 +1,3 @@ +{% for key in properties %} + +{% end %} diff --git a/src/web/__init__.py b/src/web/__init__.py index dfc72eaa..8f80d6ba 100644 --- a/src/web/__init__.py +++ b/src/web/__init__.py @@ -106,6 +106,7 @@ class Application(tornado.web.Application): "IPFireLogo" : ui_modules.IPFireLogoModule, "Markdown" : ui_modules.MarkdownModule, "Map" : ui_modules.MapModule, + "OpenGraph" : ui_modules.OpenGraphModule, "ProgressBar" : ui_modules.ProgressBarModule, }, diff --git a/src/web/ui_modules.py b/src/web/ui_modules.py index a41ab371..b81aeb21 100644 --- a/src/web/ui_modules.py +++ b/src/web/ui_modules.py @@ -15,6 +15,21 @@ class IPFireLogoModule(UIModule): return self.render_string("modules/ipfire-logo.html", suffix=suffix) +class OpenGraphModule(UIModule): + def render(self, title, **kwargs): + properties = { + "site_name" : "IPFire.org", + "title" : title, + "type" : "website", + "url" : self.request.full_url(), + "image" : self.handler.static_url("img/ipfire-tux.png", include_host=True), + "logo" : self.handler.static_url("img/ipfire-tux.png", include_host=True), + "locale" : self.locale.code, + } | kwargs + + return self.render_string("modules/open-graph.html", properties=properties) + + class MarkdownModule(UIModule): def render(self, markdown): return self.backend.blog._render_text(markdown) -- 2.47.2