Startpage and templates
This commit is contained in:
parent
51163ea9ad
commit
0e23f1f997
30 changed files with 1177 additions and 82 deletions
|
@ -1,7 +0,0 @@
|
|||
title: About this Website
|
||||
---
|
||||
body:
|
||||
|
||||
This is a website that was made with the Lektor quickstart.
|
||||
|
||||
And it does not contain a lot of information.
|
|
@ -1,3 +0,0 @@
|
|||
_model: blog
|
||||
---
|
||||
title: Blog
|
|
@ -1,9 +0,0 @@
|
|||
title: Hello Website
|
||||
---
|
||||
pub_date: 2019-05-25
|
||||
---
|
||||
author: L3D
|
||||
---
|
||||
body:
|
||||
|
||||
This is an example blog post. Not much here but that's not the point :)
|
|
@ -1,6 +1,148 @@
|
|||
title: Welcome to c3woc-podcast!
|
||||
_model: start
|
||||
---
|
||||
body:
|
||||
title: C3 Waffel Operation Center
|
||||
---
|
||||
slogan: Wir machen Waffeln!
|
||||
---
|
||||
about_header: Die Waffel Formel
|
||||
---
|
||||
about_text: Mit viel liebe verwandeln wir rohe Zutaten in waffelfähigen Teig. Dabei verwenden wir lang erforschte Rezepturen, die wir euch nicht verheimlichen wollen.
|
||||
---
|
||||
about_text2: Nach jahrelanger Forschung ist es uns gelungen, die Formel für den Waffelteig zu rekonstruieren. Diese galt lange als verschollen, wurde jetzt aber durch Quantentechnologie und Blockchain wieder zugänglich gemacht.
|
||||
---
|
||||
about_text3: Eines der Geheimnisse von gutem Waffelteig ist die Frische der Zutaten. Ein anderes ist die Qualität.
|
||||
---
|
||||
about_url: Waffel Rezepturen
|
||||
---
|
||||
about_url2: /rezept/
|
||||
---
|
||||
icons_header: Wo kannst du uns treffen?
|
||||
---
|
||||
icons_text:
|
||||
|
||||
This is a basic demo website that shows how to use Lektor for a basic
|
||||
website with some pages and a blog.
|
||||
Das C3WOC erfreut sich einer großen Beliebtheit. Besonders im Umkreis des Chaos Computer Club und Chaos nahen Veranstaltungen.<br/>
|
||||
Selbstverständlich sollen dort Waffeln nicht fehlen!
|
||||
---
|
||||
icons_1_1: fas fa-heart
|
||||
---
|
||||
icons_1_2: Seid nett zu einander
|
||||
---
|
||||
icons_1_3:
|
||||
|
||||
Eine Waffel besteht aus fünf Herzen. Das ist nicht zufällig so!
|
||||
Ein Herz steht metaphorisch für Güte und Liebe steht. Ebenso tut dies eine Waffel!
|
||||
---
|
||||
icons_2_1: fas fa-handshake
|
||||
---
|
||||
icons_2_2: Kommt zusammen
|
||||
---
|
||||
icons_2_3: Eine einsame Waffel schmeckt bei weiten nicht so gut, wie eine Waffel, die man mit Freunden oder neuen Bekannten genießen kann.
|
||||
---
|
||||
icons_3_1: fas fa-flask
|
||||
---
|
||||
icons_3_2: Experimentiert
|
||||
---
|
||||
icons_3_3: Mit Waffeln lassen sich viele Experimente machen oder verbessern. Angefangen von der Waffel, die die experimentierfreudigen Hacker neu motiviert. Bis hin zu neuen Kreationen wie zum Beispiel die [Dönerwaffel](/rezept/doener/).
|
||||
---
|
||||
icons_4_1: fas fa-user-plus
|
||||
---
|
||||
icons_4_2: Mach mit
|
||||
---
|
||||
icons_4_3: Einsam Waffeln backen macht keinen Spaß. Mach mit beim C3WOC und lass uns gemeinsam mit Waffeln etwas Freude, Liebe und gute Laune verbreiten!
|
||||
---
|
||||
icons_4_url: /mitmachen/
|
||||
---
|
||||
icons_5_1: far fa-comments
|
||||
---
|
||||
icons_5_2: Tauscht euch aus
|
||||
---
|
||||
icons_5_3: Lasst uns gemeinsam über Waffeln reden. Kommt doch bei uns im IRC auf [irc.hackint.org/#waffel](https://hackint.org/connect) vorbei.
|
||||
---
|
||||
icons_5_url: https://webirc.hackint.org/#irc://irc.hackint.org/#waffel
|
||||
---
|
||||
icons_6_1: fa-calendar-plus
|
||||
---
|
||||
icons_6_2: Kommt zu Veranstaltungen
|
||||
---
|
||||
icons_6_3: Das C3WOC kommt gerne zu chaosnahen Veranstaltungen, um dort mit euch zusammen Waffeln zu machen. Ladet uns einfach mal ein!
|
||||
---
|
||||
icons_6_url: https://c3woc.de/#tourdaten
|
||||
---
|
||||
icons_txt: Werde Teil des C3WOC
|
||||
---
|
||||
icons_url: https://c3woc.de/mitmachen/
|
||||
---
|
||||
red_1: Wir freuen uns über neue Gesichter.
|
||||
---
|
||||
red_2:
|
||||
|
||||
Alleine Waffeln zu backen ist langweilig und mit der Zeit echt anstrengend. Aber zusammen macht das gleich viel mehr Spaß.
|
||||
Wenn mehr Menschen mitmachen, wird das backen, Planen, Organisieren und essen von Waffeln zu einem super Erlebnis.
|
||||
---
|
||||
red_3:
|
||||
|
||||
Wir würden uns sehr über mehr aktive Leute, die Spaß an Waffeln haben freuen. Denn nur mit wenigen Menschen etwas zu Planen und durchzuführen ist anstrengend und funktioniert nicht für unbegrenzte Zeit.
|
||||
|
||||
Bitte mach bei uns mit!
|
||||
---
|
||||
red_4: Wir brauchen deine Unterstützung!
|
||||
---
|
||||
icons_1_url: https://c3coc.de
|
||||
---
|
||||
icons_3_url: /rezepte/
|
||||
---
|
||||
hinweis: Wenn du Lust hast, dann
|
||||
---
|
||||
hinweis_txt: mach mit!
|
||||
---
|
||||
hinweis_url: /mitmachen/
|
||||
---
|
||||
sections:
|
||||
|
||||
#### startpage_section ####
|
||||
type: right
|
||||
----
|
||||
header: Der Waffelblog
|
||||
----
|
||||
text: Wenn du interessiert bist an Bildern und etwas Text zu Veranstaltungen, bei denen das C3WOC involviert ist oder anderen Aktionen, bei denen gewaffelt wurde oder es um Waffeln geht, dann schau doch mal in den C3WOC Blog.
|
||||
----
|
||||
text2:
|
||||
|
||||
Wir würden auch einen Bericht von deinen Waffel-Aktionen dort sehr gerne lesen!
|
||||
|
||||
Sprich uns hierfür einfach an oder noch besser: Mach einen Pull-Request auf der [Webseite](https://github.com/ToolboxBodensee/c3woc-webseite).
|
||||
----
|
||||
url_text: Waffel-Blog
|
||||
----
|
||||
url: /blog/
|
||||
----
|
||||
background: /images/home/abschnitt2.jpeg
|
||||
#### startpage_section ####
|
||||
type: left
|
||||
----
|
||||
header: Equipment
|
||||
----
|
||||
text:
|
||||
|
||||
Für die perfekte Waffel gibt es einige Abhängigkeiten.<br/>
|
||||
Eine davon ist ganz klar das Waffeleisen.
|
||||
----
|
||||
text2: Hier setzt das C3WOC auf professionelles Gastronomie Equipment.
|
||||
----
|
||||
url_text: Waffellager
|
||||
----
|
||||
url: /equipment/
|
||||
----
|
||||
background: /images/home/abschnitt3.jpeg
|
||||
---
|
||||
render_tourdaten: yes
|
||||
---
|
||||
icons_header_2: Worum geht es bei den Waffeln
|
||||
---
|
||||
icons_text_2:
|
||||
|
||||
Das C3WOC macht nicht einfach Waffeln, die man für Geld kaufen kann.
|
||||
|
||||
<b>Sondern es geht um viel mehr!</b>
|
||||
---
|
||||
icons_2_url: https://www.ccc.de/de/regional
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
title: Projects
|
||||
---
|
||||
body:
|
||||
|
||||
This is a list of the projects:
|
||||
|
||||
* Project 1
|
||||
* Project 2
|
||||
* Project 3
|
24
databags/nav-bar.ini
Normal file
24
databags/nav-bar.ini
Normal file
|
@ -0,0 +1,24 @@
|
|||
[NavBar]
|
||||
Blog = '/blog'
|
||||
Rezept = '/rezept'
|
||||
mitglied = '/mitmachen'
|
||||
Kontakt = '/kontakt'
|
||||
|
||||
|
||||
[Rezept]
|
||||
show_projekt = '/rezept/'
|
||||
xml = '/feed_rezepte.xml'
|
||||
|
||||
|
||||
[Kontakt]
|
||||
Kontakt = '/kontakt'
|
||||
Impressum = '/impressum'
|
||||
Datenschutz = '/datenschutz'
|
||||
|
||||
[Blog]
|
||||
Alle-Beitraege = '/blog/'
|
||||
RSS-Feed = '/feed_blog.xml'
|
||||
|
||||
[list]
|
||||
Rezept = '/rezept/'
|
||||
Blog = '/blog/'
|
43
databags/navigation.ini
Normal file
43
databags/navigation.ini
Normal file
|
@ -0,0 +1,43 @@
|
|||
;; Hier gibt es die Übersetzungen für die C3WOC Webseiten Navigation
|
||||
|
||||
[de]
|
||||
home = Start
|
||||
Blog = Blog
|
||||
Rezept = Rezepte
|
||||
Kontakt = Kontakt
|
||||
Impressum = Impressum
|
||||
Datenschutz = Datenschutz
|
||||
xml = Rezepte als XML-Feed
|
||||
mitglied = Werde Teil der Waffel Crew
|
||||
Anfahrt = Anfahrt
|
||||
fragen = Häufige Fragen
|
||||
spenden = Spenden
|
||||
sprache = Language
|
||||
German = Deutsch
|
||||
Englisch = English
|
||||
falls = if available
|
||||
show_projekt = Alle Rezepte
|
||||
default_path = 'en'
|
||||
RSS-Feed = RSS Feed
|
||||
Alle-Beitraege = Alle Beiträge
|
||||
|
||||
[en]
|
||||
home = Start
|
||||
Blog = Blog
|
||||
Rezept = Recipes
|
||||
Kontakt = Contact
|
||||
Impressum = Imprint
|
||||
Datenschutz = Data protection
|
||||
xml = Recipes as XML feed
|
||||
mitglied = become part of our waffle crew
|
||||
Anfahrt = Approach
|
||||
fragen = Frequently Asked Questions
|
||||
spenden = donate
|
||||
sprache = Language
|
||||
German = German
|
||||
English = English
|
||||
falls = if available
|
||||
show_projekt = All recipes
|
||||
default_path = ''
|
||||
RSS-Feed = RSS Feed
|
||||
Alle-Beitraege = all news
|
41
databags/translate.ini
Normal file
41
databags/translate.ini
Normal file
|
@ -0,0 +1,41 @@
|
|||
;; Hier gibt es die Übersetzungen für die C3WOC Webseite
|
||||
|
||||
[de]
|
||||
description = Das CCC Waffel Operation Center (C3WOC) ist führender Experte in allen bereichen der süßen und herzhaften Teigprodukten. Sie bestehen aus einer Gruppe von Datenreisenden und Chaos Computer Club Enthusiasten, die sich dem Genuss und der Produktion von Waffeln zugewand haben... Möge die Waffel mit euch sein.
|
||||
api_url = /#tourdaten
|
||||
api_url_open = /kontakt/
|
||||
api_space = Waffel
|
||||
api_open = wird gebacken
|
||||
api_closed = stillstand
|
||||
api_opening_time = Lust auf Waffeln? Lade uns doch zu einem chaosnahen event bei dir ein!
|
||||
api_open_text = Es gibt gerade Waffeln! Wo genau? Das erfährst du auf c3woc.de/kontakt/
|
||||
blog_von = Geschrieben von
|
||||
blog_am = am
|
||||
blog_weiter = weiterlesen
|
||||
xmlfeed = Neues vom C3 Waffel Operation Center
|
||||
projectfeed = Rezepte des C3WOC
|
||||
directytlink = Direktlink zum YouTube Video
|
||||
directlink = Video speichern
|
||||
projekt_title_start = Dieses Rezept wurde von
|
||||
projekt_title_ende = rekonstruiert und verbessert.
|
||||
|
||||
[en]
|
||||
description = CCC Video Operation Center (C3VOC) is a working group consisting of Chaos Computer Club enthusiasts running lecture recording and streaming ..
|
||||
api_url = /#tourdaten
|
||||
api_url_open = /kontakt/
|
||||
api_space = ' '
|
||||
api_open = Waffels in production
|
||||
api_closed = Out of waffle
|
||||
api_opening_time = Want some waffles? Why don't you invite us to a chaos event at your place!
|
||||
api_open_text = There are just waffles! Where exactly? You can find out on c3woc.de/kontakt/
|
||||
blog_von = Written by
|
||||
blog_am = on
|
||||
blog_next = read more
|
||||
xmlfeed = News from the C3 Waffel Operation Center
|
||||
projectfeed = recipes of the C3WOC
|
||||
directytlink = Direct link to YouTube video
|
||||
directlink = save video
|
||||
project_title_start = This recipe was created by
|
||||
project_title_ende = reconstructed and improved.
|
||||
|
||||
|
1
templates/blocks/press_table.html
Normal file
1
templates/blocks/press_table.html
Normal file
|
@ -0,0 +1 @@
|
|||
<tr><td>{{ this.pub_date.strftime('%d.%m.%Y') }}</td><td><a href="{{ this.link }}">{{ this.text }}</a></td></tr>
|
4
templates/blocks/pro_img.html
Normal file
4
templates/blocks/pro_img.html
Normal file
|
@ -0,0 +1,4 @@
|
|||
{% set img = record.attachments.images.get(this.image) %}
|
||||
<a href="{{ img.path }}">
|
||||
<img class="image" src="{{ img.thumbnail(360, 360)|url }}" />
|
||||
</a>
|
8
templates/blocks/pro_video.html
Normal file
8
templates/blocks/pro_video.html
Normal file
|
@ -0,0 +1,8 @@
|
|||
<div class="fit">
|
||||
<youtube-embed embed="{{ this.video_url }}"></youtube-embed>
|
||||
<noscript>
|
||||
<div class="youtube">
|
||||
<iframe src='https://invidio.us/embed/{{ this.video_url }}?rel=0' frameborder='0' allow="autoplay; encrypted-media" allowfullscreen scrolling="no"></iframe>
|
||||
</div>
|
||||
</noscript>
|
||||
</div>
|
10
templates/blocks/startpage_section.html
Normal file
10
templates/blocks/startpage_section.html
Normal file
|
@ -0,0 +1,10 @@
|
|||
<div class="content">
|
||||
<header>
|
||||
<h2>{{ this.header }}</h2>
|
||||
{{ this.text }}
|
||||
</header>
|
||||
{{ this.text2 }}
|
||||
<ul class="actions">
|
||||
<li><a href="{{ this.url }}" class="button">{{ this.url_text }}</a></li>
|
||||
</ul>
|
||||
</div>
|
1
templates/blocks/termine.html
Normal file
1
templates/blocks/termine.html
Normal file
|
@ -0,0 +1 @@
|
|||
42
|
1
templates/blocks/termine.ics
Normal file
1
templates/blocks/termine.ics
Normal file
|
@ -0,0 +1 @@
|
|||
23
|
|
@ -1,6 +1,36 @@
|
|||
{% extends "layout.html" %}
|
||||
{% from "macros/blog.html" import render_blog_post %}
|
||||
{% if this.project %}{% block expand_header %}
|
||||
<link href="{{ '/css/lightgallery.css'|url }}" rel="stylesheet">
|
||||
{% if this.video_is_embeded %} <!-- Embed Video -->
|
||||
<script src="{{ '/js/webcomponents.min.js'|url }}"></script/>
|
||||
<link rel="import" href="{{ '/youtube-embed.html'|url }}"> {% endif %}
|
||||
{% endblock %}{% endif %}
|
||||
{% block title %}{{ this.title }}{% endblock %}
|
||||
{% block body %}
|
||||
{{ render_blog_post(this) }}
|
||||
{% block expand_ogg_image %}"{% if this.xml_img %}{{ this.xml_img|url }}{% else %}{{ '/images/waffel.jpeg'|asseturl }}{% endif %}"{% endblock %}
|
||||
{% block expand_description %}
|
||||
<meta name="description" content="{%
|
||||
if this.xml %}{{ this.xml }}{% else %}{%
|
||||
if bag('translate', this.alt, 'description') %}{{ bag('translate', this.alt, 'description') }}{%
|
||||
else %}{{ bag('translate', 'de', 'description') }}{% endif %}
|
||||
{% endif %}" />
|
||||
{% endblock %}
|
||||
{% block body %}
|
||||
<!-- Main -->
|
||||
<div id="main" class="wrapper style1">
|
||||
<div class="container">
|
||||
{{ render_blog_post(this) }}
|
||||
</div>
|
||||
</div>
|
||||
{% if this.project %}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
$('#lightgallery').lightGallery();
|
||||
$('.lightgallery').lightGallery();
|
||||
});
|
||||
</script>
|
||||
<script src="{{ '/js/picturefill.min.js'|url }}"></script>
|
||||
<script src="{{ '/js/lightgallery-all.min.js'|url }}"></script>
|
||||
<script src="{{ '/js/jquery.mousewheel.min.js'|url }}"></script>
|
||||
{% endif %}
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,11 +1,37 @@
|
|||
{% extends "layout.html" %}
|
||||
{% from "macros/blog.html" import render_blog_post %}
|
||||
{% from "macros/pagination.html" import render_pagination %}
|
||||
{% block title %}{{ this.title }}{% endblock %}
|
||||
{% block title %}{{ this.title }}{% endblock %}
|
||||
{% block body %}
|
||||
<!-- Main Blog -->
|
||||
<div id="main" class="wrapper style1">
|
||||
<div class="container">
|
||||
<header class="major">
|
||||
<h2>{{ this.title }}</h2>
|
||||
<p>{{ this.description }}</p>
|
||||
</header>
|
||||
<center>
|
||||
<a href="{{ this.link|url }}" class="button primary fit" >{{ this.spruch }}
|
||||
<i class="fas fa-rss iconshift-right-8" ></i>
|
||||
</a>
|
||||
|
||||
</center>
|
||||
<section id="content">
|
||||
{% for child in this.pagination.items %}
|
||||
{{ render_blog_post(child, from_index=true) }}
|
||||
{% endfor %}
|
||||
|
||||
<center>
|
||||
{{ render_pagination(this.pagination) }}
|
||||
<center>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
{% block expand_description %}
|
||||
<meta name="description" content="{%
|
||||
if this.description %}{{ this.description }}{% else %}{%
|
||||
if bag('translate', this.alt, 'description') %}{{ bag('translate', this.alt, 'description') }}{%
|
||||
else %}{{ bag('translate', 'de', 'description') }}{% endif %}
|
||||
{% endif %}" />
|
||||
{% endblock %}
|
||||
|
||||
|
|
34
templates/feed_blog.xml
Normal file
34
templates/feed_blog.xml
Normal file
|
@ -0,0 +1,34 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>{%
|
||||
set baseurl = "https://c3woc.de/" %}{%
|
||||
set search = "blog" %}
|
||||
<feed xmlns="http://www.w3.org/2005/Atom">
|
||||
<title type="text">{%
|
||||
if bag('translate', this.alt, 'xmlfeed') %}{{ bag('translate', this.alt, 'xmlfeed') }}{%
|
||||
else %}Neues aus der Toolbox{% endif %}</title>
|
||||
<id>{{ baseurl }}feed_blog.xml</id>
|
||||
<updated>{{ none|datetimeformat('YYYY-MM-ddThh:mm:ss') }}Z</updated>
|
||||
<link href="{{ baseurl }}{{ search }}/" />
|
||||
<link href="{{ baseurl }}feed_blog.xml" rel="self" />
|
||||
<author>
|
||||
<name>{% if this.author %}{{ this.author }}{% else %}Toolbox{% endif %}</name>
|
||||
</author>{%
|
||||
set pages = site.query('/blog').include_undiscoverable(true).all() %}{%
|
||||
for page in pages %}{% if not page._hidden %}
|
||||
<entry xml:base="{{ baseurl }}{{ search }}/{{ page._id }}/">
|
||||
<title type="text">{{ page.title }}</title>
|
||||
<id>{{ baseurl }}{{ search }}/{{ page._id }}</id>
|
||||
<updated>{{ page.pub_date|datetimeformat('YYYY-MM-ddThh:mm:ss') }}Z</updated>
|
||||
<link href="{{ search }}/{{ page._id }}/" xml:base="{{ baseurl }}" />
|
||||
<author>
|
||||
<name>{% if page.author %}{{ page.author }}{% else %}Toolbox{% endif %}</name>
|
||||
</author>
|
||||
<content type="{% if page.xml_img %}html{% else %}text{% endif %}">
|
||||
{{ page.xml }}
|
||||
{% if page.xml_img
|
||||
%}<br/>
|
||||
<img width="23%" src="{{ page.xml_img }}" />
|
||||
{% endif %}
|
||||
</content>
|
||||
</entry>{% endif %}{%
|
||||
endfor %}
|
||||
</feed>
|
33
templates/feed_projekte.xml
Normal file
33
templates/feed_projekte.xml
Normal file
|
@ -0,0 +1,33 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>{%
|
||||
set baseurl = "https://c3woc.de/" %}{%
|
||||
set search = "rezept" %}
|
||||
<feed xmlns="http://www.w3.org/2005/Atom">
|
||||
<title type="text">{%
|
||||
if bag('translate', this.alt, 'projectfeed') %}{{ bag('translate', this.alt, 'projectfeed') }}{%
|
||||
else %}Rezepte des C3WOC{% endif %}</title>
|
||||
<id>{{ baseurl }}feed_rezepte.xml</id>
|
||||
<updated>{{ none|datetimeformat('YYYY-MM-ddThh:mm:ss') }}Z</updated>
|
||||
<link href="{{ baseurl }}{{ search }}/" />
|
||||
<link href="{{ baseurl }}feed_rezepte.xml" rel="self" />
|
||||
<author>
|
||||
<name>{% if this.author %}{{ this.author }}{% else %}C3WOC{% endif %}</name>
|
||||
</author>{%
|
||||
set pages = site.query('/rezept').include_undiscoverable(true).all() %}{%
|
||||
for page in pages %}{% if not page._hidden %}
|
||||
<entry xml:base="{{ baseurl }}{{ search }}/{{ page._id }}/">
|
||||
<title type="text">{{ page.title }}</title>
|
||||
<id>{{ baseurl }}{{ search }}/{{ page._id }}</id>
|
||||
<link href="{{ search }}/{{ page._id }}/" xml:base="{{ baseurl }}" />
|
||||
<author>
|
||||
<name>{% if page.author %}{{ page.author }}{% else %}C3WOC{% endif %}</name>
|
||||
</author>
|
||||
<content type="{% if page.xml_img %}html{% else %}text{% endif %}">
|
||||
{% if page.teaser %}{{ page.teaser }}{% endif %}
|
||||
{% if page.xml_img
|
||||
%}<br/>
|
||||
<img width="23%" src="{{ page.xml_img }}" />
|
||||
{% endif %}
|
||||
</content>
|
||||
</entry>{% endif %}{%
|
||||
endfor %}
|
||||
</feed>
|
40
templates/kalender.html
Normal file
40
templates/kalender.html
Normal file
|
@ -0,0 +1,40 @@
|
|||
{% extends "layout.html" %}
|
||||
{% block title %}{{ this.title }}{% endblock %}
|
||||
{% block body %}
|
||||
<link rel="stylesheet" href="fullcalendar.min.css">
|
||||
<script src="jquery-3.3.1.min.js"></script>
|
||||
<script src="moment.min.js"></script>
|
||||
<script src="fullcalendar.min.js"></script>
|
||||
<script src="ical.min.js"></script>
|
||||
<script src="calendarview.js"></script>
|
||||
<script src="de.js"></script>
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
$('#calendar').fullCalendar({
|
||||
height: 1000,
|
||||
defaultView: 'month',
|
||||
timezone: 'local',
|
||||
weekends: true
|
||||
});
|
||||
$('#calendar').fullCalendar('addEventSource', ical_event_source('{{ this.kalender_id }}', 'green', ''));
|
||||
setInterval(() => $('#calendar').fullCalendar('refetchEvents'), 5 * 60 * 1000);
|
||||
setInterval(() => $('#calendar').fullCalendar('gotoDate', moment()), 30 * 60 * 1000);
|
||||
});
|
||||
</script>
|
||||
<div id="main" class="wrapper style1">
|
||||
<div class="container">
|
||||
<header class="major">
|
||||
<h2>{{ this.title }}</h2>
|
||||
<p>{{ this.slogan }}</p>
|
||||
</header>
|
||||
<!-- Content -->
|
||||
<section id="content">
|
||||
<div class="col-2">
|
||||
<a href="{{ this.ics_url }}" class="button fit">{{ this.ics }}</a>
|
||||
<a href="{{ this.web_url }}" class="button fit">{{ this.web }}</a>
|
||||
</div>
|
||||
{{ this.content }}
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
|
@ -1,29 +1,216 @@
|
|||
<!doctype html>
|
||||
<meta charset="utf-8">
|
||||
<link rel="stylesheet" href="{{ '/static/style.css'|url }}">
|
||||
<title>{% block title %}Welcome{% endblock %} — c3woc-podcast</title>
|
||||
<body>
|
||||
<header>
|
||||
<h1>c3woc-podcast</h1>
|
||||
<nav>
|
||||
<ul class="nav navbar-nav">
|
||||
{% set fqdn = 'c3woc.de'
|
||||
%}{% set ausnahmezustand = False
|
||||
%}<!DOCTYPE html>
|
||||
<html{% if this.alt %} lang="{{ this.alt }}"{% endif %}>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<title>{% block title %}Startseite{% endblock %} - c3woc.de</title>
|
||||
<meta property="og:title" content="{{ this.title }}"/>
|
||||
<meta property="og:type" content="website"/>
|
||||
<meta property="og:image" content={% block expand_ogg_image
|
||||
%}"{{ '/images/banner.jpg'|asseturl }}"{% endblock %} />
|
||||
<link href="https://c3woc.de/feed_blog.xml" rel="alternate" title="[C3WOC] - Neuigkeiten" type="application/rss+xml">
|
||||
<link href="https://c3woc.de/en/feed_blog.xml" rel="alternate" title="[C3WOC] - News [EN]" type="application/rss+xml">
|
||||
<link href="https://c3woc.de/feed_rezepte.xml" rel="alternate" title="Waffelrezepte" type="application/rss+xml">
|
||||
<link href="https://c3woc.de/en/feed_rezepte.xml" rel="alternate" title="Waffle Recipes" type="application/rss+xml">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />{%
|
||||
if '/css/main.min.css'|asseturl == empty and '/css/main.css'|asseturl == empty %}
|
||||
<link rel="stylesheet" href="{{ '/css/font-awesome.min.css'|asseturl }}" />
|
||||
<link rel="stylesheet" href="{{ '/fonts/roboto.css'|asseturl }}" />{%
|
||||
endif %}
|
||||
<link rel="stylesheet" href={%
|
||||
if '/css/main.min.css'|asseturl == empty %}{%
|
||||
if '/css/main.css'|asseturl == empty %}"https://{{ fqdn }}/css/main.min.css"{%
|
||||
else %}"{{ '/css/main.css'|asseturl }}"{%
|
||||
endif %}{%
|
||||
else %}"{{ '/css/main.min.css'|asseturl }}"{%
|
||||
endif %} />
|
||||
<!--[if lte IE 9]><link rel="stylesheet" href={%
|
||||
if '/css/ie9.min.css'|asseturl == empty %}"https://{{ fqdn }}/css/ie9.min.css"{%
|
||||
else %}"{{ '/css/ie9.min.css'|asseturl }}"{%
|
||||
endif %}" /><![endif]-->
|
||||
{% block expand_description
|
||||
%}<meta name="description" content="{%
|
||||
if bag('translate', this.alt, 'description') %}{{ bag('translate', this.alt, 'description') }}{%
|
||||
else %}{{ bag('translate', 'de', 'description') }}{% endif %}" />{%
|
||||
endblock %}
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="{{ '/images/icons/apple-touch-icon.png'|asseturl }}">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="{{ '/images/icons/favicon-32x32.png'|asseturl }}">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="{{ '/images/icons/favicon-16x16.png'|asseturl }}">
|
||||
<link rel="manifest" href="{{ '/images/icons/site.webmanifest'|asseturl }}">
|
||||
<link rel="mask-icon" href="{{ '/images/icons/safari-pinned-tab.svg'|asseturl }}" color="#e64f2d">
|
||||
<link rel="shortcut icon" href="{{ '/images/icons/favicon.ico'|asseturl }}">
|
||||
<meta name="msapplication-TileColor" content="#da532c">
|
||||
<meta name="msapplication-config" content="{{ '/images/icons/browserconfig.xml'|asseturl }}">
|
||||
<meta name="theme-color" content="#e64f2d">{%
|
||||
block expand_header %}{% endblock %}
|
||||
<script src="{{ '/js/jquery.min.js'|asseturl }}"></script>
|
||||
</head>
|
||||
<body class="{% if this._path == '/' %}landing {% endif %} is-preload">
|
||||
<div id="page-wrapper">
|
||||
<!-- Header -->
|
||||
<header id="header">
|
||||
<nav id="nav">{#
|
||||
|
||||
|
||||
Hier beginnt das Menü.
|
||||
Erstmal werden in einer Liste alle elemente definiert, die in dem "root" level des Menüs auftauchen.
|
||||
Anschließend kommen in einer relativ hässlichen if-abfrage der sublevel.
|
||||
|
||||
Das kann man hübscher machen. Aber so ist es zumindest erstmal funktional.
|
||||
Und da am schluss fertig gerendertes HTML raus kommt auch keine kritische Infrastruktur,
|
||||
die besonders schützenswert ist...
|
||||
|
||||
Dennoch würde ich (L3D) mich hier sehr über etwas beteiligung freuen.
|
||||
Alleine an einer Webseite zu arbeiten... Ist schon cool. Aber zu zweit gleich noch viel cooler!!!
|
||||
|
||||
#}
|
||||
<ul>
|
||||
<li{% if this._path == '/' %} class="active"{% endif
|
||||
%}><a href="{{ '/'|url }}">Welcome</a></li>
|
||||
{% for href, title in [
|
||||
['/blog', 'Blog'],
|
||||
['/projects', 'Projects'],
|
||||
['/about', 'About']
|
||||
] %}
|
||||
%}><a href="{{ '/'|url }}">{%
|
||||
if bag('navigation', this.alt, 'home') %}{{ bag('navigation', this.alt, 'home') }}{%
|
||||
else %}{{ bag('navigation', 'de', 'home') }}{% endif %}</a></li>{%
|
||||
for title, href in bag('nav-bar', "NavBar").items() %}
|
||||
<li{% if this.is_child_of(href) %} class="active"{% endif
|
||||
%}><a href="{{ href|url }}">{{ title }}</a></li>
|
||||
%}><a href="{{ href|url }}">{% if bag('navigation', this.alt, title) %}{{ bag('navigation', this.alt, title) }}{% else %}{{ title }}{% endif %}</a>
|
||||
<ul>
|
||||
{% if bag('nav-bar', 'list', title) %}
|
||||
{% set root = site.get( bag('nav-bar', 'list', title), alt=this.alt) %}{%
|
||||
for child in root.children recursive %}{% if loop.index <= 7 %}
|
||||
<li{% if this._path == child._path %} class="active"{% endif %}>
|
||||
<a href="{{ child|url }}">
|
||||
{{ child.shorttitle if child.shorttitle else child.title }}
|
||||
</a></li>
|
||||
{% endif %}{% endfor %}
|
||||
{% endif %}
|
||||
{% if bag('nav-bar', title) %}
|
||||
{% for nav_title, nav_url in bag('nav-bar', title).items() %}
|
||||
<li><a href={{ nav_url if 'http' in nav_url else nav_url|url }}
|
||||
{% if bag('nav-bar', 'button', nav_title) %}
|
||||
class="button special"
|
||||
{% endif %}>
|
||||
{{ bag('navigation', this.alt, nav_title)
|
||||
if bag('navigation', this.alt, nav_title)
|
||||
else bag('navigation', 'de', nav_title) }}
|
||||
</a></li>
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
</ul>
|
||||
</li>
|
||||
{% endfor %}
|
||||
<li class="last"><a href="/{% if bag('navigation', this.alt, 'default_path') %}{{ bag('navigation', this.alt, 'default_path') }}{% else %}..{% endif %}{{ this._path }}">{% if bag('navigation', this.alt, 'sprache') %}{{ bag('navigation', this.alt, 'sprache') }}{% else %}Sprache{% endif %}</a>
|
||||
<ul class="last">
|
||||
<li><a href="{{ this._path }}">{%
|
||||
if bag('navigation', this.alt, 'German') %}{{ bag('navigation', this.alt, 'German') }}{%
|
||||
else %}{{ bag('navigation', 'de', 'German') }}{% endif %}</a></li>
|
||||
<li><a href="/en{{ this._path }}">{%
|
||||
if bag('navigation', this.alt, 'Englisch') %}{{ bag('navigation', this.alt, 'Englisch') }}{%
|
||||
else %}{{ bag('navigation', 'de', 'Englisch') }}{%
|
||||
endif %} <i>({%
|
||||
if bag('navigation', this.alt, 'falls') %}{{ bag('navigation', this.alt, 'falls') }}{%
|
||||
else %}{{ bag('navigation', 'de', 'falls') }}{%
|
||||
endif %})</i></a><li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
<div class="page">
|
||||
{% block body %}{% endblock %}
|
||||
</div>
|
||||
<footer>
|
||||
© Copyright 2019 by L3D.
|
||||
</header>{#
|
||||
|
||||
Und hier werden nun die eientlichen Seiten eingebunden...
|
||||
|
||||
#}
|
||||
|
||||
{% if ausnahmezustand %}
|
||||
<div id="overwrite" style="display: none; z-index: 1 !important; position: fixed !important; top: 10%; left: 15%; width: 70%; text-align: center; background: white; color: black; padding:30px;font-size: 9pt; text-decoration: none">
|
||||
<style type="text/css">
|
||||
a:link{color:#300;}
|
||||
a:visited{color:#511;}
|
||||
a:hover{color:#f00;}
|
||||
a:active{color:#f00;}
|
||||
</style>
|
||||
<h2 style="color:red">#SaveYourInternet</h2>
|
||||
<p>Liebe Besucherin, lieber Besucher,
|
||||
|
||||
vielen Dank für Ihr Interesse. Leider steht unser Service heute nicht zur Verfügung. Wir protestieren gemeinsam mit der Autorenschaft der Wikipedia gegen Teile der geplanten EU-Urheberrechtsreform, die im Parlament der Europäischen Union Ende März verabschiedet werden soll, und schalten unsere Seite für 24 Stunden ab.
|
||||
<br/>
|
||||
<br/>
|
||||
Ausgetragen wird dieser Konflikt auf den Rücken der Internetnutzer und Kreativen. Diese müssen nach dem aktuellen Entwurf mit erheblichen Einschränkungen rechnen. Das freie Internet, wie wir es kennen, könnte zu einem „Filternet“ verkommen, in dem Plattformbetreiber darüber entscheiden müssen, was wir schreiben, hochladen und sehen dürfen. Denn das geplante Gesetz schreibt Internetseiten und Apps vor, dass sie hochgeladene Inhalte präventiv auf Urheberrechtsverletzungen prüfen müssen. Selbst kleinere Unternehmen müssten demnach fehleranfällige, teure und technisch unausgereifte Uploadfilter einsetzen (Artikel 13) und für minimale Textausschnitte aus Presseerzeugnissen Lizenzen erwerben, um das sogenannte Leistungsschutzrecht einzuhalten (Artikel 11).
|
||||
|
||||
Wenn Sie unsere Kritik an der geplanten Urheberrechtsreform teilen, werden Sie aktiv:
|
||||
</p>
|
||||
<ul style="text-align: left"><li>unterzeichnen Sie die Petition <a href="https://www.change.org/p/stoppt-die-zensurmaschine-rettet-das-internet-uploadfilter-artikel13-saveyourinternet">"Stoppt die Zensurmaschine – Rettet das Internet!"</a>,</li>
|
||||
<li><a href="https://pledge2019.eu/de">kontaktieren Sie die Abgeordneten des Europäischen Parlaments</a>,</li>
|
||||
|
||||
<li><a href="https://savetheinternet.info/demos">gehen Sie am 23. März auf die Straße</a>,</li>
|
||||
|
||||
<li>nehmen Sie Ihr demokratisches Recht wahr und gehen Sie am 26. Mai zur Wahl.</li></ul>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<!-- Main -->
|
||||
<div id="block_me">
|
||||
{% else %}
|
||||
<!-- Main -->
|
||||
{% endif %}
|
||||
{% block body %}{% endblock %}
|
||||
|
||||
{% if ausnahmezustand %}
|
||||
</div>
|
||||
|
||||
<script>
|
||||
document.getElementById("block_me").style.opacity = "0.023";
|
||||
document.getElementById("overwrite").style.display = "block";
|
||||
</script>
|
||||
{% endif %}
|
||||
|
||||
{#
|
||||
|
||||
Und da wären wir auch schon am Ende der Webseite...
|
||||
Hier noch mal fett Werbung gemacht, wo es alles etwas vom C3WOC gibt...
|
||||
|
||||
So mit Twitter, Mail, IRC, Mastodon und RSS kommt da doch einiges zusammen :P
|
||||
|
||||
#}
|
||||
<!-- Footer -->
|
||||
<footer id="footer">
|
||||
<ul class="icons">{%
|
||||
for label, icon, href in [
|
||||
['Mastodon', 'fab fa-mastodon', "https://chaos.social/@c3woc"],
|
||||
['Twitter', 'fab fa-twitter', "https://twitter.com/c3woc"],
|
||||
['Webseite', 'fab fa-github', "https://github.com/c3woc/c3woc-website"],
|
||||
['Gitea', 'fab fa-gitlab', "https://gitea.see-base.de/c3woc/"],
|
||||
['Mail', 'fas fa-envelope', "mailto:waffeln@c3woc.de"],
|
||||
['IRC Chat', 'fas fa-hashtag', "ircs://irc.hackint.org/#waffel"],
|
||||
['Webirc Chat', 'fab fa-slack', "https://webirc.hackint.org/#irc://irc.hackint.org/#waffel"],
|
||||
['Rezept-Feed', 'fas fa-receipt', "https://c3woc.de.de/feed_rezepte.xml"],
|
||||
['News', 'fas fa-rss', "https://c3woc.de/feed_blog.xml"],
|
||||
['Tourdaten', 'far fa-calendar-plus', "https://c3woc.de/waffeln.ics"],
|
||||
['Tourdaten', 'fas fa-user-plus', "https://c3woc.de/mitmachen"]
|
||||
] %}
|
||||
<li><a href="{{ href }}" title="{{ label }}" target="_blank" rel="noopener" class="icon {{ icon }}"></a></li>{%
|
||||
endfor %}
|
||||
</ul>
|
||||
<ul class="copyright">
|
||||
<li>©Copyright by C3 Waffel Operation Center.</li>
|
||||
<li><a href="{{ '/impressum/'|url }}">{%
|
||||
if bag('navigation', this.alt, 'Impressum') %}{{ bag('navigation', this.alt, 'Impressum') }}{%
|
||||
else %}Impressum{% endif %}</a></li>
|
||||
<li><a href="{{ '/datenschutz/'|url }}">{%
|
||||
if bag('navigation', this.alt, 'Datenschutz') %}{{ bag('navigation', this.alt, 'Datenschutz') }}{%
|
||||
else %}Datenschutzerklärung{% endif %}</a></li>
|
||||
<li>Design inspired by <a href="http://html5up.net">HTML5 UP</a> </li>
|
||||
<!-- CMS: Lektor | Angepasst durch L3D -->
|
||||
<!-- advertising: Grab your waffle from C3WOC! C3WOC ->Great waffles for everypony. https://c3woc.de/ -->
|
||||
</ul>
|
||||
</footer>
|
||||
</body>
|
||||
</div>
|
||||
|
||||
<!-- Scripts -->
|
||||
<script src="{{ '/js/jquery.scrolly.min.js'|asseturl }}"></script>
|
||||
<script src="{{ '/js/jquery.scrollex.min.js'|asseturl }}"></script>
|
||||
<script src="{{ '/js/skel.min.js'|asseturl }}"></script>
|
||||
<script src="{{ '/js/util.js'|asseturl }}"></script>
|
||||
<script src="{{ '/js/main.js'|asseturl }}"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,20 +1,58 @@
|
|||
{% macro render_blog_post(post, from_index=false) %}
|
||||
{% if from_index %}
|
||||
<br/><hr/><br/>
|
||||
{% endif %}
|
||||
<div class="blog-post">
|
||||
<header class="major">
|
||||
{% if from_index %}
|
||||
<h2><a href="{{ post|url }}">{{ post.title }}</a></h2>
|
||||
{% else %}
|
||||
<h2>{{ post.title }}</h2>
|
||||
{% endif %}
|
||||
<p class="meta">
|
||||
written by
|
||||
{% if post.twitter_handle %}
|
||||
<a href="https://twitter.com/{{ post.twitter_handle
|
||||
}}">{{ post.author or post.twitter_handle }}</a>
|
||||
{% else %}
|
||||
{{ post.author }}
|
||||
{% endif %}
|
||||
on {{ post.pub_date }}
|
||||
</p>
|
||||
{% if bag('translate', post.alt, 'blog_von')
|
||||
%}{{ bag('translate', post.alt, 'blog_von') }}{% else
|
||||
%}Geschrieben von{% endif %} {% if post.twitter_handle
|
||||
%}<a href="https://chaos.social/@{{ post.twitter_handle
|
||||
}}">{{ post.author or post.twitter_handle }}</a>{%
|
||||
else %}{{ post.author }}{%
|
||||
endif %}{% if post.pub_date
|
||||
%} {% if bag('translate', post.alt, 'blog_am')
|
||||
%}{{ bag('translate', post.alt, 'blog_am') }}{% else
|
||||
%}am{% endif %} {{ post.pub_date.strftime('%d.%m.%Y') }}{%
|
||||
endif %}</p>
|
||||
</header>
|
||||
<!-- Content -->
|
||||
<section id="content">
|
||||
{% if from_index %}
|
||||
{{ post.body }}
|
||||
{% else %}
|
||||
{{ post.body }}
|
||||
{{ post.beitrag }}
|
||||
{% endif %}
|
||||
</section>
|
||||
{% if from_index %}
|
||||
<a class="button fit" href="{{ post|url }}">{% if bag('translate', post.alt, 'blog_weiter')
|
||||
%}{{ bag('translate', post.alt, 'blog_weiter') }}{% else
|
||||
%}weiterlesen{% endif %}</a>
|
||||
<br/>
|
||||
{% else %}
|
||||
{% if post.video_is_embeded %}{% for blk in post.video_embeded.blocks %}
|
||||
{% if blk.video_url %}
|
||||
{{ blk }} <br/>
|
||||
<a class="button" href="https://www.youtube.com/watch?v={{ blk.video_url }}{% if post.alt %}&gl={{ post.alt }}&hl={{ post.alt }}{% endif %}" target="_blank" rel="noopener">{%
|
||||
if bag('translate', post.alt, 'directytlink') %}{{ bag('translate', post.alt, 'directytlink') }}{%
|
||||
else %}Direkt zum YouTube-Video{% endif %}</a>{% endif %}{% if blk.video
|
||||
%} <a class="button" href="{{ blk.video|url }}" download>{%
|
||||
if bag('translate', post.alt, 'directlink') %}{{ bag('translate', post.alt, 'directlink') }}{%
|
||||
else %}Download Video{% endif %}</a>{% endif %}
|
||||
<br/><br/>
|
||||
{% endfor %}{%
|
||||
endif %} {% if post.project %}
|
||||
<div class="lightgallery" class="row alt">{%
|
||||
for blk in post.project.blocks %}
|
||||
{{ blk }}
|
||||
{% endfor %}</div>{% endif %}{%
|
||||
endif %}
|
||||
</div>
|
||||
{% endmacro %}
|
||||
|
|
49
templates/macros/projekt.html
Normal file
49
templates/macros/projekt.html
Normal file
|
@ -0,0 +1,49 @@
|
|||
{% macro render_blog_post(post, from_index=false) %}
|
||||
{% if from_index %}
|
||||
<section class="4u 6u(medium) 12u(xsmall) project">
|
||||
<span class="icon alt major">
|
||||
<a href="{{ post|url }}" class="project-creator" title="{%
|
||||
if bag('translate', post.alt, 'projekt_title_start') %}{{ bag('translate', post.alt, 'projekt_title_start') }}{%
|
||||
else %}{{ bag('translate', 'de', 'projekt_title_start') }}{%
|
||||
endif %} {{ post.author }} {%
|
||||
if bag('translate', post.alt, 'projekt_title_ende') %}{{ bag('translate', post.alt, 'projekt_title_ende') }}{%
|
||||
else %}{{ bag('translate', 'de', 'projekt_title_ende') }}{%
|
||||
endif %}">
|
||||
<i class="{{ post.icon }} fa-3x iconshiftdown"></i></a>
|
||||
</span>
|
||||
<a href="{{ post|url }}"><h3>{{ post.title }}</h3></a>
|
||||
<article class="teaser">
|
||||
{{ post.teaser }}
|
||||
</article>
|
||||
</section>
|
||||
{% else %}
|
||||
<div id="main" class="wrapper style1">
|
||||
<div class="container">
|
||||
<header class="major">
|
||||
<h2>{{ post.title }}</h2>
|
||||
</header>
|
||||
<section id="content">
|
||||
{{ post.body }}
|
||||
{% if post.video_is_embeded %}{% for blk in post.video_embeded.blocks %}
|
||||
{% if blk.video_url %}
|
||||
{{ blk }} <br/>
|
||||
<a class="button" href="https://www.youtube.com/watch?v={{ blk.video_url }}{% if post.alt %}&gl={{ post.alt }}&hl={{ post.alt }}{% endif %}" target="_blank" rel="noopener">{%
|
||||
if bag('translate', post.alt, 'directytlink') %}{{ bag('translate', post.alt, 'directytlink') }}{%
|
||||
else %}Direkt zum YouTube-Video{% endif %}</a>{% endif %}{% if blk.video
|
||||
%} <a class="button" href="{{ blk.video|url }}" download>{%
|
||||
if bag('translate', post.alt, 'directlink') %}{{ bag('translate', post.alt, 'directlink') }}{%
|
||||
else %}Download Video{% endif %}</a>{% endif %}
|
||||
<br/><br/>
|
||||
{% endfor %}{%
|
||||
endif %}
|
||||
{% if post.project %}
|
||||
<div class="lightgallery" class="row alt">{%
|
||||
for blk in post.project.blocks %}
|
||||
{{ blk }}
|
||||
{% endfor %}</div>{%
|
||||
endif %}
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
{% endif %}
|
||||
{% endmacro %}
|
|
@ -1,6 +1,23 @@
|
|||
{% extends "layout.html" %}
|
||||
{% block title %}{{ this.title }}{% endblock %}
|
||||
{% block body %}
|
||||
<h2>{{ this.title }}</h2>
|
||||
{{ this.body }}
|
||||
{% block expand_description %}
|
||||
<meta name="description" content="{%
|
||||
if this.teaser %}{{ this.teaser }}{% else %}{%
|
||||
if bag('translate', this.alt, 'description') %}{{ bag('translate', this.alt, 'description') }}{%
|
||||
else %}{{ bag('translate', 'de', 'description') }}{% endif %}
|
||||
{% endif %}" />
|
||||
{% endblock %}
|
||||
{% block body %}
|
||||
<div id="main" class="wrapper style1">
|
||||
<div class="container">
|
||||
<header class="major">
|
||||
<h2>{{ this.title }}</h2>
|
||||
<p>{{ this.slogan }}</p>
|
||||
</header>
|
||||
<!-- Content -->
|
||||
<section id="content">
|
||||
{{ this.content }}
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
79
templates/presse.html
Normal file
79
templates/presse.html
Normal file
|
@ -0,0 +1,79 @@
|
|||
{% extends "layout.html" %}
|
||||
{% block title %}{{ this.title }}{% endblock %}
|
||||
{% block expand_description %}
|
||||
<meta name="description" content="{%
|
||||
if this.teaser %}{{ this.teaser }}{% else %}{%
|
||||
if bag('translate', this.alt, 'description') %}{{ bag('translate', this.alt, 'description') }}{%
|
||||
else %}{{ bag('translate', 'de', 'description') }}{% endif %}
|
||||
{% endif %}" />
|
||||
{% endblock %}
|
||||
{% block body %}
|
||||
<div id="main" class="wrapper style1">
|
||||
<div class="container">
|
||||
<header class="major">
|
||||
<h2>{{ this.title }}</h2>
|
||||
<p>{{ this.slogan }}</p>
|
||||
</header>
|
||||
<!-- Content -->
|
||||
<section id="content">
|
||||
<h2>{{ this.p1 }}</h2>{%
|
||||
if this.press_1 %}
|
||||
<div class="table-wrapper">
|
||||
<table><tbody>
|
||||
{% for blk in this.press_1.blocks %}
|
||||
{{ blk }}
|
||||
{% endfor %}
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>{%
|
||||
endif %}
|
||||
<h2>{{ this.p2 }}</h2>{%
|
||||
if this.press_2 %}
|
||||
<div class="table-wrapper">
|
||||
<table><tbody>
|
||||
{% for blk in this.press_2.blocks %}
|
||||
{{ blk }}
|
||||
{% endfor %}
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>{%
|
||||
endif %}
|
||||
<h2>{{ this.p3 }}</h2>{%
|
||||
if this.press_3 %}
|
||||
<div class="table-wrapper">
|
||||
<table><tbody>
|
||||
{% for blk in this.press_3.blocks %}
|
||||
{{ blk }}
|
||||
{% endfor %}
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>{%
|
||||
endif %}
|
||||
<h2>{{ this.p4 }}</h2>{%
|
||||
if this.press_4 %}
|
||||
<div class="table-wrapper">
|
||||
<table><tbody>
|
||||
{% for blk in this.press_4.blocks %}
|
||||
{{ blk }}
|
||||
{% endfor %}
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>{%
|
||||
endif %}
|
||||
<h2>{{ this.p5 }}</h2>{%
|
||||
if this.press_5 %}
|
||||
<div class="table-wrapper">
|
||||
<table><tbody>
|
||||
{% for blk in this.press_5.blocks %}
|
||||
{{ blk }}
|
||||
{% endfor %}
|
||||
</tfoot>
|
||||
</table>
|
||||
</div>{%
|
||||
endif %}
|
||||
|
||||
{{ this.content }}
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
{% endblock %}
|
28
templates/projekt-post.html
Normal file
28
templates/projekt-post.html
Normal file
|
@ -0,0 +1,28 @@
|
|||
{% extends "layout.html" %}
|
||||
{% from "macros/projekt.html" import render_blog_post %}
|
||||
{% block expand_header %}
|
||||
<link href="{{ '/css/lightgallery.css'|url }}" rel="stylesheet">
|
||||
{% if this.video_is_embeded %} <!-- Embed Video -->
|
||||
<script src="{{ '/js/webcomponents.min.js'|url }}"></script/>
|
||||
<link rel="import" href="{{ '/youtube-embed.html'|url }}"> {% endif %}
|
||||
{% endblock %}
|
||||
{% block expand_description %}
|
||||
<meta name="description" content="{%
|
||||
if this.teaser %}{{ this.teaser }}{% else %}{%
|
||||
if bag('translate', this.alt, 'description') %}{{ bag('translate', this.alt, 'description') }}{%
|
||||
else %}{{ bag('translate', 'de', 'description') }}{% endif %}
|
||||
{% endif %}" />
|
||||
{% endblock %}
|
||||
{% block title %}{{ this.title }}{% endblock %}
|
||||
{% block body %}
|
||||
{{ render_blog_post(this) }}
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
$('#lightgallery').lightGallery();
|
||||
$('.lightgallery').lightGallery();
|
||||
});
|
||||
</script>
|
||||
<script src="{{ '/js/picturefill.min.js'|url }}"></script>
|
||||
<script src="{{ '/js/lightgallery-all.min.js'|url }}"></script>
|
||||
<script src="{{ '/js/jquery.mousewheel.min.js'|url }}"></script>
|
||||
{% endblock %}
|
42
templates/projekte.html
Normal file
42
templates/projekte.html
Normal file
|
@ -0,0 +1,42 @@
|
|||
{% extends "layout.html" %}
|
||||
{% from "macros/projekt.html" import render_blog_post %}
|
||||
{% block title
|
||||
%}{{ this.title }}{%
|
||||
endblock %}
|
||||
{% block body %}
|
||||
<section id="four" class="wrapper style1 special fade-up">
|
||||
<div class="container">
|
||||
<header class="major">
|
||||
<h2>{{ this.title }}</h2>
|
||||
<p>{{ this.description }}</p>
|
||||
</header>
|
||||
<section id="content">
|
||||
{{ this.begruessung }}
|
||||
</section>
|
||||
<header class="major">
|
||||
<h2>{{ this.title2 }}</h2>
|
||||
{{ this.description2 }}
|
||||
</header>
|
||||
<div class="box alt">
|
||||
<div class="row uniform">{%
|
||||
for child in this.pagination.items|sort(attribute='number', reverse = True) %}
|
||||
{{ render_blog_post(child, from_index=true) }}
|
||||
{% endfor %}
|
||||
</div>
|
||||
<footer class="major">
|
||||
<ul class="actions special">
|
||||
<li><a href="{{ '/feed_projekte.xml'|url }}" class="button">{{ this.abo }}</a></li>
|
||||
{{ this.trailer }}
|
||||
</ul>
|
||||
</footer>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
{% endblock %}
|
||||
{% block expand_description %}
|
||||
<meta name="description" content="{%
|
||||
if this.desc %}{{ this.desc }}{% else %}{%
|
||||
if bag('translate', this.alt, 'description') %}{{ bag('translate', this.alt, 'description') }}{%
|
||||
else %}{{ bag('translate', 'de', 'description') }}{% endif %}
|
||||
{% endif %}" />
|
||||
{% endblock %}
|
7
templates/sitemap.xml
Normal file
7
templates/sitemap.xml
Normal file
|
@ -0,0 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
|
||||
{%- for page in [site.root] if page != this recursive %}
|
||||
<url><loc>{{ page|url(external=true) }}</loc></url>
|
||||
{{- loop(page.children) }}
|
||||
{%- endfor %}
|
||||
</urlset>
|
169
templates/start.html
Normal file
169
templates/start.html
Normal file
|
@ -0,0 +1,169 @@
|
|||
{% extends "layout.html" %}
|
||||
{% block title %}{{ this.title }}{% endblock %}
|
||||
{% block body %}
|
||||
|
||||
<!-- Banner -->
|
||||
<section id="banner">
|
||||
<div class="content">
|
||||
<header>
|
||||
<h2>{{ this.title }}</h2>
|
||||
<p>{{ this.slogan }}</p>
|
||||
<p>{{ this.hinweis }} {% if this.hinweis_txt %}<a href="{% if this.hinweis_url %}{{this.hinweis_url }}{% else %}#four{% endif %}">{{ this.hinweis_txt }}</a>{% endif %}</p>
|
||||
</header>
|
||||
<span class="image">
|
||||
<img src="{{ '/images/logo.svg'|url }}" alt="" />
|
||||
</span>
|
||||
</div>
|
||||
<a href="#scroll-1" class="goto-next scrolly">Next</a>
|
||||
</section>
|
||||
|
||||
<!-- One -->
|
||||
<section id="scroll-1" class="spotlight style1 bottom">
|
||||
<div class="content">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="4u 12u$(medium)">
|
||||
<header>
|
||||
<h2>{{ this.about_header }}</h2>
|
||||
{{ this.about_text }}
|
||||
</header>
|
||||
</div>
|
||||
<div class="4u 12u$(medium)">
|
||||
{{ this.about_text2 }}
|
||||
</div>
|
||||
<div class="4u$ 12u$(medium)">
|
||||
{{ this.about_text3 }}
|
||||
<ul class="actions">
|
||||
<li><a href="{{ this.about_url2 }}" class="button">{{ this.about_url }}</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a href="#scroll-2" class="goto-next scrolly">Next</a>
|
||||
</section>
|
||||
|
||||
{% for blk in this.sections.blocks %}
|
||||
<section id="scroll-{{ loop.index0 + 2 }}"
|
||||
class="spotlight style2 {{ blk.type }}" style="background-image:url({{ blk.background }})">
|
||||
{{ blk }}
|
||||
<a href="#scroll-{{ loop.index0 + 3 }}" class="goto-next scrolly">Next</a>
|
||||
</section>
|
||||
{% endfor %}
|
||||
|
||||
<!-- Four -->
|
||||
<section id="scroll-{{ this.sections.blocks|count + 2 }}" class="special wrapper fade-up"></section>
|
||||
<section id={%
|
||||
if this.four_id|length %}"{{ this.four_id }}"{%
|
||||
else %}"tourdaten"{%
|
||||
endif %} class="wrapper style1 special fade-up">
|
||||
<div class="container">
|
||||
<header class="major">
|
||||
<h2>{{ this.icons_header }}</h2>
|
||||
{{ this.icons_text }}
|
||||
</header>{%
|
||||
if this.render_tourdaten %}
|
||||
<div class="table-wrapper">
|
||||
<div class="table-wrapper">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Datum</th>
|
||||
<th>Veranstaltung</th>
|
||||
<th>Ort</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>{%
|
||||
set pages = site.query('/').include_undiscoverable(true).all() %}{%
|
||||
for page in pages %}{%
|
||||
if page._model == 'waffeln' and page._path == '/waffeln.ics' %}{%
|
||||
for blk in page.termine.blocks|sort(attribute='start', reverse = False) %}{%
|
||||
if blk.start.strftime('%Y%m%d%H%M') > none|datetimeformat('yyyyMMddhhmm') %}
|
||||
<tr>
|
||||
<th>{%
|
||||
if blk.start.strftime('%d.%m') == blk.ende.strftime('%d.%m') %}{{ blk.start.strftime('%d.%m.%y %H') }} - {{ blk.ende.strftime('%H') }} Uhr{%
|
||||
else %}{{ blk.start.strftime('%d.%m') }} - {{ blk.ende.strftime('%d.%m.%Y') }}{%
|
||||
endif %}</th>
|
||||
<th><a href="{{ blk.url }}" title="{{ blk.description|replace("|", " ") }}">{{ blk.event }}</a></th>
|
||||
<th>{{ blk.ort }}</th>
|
||||
</tr>{%
|
||||
endif %}{%
|
||||
endfor %}
|
||||
</tbody>
|
||||
</table><br/>
|
||||
</div>{%
|
||||
endif %}{%
|
||||
endfor %}
|
||||
<header class="major">
|
||||
<h2>{{ this.icons_header_2 }}</h2>
|
||||
{{ this.icons_text_2 }}
|
||||
</header>
|
||||
{% endif %}
|
||||
<div class="box alt">
|
||||
<div class="row uniform">
|
||||
<section class="4u 6u(medium) 12u$(xsmall)">
|
||||
<span class="icon alt major">
|
||||
<i class="fas {{ this.icons_1_1 }} fa-3x iconshiftdown"></i>
|
||||
</span>
|
||||
<a href="{{ this.icons_1_url }}"><h3>{{ this.icons_1_2 }}</h3></a>
|
||||
{{ this.icons_1_3 }}
|
||||
</section>
|
||||
<section class="4u 6u$(medium) 12u$(xsmall)">
|
||||
<span class="icon alt major">
|
||||
<i class="fas {{ this.icons_2_1 }} fa-3x iconshiftdown"></i>
|
||||
</span>
|
||||
<a href="{{ this.icons_2_url }}"><h3>{{ this.icons_2_2 }}</h3></a>
|
||||
{{ this.icons_2_3 }}
|
||||
</section>
|
||||
<section class="4u$ 6u(medium) 12u$(xsmall)">
|
||||
<span class="icon alt major">
|
||||
<i class="fas {{ this.icons_3_1 }} fa-3x iconshiftdown"></i>
|
||||
</span>
|
||||
<a href="{{ this.icons_3_url }}"><h3>{{ this.icons_3_2 }}</h3></a>
|
||||
{{ this.icons_3_3 }}
|
||||
</section>
|
||||
<section class="4u 6u$(medium) 12u$(xsmall)">
|
||||
<span href="{{ this.icons_4_url }}" class="icon alt major">
|
||||
<i class="fas {{ this.icons_4_1 }} fa-3x iconshiftdown"></i>
|
||||
</span>
|
||||
<a href="{{ this.icons_4_url }}"><h3>{{ this.icons_4_2 }}</h3></a>
|
||||
{{ this.icons_4_3 }}
|
||||
</section>
|
||||
<section class="4u 6u(medium) 12u$(xsmall)">
|
||||
<span class="icon alt major">
|
||||
<i class="fas {{ this.icons_5_1 }} fa-3x iconshiftdown"></i>
|
||||
</span>
|
||||
<a href="{{ this.icons_5_url }}#"><h3>{{ this.icons_5_2 }}</h3></a>
|
||||
{{ this.icons_5_3 }}
|
||||
</section>
|
||||
<section class="4u$ 6u$(medium) 12u$(xsmall)">
|
||||
<span class="icon alt major">
|
||||
<i class="fas {{ this.icons_6_1 }} fa-3x iconshiftdown"></i>
|
||||
</span>
|
||||
<a href="{{ this.icons_6_url }}"><h3>{{ this.icons_6_2 }}</h3></a>
|
||||
{{ this.icons_6_3 }}
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<footer class="major">
|
||||
<ul class="actions">
|
||||
<li><a href="{{ this.icons_url }}" class="button">{{ this.icons_txt }}</a></li>
|
||||
</ul>
|
||||
</footer>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Five -->
|
||||
<section id="scroll-{{ this.sections.blocks|count + 3 }}" class="wrapper style2 special fade">
|
||||
<div class="container">
|
||||
<header>
|
||||
<h2>{{ this.red_1 }}</h2>
|
||||
{{ this.red_2 }}
|
||||
</header>
|
||||
{{ this.red_3 }}
|
||||
<h2>{{ this.red_4 }}</h2>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
{% endblock %}
|
49
templates/vereinsheim.html
Normal file
49
templates/vereinsheim.html
Normal file
|
@ -0,0 +1,49 @@
|
|||
{% extends "layout.html" %}
|
||||
{% block title %}{{ this.title }}{% endblock %}
|
||||
{% block expand_header %}
|
||||
<link rel="stylesheet" href="{{ '/css/leaflet.css'|url }}" integrity="sha512-puBpdR0798OZvTTbP4A8Ix/l+A4dHDD0DGqYW6RQ+9jxkRFclaxxQb/SJAWZfWAkuyeQUytO7+7N4QKrDh+drA==" crossorigin=""/>
|
||||
<script src="{{ '/js/leaflet.js'|url }}" integrity="sha512-nMMmRyTVoLYqjP9hrbed9S+FzjZHW5gY1TWCHA5ckwXZBadntCNs8kEqAWdrb9O7rxbCaA4lKTIWjDXZxflOcA==" crossorigin=""></script>
|
||||
<link href="{{ '/css/lightgallery.css'|url }}" rel="stylesheet">
|
||||
{% endblock %}
|
||||
{% block expand_description %}
|
||||
<meta name="description" content="{%
|
||||
if this.teaser %}{{ this.teaser }}{% else %}{%
|
||||
if bag('translate', this.alt, 'description') %}{{ bag('translate', this.alt, 'description') }}{%
|
||||
else %}{{ bag('translate', 'de', 'description') }}{% endif %}
|
||||
{% endif %}" />
|
||||
{% endblock %}
|
||||
{% block body %}
|
||||
<div id="main" class="wrapper style1">
|
||||
<div class="container">
|
||||
<header class="major">
|
||||
<h2>{{ this.title }}</h2>
|
||||
<p>{{ this.slogan }}</p>
|
||||
</header>
|
||||
<!-- Content -->
|
||||
<section id="content">
|
||||
{{ this.precontent }}
|
||||
|
||||
<div id="mapid" class="image fit mapid"></div>
|
||||
<br/>
|
||||
{{ this.content }}
|
||||
{% if this.project %}
|
||||
<div class="lightgallery" class="row alt">{%
|
||||
for blk in this.project.blocks %}
|
||||
{{ blk }}
|
||||
{% endfor
|
||||
%}</div>{%
|
||||
endif %}
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function(){
|
||||
$('#lightgallery').lightGallery();
|
||||
$('.lightgallery').lightGallery();
|
||||
});
|
||||
</script>
|
||||
<script src="{{ '/js/openstreetmap.js'|asseturl }}"></script>
|
||||
<script src="{{ '/js/picturefill.min.js'|asseturl }}"></script>
|
||||
<script src="{{ '/js/lightgallery-all.min.js'|asseturl }}"></script>
|
||||
<script src="{{ '/js/jquery.mousewheel.min.js'|asseturl }}"></script>
|
||||
{% endblock %}
|
20
templates/waffeln.ics
Normal file
20
templates/waffeln.ics
Normal file
|
@ -0,0 +1,20 @@
|
|||
{% set fqdn = 'c3woc.de'
|
||||
%}BEGIN:VCALENDAR
|
||||
VERSION:2.0
|
||||
CALSCALE:GREGORIAN
|
||||
PRODID:https://{{ fqdn }}/{{ this._id }}
|
||||
METHOD:PUBLISH{%
|
||||
for blk in this.termine.blocks|sort(attribute='start', reverse = True) %}
|
||||
BEGIN:VEVENT
|
||||
SUMMARY:{{ blk.event }}
|
||||
ORGANIZER;CN="C3 Waffel Operation Center":MAILTO:waffel@{{ fqdn }}
|
||||
DTSTART;TZID=Europe/Berlin:{{ blk.start.strftime('%Y%m%dT%H%M%S') }}
|
||||
DTEND;TZID=Europe/Berlin:{{ blk.ende.strftime('%Y%m%dT%H%M%S') }}
|
||||
STATUS:{%
|
||||
if blk.confirmed %}CONFIRMED{%
|
||||
else %}TENTATIVE{% endif %}
|
||||
LOCATION:{{ blk.ort }}
|
||||
DESCRIPTION:{{ blk.description|replace( "|", "\n") }}\n{{ blk.url }}
|
||||
END:VEVENT{%
|
||||
endfor %}
|
||||
END:VCALENDAR
|
Loading…
Reference in a new issue