Commit 9eaef1df authored by Nina's avatar Nina

Merge branch 'nina/redesign' into 'master'

Redesign Website

Closes #48

See merge request !78
parents e16e9195 a2223b0c
Pipeline #33470 passed with stages
in 48 seconds
......@@ -84,7 +84,7 @@ linkcheck:
script:
# Run linkchecker against the pushed (and deployed) branch. Exclude mailto: links, as the ones
# which we commonly use miss a MX record.
- linkchecker --check-extern --ignore-url=mailto https://schleuder.org/$DEPLOY_SLUG
- linkchecker --check-extern --ignore-url=mailto --ignore-url=woff https://schleuder.org/$DEPLOY_SLUG
only:
# This job relies on secret env vars, which are only available in our repo.
- branches@schleuder/schleuder-website
......
---
layout: page
title: Schleuder ★ Code of Conduct
title: Code of Conduct
subtitle: A gpg-enabled mailinglist with remailing-capabilities.
---
......@@ -20,7 +20,7 @@ Maintainers, including the development team, are also subject to the anti-harass
If anyone engages in abusive, harassing, or otherwise unacceptable behavior, including maintainers, we will take appropriate action, up to and including warning the offender, deletion of comments, removal from the project’s codebase and communication systems.
If you are being harassed, notice that someone else is being harassed, or have any other concerns, please [contact the development team](https://schleuder.org/contact.html) immediately.
If you are being harassed, notice that someone else is being harassed, or have any other concerns, please [contact the development team]({{ "contact.html" | absolute_url }}) immediately.
We expect everyone to follow these rules anywhere in the Schleuder project’s codebases, issue trackers, IRC channel, group chat, mailing lists, meetups, and any other events.
......
---
layout: page
title: Schleuder ★ Mission statement
title: Mission statement
subtitle: A gpg-enabled mailinglist with remailing-capabilities.
---
......
{: .note}
This document refers to **Schleuder version {{ include.version }}** To read about older versions of Schleuder please see the [older docs]({{ "schleuder/docs/older/" | absolute_url }}).
This document refers to **Schleuder version {{ include.version }}**. To read about older versions of Schleuder please see the [older docs]({{ "schleuder/docs/older/" | absolute_url }}).
* toc
{:toc}
......
......@@ -2,6 +2,3 @@
Changes to the previous version of Schleuder are summarized in [changes](changes.html).
{% include feedback.md %}
{::options parse_block_html="true" /}
<div class='footer'>
[](#top "Go to top of page")
{: .linktotop}
{: .feedback }
To suggest changes to these documents, or if you found any errors in them, please [let us know]({{ "contact.html" | absolute_url }}).
You can also [see their history](https://0xacab.org/schleuder/schleuder-website/commits/master).
</div>
<footer class="footer">
<div class="content has-text-centered">
<p>
<a href="https://lists.nadir.org/mailman/listinfo/schleuder-announce">Subscribe to our Mailinglist</a>
</p>
<p class="margin-top">
To suggest changes to these documents, or if you found any errors in them, please <a href="/contact.html">please let us know</a>.
You can also <a href="https://0xacab.org/schleuder/schleuder-website/commits/master">see their history</a>.
</p>
</div>
</footer>
\ No newline at end of file
<div class="tile is-ancestor">
<div class="tile is-parent">
<article class="tile is-child">
<p class="console">{{ page.title }}: {{ page.subtitle }}</p>
</article>
</div>
<div class="tile is-parent">
<article class="tile is-child">
<figure class="image has-ratio has-padding">
<img src='{{ "/assets/images/schleuder_logo.svg" | absolute_url }}'>
</figure>
</article>
</div>
</div>
<div class="tile is-ancestor">
<div class="tile is-parent">
<article class="tile is-child">
<p class="title">How it works</p>
<div class="content">
<p>Schleuder is a group's email-gateway: subscribers can exchange encrypted emails among themselves, receive emails from non-subscribers and send emails to non-subscribers via the list.</p>
<a href='{{ "schleuder/docs/concept.html" | absolute_url }}'>More</a>
</div>
</article>
</div>
<div class="tile is-parent">
<article class="tile is-child">
<p class="title">Mission Statement</p>
<div class="content">
<p>We give our time and knowledge to build and maintain this project in order to help people with their daily private communication and in the struggle for their personal emancipation, social and economic justice and political freedom.</p>
<a href='{{ "MISSION_STATEMENT.html" | absolute_url }}'>More</a>
</div>
</article>
</div>
<div class="tile is-parent">
<article class="tile is-child">
<p class="title">Documentation</p>
<div class="content">
<p>Are you a subscriber, a list admin or a server admin? Find the docs for your use case.</p>
<a href='{{ "schleuder/docs/index.html" | absolute_url }}'>More</a>
</div>
</article>
</div>
</div>
\ No newline at end of file
<nav class="breadcrumbs hidden-sm-down">
<ol class="breadcrumb list-unstyled" vocab="http://schema.org/" typeof="BreadcrumbList">
{% for crumb in breadcrumbs %}
{% if forloop.first %}
<li class="breadcrumb-item breadcrumb-item-icon" property="itemListElement" typeof="ListItem">
<a property="item" typeof="WebPage" href="{{ site.url }}{{ site.baseurl }}{{ crumb.url }}">
<img src='{{ "images/schleuder.png" | absolute_url }}' title='Home' alt='Logo: a slingshot' />
<meta property="position" content="{{ crumb.position }}" />
</a>
</li>
{% continue %}
{% endif %}
{% unless forloop.last %}
<li class="breadcrumb-item" property="itemListElement" typeof="ListItem">
<div class="separator">/</div>
<a property="item" typeof="WebPage" href="{{ site.url }}{{ site.baseurl }}{{ crumb.url }}">
<span property="name">{{ crumb.title }}</span>
<meta property="position" content="{{ crumb.position }}" />
</a>
</li>
{% endunless %}
{% endfor %}
</ol>
</nav>
<nav class="navbar is-fixed-top is-spaced" role="navigation" aria-label="main navigation">
<input type="checkbox" id="toggler" role="button" class="toggler" aria-label="menu" aria-expanded="false"
data-target="navbarMain" />
<div class="navbar-brand">
<a class="navbar-item" href='{{ "/" | absolute_url }}'>
<img src='{{ "/assets/images/schleuder_logo_small.svg" | absolute_url }}' alt="schleuder">
</a>
<label for="toggler" class="navbar-burger burger" >
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
</label>
</div>
<div id="navbarMain" class="navbar-menu">
<div class="navbar-end">
<a class="navbar-item" href='{{ "news.html" | absolute_url }}'>
News
</a>
<a class="navbar-item" href='{{ "schleuder/docs/concept.html" | absolute_url }}'>
Concept
</a>
<div class="navbar-item has-dropdown is-hoverable">
<a class="navbar-link" href='{{ "schleuder/docs/index.html" | absolute_url }}'>
Docs
</a>
<div class="navbar-dropdown">
<a class="navbar-item" href='{{ "schleuder/docs/subscribers.html" | absolute_url }}'>
For Subscribers
</a>
<a class="navbar-item" href='{{ "schleuder/docs/list-admins.html" | absolute_url }}'>
For List-Admins
</a>
<a class="navbar-item" href='{{ "schleuder/docs/server-admins.html" | absolute_url }}'>
For Server-Admins
</a>
<a class="navbar-item" href='{{ "schleuder/docs/projects-and-plugins.html" | absolute_url }}'>
Projects & Plugins
</a>
</div>
</div>
<a class="navbar-item" href='{{ "MISSION_STATEMENT.html" | absolute_url }}'>
Mission Statement
</a>
<a class="navbar-item" href='{{ "CODE_OF_CONDUCT.html" | absolute_url }}'>
Code of Conduct
</a>
<a class="navbar-item" href='{{ "contact.html" | absolute_url }}'>
Contact
</a>
</div>
</div>
</nav>
\ No newline at end of file
### Links
{::options parse_block_html="true" /}
To **participate** in the development use the [issue tracker](https://0xacab.org/schleuder/{{ include.project }}/issues). Please take note of our [Code of Conduct]({{ "CODE_OF_CONDUCT.html" | absolute_url }}).
To **contact** us read [contact]({{ "contact.html" | absolute_url }}).
<div class="participate">
To **be notified** of news about Schleuder subscribe to [schleuder-announce](https://lists.nadir.org/mailman/listinfo/schleuder-announce).
To **participate** in the development use the [issue tracker](https://0xacab.org/schleuder/{{ include.project }}/issues). Please take note of our [Code of Conduct]({{ "CODE_OF_CONDUCT.html" | absolute_url }}).
{% include feedback.md %}
</div>
<!DOCTYPE html>
<html lang='en'>
<head>
<link href='{{ "favicon.ico" | absolute_url }}' rel='shortcut icon' type='image/x-icon'>
<link href='{{ "favicon.ico" | absolute_url }}' rel='icon' type='image/x-icon'>
<meta charset='UTF-8'>
<meta content='width=device-width, initial-scale=1' name='viewport'>
<title>{% if page.title %} {{ page.title }} {% else %} {{ site.title }} {% endif %}</title>
<meta content='{% if page.excerpt %} {{ page.excerpt | strip_html | strip_newlines | truncate: 160 }} {% else %} {{ site.description }} {% endif %}' name='description'>
<link href='{{ "styles.css" | absolute_url }}' rel='stylesheet' media='all'>
</head>
<body id="top" class='layout-{{ page.layout }}'>
<a href='{{ "" }}'><img id='logo' src='{{ "images/schleuder.png" | absolute_url }}' alt="Logo of schleuder"></a>
{{ content }}
</body>
</html>
<html lang='en' class="has-navbar-fixed-top">
<head>
<link href='{{ "favicon.ico" | absolute_url }}' rel='shortcut icon' type='image/x-icon'>
<link href='{{ "favicon.ico" | absolute_url }}' rel='icon' type='image/x-icon'>
<meta charset='UTF-8'>
<meta content='width=device-width, initial-scale=1' name='viewport'>
<title>{% if page.title %} {{ page.title }} {% else %} {{ site.title }} {% endif %}</title>
<meta
content='{% if page.excerpt %} {{ page.excerpt | strip_html | strip_newlines | truncate: 160 }} {% else %} {{ site.description }} {% endif %}'
name='description'>
<link href='{{ "assets/css/styles.css" | absolute_url }}' rel='stylesheet' media='all'>
</head>
<body>
{% include navbar.html %}
<main class="main-content">
<div class="columns">
<div class="column is-offset-2-desktop is-two-thirds-desktop is-offset-1-mobile is-four-fifths-mobile">
{{ content }}
</div>
</div>
</main>
{% include footer.html %}
</body>
</html>
\ No newline at end of file
......@@ -3,9 +3,5 @@ layout: default
---
<div class='page'>
<header>
<h1>{{ page.title }}</h1>
<div id='subtitle'>{{ page.subtitle }}</div>
</header>
<article>{{ content }}</article>
</div>
<article class="content">{{ content }}</article>
</div>
\ No newline at end of file
---
layout: default
---
<div class='news'>
<h1 class="title">{{ page.title }}</h1>
<div class="content">
{{ content }}
</div>
</div>
......@@ -4,8 +4,7 @@ layout: default
<div class='docs'>
<header>
{% include nav-breadcrumbs.html %}
<h1>{{ page.title }}</h1>
</header>
<article>{{ content }}</article>
<article class="content">{{ content }}</article>
</div>
---
layout: default
---
<div class='post'>
<h1 class="title">{{ page.title }}</h1>
<h3>{{ page.date | date_to_string: "ordinal", "US"}}</h3>
<article class="content">{{ content }}</article>
</div>
\ No newline at end of file
require_relative 'drops/breadcrumb_item.rb'
module Jekyll
module Breadcrumbs
@@config = {}
@@siteAddress = ""
@@sideAddresses = {}
def self.clearAddressCache
@@sideAddresses = {}
end
def self.loadAddressCache(site)
clearAddressCache
site.documents.each { |page| addAddressItem(page.url, page['crumbtitle'] || page['title'] || '') } # collection files including posts
site.pages.each { |page| addAddressItem(page.url, page['crumbtitle'] || page['title'] || '') } # pages
site.posts.docs.each { |page| addAddressItem(page.url, page['crumbtitle'] || page['title'] || '') } # posts
end
def self.addAddressItem(url, title)
key = createAddressCacheKey(url)
@@sideAddresses[key] = {:url => url, :title => title}
end
def self.findAddressItem(path)
key = createAddressCacheKey(path)
@@sideAddresses[key] if key
end
def self.createAddressCacheKey(path)
path.chomp("/").empty? ? "/" : path.chomp("/")
end
def self.buildSideBreadcrumbs(side, payload)
payload["breadcrumbs"] = []
return if side.url == @@siteAddress && root_hide === true
drop = Jekyll::Drops::BreadcrumbItem
position = 0
path = side.url.chomp("/").split(/(?=\/)/)
(-1..(path.size - 1)).each do |int|
joined_path = int == -1 ? "" : path[0..int].join
item = findAddressItem(joined_path)
if item
position += 1
item[:position] = position
item[:root_image] = root_image
payload["breadcrumbs"] << drop.new(item)
end
end
end
# Config
def self.loadConfig(site)
config = site.config["breadcrumbs"] || {"root" => {"hide" => false, "image" => false}}
root = config["root"]
@@config[:root_hide] = root["hide"] || false
@@config[:root_image] = root["image"] || false
@@siteAddress = site.config["baseurl"] || "/"
@@siteAddress = "/" if @@siteAddress.empty?
end
def self.root_hide
@@config[:root_hide]
end
def self.root_image
@@config[:root_image]
end
end
end
Jekyll::Hooks.register :site, :pre_render do |site, payload|
Jekyll::Breadcrumbs::loadConfig(site)
Jekyll::Breadcrumbs::loadAddressCache(site)
end
Jekyll::Hooks.register [:pages, :documents], :pre_render do |side, payload|
Jekyll::Breadcrumbs::buildSideBreadcrumbs(side, payload)
end
module Jekyll
module Drops
class BreadcrumbItem < Liquid::Drop
extend Forwardable
def initialize(side)
@side = side
end
def position
@side[:position]
end
def title
@side[:title]
end
def url
@side[:url]
end
def rootimage
@side[:root_image]
end
end
end
end
\ No newline at end of file
---
layout: post
title: "Schleuder 3.3.0 released!"
date: "2018-09-04"
---
This release contains a few bug fixes and improvements: Missing arguments to keywords are now properly handled, and also more helpful error messages are provided; "Protected Headers" now are handled in a way that Thunderbird/Enigmail recognize; we also introduced a new keyword to remove a fingerprint from a subscription, and protected X-SET-FINGERPRINT better against accidental mis-use.
Additionally the pseudoheaders now fully depend on the 'headers_to_meta' configuration-option, including 'sig' and 'enc'; in effect you can now also have a fully empty pseudoheaders-block, which might come in handy for newsletters. Thanks to all contributors! Packages for Debian and CentOS will be released soon. For all details please see the [changelog](https://0xacab.org/schleuder/schleuder/blob/master/CHANGELOG.md#330-2018-09-04).
\ No newline at end of file
---
layout: post
title: "Meet Schleuder devs in Hamburg"
date: "2018-10-22"
---
For everyone located in or near Hamburg, Germany (or willing to travel): Next Friday evening the Schleuder development team will meet in a bar in Hamburg, and would be pleased to have a chat with you! There is no program, just time to sit around, discuss ideas, ask questions, and have some drinks or food. Friday, 2018-10-26, from 7pm (UTC+2), at Feldstern (Sternstrasse 2, Hamburg, Germany).
---
layout: post
title: "Meet Schleuder devs in Frankfurt/Main"
date: "2019-01-24"
---
For everyone located in or near Frankfurt/Main, Germany (or willing to travel): On Friday, Feb 1st, the Schleuder development team will meet in a restaurant in Frankfurt, and would be pleased to have a chat with you! We have no schedule, just time to sit around, discuss ideas, ask questions, and have some drinks or food. Anyone is welcome, be they technically minded, politically interested or simply curious! *Friday, 2019-02-01, from 7pm (local time), at Heck Meck* (Friesengasse 19, Frankfurt am Main, Germany).
\ No newline at end of file
---
layout: post
title: "Schleuder 3.4.0 released!"
date: "2019-02-14"
---
This release ships an important privacy fix: To not leak keywords (for example via resent messages), HTML is now stripped from multipart/alternative messages if they contain keywords. For all details please see the [changelog](https://0xacab.org/schleuder/schleuder/blob/master/CHANGELOG.md#340-2019-02-14).
---
layout: post
title: "Schleuder Gitlab Ticketing 1.0.0 released!"
date: "2019-02-21"
---
Since Schleuder 3.3.0 it is possible to extend the schleuder filters through externally provided filters. A project that is using this mechanism is the [schleuder-gitlab-ticketing]({{"/schleuder-gitlab-ticketing" | absolute_url}}) project, that provides tracking functionality of your schleuder messaging within a gitlab issue tracker. This is especially built and helpful for schleuder lists being used as helpdesk or project gateway. Read more about the functionality on the projects summary page: [schleuder-gitlab-ticketing]({{"/schleuder-gitlab-ticketing" | absolute_url}}).
---
layout: post
title: "Schleuder 3.4.1 released"
date: "2019-09-16"
---
This release fixes two problems with the handling of emails containing “protected headers”, and it drops third-party signatures on OpenPGP keys when importing to prevent signature flooding (if your version of GnuPG is recent enough).
For all details please see the [changelog](https://0xacab.org/schleuder/schleuder/blob/master/CHANGELOG.md#341-2019-09-16).
---
layout: post
title: "Meet Schleuder devs in Berlin"
date: "2019-12-22"
---
For everyone located in or near Berlin, Germany (or willing to travel): On Friday, Jan 3rd, the Schleuder development team will meet in a restaurant in Berlin, and would be pleased to have a chat with you!
We have no schedule, just time to sit around, discuss ideas, ask questions, and have some drinks or food. Anyone is welcome, be they technically minded, politically interested or simply curious! *Friday, 2020-01-03, from 7pm (local time), at Kuchen Kaiser* (Oranienplatz 11-13, Berlin, Germany).
@charset "utf-8"
/*! bulma.io v0.7.5 | MIT License | github.com/jgthms/bulma */
@import "sass/utilities/_all"
@import "sass/base/_all"
@import "sass/elements/_all"
@import "sass/form/_all"
@import "sass/components/_all"
@import "sass/grid/_all"
@import "sass/layout/_all"
.toggler {
display: none;
}
.navbar .toggler:checked {
& + .navbar-brand .burger {
& span:nth-child(1) {
-webkit-transform: translateY(5px) rotate(45deg);
transform: translateY(5px) rotate(45deg);
}
& span:nth-child(2) {
opacity: 0;
}
& span:nth-child(3){
-webkit-transform: translateY(-5px) rotate(-45deg);
transform: translateY(-5px) rotate(-45deg);
}
}
& ~ .navbar-menu {
@media screen and (max-width: 1024px) {
display: block;
}
}
}
@charset "utf-8"
@import "minireset.sass"
@import "generic.sass"
@import "helpers.sass"
$body-background-color: $white !default
$body-size: 16px !default
$body-min-width: 300px !default
$body-rendering: optimizeLegibility !default
$body-family: $family-primary !default
$body-overflow-x: hidden !default
$body-overflow-y: scroll !default
$body-color: $text !default
$body-font-size: 1em !default
$body-weight: $weight-normal !default
$body-line-height: 1.5 !default
$code-family: $family-code !default
$code-padding: 0.25em 0.5em 0.25em !default
$code-weight: normal !default
$code-size: 0.875em !default
$small-font-size: 0.875em !default
$hr-background-color: $background !default
$hr-height: 2px !default
$hr-margin: 1.5rem 0 !default
$strong-color: $text-strong !default
$strong-weight: $weight-bold !default
$pre-font-size: 0.875em !default
$pre-padding: 1.25rem 1.5rem !default
$pre-code-font-size: 1em !default
html
background-color: $body-background-color
font-size: $body-size
-moz-osx-font-smoothing: grayscale
-webkit-font-smoothing: antialiased
min-width: $body-min-width
overflow-x: $body-overflow-x
overflow-y: $body-overflow-y
text-rendering: $body-rendering
text-size-adjust: 100%
article,
aside,
figure,
footer,
header,
hgroup,
section
display: block
body,
button,
input,
select,
textarea
font-family: $body-family
code,
pre
-moz-osx-font-smoothing: auto
-webkit-font-smoothing: auto
font-family: $code-family
body
color: $body-color
font-size: $body-font-size
font-weight: $body-weight
line-height: $body-line-height