gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[www] branch stable updated (7712bd2 -> 5b0232f)


From: gnunet
Subject: [www] branch stable updated (7712bd2 -> 5b0232f)
Date: Thu, 07 Nov 2019 21:51:01 +0100

This is an automated email from the git hooks/post-receive script.

ng0 pushed a change to branch stable
in repository www.

    from 7712bd2  slides.
     add 337d558  move dicts into yaml file.
     add a307b7c  Improve video template.
     add cccc4e3  truncate news.
     add efc09a5  use macro for news preview, candidate for near future subrepo.
     add 5b0232f  remove debug code

No new revisions were added by this update.

Summary of changes:
 README                            |   5 +-
 inc/news.macro.j2                 |  13 +
 locale/de/LC_MESSAGES/messages.po |  86 +++---
 locale/en/LC_MESSAGES/messages.po |  84 +++---
 locale/es/LC_MESSAGES/messages.po |  86 +++---
 locale/fr/LC_MESSAGES/messages.po |  86 +++---
 locale/it/LC_MESSAGES/messages.po |  86 +++---
 news/index.html.j2                |  13 +-
 template.py                       | 566 ++------------------------------------
 template/index.html.j2            |  13 +-
 template/video.html.j2            |  55 +++-
 www.yml                           | 485 ++++++++++++++++++++++++++++++++
 12 files changed, 789 insertions(+), 789 deletions(-)
 create mode 100644 inc/news.macro.j2
 create mode 100644 www.yml

diff --git a/README b/README
index 1718c38..5e16003 100644
--- a/README
+++ b/README
@@ -8,7 +8,10 @@ code base.
 Requirements
 ------------
 - python3 modules:
-  - python3-jinja2, python3-babel
+  - jinja2
+  - babel
+  - ruamel.yaml
+  - BeautifulSoup 4
 - python3 interpreter:
   - python 3.7 or later.
 - gettext
diff --git a/inc/news.macro.j2 b/inc/news.macro.j2
new file mode 100644
index 0000000..0ed9972
--- /dev/null
+++ b/inc/news.macro.j2
@@ -0,0 +1,13 @@
+{% macro newspreview(name) -%}
+  <section class="item-preview">
+    <header>
+      <h3>{{ name['title']|e }}</h3>
+      <p class="item-date">
+        {{ name['date'] }}
+      </p>
+    </header>
+    <p class="item-abstract">
+      {{ name['abstract'] }} [<a href="{% if kwargs|length > 0 %}{{ 
kwargs['prefix'] }}{% endif %}{{ name['page'] }}" title="{{ name['date']}}">{{ 
_("read more") }}</a>]
+    </p>
+  </section>
+{% endmacro -%}
diff --git a/locale/de/LC_MESSAGES/messages.po 
b/locale/de/LC_MESSAGES/messages.po
index 330cb4d..0713014 100644
--- a/locale/de/LC_MESSAGES/messages.po
+++ b/locale/de/LC_MESSAGES/messages.po
@@ -7,7 +7,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2019-11-05 11:13+0000\n"
+"POT-Creation-Date: 2019-11-07 16:26+0000\n"
 "PO-Revision-Date: 2018-02-24 17:42\n"
 "Last-Translator: Torsten Grothoff <address@hidden>\n"
 "Language-Team: German <address@hidden>\n"
@@ -58,11 +58,11 @@ msgstr ""
 msgid "Report issues with this website."
 msgstr ""
 
-#: common/navigation.j2.inc:38 template/index.html.j2:50
+#: common/navigation.j2.inc:38 template/index.html.j2:51
 msgid "About"
 msgstr "Über GNUnet"
 
-#: common/navigation.j2.inc:39 news/index.html.j2:8 template/index.html.j2:63
+#: common/navigation.j2.inc:39 news/index.html.j2:9 template/index.html.j2:64
 msgid "News"
 msgstr "Neues"
 
@@ -70,7 +70,7 @@ msgstr "Neues"
 msgid "Community"
 msgstr "Community"
 
-#: common/navigation.j2.inc:46 template/index.html.j2:54
+#: common/navigation.j2.inc:46 template/index.html.j2:55
 msgid "Engage"
 msgstr "Mach mit!"
 
@@ -118,7 +118,7 @@ msgstr "Entwicklung"
 msgid "Documentation"
 msgstr "Dokumentation"
 
-#: common/navigation.j2.inc:82 template/index.html.j2:52
+#: common/navigation.j2.inc:82 template/index.html.j2:53
 #: template/install.html.j2:6
 msgid "Install"
 msgstr "Installieren"
@@ -147,6 +147,10 @@ msgstr "REST API"
 msgid "FAQ"
 msgstr "FAQ"
 
+#: inc/news.macro.j2:10
+msgid "read more"
+msgstr ""
+
 #: template/about.html.j2:11
 #, fuzzy
 #| msgid "About GNUnet"
@@ -1487,7 +1491,7 @@ msgid ""
 "Report: <a href=\"gsoc-2018-gnunet-webui.html\">GSoC 2018: GNUnet WebUI</a>"
 msgstr ""
 
-#: template/index.html.j2:18
+#: template/index.html.j2:19
 msgid ""
 "GNUnet is a new network protocol stack for building secure, distributed, and "
 "privacy-preserving applications. With strong roots in <a href=\"https://bib.";
@@ -1496,7 +1500,7 @@ msgid ""
 "stack."
 msgstr ""
 
-#: template/index.html.j2:28
+#: template/index.html.j2:29
 msgid ""
 "GNUnet is typically run as an <a href=\"https://en.wikipedia.org/wiki/";
 "Overlay_network\">overlay network</a> on top of the existing Internet "
@@ -1507,7 +1511,7 @@ msgid ""
 "a>."
 msgstr ""
 
-#: template/index.html.j2:37
+#: template/index.html.j2:38
 msgid ""
 "GNUnet is made for a free and open society: It&#39;s a self-organizing "
 "network and it is <a href=\"http://www.gnu.org/philosophy/free-sw.html";
@@ -1516,15 +1520,15 @@ msgid ""
 "accept compromises."
 msgstr ""
 
-#: template/index.html.j2:98
+#: template/index.html.j2:89
 msgid "The Internet of tomorrow needs GNUnet today"
 msgstr ""
 
-#: template/index.html.j2:104
+#: template/index.html.j2:95
 msgid "Imagine..."
 msgstr ""
 
-#: template/index.html.j2:106
+#: template/index.html.j2:97
 msgid ""
 "The conventional Internet is currently like a system of roads with deep "
 "potholes and highwaymen all over the place. Even if you still can use the "
@@ -1541,11 +1545,11 @@ msgid ""
 "central data base. -->"
 msgstr ""
 
-#: template/index.html.j2:130
+#: template/index.html.j2:121
 msgid "The Internet is broken"
 msgstr ""
 
-#: template/index.html.j2:132
+#: template/index.html.j2:123
 msgid ""
 "Protocols from Ethernet and IP to BGP and X.509 PKI are insecure by default: "
 "protecting against address forgery, routers learning metadata, or choosing "
@@ -1556,7 +1560,7 @@ msgid ""
 "multiple attacks massively threatening our freedom. -->"
 msgstr ""
 
-#: template/index.html.j2:146
+#: template/index.html.j2:137
 msgid ""
 "GNUnet provides <a href=\"https://www.w3.org/2014/strint/papers/65.pdf";
 "\">privacy by design</a>, improving addressing, routing, naming and content "
@@ -1567,11 +1571,11 @@ msgid ""
 "content distribution in a technically robust manner. -->"
 msgstr ""
 
-#: template/index.html.j2:164
+#: template/index.html.j2:155
 msgid "Decentralization is hard"
 msgstr ""
 
-#: template/index.html.j2:167
+#: template/index.html.j2:158
 msgid ""
 "<!-- replaced with Proposal from Fabian Gerlach: It seems as if every other "
 "distributed or P2P project develops its own library stack, covering "
@@ -1582,7 +1586,7 @@ msgid ""
 "potential number of vulnerabilities."
 msgstr ""
 
-#: template/index.html.j2:183
+#: template/index.html.j2:174
 msgid ""
 "GNUnet is a metadata-preserving foundation for your application, covering "
 "areas from addressing to reliable bidirectional Axolotl-encrypted channels, "
@@ -1590,11 +1594,11 @@ msgid ""
 "almost two decades."
 msgstr ""
 
-#: template/index.html.j2:197
+#: template/index.html.j2:188
 msgid "Metadata is exposed"
 msgstr ""
 
-#: template/index.html.j2:199
+#: template/index.html.j2:190
 msgid ""
 "Your metadata is just as revealing as the actual content; and it gets "
 "exposed on the Internet.<br> Even though transport encryption is "
@@ -1610,11 +1614,11 @@ msgid ""
 "routing, and more."
 msgstr ""
 
-#: template/index.html.j2:222
+#: template/index.html.j2:213
 msgid "Freedoms are not respected"
 msgstr ""
 
-#: template/index.html.j2:224
+#: template/index.html.j2:215
 msgid ""
 "Today, monitoring increasingly centralized infrastructure, proprietary "
 "implementations, traffic shapers and firewalls restrict all of the <a href="
@@ -1622,7 +1626,7 @@ msgid ""
 "various degrees."
 msgstr ""
 
-#: template/index.html.j2:233
+#: template/index.html.j2:224
 msgid ""
 "GNUnet gives users freedoms to securely access information (\"run\" the "
 "network), to study all aspects of the network&#39;s operation (\"access the "
@@ -1630,13 +1634,13 @@ msgid ""
 "deploy new applications (\"modify\")."
 msgstr ""
 
-#: template/index.html.j2:245
+#: template/index.html.j2:236
 #, fuzzy
 #| msgid "About GNUnet"
 msgid "Learn more about GNUnet"
 msgstr "Über GNUnet"
 
-#: template/index.html.j2:247
+#: template/index.html.j2:238
 msgid ""
 "If you want to know more about the GNUnet please continue reading the <a "
 "href=\"about.html\">about page</a>. There are much more resources, such as "
@@ -1645,7 +1649,7 @@ msgid ""
 "\"https://gnunet.org/en/video.html\";>videos</a>."
 msgstr ""
 
-#: template/index.html.j2:256
+#: template/index.html.j2:247
 msgid ""
 "You are very welcome to <a href=\"https://gnunet.org/en/engage.html\";> get "
 "engaged into the conversation</a>, <a href=\"https://gnunet.org/en/install.";
@@ -1656,26 +1660,26 @@ msgid ""
 "Internet!"
 msgstr ""
 
-#: template/index.html.j2:278
+#: template/index.html.j2:269
 msgid "Featured Applications"
 msgstr ""
 
-#: template/index.html.j2:284
+#: template/index.html.j2:275
 msgid "GNU Taler (Alpha)"
 msgstr ""
 
-#: template/index.html.j2:286
+#: template/index.html.j2:277
 msgid ""
 "<a href=\"https://taler.net/\";>GNU Taler</a> is a new privacy-preserving "
 "electronic payment system. Payments are cryptographically secured and are "
 "confirmed within milliseconds with extremely low transaction costs."
 msgstr ""
 
-#: template/index.html.j2:298
+#: template/index.html.j2:289
 msgid "The GNU Name System"
 msgstr ""
 
-#: template/index.html.j2:301
+#: template/index.html.j2:292
 msgid ""
 "<!-- The <a href=\"use.html#gns\">GNU Name System (GNS)</a> --> The <a href="
 "\"https://docs.gnunet.org/handbook/gnunet.html#The-GNU-Name-System\";>GNU "
@@ -1687,11 +1691,11 @@ msgid ""
 "GNS integrates a robust, efficient and instant key revocation mechanism. -->"
 msgstr ""
 
-#: template/index.html.j2:318
+#: template/index.html.j2:309
 msgid "re:claimID"
 msgstr ""
 
-#: template/index.html.j2:320
+#: template/index.html.j2:311
 msgid ""
 "<a href=\"https://reclaim-identity.io/\";>re:claimID</a> is a decentralized "
 "Identity Provider (IdP) service built in top of the GNU Name System. It "
@@ -1699,39 +1703,39 @@ msgid ""
 "standardized protocols (OpenID Connect)."
 msgstr ""
 
-#: template/index.html.j2:333
+#: template/index.html.j2:324
 msgid "Filesharing (Alpha)"
 msgstr ""
 
-#: template/index.html.j2:335
+#: template/index.html.j2:326
 msgid ""
 "GNUnet <a href=\"use.html#fs\">filesharing</a> is an application that aims "
 "to provide censorship-resistant, anonymous filesharing. The publisher is "
 "empowered to make a gradual choice between performance and anonymity."
 msgstr ""
 
-#: template/index.html.j2:346
+#: template/index.html.j2:337
 #, fuzzy
 #| msgid "Motivation"
 msgid "Conversation (Pre-Alpha)"
 msgstr "Motivation"
 
-#: template/index.html.j2:348
+#: template/index.html.j2:339
 msgid ""
 "GNUnet conversation is an application that provides secure voice "
 "communication in a fully decentralized way by employing GNUnet for routing "
 "and transport."
 msgstr ""
 
-#: template/index.html.j2:364
+#: template/index.html.j2:355
 msgid "Upcoming Applications"
 msgstr ""
 
-#: template/index.html.j2:370
+#: template/index.html.j2:361
 msgid "secushare"
 msgstr ""
 
-#: template/index.html.j2:372
+#: template/index.html.j2:363
 msgid ""
 "<a href=\"https://secushare.org/\";>secushare</a> is creating a decentralized "
 "social networking application on top of GNUnet. Using overlay multicast and "
@@ -1739,11 +1743,11 @@ msgid ""
 "encrypted to authorized recipients only."
 msgstr ""
 
-#: template/index.html.j2:384
+#: template/index.html.j2:375
 msgid "pretty Easy privacy"
 msgstr ""
 
-#: template/index.html.j2:386
+#: template/index.html.j2:377
 msgid ""
 "<a href=\"https://pep.foundation/\";>pretty Easy privacy</a> (p&#8801;p) is "
 "creating a usable end-to-end encrypted e-mail solution using opportunistic "
diff --git a/locale/en/LC_MESSAGES/messages.po 
b/locale/en/LC_MESSAGES/messages.po
index cbe64f9..9f92361 100644
--- a/locale/en/LC_MESSAGES/messages.po
+++ b/locale/en/LC_MESSAGES/messages.po
@@ -39,11 +39,11 @@ msgstr ""
 msgid "Report issues with this website."
 msgstr ""
 
-#: common/navigation.j2.inc:38 template/index.html.j2:50
+#: common/navigation.j2.inc:38 template/index.html.j2:51
 msgid "About"
 msgstr ""
 
-#: common/navigation.j2.inc:39 news/index.html.j2:8 template/index.html.j2:63
+#: common/navigation.j2.inc:39 news/index.html.j2:9 template/index.html.j2:64
 msgid "News"
 msgstr ""
 
@@ -51,7 +51,7 @@ msgstr ""
 msgid "Community"
 msgstr ""
 
-#: common/navigation.j2.inc:46 template/index.html.j2:54
+#: common/navigation.j2.inc:46 template/index.html.j2:55
 msgid "Engage"
 msgstr ""
 
@@ -95,7 +95,7 @@ msgstr ""
 msgid "Documentation"
 msgstr ""
 
-#: common/navigation.j2.inc:82 template/index.html.j2:52
+#: common/navigation.j2.inc:82 template/index.html.j2:53
 #: template/install.html.j2:6
 msgid "Install"
 msgstr ""
@@ -124,6 +124,10 @@ msgstr ""
 msgid "FAQ"
 msgstr ""
 
+#: inc/news.macro.j2:10
+msgid "read more"
+msgstr ""
+
 #: template/about.html.j2:11
 msgid "What is GNUnet?"
 msgstr ""
@@ -1438,7 +1442,7 @@ msgid ""
 "Report: <a href=\"gsoc-2018-gnunet-webui.html\">GSoC 2018: GNUnet WebUI</a>"
 msgstr ""
 
-#: template/index.html.j2:18
+#: template/index.html.j2:19
 msgid ""
 "GNUnet is a new network protocol stack for building secure, distributed, and "
 "privacy-preserving applications. With strong roots in <a href=\"https://bib.";
@@ -1447,7 +1451,7 @@ msgid ""
 "stack."
 msgstr ""
 
-#: template/index.html.j2:28
+#: template/index.html.j2:29
 msgid ""
 "GNUnet is typically run as an <a href=\"https://en.wikipedia.org/wiki/";
 "Overlay_network\">overlay network</a> on top of the existing Internet "
@@ -1458,7 +1462,7 @@ msgid ""
 "a>."
 msgstr ""
 
-#: template/index.html.j2:37
+#: template/index.html.j2:38
 msgid ""
 "GNUnet is made for a free and open society: It&#39;s a self-organizing "
 "network and it is <a href=\"http://www.gnu.org/philosophy/free-sw.html";
@@ -1467,15 +1471,15 @@ msgid ""
 "accept compromises."
 msgstr ""
 
-#: template/index.html.j2:98
+#: template/index.html.j2:89
 msgid "The Internet of tomorrow needs GNUnet today"
 msgstr ""
 
-#: template/index.html.j2:104
+#: template/index.html.j2:95
 msgid "Imagine..."
 msgstr ""
 
-#: template/index.html.j2:106
+#: template/index.html.j2:97
 msgid ""
 "The conventional Internet is currently like a system of roads with deep "
 "potholes and highwaymen all over the place. Even if you still can use the "
@@ -1492,11 +1496,11 @@ msgid ""
 "central data base. -->"
 msgstr ""
 
-#: template/index.html.j2:130
+#: template/index.html.j2:121
 msgid "The Internet is broken"
 msgstr ""
 
-#: template/index.html.j2:132
+#: template/index.html.j2:123
 msgid ""
 "Protocols from Ethernet and IP to BGP and X.509 PKI are insecure by default: "
 "protecting against address forgery, routers learning metadata, or choosing "
@@ -1507,7 +1511,7 @@ msgid ""
 "multiple attacks massively threatening our freedom. -->"
 msgstr ""
 
-#: template/index.html.j2:146
+#: template/index.html.j2:137
 msgid ""
 "GNUnet provides <a href=\"https://www.w3.org/2014/strint/papers/65.pdf";
 "\">privacy by design</a>, improving addressing, routing, naming and content "
@@ -1518,11 +1522,11 @@ msgid ""
 "content distribution in a technically robust manner. -->"
 msgstr ""
 
-#: template/index.html.j2:164
+#: template/index.html.j2:155
 msgid "Decentralization is hard"
 msgstr ""
 
-#: template/index.html.j2:167
+#: template/index.html.j2:158
 msgid ""
 "<!-- replaced with Proposal from Fabian Gerlach: It seems as if every other "
 "distributed or P2P project develops its own library stack, covering "
@@ -1533,7 +1537,7 @@ msgid ""
 "potential number of vulnerabilities."
 msgstr ""
 
-#: template/index.html.j2:183
+#: template/index.html.j2:174
 msgid ""
 "GNUnet is a metadata-preserving foundation for your application, covering "
 "areas from addressing to reliable bidirectional Axolotl-encrypted channels, "
@@ -1541,11 +1545,11 @@ msgid ""
 "almost two decades."
 msgstr ""
 
-#: template/index.html.j2:197
+#: template/index.html.j2:188
 msgid "Metadata is exposed"
 msgstr ""
 
-#: template/index.html.j2:199
+#: template/index.html.j2:190
 msgid ""
 "Your metadata is just as revealing as the actual content; and it gets "
 "exposed on the Internet.<br> Even though transport encryption is "
@@ -1561,11 +1565,11 @@ msgid ""
 "routing, and more."
 msgstr ""
 
-#: template/index.html.j2:222
+#: template/index.html.j2:213
 msgid "Freedoms are not respected"
 msgstr ""
 
-#: template/index.html.j2:224
+#: template/index.html.j2:215
 msgid ""
 "Today, monitoring increasingly centralized infrastructure, proprietary "
 "implementations, traffic shapers and firewalls restrict all of the <a href="
@@ -1573,7 +1577,7 @@ msgid ""
 "various degrees."
 msgstr ""
 
-#: template/index.html.j2:233
+#: template/index.html.j2:224
 msgid ""
 "GNUnet gives users freedoms to securely access information (\"run\" the "
 "network), to study all aspects of the network&#39;s operation (\"access the "
@@ -1581,11 +1585,11 @@ msgid ""
 "deploy new applications (\"modify\")."
 msgstr ""
 
-#: template/index.html.j2:245
+#: template/index.html.j2:236
 msgid "Learn more about GNUnet"
 msgstr ""
 
-#: template/index.html.j2:247
+#: template/index.html.j2:238
 msgid ""
 "If you want to know more about the GNUnet please continue reading the <a "
 "href=\"about.html\">about page</a>. There are much more resources, such as "
@@ -1594,7 +1598,7 @@ msgid ""
 "\"https://gnunet.org/en/video.html\";>videos</a>."
 msgstr ""
 
-#: template/index.html.j2:256
+#: template/index.html.j2:247
 msgid ""
 "You are very welcome to <a href=\"https://gnunet.org/en/engage.html\";> get "
 "engaged into the conversation</a>, <a href=\"https://gnunet.org/en/install.";
@@ -1605,26 +1609,26 @@ msgid ""
 "Internet!"
 msgstr ""
 
-#: template/index.html.j2:278
+#: template/index.html.j2:269
 msgid "Featured Applications"
 msgstr ""
 
-#: template/index.html.j2:284
+#: template/index.html.j2:275
 msgid "GNU Taler (Alpha)"
 msgstr ""
 
-#: template/index.html.j2:286
+#: template/index.html.j2:277
 msgid ""
 "<a href=\"https://taler.net/\";>GNU Taler</a> is a new privacy-preserving "
 "electronic payment system. Payments are cryptographically secured and are "
 "confirmed within milliseconds with extremely low transaction costs."
 msgstr ""
 
-#: template/index.html.j2:298
+#: template/index.html.j2:289
 msgid "The GNU Name System"
 msgstr ""
 
-#: template/index.html.j2:301
+#: template/index.html.j2:292
 msgid ""
 "<!-- The <a href=\"use.html#gns\">GNU Name System (GNS)</a> --> The <a href="
 "\"https://docs.gnunet.org/handbook/gnunet.html#The-GNU-Name-System\";>GNU "
@@ -1636,11 +1640,11 @@ msgid ""
 "GNS integrates a robust, efficient and instant key revocation mechanism. -->"
 msgstr ""
 
-#: template/index.html.j2:318
+#: template/index.html.j2:309
 msgid "re:claimID"
 msgstr ""
 
-#: template/index.html.j2:320
+#: template/index.html.j2:311
 msgid ""
 "<a href=\"https://reclaim-identity.io/\";>re:claimID</a> is a decentralized "
 "Identity Provider (IdP) service built in top of the GNU Name System. It "
@@ -1648,37 +1652,37 @@ msgid ""
 "standardized protocols (OpenID Connect)."
 msgstr ""
 
-#: template/index.html.j2:333
+#: template/index.html.j2:324
 msgid "Filesharing (Alpha)"
 msgstr ""
 
-#: template/index.html.j2:335
+#: template/index.html.j2:326
 msgid ""
 "GNUnet <a href=\"use.html#fs\">filesharing</a> is an application that aims "
 "to provide censorship-resistant, anonymous filesharing. The publisher is "
 "empowered to make a gradual choice between performance and anonymity."
 msgstr ""
 
-#: template/index.html.j2:346
+#: template/index.html.j2:337
 msgid "Conversation (Pre-Alpha)"
 msgstr ""
 
-#: template/index.html.j2:348
+#: template/index.html.j2:339
 msgid ""
 "GNUnet conversation is an application that provides secure voice "
 "communication in a fully decentralized way by employing GNUnet for routing "
 "and transport."
 msgstr ""
 
-#: template/index.html.j2:364
+#: template/index.html.j2:355
 msgid "Upcoming Applications"
 msgstr ""
 
-#: template/index.html.j2:370
+#: template/index.html.j2:361
 msgid "secushare"
 msgstr ""
 
-#: template/index.html.j2:372
+#: template/index.html.j2:363
 msgid ""
 "<a href=\"https://secushare.org/\";>secushare</a> is creating a decentralized "
 "social networking application on top of GNUnet. Using overlay multicast and "
@@ -1686,11 +1690,11 @@ msgid ""
 "encrypted to authorized recipients only."
 msgstr ""
 
-#: template/index.html.j2:384
+#: template/index.html.j2:375
 msgid "pretty Easy privacy"
 msgstr ""
 
-#: template/index.html.j2:386
+#: template/index.html.j2:377
 msgid ""
 "<a href=\"https://pep.foundation/\";>pretty Easy privacy</a> (p&#8801;p) is "
 "creating a usable end-to-end encrypted e-mail solution using opportunistic "
diff --git a/locale/es/LC_MESSAGES/messages.po 
b/locale/es/LC_MESSAGES/messages.po
index 6fb7b04..9c44b69 100644
--- a/locale/es/LC_MESSAGES/messages.po
+++ b/locale/es/LC_MESSAGES/messages.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2019-11-05 11:13+0000\n"
+"POT-Creation-Date: 2019-11-07 16:26+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <address@hidden>\n"
@@ -59,11 +59,11 @@ msgstr ""
 msgid "Report issues with this website."
 msgstr ""
 
-#: common/navigation.j2.inc:38 template/index.html.j2:50
+#: common/navigation.j2.inc:38 template/index.html.j2:51
 msgid "About"
 msgstr "Sobre"
 
-#: common/navigation.j2.inc:39 news/index.html.j2:8 template/index.html.j2:63
+#: common/navigation.j2.inc:39 news/index.html.j2:9 template/index.html.j2:64
 msgid "News"
 msgstr "Nuevo"
 
@@ -71,7 +71,7 @@ msgstr "Nuevo"
 msgid "Community"
 msgstr "Comunidad"
 
