Simple lume setup
This commit is contained in:
commit
69bb11176d
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
tags
|
||||||
|
_site
|
13
Caddyfile
Normal file
13
Caddyfile
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
{
|
||||||
|
# acme_ca https://acme-staging-v02.api.letsencrypt.org/directory
|
||||||
|
log {
|
||||||
|
output file /var/log/caddy {
|
||||||
|
roll_keep 16
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
abkommen60jahre.de {
|
||||||
|
root * /var/www/abkommen60jahre.de
|
||||||
|
file_server
|
||||||
|
}
|
5
README.md
Normal file
5
README.md
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
Install Lume:
|
||||||
|
|
||||||
|
https://lumeland.github.io/getting-started/installation/
|
||||||
|
|
||||||
|
deno run -A https://deno.land/x/lume/install.ts
|
20
_config.ts
Normal file
20
_config.ts
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
import lume from "https:/deno.land/x/lume/mod.ts";
|
||||||
|
import postcss from "https:/deno.land/x/lume/plugins/postcss.ts";
|
||||||
|
|
||||||
|
const markdown = { breaks: true };
|
||||||
|
|
||||||
|
const site = lume({}, { markdown });
|
||||||
|
|
||||||
|
site.use(postcss());
|
||||||
|
|
||||||
|
site.loadAssets([
|
||||||
|
".png",
|
||||||
|
".jpg",
|
||||||
|
".svg",
|
||||||
|
".pdf",
|
||||||
|
".woff2",
|
||||||
|
]);
|
||||||
|
|
||||||
|
site.filter("title", (value = '') => value + (value ? " | " : "") + "MiOM");
|
||||||
|
|
||||||
|
export default site;
|
25
_data/people.yml
Normal file
25
_data/people.yml
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
- name: Benjamin Bädorf
|
||||||
|
role: Software Engineer
|
||||||
|
pronouns: he/him
|
||||||
|
contact:
|
||||||
|
- name: MAIL
|
||||||
|
value: byb@miom.space
|
||||||
|
- name: GIT
|
||||||
|
value: git.b12f.io/b12f
|
||||||
|
- name: GPG
|
||||||
|
value: 4332 E0D0 2B21 4D31 376C 366E 4406 E80E 13CD 656C
|
||||||
|
- name: MATRIX
|
||||||
|
value: '@b12f:pub.solar'
|
||||||
|
- name: WEB
|
||||||
|
value: benjaminbaedorf.eu
|
||||||
|
|
||||||
|
- name: Jhonas Wernery
|
||||||
|
role: System Engineer
|
||||||
|
pronouns: he/him
|
||||||
|
contact:
|
||||||
|
- name: MAIL
|
||||||
|
value: jfw@miom.space
|
||||||
|
- name: GIT
|
||||||
|
value: git.b12f.io/teutat3s
|
||||||
|
- name: MATRIX
|
||||||
|
value: '@teutat3s:pub.solar'
|
9
_data/thingsWeAre.yml
Normal file
9
_data/thingsWeAre.yml
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
- 'an Off'
|
||||||
|
- 'a Creative'
|
||||||
|
- 'a Coworking'
|
||||||
|
- 'an Art'
|
||||||
|
- 'a Tech'
|
||||||
|
- 'a Meeting'
|
||||||
|
- 'a Gallery'
|
||||||
|
- 'an Event'
|
||||||
|
- 'a People'
|
7
_includes/citations.njk
Normal file
7
_includes/citations.njk
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
<ol class="citation-list">
|
||||||
|
{% for citation in citations %}
|
||||||
|
<li>
|
||||||
|
<cite class="citation">{{ citation | md | safe }}</cite>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ol>
|
18
_includes/downloads.njk
Normal file
18
_includes/downloads.njk
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
<section class="downloads">
|
||||||
|
<ul class="downloads-list">
|
||||||
|
{% for download in downloads %}
|
||||||
|
<li class="download">
|
||||||
|
<div class="download-name">{{ download.name | safe }}</div>
|
||||||
|
<a
|
||||||
|
href="{{ download.location }}"
|
||||||
|
class="download-link download-link_pdf"
|
||||||
|
download
|
||||||
|
>PDF</a>
|
||||||
|
<a
|
||||||
|
href="{{ download.web }}"
|
||||||
|
class="download-link"
|
||||||
|
>Web</a>
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</section>
|
11
_includes/event-day.njk
Normal file
11
_includes/event-day.njk
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
<details class="event-day">
|
||||||
|
<summary class="event-day-heading">
|
||||||
|
{{ eventDay.heading }}
|
||||||
|
</summary>
|
||||||
|
|
||||||
|
{% if eventDay.events %}
|
||||||
|
{% for event in eventDay.events %}
|
||||||
|
{% include "event.njk" %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
</details>
|
41
_includes/event.njk
Normal file
41
_includes/event.njk
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
<article class="event">
|
||||||
|
<p class="event-time">{{ event.time }}</p>
|
||||||
|
|
||||||
|
<h1 class="event-title">{{ event.title | safe }}</h1>
|
||||||
|
|
||||||
|
<p class="event-details">{{ event.details | safe }}</p>
|
||||||
|
|
||||||
|
<div class="event-description">{{ event.description | md | safe }}</div>
|
||||||
|
|
||||||
|
<address class="event-location">
|
||||||
|
{% if event.organiser %}
|
||||||
|
{{ event.organiser }}<br><br>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{{ event.location.name }}
|
||||||
|
{% if event.location.place %} <br>{{ event.location.place }} {% endif %}
|
||||||
|
{% if event.location.address %} <br>{{ event.location.address }} {% endif %}
|
||||||
|
{% if event.location.city %} <br>{{ event.location.city }} {% endif %}
|
||||||
|
</address>
|
||||||
|
|
||||||
|
{% if event.people %}
|
||||||
|
<div class="event-people">
|
||||||
|
<h5>Ansprechpartner:</h5>
|
||||||
|
<ul class="event-people-list">
|
||||||
|
{% for person in event.people %}
|
||||||
|
<li>
|
||||||
|
{% if person.name %}
|
||||||
|
{{ person.name }}
|
||||||
|
{% endif %}
|
||||||
|
{% if person.email %}
|
||||||
|
<br><a href="mailto:{{ person.email }}" class="event-people-link">{{ person.email }}</a>
|
||||||
|
{% endif %}
|
||||||
|
{% if person.tel %}
|
||||||
|
<br><a href="tel:{{ person.tel }}" class="event-people-link">{{ person.tel }}</a>
|
||||||
|
{% endif %}
|
||||||
|
</li>
|
||||||
|
{% endfor %}
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</article>
|
9
_includes/footer.njk
Normal file
9
_includes/footer.njk
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
<footer class="footer">
|
||||||
|
<nav>
|
||||||
|
<ul class="footer-links">
|
||||||
|
<li><a href="/impressum" class="footer-link">Impressum</a></li>
|
||||||
|
<li><a href="/datenschutz" class="footer-link">Datenschutz</a></li>
|
||||||
|
<li><a href="/impressum/barrierefreiheit" class="footer-link">Barrierefreiheit</a></li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</footer>
|
7
_includes/header.njk
Normal file
7
_includes/header.njk
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
<header class="mi-header">
|
||||||
|
<h1 class="mi-header-headline">{{ title | safe }}</h1>
|
||||||
|
|
||||||
|
{% if header.subheadline %}
|
||||||
|
<p class="mi-header-subheadline">{{ header.subheadline | safe }}<p>
|
||||||
|
{% endif %}
|
||||||
|
</header>
|
10
_includes/hero.njk
Normal file
10
_includes/hero.njk
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
<header class="mi-header mi-header_hero">
|
||||||
|
<h1 class="mi-header--headline">
|
||||||
|
MiOM 202 is
|
||||||
|
<div class="mi-header--things-we-are">
|
||||||
|
{% for thingWeAre in thingsWeAre %}
|
||||||
|
<span class="mi-header--thing-we-are">{{ thingWeAre }}</span>
|
||||||
|
{% endfor %}
|
||||||
|
</div>space
|
||||||
|
</h1>
|
||||||
|
</header>
|
38
_includes/layouts/default.njk
Normal file
38
_includes/layouts/default.njk
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="{{ language }}">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<title>{{ title | title | safe }}</title>
|
||||||
|
|
||||||
|
<link rel="shortcut icon" href="/favicon.png" />
|
||||||
|
|
||||||
|
<meta name="theme-color" content="{{ themeColor }}" id="theme-color" />
|
||||||
|
<meta name="description" content="MiOM 202 is a creative space in Cologne, Germany">
|
||||||
|
|
||||||
|
<meta id="viewport" name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
|
||||||
|
<link rel="stylesheet" type="text/css" href="/styles.css{{ cssCacheBust }}" media="all" />
|
||||||
|
<link rel="stylesheet" type="text/css" href="/header.css{{ cssCacheBust }}" media="all" />
|
||||||
|
|
||||||
|
{% if extraStylesheets %}
|
||||||
|
{% for extraStylesheet in extraStylesheets %}
|
||||||
|
<link rel="stylesheet" type="text/css" href="{{ extraStylesheet }}{{ cssCacheBust }}" media="all" />
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
</head>
|
||||||
|
<body class="page">
|
||||||
|
{% block header %}
|
||||||
|
{% include "header.njk" %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
<main class="page-main">
|
||||||
|
{% if article %}
|
||||||
|
{{ article | md | safe }}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% block special %}{% endblock %}
|
||||||
|
</main>
|
||||||
|
|
||||||
|
{% include "footer.njk" %}
|
||||||
|
</body>
|
||||||
|
</html>
|
18
_includes/layouts/homepage.njk
Normal file
18
_includes/layouts/homepage.njk
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
---
|
||||||
|
themeColor: #FFFFFF
|
||||||
|
language: en
|
||||||
|
cssCacheBust: ''
|
||||||
|
|
||||||
|
header: null
|
||||||
|
article: null
|
||||||
|
---
|
||||||
|
|
||||||
|
{% extends "layouts/default.njk" %}
|
||||||
|
|
||||||
|
{% block header %}
|
||||||
|
{% include "hero.njk" %}
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block special %}
|
||||||
|
{% include "people.njk" %}
|
||||||
|
{% endblock %}
|
19
_includes/media.njk
Normal file
19
_includes/media.njk
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
<section
|
||||||
|
id="media"
|
||||||
|
class="media"
|
||||||
|
>
|
||||||
|
{% for medium in media %}
|
||||||
|
<h2>{{ medium.title }}</h2>
|
||||||
|
|
||||||
|
<figure class="media-iframe-parent">
|
||||||
|
<iframe
|
||||||
|
class="media-iframe"
|
||||||
|
src="https://www.youtube.com/embed/{{ medium.id }}"
|
||||||
|
title="YouTube video player"
|
||||||
|
frameborder="0"
|
||||||
|
allow="autoplay; clipboard-write; encrypted-media; picture-in-picture"
|
||||||
|
allowfullscreen
|
||||||
|
></iframe>
|
||||||
|
</figure>
|
||||||
|
{% endfor %}
|
||||||
|
</section>
|
43
_includes/navigation.njk
Normal file
43
_includes/navigation.njk
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
<nav
|
||||||
|
id="navigation"
|
||||||
|
class="navigation"
|
||||||
|
>
|
||||||
|
<a href="/" class="logo navigation-link">
|
||||||
|
<img
|
||||||
|
class="logo-image"
|
||||||
|
src="/img/logo-60jahre.png"
|
||||||
|
alt="Unser Logo"
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
|
||||||
|
<button
|
||||||
|
type="button"
|
||||||
|
id="navigation-toggle"
|
||||||
|
class="navigation-toggle"
|
||||||
|
aria-label="Navigation Öffnen und Schliessen"
|
||||||
|
>
|
||||||
|
<span class="navigation-toggle-line"></span>
|
||||||
|
<span class="navigation-toggle-line"></span>
|
||||||
|
<span class="navigation-toggle-line"></span>
|
||||||
|
</button>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
const navToggle = document.getElementById("navigation-toggle");
|
||||||
|
const nav = document.getElementById("navigation");
|
||||||
|
navToggle.addEventListener("click", function () {
|
||||||
|
nav.classList.toggle("navigation_open");
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<ul class="menu">
|
||||||
|
<li class="menu-item">
|
||||||
|
<a href="/veranstaltungen" class="navigation-link">Veranstaltungen</a>
|
||||||
|
</li>
|
||||||
|
<li class="menu-item">
|
||||||
|
<a href="/medien" class="navigation-link">Medien</a>
|
||||||
|
</li>
|
||||||
|
<li class="menu-item">
|
||||||
|
<a href="/unterricht" class="navigation-link">Bildung</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
5
_includes/people.njk
Normal file
5
_includes/people.njk
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
<ol class="mi-people">
|
||||||
|
{% for person in people %}
|
||||||
|
<li></li>
|
||||||
|
{% endfor %}
|
||||||
|
</ol>
|
7
build.sh
Executable file
7
build.sh
Executable file
|
@ -0,0 +1,7 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
lume
|
||||||
|
cp -r ./img ./_site/
|
||||||
|
cp -r ./unterricht/docs ./_site/unterricht/
|
||||||
|
cp -r ./fonts ./_site/
|
||||||
|
cp favicon.png ./_site/
|
32
header.css
Normal file
32
header.css
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
.mi-header {
|
||||||
|
padding: 0 5vw;
|
||||||
|
--slide: 28vh;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mi-header--headline {
|
||||||
|
font-weight: 900;
|
||||||
|
margin: 0;
|
||||||
|
margin-top: var(--slide);
|
||||||
|
font-size: 5vw;
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
justify-content: flex-end;
|
||||||
|
align-items: flex-start;
|
||||||
|
}
|
||||||
|
|
||||||
|
.mi-header--things-we-are {
|
||||||
|
padding: 0 3vh;
|
||||||
|
margin: 0 3vh;
|
||||||
|
background: black;
|
||||||
|
color: white;
|
||||||
|
display: inline-block;
|
||||||
|
position: relative;
|
||||||
|
top: calc(-1 * var(--slide));
|
||||||
|
}
|
||||||
|
|
||||||
|
.mi-header--thing-we-are {
|
||||||
|
display: block;
|
||||||
|
position: relative;
|
||||||
|
left: 0;
|
||||||
|
top: 0;
|
||||||
|
}
|
11
shell.nix
Normal file
11
shell.nix
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
with (import (fetchTarball https://github.com/nixos/nixpkgs/archive/nixpkgs-unstable.tar.gz) {});
|
||||||
|
mkShell {
|
||||||
|
buildInputs = [
|
||||||
|
nodejs
|
||||||
|
deno
|
||||||
|
];
|
||||||
|
|
||||||
|
shellHook = ''
|
||||||
|
export PATH="$PATH:/home/ben/.deno/bin"
|
||||||
|
'';
|
||||||
|
}
|
23
styles.css
Normal file
23
styles.css
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
/*
|
||||||
|
@import url('https://fonts.googleapis.com/css2?&family=Raleway:wght@900&display=swap');
|
||||||
|
*/
|
||||||
|
|
||||||
|
* {
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
/*
|
||||||
|
font-family: 'Dosis', sans-serif;
|
||||||
|
*/
|
||||||
|
font-family: 'Raleway', sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
.page {
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
display: grid;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue