diff --git a/homepage/content/articles/milestone-1.md b/homepage/content/articles/milestone-1.md index 61bccec..b2f01c6 100644 --- a/homepage/content/articles/milestone-1.md +++ b/homepage/content/articles/milestone-1.md @@ -5,9 +5,9 @@ slug: laying-foundation-for-fair-web-analytics sitemap_priority: 0.7 sm_image_url: /theme/images/offen-blog-0010-milestone1.jpg -
-Milestone 1 - Laying the foundation for fair web analytics -
+
+Milestone 1 - Laying the foundation for fair web analytics +
###### 12 Dec 2019, Hendrik Niefeld @@ -20,25 +20,19 @@ Milestone 1 is completed. This is what we've achieved in the last six weeks. We have further refined the existing application architecture to make it more robust and accessible to both contributors and people who want to build upon Offen. As a developer, you can transparently control additional behavior by adding or removing middleware. ### Easy to test drive -Download a single binary file and run it on your local computer to get an Offen instance up and running immediately. At the moment this setup only supports Linux. Windows and MacOS will follow soon. -
-Download binary -
+Download a single binary file and run it on your local computer to get an Offen instance up and running immediately. At the moment this setup only supports Linux. Windows and MacOS will follow soon. +[Download binary](https://8342-180605180-gh.circle-artifacts.com/0/tmp/artifacts/offen-stable.tar.gz){: target="_blank" data-button="yellow"} ### Develop without complex setup -Docker and Docker-Compose are the only hard requirement for you to develop Offen. We have successfully tested this setup under Linux, Windows and MacOS. Head over to our wiki for instructions how to get the setup up and running. -
-Open wiki -
+Docker and Docker-Compose are the only hard requirement for you to develop Offen. We have successfully tested this setup under Linux, Windows and MacOS. Head over to our wiki for instructions how to get the setup up and running. +[Open wiki](https://github.com/offen/offen/wiki/Developing-offen#setup){: target="_blank" data-button="yellow"} ### Lightweight and accessible interfaces The *Auditorium* is ready for a dry run. It's a functional prototype for accessing and managing user data. We opted for [Choo](https://choo.io/){: target="_blank"} as the application framework and [Tachyons](https://tachyons.io/){: target="_blank"} as the CSS framework. ### Ready to localize -You can now localize all user-related content in server- and client-side applications. At the moment English is the only supported locale, but we would be happy to add more locales soon. Contributors wanted after milestone 3 is completed. -
-Get in touch -
+You can now localize all user-related content in server- and client-side applications. At the moment English is the only supported locale, but we would be happy to add more locales soon. Contributors wanted after milestone 3 is completed. +[Get in touch](mailto:hioffen@posteo.de){: data-button="yellow"} ### Read the docs The work on our wiki has started. Including documentation for [developers](https://github.com/offen/offen/wiki/Developing-offen){: target="_blank"} as well as for [website operators](https://github.com/offen/offen/wiki/Running-offen){: target="_blank"} who want to deploy and run Offen. @@ -52,7 +46,5 @@ We have further hardened and improved the HTTP server that Offen exposes. If you --- ### Deep dive -Interested in the details? Want to get your hands dirty? Head over to our GitHub repo. -
-Open milestone 1 pull -
+Interested in the details? Want to get your hands dirty? Head over to our GitHub repo. +[Open milestone 1 Pull Request](https://github.com/offen/offen/pull/192){: target="_blank" data-button="black"} diff --git a/homepage/pelicanconf.py b/homepage/pelicanconf.py index 3484281..ab20b91 100644 --- a/homepage/pelicanconf.py +++ b/homepage/pelicanconf.py @@ -46,9 +46,12 @@ ARTICLE_SAVE_AS = 'blog/{slug}/index.html' PLUGIN_PATHS = ['./plugins'] PLUGINS = ['decorate_content', 'assets'] -# maps any CSS selector to a list of classes to be added DECORATE_CONTENT = { - 'a': ['link', 'b', 'dim', 'gray'], + '[data-button]': ['dib', 'mv3', 'ph4', 'pv2', 'b--solid', 'bw2'], + '[data-button="yellow"]': ['brd-cclr-mid-yellow', 'fnt-cclr-mid-yellow'], + '[data-button="black"]': ['brd-cclr-mid-black', 'fnt-cclr-mid-black'], + 'a': ['link', 'b', 'dim'], + 'a:not([data-button])': ['gray'], 'h2': ['f25', 'ma0', 'mb3', 'light-silver'], 'h3': ['f5', 'normal', 'mt4', 'ma0', 'mb3', 'fnt-cclr-mid-black'], 'h4': ['f5', 'normal', 'mt4', 'ma0', 'mb3'], diff --git a/homepage/plugins/decorate_content/decorate_content.py b/homepage/plugins/decorate_content/decorate_content.py index 21c0f4e..11ebd65 100644 --- a/homepage/plugins/decorate_content/decorate_content.py +++ b/homepage/plugins/decorate_content/decorate_content.py @@ -22,7 +22,7 @@ def content_object_init(instance): soup = BeautifulSoup(instance._content, "html.parser") for selector, class_names in settings.items(): - elems = soup.find_all(selector) + elems = soup.select(selector) for elem in elems: elem["class"] = elem.get("class", []) + class_names diff --git a/homepage/theme/templates/base.html b/homepage/theme/templates/base.html index fadfbd4..076bf8b 100644 --- a/homepage/theme/templates/base.html +++ b/homepage/theme/templates/base.html @@ -25,16 +25,15 @@ {% assets filters="postcss,cssmin", output="css/style.min.css", "css/tachyons.min.css", "css/fix.css", "css/fonts.css" %} {% endassets %} - - + + {% if OFFEN_ACCOUNT_ID and not no_stats %} {% endif %} {% endblock %} - -