-#: common/navigation.j2.inc:46 template/index.html.j2:54
+#: common/navigation.j2.inc:46 template/index.html.j2:55
 msgid "Engage"
 msgstr "Participa"
 
@@ -119,7 +119,7 @@ msgstr "Desarrollo"
 msgid "Documentation"
 msgstr "Documentación"
 
-#: common/navigation.j2.inc:82 template/index.html.j2:52
+#: common/navigation.j2.inc:82 template/index.html.j2:53
 #: template/install.html.j2:6
 msgid "Install"
 msgstr "Instala"
@@ -148,6 +148,10 @@ msgstr "REST API"
 msgid "FAQ"
 msgstr "FAQ"
 
+#: inc/news.macro.j2:10
+msgid "read more"
+msgstr ""
+
 #: template/about.html.j2:11
 msgid "What is GNUnet?"
 msgstr "Qué es GNUnet?"
@@ -1468,7 +1472,7 @@ msgid ""
 "Report: <a href=\"gsoc-2018-gnunet-webui.html\">GSoC 2018: GNUnet WebUI</a>"
 msgstr ""
 
-#: template/index.html.j2:18
+#: template/index.html.j2:19
 msgid ""
 "GNUnet is a new network protocol stack for building secure, distributed, and "
 "privacy-preserving applications. With strong roots in <a href=\"https://bib.";
@@ -1477,7 +1481,7 @@ msgid ""
 "stack."
 msgstr ""
 
-#: template/index.html.j2:28
+#: template/index.html.j2:29
 msgid ""
 "GNUnet is typically run as an <a href=\"https://en.wikipedia.org/wiki/";
 "Overlay_network\">overlay network</a> on top of the existing Internet "
@@ -1488,7 +1492,7 @@ msgid ""
 "a>."
 msgstr ""
 
-#: template/index.html.j2:37
+#: template/index.html.j2:38
 msgid ""
 "GNUnet is made for a free and open society: It&#39;s a self-organizing "
 "network and it is <a href=\"http://www.gnu.org/philosophy/free-sw.html";
@@ -1497,15 +1501,15 @@ msgid ""
 "accept compromises."
 msgstr ""
 
-#: template/index.html.j2:98
+#: template/index.html.j2:89
 msgid "The Internet of tomorrow needs GNUnet today"
 msgstr ""
 
-#: template/index.html.j2:104
+#: template/index.html.j2:95
 msgid "Imagine..."
 msgstr ""
 
-#: template/index.html.j2:106
+#: template/index.html.j2:97
 msgid ""
 "The conventional Internet is currently like a system of roads with deep "
 "potholes and highwaymen all over the place. Even if you still can use the "
@@ -1522,11 +1526,11 @@ msgid ""
 "central data base. -->"
 msgstr ""
 
-#: template/index.html.j2:130
+#: template/index.html.j2:121
 msgid "The Internet is broken"
 msgstr ""
 
-#: template/index.html.j2:132
+#: template/index.html.j2:123
 msgid ""
 "Protocols from Ethernet and IP to BGP and X.509 PKI are insecure by default: "
 "protecting against address forgery, routers learning metadata, or choosing "
@@ -1537,7 +1541,7 @@ msgid ""
 "multiple attacks massively threatening our freedom. -->"
 msgstr ""
 
-#: template/index.html.j2:146
+#: template/index.html.j2:137
 msgid ""
 "GNUnet provides <a href=\"https://www.w3.org/2014/strint/papers/65.pdf";
 "\">privacy by design</a>, improving addressing, routing, naming and content "
@@ -1548,11 +1552,11 @@ msgid ""
 "content distribution in a technically robust manner. -->"
 msgstr ""
 
-#: template/index.html.j2:164
+#: template/index.html.j2:155
 msgid "Decentralization is hard"
 msgstr ""
 
-#: template/index.html.j2:167
+#: template/index.html.j2:158
 msgid ""
 "<!-- replaced with Proposal from Fabian Gerlach: It seems as if every other "
 "distributed or P2P project develops its own library stack, covering "
@@ -1563,7 +1567,7 @@ msgid ""
 "potential number of vulnerabilities."
 msgstr ""
 
-#: template/index.html.j2:183
+#: template/index.html.j2:174
 msgid ""
 "GNUnet is a metadata-preserving foundation for your application, covering "
 "areas from addressing to reliable bidirectional Axolotl-encrypted channels, "
@@ -1571,11 +1575,11 @@ msgid ""
 "almost two decades."
 msgstr ""
 
-#: template/index.html.j2:197
+#: template/index.html.j2:188
 msgid "Metadata is exposed"
 msgstr ""
 
-#: template/index.html.j2:199
+#: template/index.html.j2:190
 msgid ""
 "Your metadata is just as revealing as the actual content; and it gets "
 "exposed on the Internet.<br> Even though transport encryption is "
@@ -1591,11 +1595,11 @@ msgid ""
 "routing, and more."
 msgstr ""
 
-#: template/index.html.j2:222
+#: template/index.html.j2:213
 msgid "Freedoms are not respected"
 msgstr ""
 
-#: template/index.html.j2:224
+#: template/index.html.j2:215
 msgid ""
 "Today, monitoring increasingly centralized infrastructure, proprietary "
 "implementations, traffic shapers and firewalls restrict all of the <a href="
@@ -1603,7 +1607,7 @@ msgid ""
 "various degrees."
 msgstr ""
 
-#: template/index.html.j2:233
+#: template/index.html.j2:224
 msgid ""
 "GNUnet gives users freedoms to securely access information (\"run\" the "
 "network), to study all aspects of the network&#39;s operation (\"access the "
@@ -1611,13 +1615,13 @@ msgid ""
 "deploy new applications (\"modify\")."
 msgstr ""
 
-#: template/index.html.j2:245
+#: template/index.html.j2:236
 #, fuzzy
 #| msgid "About GNUnet"
 msgid "Learn more about GNUnet"
 msgstr "Sobre GNUnet"
 
-#: template/index.html.j2:247
+#: template/index.html.j2:238
 msgid ""
 "If you want to know more about the GNUnet please continue reading the <a "
 "href=\"about.html\">about page</a>. There are much more resources, such as "
@@ -1626,7 +1630,7 @@ msgid ""
 "\"https://gnunet.org/en/video.html\";>videos</a>."
 msgstr ""
 
-#: template/index.html.j2:256
+#: template/index.html.j2:247
 msgid ""
 "You are very welcome to <a href=\"https://gnunet.org/en/engage.html\";> get "
 "engaged into the conversation</a>, <a href=\"https://gnunet.org/en/install.";
@@ -1637,26 +1641,26 @@ msgid ""
 "Internet!"
 msgstr ""
 
-#: template/index.html.j2:278
+#: template/index.html.j2:269
 msgid "Featured Applications"
 msgstr ""
 
-#: template/index.html.j2:284
+#: template/index.html.j2:275
 msgid "GNU Taler (Alpha)"
 msgstr ""
 
-#: template/index.html.j2:286
+#: template/index.html.j2:277
 msgid ""
 "<a href=\"https://taler.net/\";>GNU Taler</a> is a new privacy-preserving "
 "electronic payment system. Payments are cryptographically secured and are "
 "confirmed within milliseconds with extremely low transaction costs."
 msgstr ""
 
-#: template/index.html.j2:298
+#: template/index.html.j2:289
 msgid "The GNU Name System"
 msgstr ""
 
-#: template/index.html.j2:301
+#: template/index.html.j2:292
 msgid ""
 "<!-- The <a href=\"use.html#gns\">GNU Name System (GNS)</a> --> The <a href="
 "\"https://docs.gnunet.org/handbook/gnunet.html#The-GNU-Name-System\";>GNU "
@@ -1668,11 +1672,11 @@ msgid ""
 "GNS integrates a robust, efficient and instant key revocation mechanism. -->"
 msgstr ""
 
-#: template/index.html.j2:318
+#: template/index.html.j2:309
 msgid "re:claimID"
 msgstr ""
 
-#: template/index.html.j2:320
+#: template/index.html.j2:311
 msgid ""
 "<a href=\"https://reclaim-identity.io/\";>re:claimID</a> is a decentralized "
 "Identity Provider (IdP) service built in top of the GNU Name System. It "
@@ -1680,37 +1684,37 @@ msgid ""
 "standardized protocols (OpenID Connect)."
 msgstr ""
 
-#: template/index.html.j2:333
+#: template/index.html.j2:324
 msgid "Filesharing (Alpha)"
 msgstr ""
 
-#: template/index.html.j2:335
+#: template/index.html.j2:326
 msgid ""
 "GNUnet <a href=\"use.html#fs\">filesharing</a> is an application that aims "
 "to provide censorship-resistant, anonymous filesharing. The publisher is "
 "empowered to make a gradual choice between performance and anonymity."
 msgstr ""
 
-#: template/index.html.j2:346
+#: template/index.html.j2:337
 msgid "Conversation (Pre-Alpha)"
 msgstr ""
 
-#: template/index.html.j2:348
+#: template/index.html.j2:339
 msgid ""
 "GNUnet conversation is an application that provides secure voice "
 "communication in a fully decentralized way by employing GNUnet for routing "
 "and transport."
 msgstr ""
 
-#: template/index.html.j2:364
+#: template/index.html.j2:355
 msgid "Upcoming Applications"
 msgstr ""
 
-#: template/index.html.j2:370
+#: template/index.html.j2:361
 msgid "secushare"
 msgstr ""
 
-#: template/index.html.j2:372
+#: template/index.html.j2:363
 msgid ""
 "<a href=\"https://secushare.org/\";>secushare</a> is creating a decentralized "
 "social networking application on top of GNUnet. Using overlay multicast and "
@@ -1718,11 +1722,11 @@ msgid ""
 "encrypted to authorized recipients only."
 msgstr ""
 
-#: template/index.html.j2:384
+#: template/index.html.j2:375
 msgid "pretty Easy privacy"
 msgstr ""
 
-#: template/index.html.j2:386
+#: template/index.html.j2:377
 msgid ""
 "<a href=\"https://pep.foundation/\";>pretty Easy privacy</a> (p&#8801;p) is "
 "creating a usable end-to-end encrypted e-mail solution using opportunistic "
diff --git a/locale/fr/LC_MESSAGES/messages.po 
b/locale/fr/LC_MESSAGES/messages.po
index b89bd53..114a8dd 100644
--- a/locale/fr/LC_MESSAGES/messages.po
+++ b/locale/fr/LC_MESSAGES/messages.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2019-11-05 11:13+0000\n"
+"POT-Creation-Date: 2019-11-07 16:26+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <address@hidden>\n"
@@ -59,11 +59,11 @@ msgstr ""
 msgid "Report issues with this website."
 msgstr ""
 
-#: common/navigation.j2.inc:38 template/index.html.j2:50
+#: common/navigation.j2.inc:38 template/index.html.j2:51
 msgid "About"
 msgstr ""
 
-#: common/navigation.j2.inc:39 news/index.html.j2:8 template/index.html.j2:63
+#: common/navigation.j2.inc:39 news/index.html.j2:9 template/index.html.j2:64
 msgid "News"
 msgstr ""
 
@@ -71,7 +71,7 @@ msgstr ""
 msgid "Community"
 msgstr ""
 
-#: common/navigation.j2.inc:46 template/index.html.j2:54
+#: common/navigation.j2.inc:46 template/index.html.j2:55
 msgid "Engage"
 msgstr ""
 
@@ -115,7 +115,7 @@ msgstr ""
 msgid "Documentation"
 msgstr ""
 
-#: common/navigation.j2.inc:82 template/index.html.j2:52
+#: common/navigation.j2.inc:82 template/index.html.j2:53
 #: template/install.html.j2:6
 msgid "Install"
 msgstr ""
@@ -144,6 +144,10 @@ msgstr ""
 msgid "FAQ"
 msgstr ""
 
+#: inc/news.macro.j2:10
+msgid "read more"
+msgstr ""
+
 #: template/about.html.j2:11
 msgid "What is GNUnet?"
 msgstr ""
@@ -1458,7 +1462,7 @@ msgid ""
 "Report: <a href=\"gsoc-2018-gnunet-webui.html\">GSoC 2018: GNUnet WebUI</a>"
 msgstr ""
 
-#: template/index.html.j2:18
+#: template/index.html.j2:19
 msgid ""
 "GNUnet is a new network protocol stack for building secure, distributed, and "
 "privacy-preserving applications. With strong roots in <a href=\"https://bib.";
@@ -1467,7 +1471,7 @@ msgid ""
 "stack."
 msgstr ""
 
-#: template/index.html.j2:28
+#: template/index.html.j2:29
 msgid ""
 "GNUnet is typically run as an <a href=\"https://en.wikipedia.org/wiki/";
 "Overlay_network\">overlay network</a> on top of the existing Internet "
@@ -1478,7 +1482,7 @@ msgid ""
 "a>."
 msgstr ""
 
-#: template/index.html.j2:37
+#: template/index.html.j2:38
 msgid ""
 "GNUnet is made for a free and open society: It&#39;s a self-organizing "
 "network and it is <a href=\"http://www.gnu.org/philosophy/free-sw.html";
@@ -1487,15 +1491,15 @@ msgid ""
 "accept compromises."
 msgstr ""
 
-#: template/index.html.j2:98
+#: template/index.html.j2:89
 msgid "The Internet of tomorrow needs GNUnet today"
 msgstr ""
 
-#: template/index.html.j2:104
+#: template/index.html.j2:95
 msgid "Imagine..."
 msgstr ""
 
-#: template/index.html.j2:106
+#: template/index.html.j2:97
 msgid ""
 "The conventional Internet is currently like a system of roads with deep "
 "potholes and highwaymen all over the place. Even if you still can use the "
@@ -1512,11 +1516,11 @@ msgid ""
 "central data base. -->"
 msgstr ""
 
-#: template/index.html.j2:130
+#: template/index.html.j2:121
 msgid "The Internet is broken"
 msgstr ""
 
-#: template/index.html.j2:132
+#: template/index.html.j2:123
 msgid ""
 "Protocols from Ethernet and IP to BGP and X.509 PKI are insecure by default: "
 "protecting against address forgery, routers learning metadata, or choosing "
@@ -1527,7 +1531,7 @@ msgid ""
 "multiple attacks massively threatening our freedom. -->"
 msgstr ""
 
-#: template/index.html.j2:146
+#: template/index.html.j2:137
 msgid ""
 "GNUnet provides <a href=\"https://www.w3.org/2014/strint/papers/65.pdf";
 "\">privacy by design</a>, improving addressing, routing, naming and content "
@@ -1538,11 +1542,11 @@ msgid ""
 "content distribution in a technically robust manner. -->"
 msgstr ""
 
-#: template/index.html.j2:164
+#: template/index.html.j2:155
 msgid "Decentralization is hard"
 msgstr ""
 
-#: template/index.html.j2:167
+#: template/index.html.j2:158
 msgid ""
 "<!-- replaced with Proposal from Fabian Gerlach: It seems as if every other "
 "distributed or P2P project develops its own library stack, covering "
@@ -1553,7 +1557,7 @@ msgid ""
 "potential number of vulnerabilities."
 msgstr ""
 
-#: template/index.html.j2:183
+#: template/index.html.j2:174
 msgid ""
 "GNUnet is a metadata-preserving foundation for your application, covering "
 "areas from addressing to reliable bidirectional Axolotl-encrypted channels, "
@@ -1561,11 +1565,11 @@ msgid ""
 "almost two decades."
 msgstr ""
 
-#: template/index.html.j2:197
+#: template/index.html.j2:188
 msgid "Metadata is exposed"
 msgstr ""
 
-#: template/index.html.j2:199
+#: template/index.html.j2:190
 msgid ""
 "Your metadata is just as revealing as the actual content; and it gets "
 "exposed on the Internet.<br> Even though transport encryption is "
@@ -1581,11 +1585,11 @@ msgid ""
 "routing, and more."
 msgstr ""
 
-#: template/index.html.j2:222
+#: template/index.html.j2:213
 msgid "Freedoms are not respected"
 msgstr ""
 
-#: template/index.html.j2:224
+#: template/index.html.j2:215
 msgid ""
 "Today, monitoring increasingly centralized infrastructure, proprietary "
 "implementations, traffic shapers and firewalls restrict all of the <a href="
@@ -1593,7 +1597,7 @@ msgid ""
 "various degrees."
 msgstr ""
 
-#: template/index.html.j2:233
+#: template/index.html.j2:224
 msgid ""
 "GNUnet gives users freedoms to securely access information (\"run\" the "
 "network), to study all aspects of the network&#39;s operation (\"access the "
@@ -1601,11 +1605,11 @@ msgid ""
 "deploy new applications (\"modify\")."
 msgstr ""
 
-#: template/index.html.j2:245
+#: template/index.html.j2:236
 msgid "Learn more about GNUnet"
 msgstr ""
 
-#: template/index.html.j2:247
+#: template/index.html.j2:238
 msgid ""
 "If you want to know more about the GNUnet please continue reading the <a "
 "href=\"about.html\">about page</a>. There are much more resources, such as "
@@ -1614,7 +1618,7 @@ msgid ""
 "\"https://gnunet.org/en/video.html\";>videos</a>."
 msgstr ""
 
-#: template/index.html.j2:256
+#: template/index.html.j2:247
 msgid ""
 "You are very welcome to <a href=\"https://gnunet.org/en/engage.html\";> get "
 "engaged into the conversation</a>, <a href=\"https://gnunet.org/en/install.";
@@ -1625,26 +1629,26 @@ msgid ""
 "Internet!"
 msgstr ""
 
-#: template/index.html.j2:278
+#: template/index.html.j2:269
 msgid "Featured Applications"
 msgstr ""
 
-#: template/index.html.j2:284
+#: template/index.html.j2:275
 msgid "GNU Taler (Alpha)"
 msgstr ""
 
-#: template/index.html.j2:286
+#: template/index.html.j2:277
 msgid ""
 "<a href=\"https://taler.net/\";>GNU Taler</a> is a new privacy-preserving "
 "electronic payment system. Payments are cryptographically secured and are "
 "confirmed within milliseconds with extremely low transaction costs."
 msgstr ""
 
-#: template/index.html.j2:298
+#: template/index.html.j2:289
 msgid "The GNU Name System"
 msgstr ""
 
-#: template/index.html.j2:301
+#: template/index.html.j2:292
 msgid ""
 "<!-- The <a href=\"use.html#gns\">GNU Name System (GNS)</a> --> The <a href="
 "\"https://docs.gnunet.org/handbook/gnunet.html#The-GNU-Name-System\";>GNU "
@@ -1656,11 +1660,11 @@ msgid ""
 "GNS integrates a robust, efficient and instant key revocation mechanism. -->"
 msgstr ""
 
-#: template/index.html.j2:318
+#: template/index.html.j2:309
 msgid "re:claimID"
 msgstr ""
 
-#: template/index.html.j2:320
+#: template/index.html.j2:311
 msgid ""
 "<a href=\"https://reclaim-identity.io/\";>re:claimID</a> is a decentralized "
 "Identity Provider (IdP) service built in top of the GNU Name System. It "
@@ -1668,37 +1672,37 @@ msgid ""
 "standardized protocols (OpenID Connect)."
 msgstr ""
 
-#: template/index.html.j2:333
+#: template/index.html.j2:324
 msgid "Filesharing (Alpha)"
 msgstr ""
 
-#: template/index.html.j2:335
+#: template/index.html.j2:326
 msgid ""
 "GNUnet <a href=\"use.html#fs\">filesharing</a> is an application that aims "
 "to provide censorship-resistant, anonymous filesharing. The publisher is "
 "empowered to make a gradual choice between performance and anonymity."
 msgstr ""
 
-#: template/index.html.j2:346
+#: template/index.html.j2:337
 msgid "Conversation (Pre-Alpha)"
 msgstr ""
 
-#: template/index.html.j2:348
+#: template/index.html.j2:339
 msgid ""
 "GNUnet conversation is an application that provides secure voice "
 "communication in a fully decentralized way by employing GNUnet for routing "
 "and transport."
 msgstr ""
 
-#: template/index.html.j2:364
+#: template/index.html.j2:355
 msgid "Upcoming Applications"
 msgstr ""
 
-#: template/index.html.j2:370
+#: template/index.html.j2:361
 msgid "secushare"
 msgstr ""
 
-#: template/index.html.j2:372
+#: template/index.html.j2:363
 msgid ""
 "<a href=\"https://secushare.org/\";>secushare</a> is creating a decentralized "
 "social networking application on top of GNUnet. Using overlay multicast and "
@@ -1706,11 +1710,11 @@ msgid ""
 "encrypted to authorized recipients only."
 msgstr ""
 
-#: template/index.html.j2:384
+#: template/index.html.j2:375
 msgid "pretty Easy privacy"
 msgstr ""
 
-#: template/index.html.j2:386
+#: template/index.html.j2:377
 msgid ""
 "<a href=\"https://pep.foundation/\";>pretty Easy privacy</a> (p&#8801;p) is "
 "creating a usable end-to-end encrypted e-mail solution using opportunistic "
diff --git a/locale/it/LC_MESSAGES/messages.po 
b/locale/it/LC_MESSAGES/messages.po
index fe53dfb..99bca68 100644
--- a/locale/it/LC_MESSAGES/messages.po
+++ b/locale/it/LC_MESSAGES/messages.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2019-11-05 11:13+0000\n"
+"POT-Creation-Date: 2019-11-07 16:26+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <address@hidden>\n"
@@ -59,11 +59,11 @@ msgstr ""
 msgid "Report issues with this website."
 msgstr ""
 
-#: common/navigation.j2.inc:38 template/index.html.j2:50
+#: common/navigation.j2.inc:38 template/index.html.j2:51
 msgid "About"
 msgstr ""
 
-#: common/navigation.j2.inc:39 news/index.html.j2:8 template/index.html.j2:63
+#: common/navigation.j2.inc:39 news/index.html.j2:9 template/index.html.j2:64
 msgid "News"
 msgstr ""
 
@@ -71,7 +71,7 @@ msgstr ""
 msgid "Community"
 msgstr ""
 
-#: common/navigation.j2.inc:46 template/index.html.j2:54
+#: common/navigation.j2.inc:46 template/index.html.j2:55
 msgid "Engage"
 msgstr ""
 
@@ -115,7 +115,7 @@ msgstr ""
 msgid "Documentation"
 msgstr ""
 
-#: common/navigation.j2.inc:82 template/index.html.j2:52
+#: common/navigation.j2.inc:82 template/index.html.j2:53
 #: template/install.html.j2:6
 msgid "Install"
 msgstr ""
@@ -144,6 +144,10 @@ msgstr ""
 msgid "FAQ"
 msgstr ""
 
+#: inc/news.macro.j2:10
+msgid "read more"
+msgstr ""
+
 #: template/about.html.j2:11
 msgid "What is GNUnet?"
 msgstr ""
@@ -1458,7 +1462,7 @@ msgid ""
 "Report: <a href=\"gsoc-2018-gnunet-webui.html\">GSoC 2018: GNUnet WebUI</a>"
 msgstr ""
 
-#: template/index.html.j2:18
+#: template/index.html.j2:19
 msgid ""
 "GNUnet is a new network protocol stack for building secure, distributed, and "
 "privacy-preserving applications. With strong roots in <a href=\"https://bib.";
@@ -1467,7 +1471,7 @@ msgid ""
 "stack."
 msgstr ""
 
-#: template/index.html.j2:28
+#: template/index.html.j2:29
 msgid ""
 "GNUnet is typically run as an <a href=\"https://en.wikipedia.org/wiki/";
 "Overlay_network\">overlay network</a> on top of the existing Internet "
@@ -1478,7 +1482,7 @@ msgid ""
 "a>."
 msgstr ""
 
-#: template/index.html.j2:37
+#: template/index.html.j2:38
 msgid ""
 "GNUnet is made for a free and open society: It&#39;s a self-organizing "
 "network and it is <a href=\"http://www.gnu.org/philosophy/free-sw.html";
@@ -1487,15 +1491,15 @@ msgid ""
 "accept compromises."
 msgstr ""
 
-#: template/index.html.j2:98
+#: template/index.html.j2:89
 msgid "The Internet of tomorrow needs GNUnet today"
 msgstr ""
 
-#: template/index.html.j2:104
+#: template/index.html.j2:95
 msgid "Imagine..."
 msgstr ""
 
-#: template/index.html.j2:106
+#: template/index.html.j2:97
 msgid ""
 "The conventional Internet is currently like a system of roads with deep "
 "potholes and highwaymen all over the place. Even if you still can use the "
@@ -1512,11 +1516,11 @@ msgid ""
 "central data base. -->"
 msgstr ""
 
-#: template/index.html.j2:130
+#: template/index.html.j2:121
 msgid "The Internet is broken"
 msgstr ""
 
-#: template/index.html.j2:132
+#: template/index.html.j2:123
 msgid ""
 "Protocols from Ethernet and IP to BGP and X.509 PKI are insecure by default: "
 "protecting against address forgery, routers learning metadata, or choosing "
@@ -1527,7 +1531,7 @@ msgid ""
 "multiple attacks massively threatening our freedom. -->"
 msgstr ""
 
-#: template/index.html.j2:146
+#: template/index.html.j2:137
 msgid ""
 "GNUnet provides <a href=\"https://www.w3.org/2014/strint/papers/65.pdf";
 "\">privacy by design</a>, improving addressing, routing, naming and content "
@@ -1538,11 +1542,11 @@ msgid ""
 "content distribution in a technically robust manner. -->"
 msgstr ""
 
-#: template/index.html.j2:164
+#: template/index.html.j2:155
 msgid "Decentralization is hard"
 msgstr ""
 
-#: template/index.html.j2:167
+#: template/index.html.j2:158
 msgid ""
 "<!-- replaced with Proposal from Fabian Gerlach: It seems as if every other "
 "distributed or P2P project develops its own library stack, covering "
@@ -1553,7 +1557,7 @@ msgid ""
 "potential number of vulnerabilities."
 msgstr ""
 
-#: template/index.html.j2:183
+#: template/index.html.j2:174
 msgid ""
 "GNUnet is a metadata-preserving foundation for your application, covering "
 "areas from addressing to reliable bidirectional Axolotl-encrypted channels, "
@@ -1561,11 +1565,11 @@ msgid ""
 "almost two decades."
 msgstr ""
 
-#: template/index.html.j2:197
+#: template/index.html.j2:188
 msgid "Metadata is exposed"
 msgstr ""
 
-#: template/index.html.j2:199
+#: template/index.html.j2:190
 msgid ""
 "Your metadata is just as revealing as the actual content; and it gets "
 "exposed on the Internet.<br> Even though transport encryption is "
@@ -1581,11 +1585,11 @@ msgid ""
 "routing, and more."
 msgstr ""
 
-#: template/index.html.j2:222
+#: template/index.html.j2:213
 msgid "Freedoms are not respected"
 msgstr ""
 
-#: template/index.html.j2:224
+#: template/index.html.j2:215
 msgid ""
 "Today, monitoring increasingly centralized infrastructure, proprietary "
 "implementations, traffic shapers and firewalls restrict all of the <a href="
@@ -1593,7 +1597,7 @@ msgid ""
 "various degrees."
 msgstr ""
 
-#: template/index.html.j2:233
+#: template/index.html.j2:224
 msgid ""
 "GNUnet gives users freedoms to securely access information (\"run\" the "
 "network), to study all aspects of the network&#39;s operation (\"access the "
@@ -1601,11 +1605,11 @@ msgid ""
 "deploy new applications (\"modify\")."
 msgstr ""
 
-#: template/index.html.j2:245
+#: template/index.html.j2:236
 msgid "Learn more about GNUnet"
 msgstr ""
 
-#: template/index.html.j2:247
+#: template/index.html.j2:238
 msgid ""
 "If you want to know more about the GNUnet please continue reading the <a "
 "href=\"about.html\">about page</a>. There are much more resources, such as "
@@ -1614,7 +1618,7 @@ msgid ""
 "\"https://gnunet.org/en/video.html\";>videos</a>."
 msgstr ""
 
-#: template/index.html.j2:256
+#: template/index.html.j2:247
 msgid ""
 "You are very welcome to <a href=\"https://gnunet.org/en/engage.html\";> get "
 "engaged into the conversation</a>, <a href=\"https://gnunet.org/en/install.";
@@ -1625,26 +1629,26 @@ msgid ""
 "Internet!"
 msgstr ""
 
-#: template/index.html.j2:278
+#: template/index.html.j2:269
 msgid "Featured Applications"
 msgstr ""
 
-#: template/index.html.j2:284
+#: template/index.html.j2:275
 msgid "GNU Taler (Alpha)"
 msgstr ""
 
-#: template/index.html.j2:286
+#: template/index.html.j2:277
 msgid ""
 "<a href=\"https://taler.net/\";>GNU Taler</a> is a new privacy-preserving "
 "electronic payment system. Payments are cryptographically secured and are "
 "confirmed within milliseconds with extremely low transaction costs."
 msgstr ""
 
-#: template/index.html.j2:298
+#: template/index.html.j2:289
 msgid "The GNU Name System"
 msgstr ""
 
-#: template/index.html.j2:301
+#: template/index.html.j2:292
 msgid ""
 "<!-- The <a href=\"use.html#gns\">GNU Name System (GNS)</a> --> The <a href="
 "\"https://docs.gnunet.org/handbook/gnunet.html#The-GNU-Name-System\";>GNU "
@@ -1656,11 +1660,11 @@ msgid ""
 "GNS integrates a robust, efficient and instant key revocation mechanism. -->"
 msgstr ""
 
-#: template/index.html.j2:318
+#: template/index.html.j2:309
 msgid "re:claimID"
 msgstr ""
 
-#: template/index.html.j2:320
+#: template/index.html.j2:311
 msgid ""
 "<a href=\"https://reclaim-identity.io/\";>re:claimID</a> is a decentralized "
 "Identity Provider (IdP) service built in top of the GNU Name System. It "
@@ -1668,37 +1672,37 @@ msgid ""
 "standardized protocols (OpenID Connect)."
 msgstr ""
 
-#: template/index.html.j2:333
+#: template/index.html.j2:324
 msgid "Filesharing (Alpha)"
 msgstr ""
 
-#: template/index.html.j2:335
+#: template/index.html.j2:326
 msgid ""
 "GNUnet <a href=\"use.html#fs\">filesharing</a> is an application that aims "
 "to provide censorship-resistant, anonymous filesharing. The publisher is "
 "empowered to make a gradual choice between performance and anonymity."
 msgstr ""
 
-#: template/index.html.j2:346
+#: template/index.html.j2:337
 msgid "Conversation (Pre-Alpha)"
 msgstr ""
 
-#: template/index.html.j2:348
+#: template/index.html.j2:339
 msgid ""
 "GNUnet conversation is an application that provides secure voice "
 "communication in a fully decentralized way by employing GNUnet for routing "
 "and transport."
 msgstr ""
 
-#: template/index.html.j2:364
+#: template/index.html.j2:355
 msgid "Upcoming Applications"
 msgstr ""
 
-#: template/index.html.j2:370
+#: template/index.html.j2:361
 msgid "secushare"
 msgstr ""
 
-#: template/index.html.j2:372
+#: template/index.html.j2:363
 msgid ""
 "<a href=\"https://secushare.org/\";>secushare</a> is creating a decentralized "
 "social networking application on top of GNUnet. Using overlay multicast and "
@@ -1706,11 +1710,11 @@ msgid ""
 "encrypted to authorized recipients only."
 msgstr ""
 
-#: template/index.html.j2:384
+#: template/index.html.j2:375
 msgid "pretty Easy privacy"
 msgstr ""
 
-#: template/index.html.j2:386
+#: template/index.html.j2:377
 msgid ""
 "<a href=\"https://pep.foundation/\";>pretty Easy privacy</a> (p&#8801;p) is "
 "creating a usable end-to-end encrypted e-mail solution using opportunistic "
diff --git a/news/index.html.j2 b/news/index.html.j2
index ee62d49..8c58d9f 100644
--- a/news/index.html.j2
+++ b/news/index.html.j2
@@ -1,5 +1,6 @@
 {% extends "common/base.j2" %}
 {% block body_content %}
+  {% import 'inc/news.macro.j2' as news %}
   <div class="container-fluid">
     <div class="container">
       <article>
@@ -17,17 +18,7 @@
         <div class="row">
           {% for item in newsdata %}
             <div class="col-lg-4">
-              <section class="item-preview">
-                <header>
-                  <h3>{{ item['title'] }}</h3>
-                  <p class="item-date">
-                    {{ item['date'] }}
-                  </p>
-                </header>
-                <p class="item-abstract">
-                  {{ item['abstract'] }}...[<a href="{{ item['page'] }}" 
title="{{ item['date']}}">read more</a>]
-                </p>
-              </section>
+              {{ news.newspreview(item) }}
             </div>
           {% endfor %}
         </div>
diff --git a/template.py b/template.py
index 7761383..9fe859f 100755
--- a/template.py
+++ b/template.py
@@ -32,7 +32,7 @@ import i18nfix
 from pathlib import Path
 import hashlib
 from bs4 import BeautifulSoup
-
+from ruamel.yaml import YAML
 
 # TODO: Turn repetition into a class.
 
@@ -43,45 +43,6 @@ env = jinja2.Environment(loader=jinja2.FileSystemLoader(
                          trim_blocks=True,
                          undefined=jinja2.StrictUndefined,
                          autoescape=False)
-# DEBUG OUTPUT:
-if (os.getenv("DEBUG")):
-    print(sys.path)
-
-langs_full = {
-    "en": "English",
-    "fr": "Français",
-    "it": "Italiano",
-    "es": "Español",
-    "de": "Deutsch"
-}
-
-# A construction has:
-# symlinks (dict)
-# staticfiles (dict)
-# robot.txt files (list)
-# locales (list)
-# shells out to siteindex (todo: python siteindex)
-# generation_directories: the one we are building right now
-#                         the one we will be replacing
-#                         other directories get trashed upon successful build
-
-symlinks = {
-    "frontpage.html": "frontpage",
-    "gsoc.html": "gsoc",
-    "about.html": "philosophy",
-    "gns.html": "gns",
-    "node/about.html": "397"
-}
-
-# Mostly from static/ to rendered/
-staticfiles = {
-    "favicon.ico": "favicon.ico",
-    "moved.html": "frontpage.html",
-    "robots.txt": ["static", "dist", list(langs_full)],
-    "moved_gsoc.html": "gsoc.html",
-    "moved_about.html": "about.html",
-    "moved_gns.html": "gns.html"
-}
 
 
 def localized(filename, locale, *args):
@@ -193,18 +154,6 @@ def copy_static(locale, indict):
         print(locale + "/" + key + " ...to... " + locale + "/" + value)
 
 
-# TODO: Move the lists elsewhere?
-
-meetingnotes = {
-    "2013": "2013-12-27",
-    "2014": "2014-12-28",
-    "2015": "2015-12-29",
-    "2016": "2016-12-28",
-    "2017": "2017-12-27",
-    "2018": "2018-12-27",
-}
-
-
 def preview_text(filename):
     with open(filename) as html:
         # html = open(filename).read()
@@ -217,501 +166,15 @@ def preview_text(filename):
             k.append(i)
         b = ''.join(str(e) for e in k)
         text = b.replace("\n", "")
-        return(text)
+        textreduced = (text[:300] + '...') if len(text) > 300 else (text + 
'..')
+        return(textreduced)
 
 
 def abstract_news(filename):
     return preview_text("news/" + filename + ".j2")
 
 
-# At this moment in time, constructing this list dynamically would be
-# too much pointless code.
-newsposts = [
-    {
-        "page": "2019-0.11.8.html",
-        "date": "2019-10-30",
-        "title": "GNUnet 0.11.8",
-        "abstract": "",
-    },
-    {
-        "page": "2019-0.11.7.html",
-        "date": "2019-10-27",
-        "title": "GNUnet 0.11.7",
-        "abstract": "",
-    },
-    {
-        "page": "2019-10-ICANNPanel.html",
-        "date": "2019-10-20",
-        "title": "GNUnet invited to ICANN Panel",
-        "abstract": "",
-    },
-    {
-        "page": "2019-10-GNSSpec1.html",
-        "date": "2019-10-04",
-        "title": "GNS Specification Milestone 1/4",
-        "abstract": "",
-    },
-    {
-        "page": "2019-0.11.6.html",
-        "date": "2019-07-24",
-        "title": "GNUnet 0.11.6",
-        "abstract": "",
-    },
-    {
-        "page": "2019-07-GHM_Aug_2019.html",
-        "date": "2019-07-17",
-        "title": "GNUnet Hacker Meeting 2019",
-        "abstract": "",
-    },
-    {
-        "page": "2019-06-DSTJ.html",
-        "date": "2019-06-28",
-        "title": "Peer DSTJ is dead, long live peer Y924",
-        "abstract": "",
-    },
-    {
-        "page": "2019-0.11.5.html",
-        "date": "2019-06-05",
-        "title": "GNUnet 0.11.5",
-        "abstract": "",
-    },
-    {
-        "page": "2019-06.html",
-        "date": "2019-06-01",
-        "title": "2019-06",
-        "abstract": "",
-    },
-    {
-        "page": "2019-0.11.4.html",
-        "date": "2019-05-12",
-        "title": "GNUnet 0.11.4",
-        "abstract": "",
-    },
-    {
-        "page": "2019-0.11.3.html",
-        "date": "2019-04-07",
-        "title": "GNUnet 0.11.3",
-        "abstract": "",
-    },
-    {
-        "page": "2019-0.11.2.html",
-        "date": "2019-04-04",
-        "title": "GNUnet 0.11.2",
-        "abstract": "",
-    },
-    {
-        "page": "2019-0.11.1.html",
-        "date": "2019-04-03",
-        "title": "GNUnet 0.11.1",
-        "abstract": "",
-    },
-    {
-        "page": "2019-0.11.0.html",
-        "date": "2019-02-28",
-        "title": "GNUnet 0.11.0",
-        "abstract": "",
-    },
-    {
-        "page": "2019-02.html",
-        "date": "2019-02-01",
-        "title": "Google Summer of Code 2019",
-        "abstract": "",
-    },
-    {
-        "page": "2018-08.html",
-        "date": "2018-08-14",
-        "title": "GSoC 2018 - GNUnet Web-based User Interface",
-        "abstract": "",
-    },
-    {
-        "page": "2018-07.html",
-        "date": "2018-07-01",
-        "title": "Second GNUnet Hacker Meeting 2018",
-        "abstract": "",
-    },
-    {
-        "page": "2018-06.html",
-        "date": "2018-06-06",
-        "title": "GNUnet 0.11.0pre66",
-        "abstract": "",
-    },
-    {
-        "page": "2017-10.html",
-        "date": "2017-10-01",
-        "title": "Launching the new gnunet.org",
-        "abstract": "",
-    },
-]
-
-for item in newsposts:
-    item['abstract'] = abstract_news(item['page'])
-
-
-
-# <!-- FIXME 2015: source only available on yt. <li>Ludovic Courtès, <a 
href="">Reproducible Software Deployment with GNU Guix</a>, Inria</li> -->
-# <!-- FIXME 2014: no source link on web. <li>Julian Kirsch, <a 
href="">"Knocking down the HACIENDA"</a>, GNU Hacker Meeting 2014</li> -->
-# <!-- FIXME 2014: no source link on web. <li>Peter Schaar, <a 
href="">"Technik, Recht und Überwachung"</a>, Technische Universität 
München</li> -->
-# <!-- FIXME 2014: no source link on web. <li>Christian Grothoff, <a 
href="">"A Public Key Infrastructure for Social Movements in the Age of 
Universal Surveillance"</a>, University of Oxford</li> -->
-# <!-- FIXME 2013: no source link on web. <li>Bart Polot, <a href="">"GNUnet 
CADET and GNUnet Conversation" at YBTI/30c3</a>, 30C3</li> -->
-# <!-- FIXME 2013: no media link. <li>Roger Dingledine and Jacob Appelbaum, "Q 
&amp; A", Technische Universität München (<a 
href="https://archive.org/details/RogerDingledineAndJacobAppelbaumQAMarathon"; 
download>download</a>)</li> -->
-# <!-- FIXME 2013: no source link on web. <li>Maximilian Szengel, <a 
href="">"Decentralized Evaluation of Regular Expressions for Capability 
Discovery in Peer-to-Peer Networks"</a>, Technische Universität München</li> -->
-
-videoslist = [
-    {
-        "year": "2019",
-        "author": "Christian Grothoff",
-        "location": "IETF",
-        "description": "",
-        "name": "GNU Name System",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2019.git/plain/IETF104/GNU_Name_System_-_2019_Edition_IETF104__Christian_Grothoff.webm";,
-        "mirror_source": "",
-        "slides": 
"https://git.gnunet.org/presentations.git/plain/IETF104/slides-104-dinrg-gnu-name-system-00.pdf";,
-        "comment": ""
-    },
-    {
-        "year": "2018",
-        "author": "t3sserakt",
-        "location": "Datenspuren 2018",
-        "description": "",
-        "name": "State of the GNUnet",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2018.git/plain/Datenspuren2018/DS2018-9337-deu-State_of_the_GNUnet_webm-hd.webm";,
-        "mirror_source": "",
-        "slides": "",
-        "comment": ""
-    },
-    {
-        "year": "2018",
-        "author": "sva",
-        "location": "hack.lu",
-        "description": "",
-        "name": "You Broke The Internet - Let's Make a GNU One",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2018.git/plain/hack.lu/Hack.lu_2018_LT_-_GNUnet_-_You_Broke_The_Internet_Lets_Make_A_GNU_One__sva.webm";,
-        "mirror_source": "",
-        "slides": "",
-        "comment": ""
-    },
-    {
-        "year": "2018",
-        "author": "Christian Grothoff",
-        "location": "",
-        "description": "",
-        "name": "GNS - The GNU Name System - Overview",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2018.git/plain/GNS_-_The_GNU_Name_System_-_Overview.webm";,
-        "mirror_source": "",
-        "slides": "",
-        "comment": ""
-    },
-    {
-        "year": "2017",
-        "author": "Christian Grothoff",
-        "location": "Technische Universitaet Muenchen",
-        "description": "",
-        "name": "Big Data, Little Data, No Data",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2017.git/plain/Big_Data-Little_Data-No_Data.mp4";,
-        "mirror_source": "",
-        "slides": 
"https://git.gnunet.org/presentations.git/plain/grothoff/grothoff_bigdata-littledata-nomoredata_tum2017.pdf";,
-        "comment": ""
-    },
-    {
-        "year": "2017",
-        "author": "lynX",
-        "location": "34C3",
-        "description": "",
-        "name": "Three Ways to Enhance Metadata Protection Beyond Tor",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2017.git/plain/34c3/34c3-chaoswest-1-eng-Three_Ways_to_Enhance_Metadata_Protection_Beyond_Tor_-_secushareorg_webm-hd.webm";,
-        "mirror_source": "",
-        "slides": "",
-        "comment": ""
-    },
-    {
-        "year": "2017",
-        "author": "t3sserakt",
-        "location": "34C3",
-        "description": "",
-        "name": "Modeling Trust in a Distributed Private Social Network",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2017.git/plain/34c3/34c3-chaoswest-2-eng-Modeling_Trust_in_a_Distributed_Private_Social_Network_-_secushareorg_webm-hd.webm";,
-        "mirror_source": "",
-        "slides": "",
-        "comment": ""
-    },
-    {
-        "year": "2017",
-        "author": "lynX",
-        "location": "34C3",
-        "description": "",
-        "name": "Scalable and privacy-respectful distributed systems - Our 
chance to avoid cloud computing",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2017.git/plain/34c3/34c3-chaoswest-7-eng-Scalable_and_privacy-respectful_distributed_systems_-_Our_chance_to_avoid_cloud_computing_webm-hd.webm";,
-        "mirror_source": "",
-        "slides": "",
-        "comment": ""
-    },
-    {
-        "year": "2017",
-        "author": "lynX, Christian Grothoff",
-        "location": "34C3",
-        "description": "",
-        "name": "Privacy-Oriented Distributed Networking for an Ethical 
Internet",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2017.git/plain/34c3/34c3-chaoswest-6-eng-Privacy-Oriented_Distributed_Networking_for_an_Ethical_Internet_-_including_50_subsystems_of_GNUnet_webm-hd.webm";,
-        "mirror_source": "",
-        "slides": "",
-        "comment": ""
-    },
-    {
-        "year": "2016",
-        "author": "Daniel Golle",
-        "location": "Battlemesh v9 (Porto, Portugal)",
-        "description": "",
-        "name": "GNUnet For Mesh Communities",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2016.git/plain/Battlemeshv9/Gnunet%20For%20Mesh%20Communities%20-%20Battlemesh%20v9%20(Porto,%20Portugal).mp4",
-        "mirror_source": "",
-        "slides": 
"https://git.gnunet.org/presentations.git/plain/GNUnet_For_Mesh_Communities-Daniel_Golle-Battlemeshv9_Portugal.pdf";,
-        "comment": ""
-    },
-    {
-        "year": "2016",
-        "author": "Jeff Burdges",
-        "location": "GNU Hacker Meeting 2016",
-        "description": "",
-        "name": "Xolotl - A compact mixnet format with stronger forwared 
secrecy and hybrid anonymity",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2015.git/plain/GHM%202015/expose-GNUJeffBurdges19aout2016.mp4";,
-        "mirror_source": 
"http://videos.rennes.inria.fr/Workshop-GNUHackersMeetings2016/expose-GNUJeffBurdges19aout2016.mp4";,
-        "slides": "",
-        "comment": ""
-    },
-    {
-        "year": "2016",
-        "author": "t3sserakt, xrs",
-        "location": "Datenspuren 2016",
-        "description": "",
-        "name": "secushare",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2016.git/plain/Datenspuren2016/DS2016-7775-deu-Secushare_webm-hd.webm";,
-        "mirror_source": "",
-        "slides": "",
-        "comment": ""
-    },
-    {
-        "year": "2015",
-        "author": "Christian Grothoff",
-        "location": "PSC 2015",
-        "description": "",
-        "name": "The Architecture of the GNUnet: 45 Subsystems in 45 Minutes",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2015.git/plain/psc2015/grothoff.webm";,
-        "mirror_source": "",
-        "slides": "",
-        "comment": ""
-    },
-    {
-        "year": "2015",
-        "author": "t3sserakt, demos",
-        "location": "Datenspuren 2015",
-        "description": "",
-        "name": "Echt Dezentrales Netzwerk",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2015.git/plain/Datenspuren2015/datenspuren15-7069-de-EDN_-_Echt_Dezentrales_Netzwerk_webm.webm";,
-        "mirror_source": "",
-        "slides": "",
-        "comment": ""
-    },
-    {
-        "year": "2015",
-        "author": "Florian Dold",
-        "location": "32C3",
-        "description": "",
-        "name": "Byzantine Fault Tolerance Set Consensus with Efficient Set 
Reconciliation",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2015.git/plain/32c3/byzantine-fault-tolerant-set-consensus-with-efficient-set-reconciliation.mp4";,
-        "mirror_source": "",
-        "slides": "",
-        "comment": ""
-    },
-    {
-        "year": "2015",
-        "author": "Daniel Golle",
-        "location": "BattleMesh 2015",
-        "description": "",
-        "name": "GNUnet in Community Networks",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2015.git/plain/BattleMeshV8/GNUnet%20in%20Community%20Mesh%20Networks%20+%20Slides%20-%20BattleMeshV8.webm";,
-        "mirror_source": "",
-        "slides": "",
-        "comment": ""
-    },
-    {
-        "year": "2014",
-        "author": "Florian Dold",
-        "location": "31C3",
-        "description": "",
-        "name": "Electronic Voting and Key Generation in Distributed Systems",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2014.git/plain/31c3/voting-voting.webm";,
-        "mirror_source": "",
-        "slides": "",
-        "comment": ""
-    },
-    {
-        "year": "2014",
-        "author": "Markus Sabadello, Suhin Mohan Adapa",
-        "location": "31C3",
-        "description": "",
-        "name": "FreedomBox Status Update",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2014.git/plain/31c3/freedombox-freedombox.webm";,
-        "mirror_source": "",
-        "slides": "",
-        "comment": ""
-    },
-    {
-        "year": "2014",
-        "author": "Lucas Fulchir",
-        "location": "31C3",
-        "description": "",
-        "name": "why TLS sucks and what I am doing about it",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2014.git/plain/31c3/fenrir-fenrir.webm";,
-        "mirror_source": "",
-        "slides": "",
-        "comment": ""
-    },
-    {
-        "year": "2014",
-        "author": "Nicolas Benes",
-        "location": "31C3",
-        "description": "",
-        "name": "Panic! An approach for home routers to securely erase 
sensitive data",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2014.git/plain/31c3/do-panic-do-panic.webm";,
-        "mirror_source": "",
-        "slides": "",
-        "comment": ""
-    },
-    {
-        "year": "2014",
-        "author": "Christian Grothoff, Douwe Korff, Jacob Appelbaum",
-        "location": "Council of Europe",
-        "description": "",
-        "name": "After Snowden: using law and technology to counter snooping",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2014.git/plain/2014-coe.webm";,
-        "mirror_source": "",
-        "slides": "",
-        "comment": ""
-    },
-    {
-        "year": "2014",
-        "author": "Christian Grothoff, Florian Dold",
-        "location": "31C3",
-        "description": "",
-        "name": "Taler",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2014.git/plain/31c3/taler-taler.webm";,
-        "mirror_source": "",
-        "slides": "",
-        "comment": ""
-    },
-    {
-        "year": "2014",
-        "author": "Markus Benter",
-        "location": "31C3",
-        "description": "",
-        "name": "Complex Queries in P2P networks",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2014.git/plain/31c3/queries-queries.webm";,
-        "mirror_source": "",
-        "slides": "",
-        "comment": ""
-    },
-    {
-        "year": "2014",
-        "author": "Bernd Paysan",
-        "location": "31C3",
-        "description": "",
-        "name": "net2o - Reinventing the Internet",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2014.git/plain/31c3/net2o-net2o.webm";,
-        "mirror_source": "",
-        "slides": "",
-        "comment": ""
-    },
-    {
-        "year": "2013",
-        "author": "Christian Grothoff, Carlo von Lynx, jacob Appelbaum, 
Richard Stallman",
-        "location": "Berlin",
-        "description": "",
-        "name": "You broke the Internet. We're making ourselves a GNU one.",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2013.git/plain/you%20broke%20the%20internet/internetistschuld.webm";,
-        "mirror_source": "",
-        "slides": 
"https://git.gnunet.org/presentations.git/plain/2013-youbroketheinternet-event/grothoff_slides_berlin.pdf";,
-        "comment": "<a 
href='https://git.gnunet.org/presentations.git/plain/2013-youbroketheinternet-event/lynx_slides_secushare.pdf'>slides
 lynX</a>"
-    },
-    {
-        "year": "2013",
-        "author": "Christian Grothoff",
-        "location": "GNU Hacker Meeting 2013",
-        "description": "",
-        "name": "The GNU Name System and the Future of Social Networking with 
GNUnet",
-        "source": "",
-        "mirror_source": 
"https://audio-video.gnu.org/video/ghm2013/Christian_Grothoff-The_GNU_Name_System_and_the_Future_of_Social_Networking_with_GNUnet_.webm";,
-        "slides": "",
-        "comment": ""
-    },
-    {
-        "year": "2013",
-        "author": "Christian Grothoff",
-        "location": "30C3",
-        "description": "",
-        "name": "The GNU Name System",
-        "source": "",
-        "mirror_source": 
"https://cdn.media.ccc.de/congress/2013/mp4-lq/30c3-5212-en-The_GNU_Name_System_h264-iprod.mp4";,
-        "slides": "",
-        "comment": ""
-    },
-    {
-        "year": "2013",
-        "author": "Markus Teich",
-        "location": "Technische Universitaet Muenchen",
-        "description": "",
-        "name": "Monkey - generating Useful Bug Reports Automatically",
-        "source": "",
-        "mirror_source": 
"https://media.net.in.tum.de/videos/standalonevideo/video/491";,
-        "slides": "",
-        "comment": "TUM internal access"
-    },
-    {
-        "year": "2012",
-        "author": "Martin Schanzenbach",
-        "location": "Technische Universitaet Muenchen",
-        "description": "",
-        "name": "A Censorship-Resistant and Fully Decentralized Naming System",
-        "source": "",
-        "mirror_source": 
"https://media.net.in.tum.de/videoarchive/SS12/Oberseminar/2012+09+19_1600+Design+and+Implementation+of+a+Censorship+Resist/priv/camera.mp4";,
-        "slides": "",
-        "comment": ""
-    },
-    {
-        "year": "2010",
-        "author": "Matthias Wachs",
-        "location": "GNU Hacker Meeting 2010",
-        "description": "",
-        "name": "GNUnet - Transport and Transport Selection",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2010.git/plain/GHM_Hague/GNUnet_-_Transports_and_Transport_Selection.ogv";,
-        "mirror_source": "",
-        "slides": 
"https://git.gnunet.org/presentations.git/plain/wachs_ghm_presentation.pdf";,
-        "comment": ""
-    },
-    {
-        "year": "2010",
-        "author": "Nathan S. Evan",
-        "location": "GNU Hacker Meeting 2010",
-        "description": "",
-        "name": "GNUnet Distributed Data Storage - DHT and Distance Vector 
Transport",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2010.git/plain/GHM_Hague/GNUnet_Distributed_Data_Storage_-_DHT_and_Distance_Vector_Transport.ogv";,
-        "mirror_source": "",
-        "slides": 
"https://git.gnunet.org/presentations.git/plain/evans_ghm_presentation.pdf";,
-        "comment": ""
-    },
-    {
-        "year": "2010",
-        "author": "Christian Grothoff",
-        "location": "GNU Hacker Meeting 2010",
-        "description": "",
-        "name": "Introduction to the GNUnet Peer-to-Peer Framework",
-        "source": 
"https://git.gnunet.org/gnunet-videos-2010.git/plain/GHM_Hague/Introduction_to_The_GNUnet_Peer-to-Peer_Framework.ogv";,
-        "mirror_source": "",
-        "slides": "",
-        "comment": ""
-    },
-]
-
-def generate_site(root):
+def generate_site(root, conf):
     for in_file in glob.glob(root + "/*.j2"):
         name, ext = re.match(r"(.*)\.([^.]+)$", in_file.rstrip(".j2")).groups()
         tmpl = env.get_template(in_file)
@@ -769,11 +232,11 @@ def generate_site(root):
             env.install_gettext_translations(tr, newstyle=True)
 
             content = tmpl.render(lang=locale,
-                                  lang_full=langs_full[locale],
+                                  lang_full=conf["langs_full"][locale],
                                   url=url,
-                                  meetingnotesdata=meetingnotes,
-                                  newsdata=newsposts,
-                                  videosdata=videoslist,
+                                  meetingnotesdata=conf["meetingnotes"],
+                                  newsdata=conf["newsposts"],
+                                  videosdata=conf["videoslist"],
                                   self_localized=self_localized,
                                   url_localized=url_localized,
                                   url_static=url_static,
@@ -796,18 +259,23 @@ def generate_site(root):
                 langdir = outdir / locale
 
             langdir.mkdir(parents=True, exist_ok=True)
-            # os.makedirs("./rendered/" + locale, exist_ok=True)
+
             with codecs.open(out_name, "w", encoding='utf-8') as f:
                 f.write(content)
 
 
 def main():
     # rm_rf("rendered")
+    yaml=YAML(typ='safe')
+    site_configfile=Path("www.yml")
+    conf=yaml.load(site_configfile)
+
+    for item in conf["newsposts"]:
+        item['abstract'] = abstract_news(item['page'])
     print("generating template")
-    generate_site("template")
+    generate_site("template", conf)
     print("generating news")
-    generate_site("news")
-
+    generate_site("news", conf)
 
 #    for l in glob.glob("locale/*/"):
 #        locale = os.path.basename(l[:-1])
diff --git a/template/index.html.j2 b/template/index.html.j2
index a6a1b92..3386f62 100644
--- a/template/index.html.j2
+++ b/template/index.html.j2
@@ -1,5 +1,6 @@
 {% extends "common/base.j2" %}
 {% block body_content %}
+  {% import 'inc/news.macro.j2' as news %}
 <!-- Notice Banner -->
 <div class="alert">
   <div class="alert-content">
@@ -66,17 +67,7 @@
     {% for item in newsdata[:4] %}
     <div class="row">
         <div class="col-lg-12">
-          <section>
-            <header>
-              <h3>{{ item['title'] }}</h3>
-              <p>
-                {{ item['date'] }}
-              </p>
-            </header>
-            <p>
-              {{ item['abstract'] }}... [<a href="news/{{ item['page'] 
}}">read more</a>]
-            </p>
-          </section>
+          {{ news.newspreview(item, prefix="news/") }}
         </div>
     </div>
     {% endfor %}
diff --git a/template/video.html.j2 b/template/video.html.j2
index fe341c0..f3c92b8 100644
--- a/template/video.html.j2
+++ b/template/video.html.j2
@@ -16,27 +16,56 @@
           {% for item in videosdata %}
             <section>
               <header>
-                <h2>{{ item['name'] }} ({{ item['year'] }})</h2>
+                <h2>{{ item['name']|e }} ({{ item['year'] }})</h2>
               </header>
               <div class="row container">
                 <div class="col-md-5 col-12">
                   <video width="100%" height="100%" controls preload="none">
-                   <source src="{{ item['source']}}">
-                      Your web browser does not support the video tag.
+                    {% if item['sources'] %}
+                      {% for video in item['sources'] %}
+                       <source src="{{ video }}">
+                      {% endfor %}
+                    {% else %}
+                      <!-- no video, empty tag because we have no placeholder 
-->
+                      <source src="">
+                    {% endif %}
+                    Your web browser does not support the video tag.
                   </video>
                 </div>
                 <div class="col">
                   <p>
-                    Name: {{ item['name'] }}<br>
-                    Authors: {{ item['author'] }}<br>
-                    Location: {{ item['location'] }}<br>
-                    Description: {{ item['description'] }}<br>
-                    Year: {{ item['year'] }}<br>
-                    Slides: {% if item['slides'] %}<a href="{{ item['slides'] 
}}">Slides</a>{% endif %}<br>
-                    Mirror: {% if item['mirror_source'] %}<a href="{{ 
item['mirror_source'] }}">Mirror Source</a>{% endif %}<br>
-                    {% if item['comment'] %}
-                      Comment: {{ item['comment'] }}
-                    {% endif %}
+                    Name: {% if item['name'] %} {{ item['name']|e }} {% endif 
%}<br>
+                    Authors:
+                    {% if item['authors'] %}
+                      {% for name in item['authors'] %}
+                        {{ name|e }}
+                        {% if not loop.last %}
+                          ,
+                        {% endif %}
+                      {% endfor %}
+                    {% endif %}<br>
+                    Location: {% if item['location'] %} {{ item['location']|e 
}} {% endif %}<br>
+                    Description: {% if item['description'] %} {{ 
item['description']|e }} {% endif %}<br>
+                    Year: {% if item['year'] %}{{ item['year'] }}{% endif 
%}<br>
+                    Slides:
+                    {% if item['slides'] %}
+                      {% for slide in item['slides'] %}
+                        <a href="{{ slide }}">Slide {{ loop.index }}</a>
+                        {% if not loop.last %}
+                          ,
+                        {% endif %}
+                      {% endfor %}
+                    {% endif %}<br>
+                    Mirrors:
+                    {% if item['mirror_sources'] %}
+                      {% for mirror in item['mirror_sources'] %}
+                        <a href="{{ mirror }}">Mirror Source {{ loop.index 
}}</a>
+                        {% if not loop.last %}
+                          ,
+                          {% endif %}
+                      {% endfor %}
+                    {% endif %}<br>
+                    {% if item['comment'] %} Comment: {{ item['comment']|e }} 
{% endif %}
                   </p>
                 </div>
               </div>
diff --git a/www.yml b/www.yml
new file mode 100644
index 0000000..07e8a1d
--- /dev/null
+++ b/www.yml
@@ -0,0 +1,485 @@
+langs_full: &langs
+    en: English
+    fr: Français
+    it: Italiano
+    es: Español
+    de: Deutsch
+symlinks:
+    frontpage.html: frontpage
+    gsoc.html: gsoc
+    about.html: philosophy
+    gns.html: gns
+    node/about.html: "397"
+# Mostly from static/ to rendered/
+staticfiles:
+    favicon.ico: favicon.ico
+    moved.html: frontpage.html
+    robots.txt:
+      - static
+      - dist
+      - *langs
+    moved_gsoc.html: gsoc.html
+    moved_about.html: about.html
+    moved_gns.html: gns.html
+meetingnotes:
+  2013: 2013-12-27
+  2014: 2014-12-28
+  2015: 2015-12-29
+  2016: 2016-12-28
+  2017: 2017-12-27
+  2018: 2018-12-27
+newsposts:
+  - page: 2019-0.11.8.html
+    date: 2019-10-30
+    title: GNUnet 0.11.8
+    abstract:
+  - page: 2019-0.11.7.html
+    date: 2019-10-27
+    title: GNUnet 0.11.7
+    abstract: 
+  - page: 2019-10-ICANNPanel.html
+    date: 2019-10-20
+    title: GNUnet invited to ICANN Panel
+    abstract: 
+  - page: 2019-10-GNSSpec1.html
+    date: 2019-10-04
+    title: GNS Specification Milestone 1/4
+    abstract: 
+  - page: 2019-0.11.6.html
+    date: 2019-07-24
+    title: GNUnet 0.11.6
+    abstract: 
+  - page: 2019-07-GHM_Aug_2019.html
+    date: 2019-07-17
+    title: GNUnet Hacker Meeting 2019
+    abstract: 
+  - page: 2019-06-DSTJ.html
+    date: 2019-06-28
+    title: "Peer DSTJ is dead, long live peer Y924"
+    abstract: 
+  - page: 2019-0.11.5.html
+    date: 2019-06-05
+    title: GNUnet 0.11.5
+    abstract: 
+  - page: 2019-06.html
+    date: 2019-06-01
+    title: 2019-06
+    abstract: 
+  - page: 2019-0.11.4.html
+    date: 2019-05-12
+    title: GNUnet 0.11.4
+    abstract: 
+  - page: 2019-0.11.3.html
+    date: 2019-04-07
+    title: GNUnet 0.11.3
+    abstract: 
+  - page: 2019-0.11.2.html
+    date: 2019-04-04
+    title: GNUnet 0.11.2
+    abstract: 
+  - page: 2019-0.11.1.html
+    date: 2019-04-03
+    title: GNUnet 0.11.1
+    abstract: 
+  - page: 2019-0.11.0.html
+    date: 2019-02-28
+    title: GNUnet 0.11.0
+    abstract: 
+  - page: 2019-02.html
+    date: 2019-02-01
+    title: Google Summer of Code 2019
+    abstract: 
+  - page: 2018-08.html
+    date: 2018-08-14
+    title: GSoC 2018 - GNUnet Web-based User Interface
+    abstract: 
+  - page: 2018-07.html
+    date: 2018-07-01
+    title: Second GNUnet Hacker Meeting 2018
+    abstract:
+  - page: 2018-06.html
+    date: 2018-06-06
+    title: GNUnet 0.11.0pre66
+    abstract:
+  - page: 2017-10.html
+    date: 2017-10-01
+    title: Launching the new gnunet.org
+    abstract:
+# <!-- FIXME 2015: source only available on yt. <li>Ludovic Courtès, <a 
href="">Reproducible Software Deployment with GNU Guix</a>, Inria</li> -->
+# <!-- FIXME 2014: no source link on web. <li>Julian Kirsch, <a 
href="">"Knocking down the HACIENDA"</a>, GNU Hacker Meeting 2014</li> -->
+# <!-- FIXME 2014: no source link on web. <li>Peter Schaar, <a 
href="">"Technik, Recht und Überwachung"</a>, Technische Universität 
München</li> -->
+# <!-- FIXME 2014: no source link on web. <li>Christian Grothoff, <a 
href="">"A Public Key Infrastructure for Social Movements in the Age of 
Universal Surveillance"</a>, University of Oxford</li> -->
+# <!-- FIXME 2013: no source link on web. <li>Bart Polot, <a href="">"GNUnet 
CADET and GNUnet Conversation" at YBTI/30c3</a>, 30C3</li> -->
+# <!-- FIXME 2013: no media link. <li>Roger Dingledine and Jacob Appelbaum, "Q 
&amp; A", Technische Universität München (<a 
href="https://archive.org/details/RogerDingledineAndJacobAppelbaumQAMarathon"; 
download>download</a>)</li> -->
+# <!-- FIXME 2013: no source link on web. <li>Maximilian Szengel, <a 
href="">"Decentralized Evaluation of Regular Expressions for Capability 
Discovery in Peer-to-Peer Networks"</a>, Technische Universität München</li> -->
+videoslist:
+  - year: 2019
+    authors:
+      - Christian Grothoff
+    location: IETF
+    description: 
+    name: GNU Name System
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2019.git/plain/IETF104/GNU_Name_System_-_2019_Edition_IETF104__Christian_Grothoff.webm
+    mirror_sources: 
+    slides:
+      - 
https://git.gnunet.org/presentations.git/plain/IETF104/slides-104-dinrg-gnu-name-system-00.pdf
+    comment:
+  - year: 2018
+    authors:
+      - t3sserakt
+    location: Datenspuren 2018
+    description: 
+    name: State of the GNUnet
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2018.git/plain/Datenspuren2018/DS2018-9337-deu-State_of_the_GNUnet_webm-hd.webm
+    mirror_sources: 
+    slides: 
+    comment: 
+  - year: 2018
+    authors:
+      - sva
+    location: hack.lu
+    description: 
+    name: You Broke The Internet - Let's Make a GNU One
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2018.git/plain/hack.lu/Hack.lu_2018_LT_-_GNUnet_-_You_Broke_The_Internet_Lets_Make_A_GNU_One__sva.webm
+    mirror_sources: 
+    slides: 
+    comment: 
+  - year: 2018
+    authors:
+      - Christian Grothoff
+    location: 
+    description: 
+    name: GNS - The GNU Name System - Overview
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2018.git/plain/GNS_-_The_GNU_Name_System_-_Overview.webm
+    mirror_sources: 
+    slides: 
+    comment: 
+  - year: 2017
+    authors:
+      - Christian Grothoff
+    location: Technische Universitaet Muenchen
+    description: 
+    name: Big Data, Little Data, No Data
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2017.git/plain/Big_Data-Little_Data-No_Data.mp4
+    mirror_sources: 
+    slides:
+      - 
https://git.gnunet.org/presentations.git/plain/grothoff/grothoff_bigdata-littledata-nomoredata_tum2017.pdf
+    comment: 
+  - year: 2017
+    authors:
+      - lynX
+    location: 34C3
+    description: 
+    name: Three Ways to Enhance Metadata Protection Beyond Tor
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2017.git/plain/34c3/34c3-chaoswest-1-eng-Three_Ways_to_Enhance_Metadata_Protection_Beyond_Tor_-_secushareorg_webm-hd.webm
+    mirror_sources: 
+    slides: 
+    comment: 
+  - year: 2017
+    authors:
+      - t3sserakt
+    location: 34C3
+    description: 
+    name: Modeling Trust in a Distributed Private Social Network
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2017.git/plain/34c3/34c3-chaoswest-2-eng-Modeling_Trust_in_a_Distributed_Private_Social_Network_-_secushareorg_webm-hd.webm
+    mirror_sources: 
+    slides: 
+    comment: 
+  - year: 2017
+    authors:
+      - lynX
+    location: 34C3
+    description: 
+    name: Scalable and privacy-respectful distributed systems - Our chance to 
avoid cloud computing
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2017.git/plain/34c3/34c3-chaoswest-7-eng-Scalable_and_privacy-respectful_distributed_systems_-_Our_chance_to_avoid_cloud_computing_webm-hd.webm
+    mirror_sources: 
+    slides: 
+    comment: 
+  - year: 2017
+    authors:
+      - lynX
+      - Christian Grothoff
+    location: 34C3
+    description: 
+    name: Privacy-Oriented Distributed Networking for an Ethical Internet
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2017.git/plain/34c3/34c3-chaoswest-6-eng-Privacy-Oriented_Distributed_Networking_for_an_Ethical_Internet_-_including_50_subsystems_of_GNUnet_webm-hd.webm
+    mirror_sources: 
+    slides: 
+    comment: 
+  - year: 2016
+    authors:
+      - Daniel Golle
+    location: Battlemesh v9 (Porto, Portugal)
+    description: 
+    name: GNUnet For Mesh Communities
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2016.git/plain/Battlemeshv9/Gnunet%20For%20Mesh%20Communities%20-%20Battlemesh%20v9%20(Porto%20Portugal).mp4
+    mirror_sources: 
+    slides:
+      - 
https://git.gnunet.org/presentations.git/plain/GNUnet_For_Mesh_Communities-Daniel_Golle-Battlemeshv9_Portugal.pdf
+    comment: 
+  - year: 2016
+    authors:
+      - Jeff Burdges
+    location: GNU Hacker Meeting 2016
+    description: 
+    name: Xolotl - A compact mixnet format with stronger forwared secrecy and 
hybrid anonymity
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2015.git/plain/GHM%202015/expose-GNUJeffBurdges19aout2016.mp4
+    mirror_sources:
+      - 
http://videos.rennes.inria.fr/Workshop-GNUHackersMeetings2016/expose-GNUJeffBurdges19aout2016.mp4
+    slides: 
+    comment: 
+  - year: 2016
+    authors:
+      - t3sserakt
+      - xrs
+    location: Datenspuren 2016
+    description: 
+    name: secushare
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2016.git/plain/Datenspuren2016/DS2016-7775-deu-Secushare_webm-hd.webm
+    mirror_sources: 
+    slides: 
+    comment: 
+  - year: 2015
+    authors:
+      - Christian Grothoff
+    location: PSC 2015
+    description: 
+    name: "The Architecture of the GNUnet: 45 Subsystems in 45 Minutes"
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2015.git/plain/psc2015/grothoff.webm
+    mirror_sources: 
+    slides: 
+    comment: 
+  - year: 2015
+    authors:
+      - t3sserakt
+      - demos
+    location: Datenspuren 2015
+    description: 
+    name: Echt Dezentrales Netzwerk
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2015.git/plain/Datenspuren2015/datenspuren15-7069-de-EDN_-_Echt_Dezentrales_Netzwerk_webm.webm
+    mirror_sources: 
+    slides: 
+    comment: 
+  - year: 2015
+    authors:
+      - Florian Dold
+    location: 32C3
+    description: 
+    name: Byzantine Fault Tolerance Set Consensus with Efficient Set 
Reconciliation
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2015.git/plain/32c3/byzantine-fault-tolerant-set-consensus-with-efficient-set-reconciliation.mp4
+    mirror_sources: 
+    slides: 
+    comment: 
+  - year: 2015
+    authors:
+      - Daniel Golle
+    location: BattleMesh 2015
+    description: 
+    name: GNUnet in Community Networks
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2015.git/plain/BattleMeshV8/GNUnet%20in%20Community%20Mesh%20Networks%20+%20Slides%20-%20BattleMeshV8.webm
+    mirror_sources: 
+    slides: 
+    comment: 
+  - year: 2014
+    authors:
+      - Florian Dold
+    location: 31C3
+    description: 
+    name: Electronic Voting and Key Generation in Distributed Systems
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2014.git/plain/31c3/voting-voting.webm
+    mirror_sources: 
+    slides: 
+    comment: 
+  - year: 2014
+    authors:
+      - Markus Sabadello
+      - Suhin Mohan Adapa
+    location: 31C3
+    description: 
+    name: FreedomBox Status Update
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2014.git/plain/31c3/freedombox-freedombox.webm
+    mirror_sources: 
+    slides: 
+    comment: 
+  - year: 2014
+    authors:
+      - Lucas Fulchir
+    location: 31C3
+    description: 
+    name: why TLS sucks and what I am doing about it
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2014.git/plain/31c3/fenrir-fenrir.webm
+    mirror_sources: 
+    slides: 
+    comment: 
+  - year: 2014
+    authors:
+      - Nicolas Benes
+    location: 31C3
+    description: 
+    name: Panic! An approach for home routers to securely erase sensitive data
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2014.git/plain/31c3/do-panic-do-panic.webm
+    mirror_sources: 
+    slides: 
+    comment: 
+  - year: 2014
+    authors:
+      - Christian Grothoff
+      - Douwe Korff
+      - Jacob Appelbaum
+    location: Council of Europe
+    description: 
+    name: "After Snowden: using law and technology to counter snooping"
+    sources:
+      - https://git.gnunet.org/gnunet-videos-2014.git/plain/2014-coe.webm
+    mirror_sources: 
+    slides: 
+    comment: 
+  - year: 2014
+    authors:
+      - Christian Grothoff
+      - Florian Dold
+    location: 31C3
+    description: 
+    name: Taler
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2014.git/plain/31c3/taler-taler.webm
+    mirror_sources: 
+    slides: 
+    comment: 
+  - year: 2014
+    authors:
+      - Markus Benter
+    location: 31C3
+    description: 
+    name: Complex Queries in P2P networks
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2014.git/plain/31c3/queries-queries.webm
+    mirror_sources: 
+    slides: 
+    comment: 
+  - year: 2014
+    authors:
+      - Bernd Paysan
+    location: 31C3
+    description: 
+    name: net2o - Reinventing the Internet
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2014.git/plain/31c3/net2o-net2o.webm
+    mirror_sources: 
+    slides: 
+    comment: 
+  - year: 2013
+    authors:
+      - Christian Grothoff
+      - Carlo von Lynx
+      - Jacob Appelbaum
+      - Richard Stallman
+    location: Berlin
+    description: 
+    name: "You broke the Internet. We're making ourselves a GNU one."
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2013.git/plain/you%20broke%20the%20internet/internetistschuld.webm
+    mirror_sources: 
+    slides:
+      - 
https://git.gnunet.org/presentations.git/plain/2013-youbroketheinternet-event/grothoff_slides_berlin.pdf
+      - 
https://git.gnunet.org/presentations.git/plain/2013-youbroketheinternet-event/lynx_slides_secushare.pdf
+    comment:
+  - year: 2013
+    authors:
+      - Christian Grothoff
+    location: GNU Hacker Meeting 2013
+    description: 
+    name: The GNU Name System and the Future of Social Networking with GNUnet
+    sources: 
+    mirror_sources:
+      - 
https://audio-video.gnu.org/video/ghm2013/Christian_Grothoff-The_GNU_Name_System_and_the_Future_of_Social_Networking_with_GNUnet_.webm
+    slides: 
+    comment: 
+  - year: 2013
+    authors:
+      - Christian Grothoff
+    location: 30C3
+    description: 
+    name: The GNU Name System
+    sources: 
+    mirror_sources:
+      - 
https://cdn.media.ccc.de/congress/2013/mp4-lq/30c3-5212-en-The_GNU_Name_System_h264-iprod.mp4
+    slides: 
+    comment: 
+  - year: 2013
+    authors:
+      - Markus Teich
+    location: Technische Universitaet Muenchen
+    description: 
+    name: Monkey - generating Useful Bug Reports Automatically
+    sources: 
+    mirror_sources:
+      - https://media.net.in.tum.de/videos/standalonevideo/video/491
+    slides: 
+    comment: TUM internal access
+  - year: 2012
+    authors:
+      - Martin Schanzenbach
+    location: Technische Universitaet Muenchen
+    description: 
+    name: A Censorship-Resistant and Fully Decentralized Naming System
+    sources: 
+    mirror_sources:
+      - 
https://media.net.in.tum.de/videoarchive/SS12/Oberseminar/2012+09+19_1600+Design+and+Implementation+of+a+Censorship+Resist/priv/camera.mp4
+    slides: 
+    comment: 
+  - year: 2010
+    authors:
+      - Matthias Wachs
+    location: GNU Hacker Meeting 2010
+    description: 
+    name: GNUnet - Transport and Transport Selection
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2010.git/plain/GHM_Hague/GNUnet_-_Transports_and_Transport_Selection.ogv
+    mirror_sources: 
+    slides:
+      - 
https://git.gnunet.org/presentations.git/plain/wachs_ghm_presentation.pdf
+    comment: 
+  - year: 2010
+    authors:
+      - Nathan S. Evan
+    location: GNU Hacker Meeting 2010
+    description: 
+    name: GNUnet Distributed Data Storage - DHT and Distance Vector Transport
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2010.git/plain/GHM_Hague/GNUnet_Distributed_Data_Storage_-_DHT_and_Distance_Vector_Transport.ogv
+    mirror_sources: 
+    slides:
+      - 
https://git.gnunet.org/presentations.git/plain/evans_ghm_presentation.pdf
+    comment: 
+  - year: 2010
+    authors:
+      - Christian Grothoff
+    location: GNU Hacker Meeting 2010
+    description: 
+    name: Introduction to the GNUnet Peer-to-Peer Framework
+    sources:
+      - 
https://git.gnunet.org/gnunet-videos-2010.git/plain/GHM_Hague/Introduction_to_The_GNUnet_Peer-to-Peer_Framework.ogv
+    mirror_sources: 
+    slides: 
+    comment: 

-- 
To stop receiving notification emails like this one, please contact
address@hidden.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]