From 80d84a752652f3bd65087866d135e089f005a671 Mon Sep 17 00:00:00 2001 From: Frederik Ring Date: Wed, 1 Jul 2020 13:57:52 +0200 Subject: [PATCH 1/4] display summary in blog index only --- homepage/pelicanconf.py | 4 +- homepage/plugins/summary/NOTICE | 15 ++++ homepage/plugins/summary/__init__.py | 1 + homepage/plugins/summary/summary.py | 111 +++++++++++++++++++++++++ homepage/theme/templates/archives.html | 2 +- 5 files changed, 131 insertions(+), 2 deletions(-) create mode 100644 homepage/plugins/summary/NOTICE create mode 100644 homepage/plugins/summary/__init__.py create mode 100644 homepage/plugins/summary/summary.py diff --git a/homepage/pelicanconf.py b/homepage/pelicanconf.py index e4f96e3..7cb12fe 100644 --- a/homepage/pelicanconf.py +++ b/homepage/pelicanconf.py @@ -45,7 +45,9 @@ PAGE_SAVE_AS = '{slug}/index.html' ARTICLE_SAVE_AS = 'blog/{slug}/index.html' PLUGIN_PATHS = ['./plugins'] -PLUGINS = ['decorate_content', 'assets'] +PLUGINS = ['decorate_content', 'assets', 'summary'] + +SUMMARY_USE_FIRST_PARAGRAPH = True MARKDOWN = { 'extension_configs': { diff --git a/homepage/plugins/summary/NOTICE b/homepage/plugins/summary/NOTICE new file mode 100644 index 0000000..a7412d2 --- /dev/null +++ b/homepage/plugins/summary/NOTICE @@ -0,0 +1,15 @@ +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 . diff --git a/homepage/plugins/summary/__init__.py b/homepage/plugins/summary/__init__.py new file mode 100644 index 0000000..afe9311 --- /dev/null +++ b/homepage/plugins/summary/__init__.py @@ -0,0 +1 @@ +from .summary import * diff --git a/homepage/plugins/summary/summary.py b/homepage/plugins/summary/summary.py new file mode 100644 index 0000000..26f1d37 --- /dev/null +++ b/homepage/plugins/summary/summary.py @@ -0,0 +1,111 @@ +""" +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', + '') + DEFAULT_CONFIG.setdefault('SUMMARY_END_MARKER', + '') + DEFAULT_CONFIG.setdefault('SUMMARY_USE_FIRST_PARAGRAPH', False) + if pelican: + pelican.settings.setdefault('SUMMARY_BEGIN_MARKER', + '') + pelican.settings.setdefault('SUMMARY_END_MARKER', + '') + 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 = '

', '

' + 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) diff --git a/homepage/theme/templates/archives.html b/homepage/theme/templates/archives.html index 9433912..55e00c9 100644 --- a/homepage/theme/templates/archives.html +++ b/homepage/theme/templates/archives.html @@ -14,7 +14,7 @@ {% endif %}
- {{ article.content }} + {{ article.summary }}
{% endfor %} From d4ad06e83eaf8b9f82b701e55def3693952e31e2 Mon Sep 17 00:00:00 2001 From: Hendrik Niefeld Date: Thu, 2 Jul 2020 21:18:30 +0200 Subject: [PATCH 2/4] tweak summary layout --- homepage/content/articles/0070-budget.md | 4 ++++ homepage/pelicanconf.py | 13 +++++++++---- homepage/theme/templates/archives.html | 10 +++++++++- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/homepage/content/articles/0070-budget.md b/homepage/content/articles/0070-budget.md index c56f159..a104709 100644 --- a/homepage/content/articles/0070-budget.md +++ b/homepage/content/articles/0070-budget.md @@ -9,9 +9,13 @@ sm_image_url: /theme/images/offen-blog-0070-budget.jpg Hosting on a budget + + ###### 30 Jun 2020, Frederik Ring # [Hosting Offen on a budget](/blog/hosting-offen-on-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. In this article we collect a few real world options and scenarios for hosting Offen on a budget and compare how they relate in terms of ease of deployment, performance and pricing. diff --git a/homepage/pelicanconf.py b/homepage/pelicanconf.py index 7cb12fe..75b674d 100644 --- a/homepage/pelicanconf.py +++ b/homepage/pelicanconf.py @@ -65,15 +65,20 @@ DECORATE_CONTENT = { '[data-button="outline"]': ['b--gray', 'gray'], '[data-button="full"]': ['cclr-brd-black-mid', 'white', 'cclr-bg-black-mid'], '[data-button-mb5="full"]': ['cclr-brd-black-mid', 'white', 'cclr-bg-black-mid'], - 'a': ['link', 'b', 'dim'], - 'a:not([data-button])': ['gray'], + 'figure a': ['link'], + 'p a': ['link', 'b', 'dim'], + 'h1 a': ['link', 'b', 'dim'], + 'h2 a': ['link', 'b', 'dim'], + 'h3 a': ['link', 'b', 'dim'], + 'h4 a': ['link', 'b', 'dim'], 'h5 a': ['normal', 'moon-gray'], - 'h1': ['f2', 'normal', 'lh-title', 'mt4', 'ma0', 'mb3', 'light-silver'], + 'a:not([data-button])': ['gray'], + 'h1': ['f2', 'normal', 'lh-title', 'mt3', 'ma0', 'mb3', 'light-silver'], 'h2': ['f25', 'normal', 'lh-title', 'mt4', 'ma0', 'mb3', 'light-silver'], 'h3': ['f5', 'normal', 'mt5', 'ma0', 'mb3', '.cclr-fnt-black-mid'], 'h4': ['f5', 'b', 'mt4', 'ma0', 'mb1'], # text over button 'h5': ['f7', 'normal', 'ma0', 'nt5', 'mb5', 'moon-gray'], # image credits - 'h6': ['f5', 'lh-solid', 'normal', 'ma0', 'mb3', 'light-silver'], # date + 'h6': ['f5', 'lh-solid', 'normal', 'ma0', 'light-silver'], # date 'p': ['ma0', 'pb3'], 'blockquote': ['f5', 'i', 'ma0', 'ml4-ns', 'ml3'], 'hr': ['mt5', 'mb3', 'b--black-05'], diff --git a/homepage/theme/templates/archives.html b/homepage/theme/templates/archives.html index 55e00c9..2700dc0 100644 --- a/homepage/theme/templates/archives.html +++ b/homepage/theme/templates/archives.html @@ -1,7 +1,7 @@ {% extends "base.html" %} {% set title = 'Fair analytics blog | Offen' %} -{% set description = 'Developing Offen. A free and open source analytics software for websites and web applications that allows respectful handling of data.' %} +{% set description = 'Developing an open alternative to common web analytics tools. Gain insights while your users have full access to their data. Lightweight, self hosted and free.' %} {% set href = 'blog/' %} {% set no_stats = False %} {% set template = 'archives' %} @@ -14,7 +14,15 @@ {% endif %}
+
+ + {{ article.title }} + +
{{ article.summary }} +

+ {{ article.description }} Read more +

{% endfor %} From c7c83769cd9a8b57cbc51daf6b693320e45ffa6a Mon Sep 17 00:00:00 2001 From: Hendrik Niefeld Date: Thu, 2 Jul 2020 21:58:40 +0200 Subject: [PATCH 3/4] update articles, remove plugin --- homepage/content/articles/0010-milestone-1.md | 4 +- .../content/articles/0020-untold-roads.md | 3 +- homepage/content/articles/0030-milestone-2.md | 4 +- .../content/articles/0040-test-offen-today.md | 4 +- homepage/content/articles/0050-milestone-3.md | 3 +- homepage/content/articles/0060-milestone-4.md | 3 +- homepage/content/articles/0070-budget.md | 6 +- homepage/pelicanconf.py | 4 +- homepage/plugins/summary/NOTICE | 15 --- homepage/plugins/summary/__init__.py | 1 - homepage/plugins/summary/summary.py | 111 ------------------ homepage/theme/templates/archives.html | 4 +- homepage/theme/templates/article.html | 1 + 13 files changed, 22 insertions(+), 141 deletions(-) delete mode 100644 homepage/plugins/summary/NOTICE delete mode 100644 homepage/plugins/summary/__init__.py delete mode 100644 homepage/plugins/summary/summary.py diff --git a/homepage/content/articles/0010-milestone-1.md b/homepage/content/articles/0010-milestone-1.md index 2bd6353..df488ef 100644 --- a/homepage/content/articles/0010-milestone-1.md +++ b/homepage/content/articles/0010-milestone-1.md @@ -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
Milestone 1 - Laying the foundation for fair web analytics
###### 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. --- diff --git a/homepage/content/articles/0020-untold-roads.md b/homepage/content/articles/0020-untold-roads.md index 9ab5513..23e9e85 100644 --- a/homepage/content/articles/0020-untold-roads.md +++ b/homepage/content/articles/0020-untold-roads.md @@ -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
Untold roads
###### 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. diff --git a/homepage/content/articles/0030-milestone-2.md b/homepage/content/articles/0030-milestone-2.md index 9bb0c9b..58b7905 100644 --- a/homepage/content/articles/0030-milestone-2.md +++ b/homepage/content/articles/0030-milestone-2.md @@ -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
Milestone 2 - Collecting data securely
###### 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. --- diff --git a/homepage/content/articles/0040-test-offen-today.md b/homepage/content/articles/0040-test-offen-today.md index 90601f7..e27a787 100644 --- a/homepage/content/articles/0040-test-offen-today.md +++ b/homepage/content/articles/0040-test-offen-today.md @@ -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
Test Offen today
###### 04 Mar 2020, Hendrik Niefeld -# [Test Offen today](/blog/test-offen-today/) +# Test Offen today + We’re excited to present our first version that is officially ready for testing. --- diff --git a/homepage/content/articles/0050-milestone-3.md b/homepage/content/articles/0050-milestone-3.md index a709089..d3427c8 100644 --- a/homepage/content/articles/0050-milestone-3.md +++ b/homepage/content/articles/0050-milestone-3.md @@ -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
Milestone 3 - Displaying data
###### 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. diff --git a/homepage/content/articles/0060-milestone-4.md b/homepage/content/articles/0060-milestone-4.md index 4f9aa77..77d2037 100644 --- a/homepage/content/articles/0060-milestone-4.md +++ b/homepage/content/articles/0060-milestone-4.md @@ -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
Milestone 4 - Managing data @@ -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. diff --git a/homepage/content/articles/0070-budget.md b/homepage/content/articles/0070-budget.md index a104709..f99c9ee 100644 --- a/homepage/content/articles/0070-budget.md +++ b/homepage/content/articles/0070-budget.md @@ -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
Hosting on a budget
- - ###### 30 Jun 2020, Frederik Ring -# [Hosting Offen on a budget](/blog/hosting-offen-on-budget/) - +# 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. diff --git a/homepage/pelicanconf.py b/homepage/pelicanconf.py index 75b674d..5166985 100644 --- a/homepage/pelicanconf.py +++ b/homepage/pelicanconf.py @@ -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': { diff --git a/homepage/plugins/summary/NOTICE b/homepage/plugins/summary/NOTICE deleted file mode 100644 index a7412d2..0000000 --- a/homepage/plugins/summary/NOTICE +++ /dev/null @@ -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 . diff --git a/homepage/plugins/summary/__init__.py b/homepage/plugins/summary/__init__.py deleted file mode 100644 index afe9311..0000000 --- a/homepage/plugins/summary/__init__.py +++ /dev/null @@ -1 +0,0 @@ -from .summary import * diff --git a/homepage/plugins/summary/summary.py b/homepage/plugins/summary/summary.py deleted file mode 100644 index 26f1d37..0000000 --- a/homepage/plugins/summary/summary.py +++ /dev/null @@ -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', - '') - DEFAULT_CONFIG.setdefault('SUMMARY_END_MARKER', - '') - DEFAULT_CONFIG.setdefault('SUMMARY_USE_FIRST_PARAGRAPH', False) - if pelican: - pelican.settings.setdefault('SUMMARY_BEGIN_MARKER', - '') - pelican.settings.setdefault('SUMMARY_END_MARKER', - '') - 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 = '

', '

' - 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) diff --git a/homepage/theme/templates/archives.html b/homepage/theme/templates/archives.html index 2700dc0..fcc1992 100644 --- a/homepage/theme/templates/archives.html +++ b/homepage/theme/templates/archives.html @@ -19,7 +19,9 @@ {{ article.title }}
- {{ article.summary }} +

+ {{ article.summary_title }} +

{{ article.description }} Read more

diff --git a/homepage/theme/templates/article.html b/homepage/theme/templates/article.html index edb349a..1c7934c 100644 --- a/homepage/theme/templates/article.html +++ b/homepage/theme/templates/article.html @@ -8,3 +8,4 @@ {% set template = article.template %} {% set content = article.content %} {% set cta_1 = 'true' %} +{% set summary_title = article.summary_title %} From 95cc2f9454aa19ac9efee2a5ba4880f39be4100b Mon Sep 17 00:00:00 2001 From: Hendrik Niefeld Date: Thu, 2 Jul 2020 22:17:00 +0200 Subject: [PATCH 4/4] update title, remove summary_title --- homepage/content/articles/0010-milestone-1.md | 3 +-- homepage/content/articles/0020-untold-roads.md | 3 +-- homepage/content/articles/0030-milestone-2.md | 3 +-- homepage/content/articles/0040-test-offen-today.md | 3 +-- homepage/content/articles/0050-milestone-3.md | 3 +-- homepage/content/articles/0060-milestone-4.md | 3 +-- homepage/content/articles/0070-budget.md | 3 +-- homepage/theme/templates/archives.html | 2 +- homepage/theme/templates/article.html | 3 +-- 9 files changed, 9 insertions(+), 17 deletions(-) diff --git a/homepage/content/articles/0010-milestone-1.md b/homepage/content/articles/0010-milestone-1.md index df488ef..7c186f8 100644 --- a/homepage/content/articles/0010-milestone-1.md +++ b/homepage/content/articles/0010-milestone-1.md @@ -1,10 +1,9 @@ -title: Laying the foundation for fair web analytics | Offen +title: Laying the foundation for fair web analytics description: Our milestone 1 achievements include extensible architecture, a localization option and an improved server structure. 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
Milestone 1 - Laying the foundation for fair web analytics diff --git a/homepage/content/articles/0020-untold-roads.md b/homepage/content/articles/0020-untold-roads.md index 23e9e85..b8aef36 100644 --- a/homepage/content/articles/0020-untold-roads.md +++ b/homepage/content/articles/0020-untold-roads.md @@ -1,10 +1,9 @@ -title: Untold roads to v1.0 | Offen +title: Untold roads to v1.0 description: Onboarding users onto a product that is still in development needs a thorough plan. These are our conclusions as we work our way to a v1.0 release of Offen. 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
Untold roads diff --git a/homepage/content/articles/0030-milestone-2.md b/homepage/content/articles/0030-milestone-2.md index 58b7905..f68005a 100644 --- a/homepage/content/articles/0030-milestone-2.md +++ b/homepage/content/articles/0030-milestone-2.md @@ -1,10 +1,9 @@ -title: Collecting data securely | Offen +title: Collecting data securely description: Our key milestone 2 features are user consent, improved crypto implementation and an extended set of stats. 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
Milestone 2 - Collecting data securely diff --git a/homepage/content/articles/0040-test-offen-today.md b/homepage/content/articles/0040-test-offen-today.md index e27a787..d4f0248 100644 --- a/homepage/content/articles/0040-test-offen-today.md +++ b/homepage/content/articles/0040-test-offen-today.md @@ -1,10 +1,9 @@ -title: Test our alpha release today | Offen +title: Test our alpha release today description: Help us take a step forward. Download or deploy Offen today and give it a spin. Any feedback is appreciated. 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
Test Offen today diff --git a/homepage/content/articles/0050-milestone-3.md b/homepage/content/articles/0050-milestone-3.md index d3427c8..da573ba 100644 --- a/homepage/content/articles/0050-milestone-3.md +++ b/homepage/content/articles/0050-milestone-3.md @@ -1,10 +1,9 @@ -title: Displaying data | Offen +title: Displaying data description: Our milestone 3 achievements include an improved UX, a Heroku deploy option and full Safari support. 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
Milestone 3 - Displaying data diff --git a/homepage/content/articles/0060-milestone-4.md b/homepage/content/articles/0060-milestone-4.md index 77d2037..b031544 100644 --- a/homepage/content/articles/0060-milestone-4.md +++ b/homepage/content/articles/0060-milestone-4.md @@ -1,10 +1,9 @@ -title: Managing data | Offen +title: Managing data description: Milestone 4 comes with enhanced account management, UX improvements and an updated demo version. 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
Milestone 4 - Managing data diff --git a/homepage/content/articles/0070-budget.md b/homepage/content/articles/0070-budget.md index f99c9ee..1982358 100644 --- a/homepage/content/articles/0070-budget.md +++ b/homepage/content/articles/0070-budget.md @@ -1,10 +1,9 @@ -title: Hosting Offen on a budget | Offen +title: Hosting Offen on a budget description: Here are some real world options for hosting Offen on a budget. Let's compare how they relate in terms of ease of deployment, performance and pricing. 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
Hosting on a budget diff --git a/homepage/theme/templates/archives.html b/homepage/theme/templates/archives.html index fcc1992..b906ffb 100644 --- a/homepage/theme/templates/archives.html +++ b/homepage/theme/templates/archives.html @@ -20,7 +20,7 @@

- {{ article.summary_title }} + {{ article.title }}

{{ article.description }} Read more diff --git a/homepage/theme/templates/article.html b/homepage/theme/templates/article.html index 1c7934c..f1117d0 100644 --- a/homepage/theme/templates/article.html +++ b/homepage/theme/templates/article.html @@ -1,6 +1,6 @@ {% extends "base.html" %} -{% set title = article.title %} +{% set title = article.title + "| Offen" %} {% set description = article.description %} {% set href = article.save_as.replace('index.html', '') %} {% set sm_image_url = article.sm_image_url %} @@ -8,4 +8,3 @@ {% set template = article.template %} {% set content = article.content %} {% set cta_1 = 'true' %} -{% set summary_title = article.summary_title %}