2
0
mirror of https://github.com/offen/website.git synced 2024-12-23 13:30:20 +01:00

update articles, remove plugin

This commit is contained in:
Hendrik Niefeld 2020-07-02 21:58:40 +02:00
parent d4ad06e83e
commit c7c83769cd
13 changed files with 22 additions and 141 deletions

View File

@ -4,13 +4,15 @@ date: 2019-12-12
slug: laying-foundation-for-fair-web-analytics
sitemap_priority: 0.7
sm_image_url: /theme/images/offen-blog-0010-milestone1.jpg
summary_title: Laying the foundation for fair web analytics
<figure class="larger-image mb5">
<img alt="Milestone 1 - Laying the foundation for fair web analytics" src="/theme/images/offen-blog-0010-milestone1.jpg"/>
</figure>
###### 12 Dec 2019, Hendrik Niefeld
# [Episode One — Laying the foundation for fair web analytics](/blog/laying-foundation-for-fair-web-analytics/)
# Episode One — Laying the foundation for fair web analytics
Milestone 1 is completed. This is what we've achieved in the last six weeks.
---

View File

@ -4,13 +4,14 @@ date: 2020-01-19
slug: untold-roads-versioning-early-stage-software
sitemap_priority: 0.7
sm_image_url: /theme/images/offen-blog-0020-untoldRoads.jpg
summary_title: Untold roads to v1.0
<figure class="larger-image mb5">
<img alt="Untold roads" src="/theme/images/offen-blog-0020-untoldRoads.jpg"/>
</figure>
###### 19 Jan 2020, Frederik Ring
# [Untold roads to v1.0](/blog/untold-roads-versioning-early-stage-software/)
# Untold roads to v1.0
After a lot of experimenting, taking detours and having unanticipated revelations while building the foundation for Offen over the last months, the state of the project is starting to settle, and we are eager to get ready for users to install our software, and use it for transparently collecting usage statistics for their websites and applications.

View File

@ -4,13 +4,15 @@ date: 2020-01-31
slug: collecting-data-securely
sitemap_priority: 0.7
sm_image_url: /theme/images/offen-blog-0030-milestone-2.jpg
summary_title: Collecting data securely
<figure class="larger-image mb5">
<img alt="Milestone 2 - Collecting data securely" src="/theme/images/offen-blog-0030-milestone-2.jpg"/>
</figure>
###### 31 Jan 2020, Hendrik Niefeld
# [Episode Two — Collecting data securely](/blog/collecting-data-securely/)
# Episode Two — Collecting data securely
We finished milestone 2. Here is what we' ve been doing for the last 8 weeks.
---

View File

@ -4,13 +4,15 @@ date: 2020-03-04
slug: test-offen-today
sitemap_priority: 0.7
sm_image_url: /theme/images/offen-blog-0040-test-offen-today.jpg
summary_title: Test Offen today
<figure class="larger-image mb5">
<img alt="Test Offen today" src="/theme/images/offen-blog-0040-test-offen-today.jpg"/>
</figure>
###### 04 Mar 2020, Hendrik Niefeld
# [Test Offen today](/blog/test-offen-today/)
# Test Offen today
Were excited to present our first version that is officially ready for testing.
---

View File

@ -4,13 +4,14 @@ date: 2020-04-13
slug: displaying-data
sitemap_priority: 0.7
sm_image_url: /theme/images/offen-blog-0050-milestone-3.jpg
summary_title: Displaying data
<figure class="larger-image mb5">
<img alt="Milestone 3 - Displaying data" src="/theme/images/offen-blog-0050-milestone-3.jpg"/>
</figure>
###### 14 Apr 2020, Frederik Ring
# [Episode Three — Displaying data](/blog/displaying-data/)
# Episode Three — Displaying data
In the middle of strange times Milestone 3 - "Displaying Data" - is done. This means we focused on how we aggregate and display the data Offen collects in a way that operators can use it to improve their services and users can understand what is being collected and what it means for their privacy.

View File

@ -4,6 +4,7 @@ date: 2020-06-09
slug: managing-data
sitemap_priority: 0.7
sm_image_url: /theme/images/offen-blog-0060-milestone-4.jpg
summary_title: Managing data
<figure class="larger-image mb5">
<img alt="Milestone 4 - Managing data" src="/theme/images/offen-blog-0060-milestone-4.jpg"/>
@ -12,7 +13,7 @@ sm_image_url: /theme/images/offen-blog-0060-milestone-4.jpg
##### [Photo](https://www.flickr.com/photos/wocintechchat/25926651781/in/album-72157664006621903/){: target="_blank"} by WOCinTechChat / [CC BY 3.0](https://creativecommons.org/licenses/by/3.0/){: target="_blank"}
###### 09 Jun 2020, Frederik Ring
# [Episode Four — Managing data](/blog/managing-data/)
# Episode Four — Managing data
Milestone 4 - "Managing data" - has been an important one for us. Finishing it means Offen is now close to being feature complete in the scope of our initial plans, and we can start transitioning into a Beta state, meaning we can finally offer a stable product for users to use in production environments.

View File

@ -4,17 +4,15 @@ date: 2020-06-30
slug: hosting-offen-on-budget
sitemap_priority: 0.7
sm_image_url: /theme/images/offen-blog-0070-budget.jpg
summary_title: Hosting Offen on a budget
<figure class="larger-image mb5">
<img alt="Hosting on a budget" src="/theme/images/offen-blog-0070-budget.jpg"/>
</figure>
<!-- PELICAN_BEGIN_SUMMARY -->
###### 30 Jun 2020, Frederik Ring
# [Hosting Offen on a budget](/blog/hosting-offen-on-budget/)
<!-- PELICAN_END_SUMMARY -->
# Hosting Offen on a budget
Using self-hosted software like Offen when you're on a budget can seem daunting as you usually don't know too much about the performance requirements of the software you are planning to use beforehand. Once you do know, you might have locked in yourself already.

View File

@ -45,9 +45,7 @@ PAGE_SAVE_AS = '{slug}/index.html'
ARTICLE_SAVE_AS = 'blog/{slug}/index.html'
PLUGIN_PATHS = ['./plugins']
PLUGINS = ['decorate_content', 'assets', 'summary']
SUMMARY_USE_FIRST_PARAGRAPH = True
PLUGINS = ['decorate_content', 'assets']
MARKDOWN = {
'extension_configs': {

View File

@ -1,15 +0,0 @@
Pelican Summary Plugin
Copyright The Pelican Authors
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.

View File

@ -1 +0,0 @@
from .summary import *

View File

@ -1,111 +0,0 @@
"""
Summary
-------
This plugin allows easy, variable length summaries directly embedded into the
body of your articles.
"""
from __future__ import unicode_literals
from bs4 import BeautifulSoup
from pelican import signals
from pelican.generators import ArticlesGenerator, StaticGenerator, PagesGenerator
import re
def initialized(pelican):
from pelican.settings import DEFAULT_CONFIG
DEFAULT_CONFIG.setdefault('SUMMARY_BEGIN_MARKER',
'<!-- PELICAN_BEGIN_SUMMARY -->')
DEFAULT_CONFIG.setdefault('SUMMARY_END_MARKER',
'<!-- PELICAN_END_SUMMARY -->')
DEFAULT_CONFIG.setdefault('SUMMARY_USE_FIRST_PARAGRAPH', False)
if pelican:
pelican.settings.setdefault('SUMMARY_BEGIN_MARKER',
'<!-- PELICAN_BEGIN_SUMMARY -->')
pelican.settings.setdefault('SUMMARY_END_MARKER',
'<!-- PELICAN_END_SUMMARY -->')
pelican.settings.setdefault('SUMMARY_USE_FIRST_PARAGRAPH', False)
def extract_summary(instance):
# if summary is already specified, use it
# if there is no content, there's nothing to do
if hasattr(instance, '_summary') or 'summary' in instance.metadata:
instance.has_summary = True
return
if not instance._content:
instance.has_summary = False
return
begin_marker = instance.settings['SUMMARY_BEGIN_MARKER']
end_marker = instance.settings['SUMMARY_END_MARKER']
use_first_paragraph = instance.settings['SUMMARY_USE_FIRST_PARAGRAPH']
remove_markers = True
content = instance._update_content(instance._content, instance.settings['SITEURL'])
begin_summary = -1
end_summary = -1
if begin_marker:
begin_summary = content.find(begin_marker)
if end_marker:
end_summary = content.find(end_marker)
if begin_summary == -1 and end_summary == -1 and use_first_paragraph:
begin_marker, end_marker = '<p>', '</p>'
remove_markers = False
begin_summary = content.find(begin_marker)
end_summary = content.find(end_marker)
if begin_summary == -1 and end_summary == -1:
instance.has_summary = False
return
# skip over the begin marker, if present
if begin_summary == -1:
begin_summary = 0
else:
begin_summary = begin_summary + len(begin_marker)
if end_summary == -1:
end_summary = None
summary = content[begin_summary:end_summary]
if remove_markers:
# remove the markers from the content
if begin_summary:
content = content.replace(begin_marker, '', 1)
if end_summary:
content = content.replace(end_marker, '', 1)
summary = str(BeautifulSoup(summary, 'html.parser'))
instance._content = content
# default_status was added to Pelican Content objects after 3.7.1.
# Its use here is strictly to decide on how to set the summary.
# There's probably a better way to do this but I couldn't find it.
if hasattr(instance, 'default_status'):
instance.metadata['summary'] = summary
else:
instance._summary = summary
instance.has_summary = True
def run_plugin(generators):
for generator in generators:
if isinstance(generator, ArticlesGenerator):
for article in generator.articles:
extract_summary(article)
elif isinstance(generator, PagesGenerator):
for page in generator.pages:
extract_summary(page)
def register():
signals.initialized.connect(initialized)
try:
signals.all_generators_finalized.connect(run_plugin)
except AttributeError:
# NOTE: This results in #314 so shouldn't really be relied on
# https://github.com/getpelican/pelican-plugins/issues/314
signals.content_object_init.connect(extract_summary)

View File

@ -19,7 +19,9 @@
<img alt="{{ article.title }}" src="{{ article.sm_image_url }}"/>
</a>
</figure>
{{ article.summary }}
<h1 class="f2 normal lh-title mt3 ma0 mb3 light-silver">
<a href="{{ article.slug }}" class="link b dim gray">{{ article.summary_title }}</a>
</h1>
<p class="">
{{ article.description }} <a href="{{ article.slug }}" class="link b dim gray">Read more</a>
</p>

View File

@ -8,3 +8,4 @@
{% set template = article.template %}
{% set content = article.content %}
{% set cta_1 = 'true' %}
{% set summary_title = article.summary_title %}