Commit 96c30f66 authored by chrissi^'s avatar chrissi^

Mockup for Atom-Feed in ff-bs.de

parent 18b6d078
Pipeline #1584 passed with stage
in 24 seconds
git+git://github.com/pengutronix/flamingo@v1.0#egg=flamingo
flamingo[feeds]
beautifulsoup4==4.5.3
Pillow==4.3.0
ipython==6
......
......@@ -136,3 +136,19 @@ output: index.html
</div>
</div>
</div>
<div class="container">
<div class="row">
<hr>
<h1>Aktuelles:</h1>
{% with entries = context.contents.filter(feedtag=True).order_by("date") %}
{% for entry in (entries|reverse|list)[:5] %}
<h3>{{entry.content_title}}</h3>
<p>
<i>{{entry.date}}</i> - {{ entry.content_body }}<br />
<a href="{{entry.url}}" >Mehr lesen...</a>
</p>
{% endfor %}
{% endwith %}
</div>
</div>
template: page.html
blog:
- date: 2020-03-22
title: Wöchentliche Treffen finden erst einmal digital statt
body: Aufgrund der aktuellen Situation ist unser regulärer Treffpunkt im Stratum 0 zur Zeit geschlossen. Anstelle unserer Treffen vor Ort treffen wir uns nun Mittwochs ab 19:00 Uhr in einer Online Konferenz.
- date: 2020-05-10
title: Browserempfehlung zum Online-Meeting
body: Unsere Wöchentliche Online-Konferenz funktioniert am Besten in Chrome oder Chromium
Online Meetups
==============
......
blog:
- date: 2020-05-26
title: Project Parker - Öffentlicher Test
body: Freifunk Project Parker ist ein neuer Ansatz für die Funktionsweise eines Freifunk Netzes. Unser Projekt befindet sich jetzt in einem öffentlichen Test.
Freifunk Project Parker
......
......@@ -2,6 +2,11 @@ sort: 100
template: page_html.html
title: Spenden
blog:
- date: 2020-05-24
title: Spendenaufruf und Finanzierungsübersicht
body: Freifunk Braunschweig entstehen für den Betrieb laufende Kosten. Auf dieser Seite geben wir dir einen Überblick welche regelmäßigen Ausgaben uns entstehen und wie Du uns finanziell Unterstützen kannst.
<div class="container">
<div class="page-header" >
......
from flamingo.core.data_model import Content
class Blog:
def contents_parsed(self, context):
#collect 'blog'-update snippets from all sites
for content in context.contents:
if "blog" in content:
for b in content["blog"]:
if not ("date" in b and "title" in b and "body" in b):
continue
c = Content()
c["date"] = b["date"]
c["content_title"] = b["title"]
c["content_body"] = b["body"]
c["url"] = "/"+content["output"]
c["path"] = "/dev/null"
c["output"] = "/dev/null"
c["feedtag"] = True
context.contents.add(c)
# collect firmware releases
for content in context.contents.filter(path__startswith="firmware/v").order_by("-content_title"):
for branch in content["branches"]:
if not ("date" in branch and "channel" in branch and "name" in branch):
continue
c = Content()
c["date"] = branch["date"]
c["content_title"] = "Neue Firmware {} freigegeben".format(content["title"])
c["content_body"] = "Es wurde eine neue Firmware im Zweig '{}' freigegeben. Das Release heißt '{}'.".format(branch["channel"], branch["name"])
c["url"] = "/mitmachen/firmware.html"
c["path"] = "/dev/null"
c["output"] = "/dev/null"
c["feedtag"] = True
context.contents.add(c)
......@@ -9,6 +9,8 @@ PLUGINS = [
'plugins/git.py::Git',
'plugins/raw.py::Raw',
'plugins/rst_ffbs_box.py::rstFfbsBox',
'plugins/blog.py::Blog',
'flamingo.plugins.Feeds',
]
# remove flamingo core HTML plugin.
......@@ -23,3 +25,22 @@ THEME_PATHS = [
'theme/',
]
FEEDS_DOMAIN = 'https://freifunk-bs.de'
FEEDS = [
{
'id': 'freifunk-bs.de/feed',
'title': 'freifunk-bs.de',
'type': 'atom',
'output': 'all.atom.xml',
'lang': 'en',
'contents':
lambda ctx: ctx.contents.filter(feedtag=True).order_by("date"),
'entry-id':
lambda content: 'tag:freifunk-bs.de,{}:/{}'.format(
content['date'],
os.path.basename(content['url']),
),
'updated':
lambda content: content['date'].strftime('%Y-%m-%d %H:%M:%S+01:00')
},
]
......@@ -15,6 +15,7 @@
<link href="/css/small-business.css" rel="stylesheet">
<link href="/css/font-awesome.min.css" rel="stylesheet">
<script src="/js/jquery-2.1.1.min.js"></script>
<link rel="alternate" type="application/atom+xml" href="/all.atom.xml" />
</head>
<!--
Generated with flamingo.
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment