gnunet-svn
[Top][All Lists]
Advanced

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

[taler-www] 08/10: merge new website generation.


From: gnunet
Subject: [taler-www] 08/10: merge new website generation.
Date: Wed, 11 Dec 2019 12:34:09 +0100

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

ng0 pushed a commit to branch master
in repository www.

commit ca901e4b99a037553a5afe1beeb50255aeecb27c
Author: ng0 <address@hidden>
AuthorDate: Tue Dec 10 00:47:36 2019 +0000

    merge new website generation.
---
 .gitignore                        |  12 ++-
 GNUmakefile                       |  66 +++++++-------
 __init__.py                       |   2 +
 build-system/taler-build-scripts  |   2 +-
 common/footer.j2.inc              |  12 +--
 common/header.j2.inc              |  10 ++-
 common/navigation.j2.inc          |  13 +--
 inc                               |   2 +-
 locale/de/LC_MESSAGES/messages.po | 102 +++++++++++----------
 locale/en/LC_MESSAGES/messages.po |  50 +++++------
 locale/es/LC_MESSAGES/messages.po | 107 +++++++++++-----------
 locale/fr/LC_MESSAGES/messages.po |  86 ++++++++----------
 locale/it/LC_MESSAGES/messages.po | 109 +++++++++++++----------
 locale/pt/LC_MESSAGES/messages.po | 109 +++++++++++++----------
 locale/ru/LC_MESSAGES/messages.po |  90 +++++++++----------
 make_site.py                      | 108 +++++++++--------------
 favicon.ico => static/favicon.ico | Bin
 robots.txt => static/robots.txt   |   0
 styles.css => static/styles.css   |   0
 template/bibliography.html.j2     |  92 +++++++++----------
 template/docs.html.j2             |  32 +++----
 template/features.html.j2         |  14 +--
 template/index.html.j2            |  20 +++--
 template/news.html.j2             |  20 -----
 template/old-news.html.j2         |  44 ----------
 template/principles.html.j2       |  18 ++--
 www.yml                           | 180 ++++++++++++++++++++++++++++++++++++++
 27 files changed, 708 insertions(+), 592 deletions(-)

diff --git a/.gitignore b/.gitignore
index e9eb5cf..03b500b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -17,8 +17,18 @@ es/
 ru/
 pt/
 
-config.mk
 __pycache__
 *.pyc
 
+sitemap.html
+sitemap.xml
+
+*~
+\#*\#
+
+config.mk
+
 *.core
+
+.style.yapf
+configure
diff --git a/GNUmakefile b/GNUmakefile
index c460217..6fae6c8 100644
--- a/GNUmakefile
+++ b/GNUmakefile
@@ -1,27 +1,37 @@
 # This file is in the public domain.
 
-# Hardly anyone seems to read README files anymore, so keep this note here:
-# Don't remove the variables for python etc. They exist
-# because one system sticks with PEPs, and others opt
-# for installing every version side-by-side,
-# Same goes for babel.
-
 include config.mk
 
 # All: build HTML pages in all languages and compile the
 # TypeScript logic in web-common.
 .PHONY: all
 all: locale template
-       cd web-common && $(tsc)
-       $(sh) make_sitemap.sh
-       for x in en de fr it es ru pt ; do $(cp) robots.txt rendered/$$x ; done
-       for x in en de fr it es ru pt ; do $(cp) favicon.ico rendered/$$x ; done
-       for x in en de fr it es ru pt ; do $(cp) rendered/sitemap.xml 
rendered/$$x ; done
-       $(cp) styles.css rendered/
-       $(cp) -R images rendered/
-       for x in en de fr it es ru pt ; do $(cp) -R images rendered/$$x ; done
-       for x in en de fr it es ru pt ; do $(cp) -R web-common rendered/$$x ; 
done
-       for d in dist icons papers pdf presentations ; do $(cp) -R $$d 
rendered/ ; done
+       (cd web-common && $(tsc))
+       ($(cp) rendered/static/robots.txt rendered/robots.txt)
+       ($(cp) rendered/static/robots.txt rendered/dist/robots.txt)
+       (for lang in en de fr it es ru pt ; do \
+               $(cp) rendered/static/robots.txt rendered/$$lang/robots.txt; \
+       done)
+       ($(python) inc/make_sitemap.py -i rendered)
+       ($(cp) sitemap.xml rendered/sitemap.xml)
+       ($(cp) sitemap.xml rendered/en/sitemap.xml)
+       (for x in en de fr it es ru pt ; do \
+               $(cp) rendered/sitemap.xml rendered/$$x ; \
+       done)
+       ($(cp) -R images rendered/static/)
+       (for lang in en de fr it es ru pt ; \
+               do $(cp) -R images rendered/$$lang ; \
+       done)
+       (for lang in en de fr it es ru pt ; do \
+               $(cp) -R web-common rendered/$$lang ; \
+       done)
+       (cd rendered; \
+               for lang in en de fr it es ru pt; do \
+               $(cp) $$lang/rss.xml $$lang/news/rss.xml; \
+       done)
+       (for d in dist icons papers pdf presentations ; do \
+               $(cp) -R $$d rendered/ ; \
+       done)
 
 # Extract translateable strings from jinja2 templates.
 locale/messages.pot: template/*.j2 common/*.j2 common/*.j2.inc
@@ -30,26 +40,18 @@ locale/messages.pot: template/*.j2 common/*.j2 
common/*.j2.inc
 # Update translation (.po) files with new strings.
 .PHONY: locale-update
 locale-update: locale/messages.pot
-       $(msgmerge) -U -m --previous locale/en/LC_MESSAGES/messages.po 
locale/messages.pot
-       $(msgmerge) -U -m --previous locale/de/LC_MESSAGES/messages.po 
locale/messages.pot
-       $(msgmerge) -U -m --previous locale/fr/LC_MESSAGES/messages.po 
locale/messages.pot
-       $(msgmerge) -U -m --previous locale/es/LC_MESSAGES/messages.po 
locale/messages.pot
-       $(msgmerge) -U -m --previous locale/it/LC_MESSAGES/messages.po 
locale/messages.pot
-       $(msgmerge) -U -m --previous locale/ru/LC_MESSAGES/messages.po 
locale/messages.pot
-       $(msgmerge) -U -m --previous locale/pt/LC_MESSAGES/messages.po 
locale/messages.pot
+       (for lang in de fr es it ru pt; do \
+               $(msgmerge) -q -U -m --previous 
locale/$$lang/LC_MESSAGES/messages.po locale/messages.pot ; \
+       done)
 
        if $(grep) -nA1 '#-#-#-#-#' locale/*/LC_MESSAGES/messages.po; then 
$(echo) -e "\nERROR: Conflicts encountered in PO files.\n"; exit 1; fi
 
 # Compile translation files for use.
 .PHONY: locale-compile
 locale-compile:
-       $(pybabel) compile -d locale -l en --use-fuzzy
-       $(pybabel) compile -d locale -l de --use-fuzzy
-       $(pybabel) compile -d locale -l fr --use-fuzzy
-       $(pybabel) compile -d locale -l it --use-fuzzy
-       $(pybabel) compile -d locale -l es --use-fuzzy
-       $(pybabel) compile -d locale -l ru --use-fuzzy
-       $(pybabel) compile -d locale -l pt --use-fuzzy
+       (for lang in de fr it es ru pt; do \
+               $(pybabel) -q compile -d locale -l $$lang --use-fuzzy ; \
+       done)
 
 # Process everything related to gettext translations.
 .PHONY: locale
@@ -58,11 +60,11 @@ locale: locale-update locale-compile
 # Run the jinja2 templating engine to expand templates to HTML
 # incorporating translations.
 template: locale-compile
-       $(python) ./template.py
+       $(python) ./make_site.py
 
 .PHONY: run
 run: all
-       $(browser) http://0.0.0.0:8000 &
+       $(browser) http://0.0.0.0:8000/rendered/en &
        $(python) -m http.server
 
 .PHONY: install
diff --git a/__init__.py b/__init__.py
new file mode 100644
index 0000000..0895f23
--- /dev/null
+++ b/__init__.py
@@ -0,0 +1,2 @@
+import os, sys
+sys.path.append(os.path.dirname(os.path.realpath(__file__)))
diff --git a/build-system/taler-build-scripts b/build-system/taler-build-scripts
index 2536801..1915a74 160000
--- a/build-system/taler-build-scripts
+++ b/build-system/taler-build-scripts
@@ -1 +1 @@
-Subproject commit 2536801927781ea38fefc3de924934e1c6a74d88
+Subproject commit 1915a74bbb4cd2ae9bc541a382dfebc37064a2fd
diff --git a/common/footer.j2.inc b/common/footer.j2.inc
index bce2b9a..0d5be46 100644
--- a/common/footer.j2.inc
+++ b/common/footer.j2.inc
@@ -8,27 +8,29 @@
     <div class="row">
       <div class="col-12 col-sm-4">
         <ul class="footer-list">
-          <li><p><a href="contact.html">{{ _("Contact") }}</a></p></li>
+          <li><a href="{{ url_localized('contact.html') }}">{{ _("Contact") 
}}</a></li>
         </ul>
       </div>
       <div class="col-12 col-sm-4">
         <ul class="footer-list">
-          <li><p><a href="faq.html">{{ _("FAQ") }}</a></p></li>
+          <li><a href="{{ url_localized('faq.html') }}">{{ _("FAQ") }}</a></li>
         </ul>
       </div>
       <div class="col-12 col-sm-4">
         <ul class="footer-list">
-          <li><p><a href="bibliography.html">{{ _("Bibliography") 
}}</a></p></li>
+          <li><a href="{{ url_localized('bibliography.html') }}">{{ 
_("Bibliography") }}</a></li>
         </ul>
       </div>
     </div>
   </div>
   <div class="text-center mt-5">
-    <p>&copy; <a href="https://gnunet.org/en/ev.html";>GNUnet e.V.</a> 
{{_("and") }}
+    <p>
+      &copy; <a href="https://gnunet.org/en/ev.html";>GNUnet e.V.</a> 
{{_("and") }}
               Taler Systems SA 2015-2019
        <br>
        {{ _("We are grateful for support and free hosting of this site by <a 
href='http://www.bfh.ch/'>BFH</a>") }}.
        <br>
-       {{ _("This page was created using <a href='https://www.gnu.org/'>Free 
Software</a> only.") }}</p>
+       {{ _("This page was created using <a href='https://www.gnu.org/'>Free 
Software</a> only.") }}
+    </p>
   </div>
 </footer>
diff --git a/common/header.j2.inc b/common/header.j2.inc
index e75a943..53320ce 100644
--- a/common/header.j2.inc
+++ b/common/header.j2.inc
@@ -37,15 +37,17 @@
     <!--    <link rel="icon" href="../../favicon.ico"> -->
 
     <!-- Bootstrap core CSS -->
-    <link href="{{ url('dist/css/bootstrap.min.css') }}" rel="stylesheet">
+    <link href="{{ url_dist('css/bootstrap.min.css') }}" rel="stylesheet">
     <!-- Custom styles for this template -->
-    <link href="{{ url('styles.css') }}" rel="stylesheet">
+    <link href="{{ url_static('styles.css') }}" rel="stylesheet">
 
-    <script src="{{ url('dist/js/jquery-1.11.1.min.js') }}"></script>
-    <script src="{{ url('dist/js/bootstrap.min.js') }}"></script>
+    <script src="{{ url_dist('js/jquery-1.11.1.min.js') }}"></script>
+    <script src="{{ url_dist('js/bootstrap.min.js') }}"></script>
 
     <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media 
queries -->
     <!--[if lt IE 9]>
       <script 
src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js";></script>
       <script 
src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js";></script>
     <![endif]-->
+
+    <link rel="alternate" type="application/rss+xml" title="Taler.net rss" 
href="{{ url_localized('news/rss.xml') }}" />
diff --git a/common/navigation.j2.inc b/common/navigation.j2.inc
index c8a645b..3e35373 100644
--- a/common/navigation.j2.inc
+++ b/common/navigation.j2.inc
@@ -1,12 +1,12 @@
 {% macro navlink(site, text) -%}
-   <a class="nav-link {{ 'active' if filename == site else '' }}"
-      href="/{{ lang }}/{{ site }}">
-    {{ text }}
-   </a>
+  <a class="nav-link {{ 'active' if filename == site else '' }}"
+     href="{{ url_localized(site) }}">
+     {{ text }}
+  </a>
 {%- endmacro %}
 
 <nav class="navbar navbar-expand-lg navbar-light">
-  <a class="navbar-brand taler_home" href="/{{ lang }}/index.html">Taler</a>
+  <a class="navbar-brand taler_home" href="{{ url_localized('index.html') 
}}">Taler</a>
   <button class="navbar-toggler"
           type="button"
           data-toggle="collapse"
@@ -21,6 +21,7 @@
       {{ navlink('features.html', _('Features')) }}
       {{ navlink('principles.html', _('Principles')) }}
       {{ navlink('docs.html', _('Docs')) }}
+      {{ navlink('news/index.html', _('News')) }}
     </div>
 
     <div class="nav-item dropdown">
@@ -30,7 +31,7 @@
               data-toggle="dropdown"
               aria-haspopup="true"
               aria-expanded="true">
-              <img src="{{ url('images/languageicon.svg') }}"
+              <img src="{{ url_static('images/languageicon.svg') }}"
                     height="35"
                     alt="[{{lang}}]" />
                     {{ lang_full }} [{{ lang }}]
diff --git a/inc b/inc
index 46295bc..8ba672a 160000
--- a/inc
+++ b/inc
@@ -1 +1 @@
-Subproject commit 46295bc38988c16a9a6c8c0cf8930abd20193a01
+Subproject commit 8ba672a9a16cbf11aac394b183668cb916d601f4
diff --git a/locale/de/LC_MESSAGES/messages.po 
b/locale/de/LC_MESSAGES/messages.po
index 54506c2..bca5809 100644
--- a/locale/de/LC_MESSAGES/messages.po
+++ b/locale/de/LC_MESSAGES/messages.po
@@ -2,14 +2,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2019-12-01 21:29+0100\n"
+"POT-Creation-Date: 2019-12-10 00:42+0000\n"
 "PO-Revision-Date: 2017-06-02 09:46+0100\n"
 "Last-Translator: Stefan Kügel <address@hidden>\n"
 "Language-Team: de <address@hidden, address@hidden>\n"
-"Language: en\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: en\n"
 "Plural-Forms: nplurals=2; plural=(n!=1)\n"
 "Generated-By: Babel 2.4.0\n"
 
@@ -17,7 +17,7 @@ msgstr ""
 msgid "GNU Taler"
 msgstr "Das Taler-Bezahlsystem"
 
-#: common/base.j2:6
+#: common/base.j2:6 common/news.j2:6
 msgid "Taxable Anonymous Libre Electronic Reserves"
 msgstr "Taxierbare Anonyme Liberale Elektronische Reserven"
 
@@ -35,19 +35,18 @@ msgstr ""
 msgid "Bibliography"
 msgstr "Bibliografie von GNU Taler"
 
-#: common/footer.j2.inc:27 template/bibliography.html.j2:23
-#: template/bibliography.html.j2:30 template/bibliography.html.j2:37
-#: template/bibliography.html.j2:43 template/developers.html.j2:66
+#: common/footer.j2.inc:28 template/bibliography.html.j2:33
+#: template/developers.html.j2:66
 msgid "and"
 msgstr "und"
 
-#: common/footer.j2.inc:30
+#: common/footer.j2.inc:31
 msgid ""
 "We are grateful for support and free hosting of this site by <a href='http://";
 "www.bfh.ch/'>BFH</a>"
 msgstr ""
 
-#: common/footer.j2.inc:32
+#: common/footer.j2.inc:33
 msgid ""
 "This page was created using <a href='https://www.gnu.org/'>Free Software</a> "
 "only."
@@ -65,24 +64,30 @@ msgstr ""
 msgid "Docs"
 msgstr ""
 
+#: common/navigation.j2.inc:24 news/index.html.j2:9
+msgid "News"
+msgstr ""
+
+#: common/news.j2:5
+msgid "GNUnet"
+msgstr ""
+
+#: inc/news.macro.j2:22
+msgid "read more"
+msgstr ""
+
 #: template/architecture.html.j2:6
 msgid "Taler System Architecture"
 msgstr "Systemarchitektur von Taler"
 
-#: template/bibliography.html.j2:4
+#: template/bibliography.html.j2:5
 msgid "GNU Taler Bibliography"
 msgstr "Bibliografie von GNU Taler"
 
-#: template/bibliography.html.j2:9 template/bibliography.html.j2:16
-#: template/bibliography.html.j2:23 template/bibliography.html.j2:30
-#: template/bibliography.html.j2:37 template/bibliography.html.j2:43
+#: template/bibliography.html.j2:27
 msgid "by"
 msgstr "von"
 
-#: template/bibliography.html.j2:44
-msgid "available upon request"
-msgstr "erhältlich auf Anfrage"
-
 #: template/contact.html.j2:6
 msgid "Contact information"
 msgstr "Kontakt"
@@ -245,9 +250,9 @@ msgstr ""
 "Taler ist freie Software mit einem offenen Protokoll. Alle Programmierer "
 "sind dazu eingeladen, unseren Referenzcode in ihre Anwendungen aufzunehmen. "
 "Verschiedene Taler-Komponenten sind unter verschiedenen Lizenzformen "
-"verfügbar. Für die Taler-Wechselstube (den \"Exchange\") dient Affero "
-"GPLv3+, LGPLv3+ für den Referenzcode der Integration in Handelsplattformen, "
-"GPLv3+-Lizenzen gelten für Geldbörsen (\"Wallets\") und Kundeninteraktions-"
+"verfügbar. Für die Taler-Wechselstube (den \"Exchange\") dient Affero GPLv3"
+"+, LGPLv3+ für den Referenzcode der Integration in Handelsplattformen, GPLv3"
+"+-Lizenzen gelten für Geldbörsen (\"Wallets\") und Kundeninteraktions-"
 "Software. Wir heißen alle konstruktiven Vorschläge willkommen, die Taler-"
 "Komponenten in eigene Anwendungen zu integrieren."
 
@@ -721,7 +726,7 @@ msgid "Exchange"
 msgstr ""
 
 #: template/docs.html.j2:64
-msgid "Operator's manual for the GNU Taler exchange. Also available as"
+msgid "Operator&#39;s manual for the GNU Taler exchange. Also available as"
 msgstr ""
 
 #: template/docs.html.j2:74
@@ -1137,7 +1142,7 @@ msgstr ""
 msgid ""
 "When making a payment, customers only need a charged wallet. A merchant can "
 "accept payments <span class=\"tlr\">without making their customers register</"
-"span> on the merchant's Website."
+"span> on the merchant&#39;s Website."
 msgstr ""
 
 #: template/features.html.j2:50
@@ -1163,8 +1168,8 @@ msgstr "Bezahlen mit Taler"
 #| "of phishing or identity theft.</p>\n"
 msgid ""
 "To pay with Taler, customers install an electronic wallet on their device. "
-"Before the first payment, the desired currency must be added to the wallet's "
-"balance by some other means of payment."
+"Before the first payment, the desired currency must be added to the "
+"wallet&#39;s balance by some other means of payment."
 msgstr ""
 "Um mit dem Taler-Bezahlsystem einkaufen zu können, muss man eine "
 "elektronische Geldbörse auf einem Endgerät installieren. Vor der ersten "
@@ -1219,8 +1224,9 @@ msgstr "Verkaufen mit Taler"
 msgid ""
 "To receive Taler payments, a merchant needs a bank account in the desired "
 "currency. We provide supporting software in various programming languages to "
-"make the integration painless. The merchant's backend for Taler transaction "
-"processing can run on the merchant's premises or be hosted by a third party."
+"make the integration painless. The merchant&#39;s backend for Taler "
+"transaction processing can run on the merchant&#39;s premises or be hosted "
+"by a third party."
 msgstr ""
 "Um Zahlungen erhalten zu können, brauchen Verkäufer ein Girokonto in der "
 "gewünschten Währung bei einer Geschäftsbank. Das Taler-Bezahlsystem "
@@ -1274,7 +1280,7 @@ msgstr "Stabil"
 msgid ""
 "Taler does not introduce a new currency. Taler uses a digital wallet storing "
 "coins and payment service providers with escrow accounts in existing "
-"currencies. Thus, Taler's cryptographic coins correspond to existing "
+"currencies. Thus, Taler&#39;s cryptographic coins correspond to existing "
 "currencies, such as US Dollars, Euros or even Bitcoins."
 msgstr ""
 "Als Bezahlsystem stellt Taler noch keine neue Währung dar. Taler verbindet "
@@ -1316,7 +1322,7 @@ msgstr "Besteuerbar"
 #| "Taler helps prevent black markets.  Taler is not suitable for\n"
 #| "illegal activities.\n"
 msgid ""
-"When using Taler, merchant's revenue is transparent for tax collection "
+"When using Taler, merchant&#39;s revenue is transparent for tax collection "
 "authorities. Unlike cash and most digital currencies, Taler helps prevent "
 "black markets. Taler is not suitable for illegal activities."
 msgstr ""
@@ -2232,37 +2238,37 @@ msgstr ""
 msgid "Shipment Tracking"
 msgstr ""
 
-#: template/index.html.j2:23
+#: template/index.html.j2:25
 msgid ""
 "We provide a payment system that makes <span class='tlr'>privacy-friendly</"
 "span> online transactions <span class='tlr'>fast and easy</span>."
 msgstr ""
 
-#: template/index.html.j2:27
+#: template/index.html.j2:29
 msgid "Payments without registration"
 msgstr ""
 
-#: template/index.html.j2:31
+#: template/index.html.j2:33
 msgid "Data protection by default"
 msgstr ""
 
-#: template/index.html.j2:35
+#: template/index.html.j2:37
 msgid "Fraud eliminated by design"
 msgstr ""
 
-#: template/index.html.j2:39
+#: template/index.html.j2:41
 msgid "Not a new currency!"
 msgstr ""
 
-#: template/index.html.j2:43
+#: template/index.html.j2:45
 msgid "Empowers communities to run their own payment infrastructure"
 msgstr ""
 
-#: template/index.html.j2:46
+#: template/index.html.j2:48
 msgid "Try Demo!"
 msgstr ""
 
-#: template/index.html.j2:47
+#: template/index.html.j2:49
 msgid "Read Docs"
 msgstr ""
 
@@ -2713,24 +2719,6 @@ msgstr ""
 msgid "customer perspective"
 msgstr ""
 
-#: template/news.html.j2:6
-msgid "News"
-msgstr ""
-
-#: template/news.html.j2:16
-msgid "More news"
-msgstr ""
-
-#: template/old-news.html.j2:6
-#, fuzzy
-#| msgid "Taler News"
-msgid "Older News"
-msgstr "Taler-News"
-
-#: template/old-news.html.j2:9
-msgid "This page documents the GNU Taler history."
-msgstr ""
-
 #: template/press.html.j2:4
 msgid "GNU Taler in the Press"
 msgstr "Taler in den Medien"
@@ -3011,6 +2999,14 @@ msgstr ""
 msgid "Wallets for other browsers will be provided in the near future."
 msgstr ""
 
+#~ msgid "available upon request"
+#~ msgstr "erhältlich auf Anfrage"
+
+#, fuzzy
+#~| msgid "Taler News"
+#~ msgid "Older News"
+#~ msgstr "Taler-News"
+
 #, fuzzy
 #~| msgid "The Team"
 #~ msgid "Team"
diff --git a/locale/en/LC_MESSAGES/messages.po 
b/locale/en/LC_MESSAGES/messages.po
index d1f1086..7635599 100644
--- a/locale/en/LC_MESSAGES/messages.po
+++ b/locale/en/LC_MESSAGES/messages.po
@@ -2,14 +2,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2019-12-01 21:29+0100\n"
+"POT-Creation-Date: 2019-12-09 20:43+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: en <address@hidden>\n"
-"Language: en\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: en\n"
 "Plural-Forms: nplurals=2; plural=(n!=1)\n"
 "Generated-By: Babel 2.3.4\n"
 
@@ -17,7 +17,7 @@ msgstr ""
 msgid "GNU Taler"
 msgstr ""
 
-#: common/base.j2:6
+#: common/base.j2:6 common/news.j2:6
 msgid "Taxable Anonymous Libre Electronic Reserves"
 msgstr ""
 
@@ -63,6 +63,18 @@ msgstr ""
 msgid "Docs"
 msgstr ""
 
+#: common/navigation.j2.inc:24 news/index.html.j2:9
+msgid "News"
+msgstr ""
+
+#: common/news.j2:5
+msgid "GNUnet"
+msgstr ""
+
+#: inc/news.macro.j2:22
+msgid "read more"
+msgstr ""
+
 #: template/architecture.html.j2:6
 msgid "Taler System Architecture"
 msgstr ""
@@ -1561,37 +1573,37 @@ msgstr ""
 msgid "Shipment Tracking"
 msgstr ""
 
-#: template/index.html.j2:23
+#: template/index.html.j2:25
 msgid ""
 "We provide a payment system that makes <span class='tlr'>privacy-friendly</"
 "span> online transactions <span class='tlr'>fast and easy</span>."
 msgstr ""
 
-#: template/index.html.j2:27
+#: template/index.html.j2:29
 msgid "Payments without registration"
 msgstr ""
 
-#: template/index.html.j2:31
+#: template/index.html.j2:33
 msgid "Data protection by default"
 msgstr ""
 
-#: template/index.html.j2:35
+#: template/index.html.j2:37
 msgid "Fraud eliminated by design"
 msgstr ""
 
-#: template/index.html.j2:39
+#: template/index.html.j2:41
 msgid "Not a new currency!"
 msgstr ""
 
-#: template/index.html.j2:43
+#: template/index.html.j2:45
 msgid "Empowers communities to run their own payment infrastructure"
 msgstr ""
 
-#: template/index.html.j2:46
+#: template/index.html.j2:48
 msgid "Try Demo!"
 msgstr ""
 
-#: template/index.html.j2:47
+#: template/index.html.j2:49
 msgid "Read Docs"
 msgstr ""
 
@@ -1836,22 +1848,6 @@ msgstr ""
 msgid "customer perspective"
 msgstr ""
 
-#: template/news.html.j2:6
-msgid "News"
-msgstr ""
-
-#: template/news.html.j2:16
-msgid "More news"
-msgstr ""
-
-#: template/old-news.html.j2:6
-msgid "Older News"
-msgstr ""
-
-#: template/old-news.html.j2:9
-msgid "This page documents the GNU Taler history."
-msgstr ""
-
 #: template/press.html.j2:4
 msgid "GNU Taler in the Press"
 msgstr ""
diff --git a/locale/es/LC_MESSAGES/messages.po 
b/locale/es/LC_MESSAGES/messages.po
index e20c1fe..0e6b067 100644
--- a/locale/es/LC_MESSAGES/messages.po
+++ b/locale/es/LC_MESSAGES/messages.po
@@ -2,14 +2,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2019-12-01 21:29+0100\n"
+"POT-Creation-Date: 2019-12-10 00:42+0000\n"
 "PO-Revision-Date: 2017-08-10 06:24+0200\n"
 "Last-Translator: \n"
 "Language-Team: es <address@hidden>\n"
-"Language: es\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: es\n"
 "Plural-Forms: nplurals=2; plural=(n!=1);\n"
 "Generated-By: Babel 2.3.4\n"
 "X-Generator: Poedit 2.0.2\n"
@@ -18,7 +18,7 @@ msgstr ""
 msgid "GNU Taler"
 msgstr "GNU Taler"
 
-#: common/base.j2:6
+#: common/base.j2:6 common/news.j2:6
 msgid "Taxable Anonymous Libre Electronic Reserves"
 msgstr "Reservas Electrónicas Gravales, Anónimas y Libres"
 
@@ -34,19 +34,18 @@ msgstr "Preguntas frecuentes"
 msgid "Bibliography"
 msgstr "Bibliografía"
 
-#: common/footer.j2.inc:27 template/bibliography.html.j2:23
-#: template/bibliography.html.j2:30 template/bibliography.html.j2:37
-#: template/bibliography.html.j2:43 template/developers.html.j2:66
+#: common/footer.j2.inc:28 template/bibliography.html.j2:33
+#: template/developers.html.j2:66
 msgid "and"
 msgstr "y"
 
-#: common/footer.j2.inc:30
+#: common/footer.j2.inc:31
 msgid ""
 "We are grateful for support and free hosting of this site by <a href='http://";
 "www.bfh.ch/'>BFH</a>"
 msgstr ""
 
-#: common/footer.j2.inc:32
+#: common/footer.j2.inc:33
 msgid ""
 "This page was created using <a href='https://www.gnu.org/'>Free Software</a> "
 "only."
@@ -66,24 +65,30 @@ msgstr ""
 msgid "Docs"
 msgstr ""
 
+#: common/navigation.j2.inc:24 news/index.html.j2:9
+msgid "News"
+msgstr ""
+
+#: common/news.j2:5
+msgid "GNUnet"
+msgstr ""
+
+#: inc/news.macro.j2:22
+msgid "read more"
+msgstr ""
+
 #: template/architecture.html.j2:6
 msgid "Taler System Architecture"
 msgstr "Arquitectura del Sistema Taler"
 
-#: template/bibliography.html.j2:4
+#: template/bibliography.html.j2:5
 msgid "GNU Taler Bibliography"
 msgstr "Bibliografía de GNU Taler"
 
-#: template/bibliography.html.j2:9 template/bibliography.html.j2:16
-#: template/bibliography.html.j2:23 template/bibliography.html.j2:30
-#: template/bibliography.html.j2:37 template/bibliography.html.j2:43
+#: template/bibliography.html.j2:27
 msgid "by"
 msgstr "por"
 
-#: template/bibliography.html.j2:44
-msgid "available upon request"
-msgstr "disponible bajo petición"
-
 #: template/contact.html.j2:6
 msgid "Contact information"
 msgstr "Contacto"
@@ -619,7 +624,7 @@ msgid "Exchange"
 msgstr "Plataforma de intercambio"
 
 #: template/docs.html.j2:64
-msgid "Operator's manual for the GNU Taler exchange. Also available as"
+msgid "Operator&#39;s manual for the GNU Taler exchange. Also available as"
 msgstr ""
 
 #: template/docs.html.j2:74
@@ -1027,7 +1032,7 @@ msgstr ""
 msgid ""
 "When making a payment, customers only need a charged wallet. A merchant can "
 "accept payments <span class=\"tlr\">without making their customers register</"
-"span> on the merchant's Website."
+"span> on the merchant&#39;s Website."
 msgstr ""
 
 #: template/features.html.j2:50
@@ -1053,8 +1058,8 @@ msgstr "Pagando con Taler"
 #| "or identity theft.</p>"
 msgid ""
 "To pay with Taler, customers install an electronic wallet on their device. "
-"Before the first payment, the desired currency must be added to the wallet's "
-"balance by some other means of payment."
+"Before the first payment, the desired currency must be added to the "
+"wallet&#39;s balance by some other means of payment."
 msgstr ""
 "<p>Para pagar con Taler, los clientes instalan una billetera electrónica en "
 "su dispositivo. Antes del primer pago, el saldo de la billetera debe ser "
@@ -1103,8 +1108,9 @@ msgstr "Recibiendo pagos con Taler"
 msgid ""
 "To receive Taler payments, a merchant needs a bank account in the desired "
 "currency. We provide supporting software in various programming languages to "
-"make the integration painless. The merchant's backend for Taler transaction "
-"processing can run on the merchant's premises or be hosted by a third party."
+"make the integration painless. The merchant&#39;s backend for Taler "
+"transaction processing can run on the merchant&#39;s premises or be hosted "
+"by a third party."
 msgstr ""
 "<p>Para recibir pagos con Taler, un comerciante necesita una cuenta bancaria "
 "en la moneda deseada. Nosotros proporcionamos el software de apoyo en varios "
@@ -1142,10 +1148,16 @@ msgid "Stable"
 msgstr "Estable"
 
 #: template/features.html.j2:143
+#, fuzzy
+#| msgid ""
+#| "Taler does not introduce a new currency. Taler uses a digital wallet "
+#| "storing coins and payment service providers with escrow accounts in "
+#| "existing currencies. Thus, Taler's cryptographic coins correspond to "
+#| "existing currencies, such as US Dollars, Euros or even Bitcoins."
 msgid ""
 "Taler does not introduce a new currency. Taler uses a digital wallet storing "
 "coins and payment service providers with escrow accounts in existing "
-"currencies. Thus, Taler's cryptographic coins correspond to existing "
+"currencies. Thus, Taler&#39;s cryptographic coins correspond to existing "
 "currencies, such as US Dollars, Euros or even Bitcoins."
 msgstr ""
 "Taler no introduce una nueva moneda. Taler utiliza una billetera electrónica "
@@ -1175,8 +1187,13 @@ msgid "Taxable"
 msgstr "Imponible"
 
 #: template/features.html.j2:172
+#, fuzzy
+#| msgid ""
+#| "When using Taler, merchant's revenue is transparent for tax collection "
+#| "authorities. Unlike cash and most digital currencies, Taler helps prevent "
+#| "black markets. Taler is not suitable for illegal activities."
 msgid ""
-"When using Taler, merchant's revenue is transparent for tax collection "
+"When using Taler, merchant&#39;s revenue is transparent for tax collection "
 "authorities. Unlike cash and most digital currencies, Taler helps prevent "
 "black markets. Taler is not suitable for illegal activities."
 msgstr ""
@@ -2040,37 +2057,37 @@ msgstr ""
 msgid "Shipment Tracking"
 msgstr ""
 
-#: template/index.html.j2:23
+#: template/index.html.j2:25
 msgid ""
 "We provide a payment system that makes <span class='tlr'>privacy-friendly</"
 "span> online transactions <span class='tlr'>fast and easy</span>."
 msgstr ""
 
-#: template/index.html.j2:27
+#: template/index.html.j2:29
 msgid "Payments without registration"
 msgstr ""
 
-#: template/index.html.j2:31
+#: template/index.html.j2:33
 msgid "Data protection by default"
 msgstr ""
 
-#: template/index.html.j2:35
+#: template/index.html.j2:37
 msgid "Fraud eliminated by design"
 msgstr ""
 
-#: template/index.html.j2:39
+#: template/index.html.j2:41
 msgid "Not a new currency!"
 msgstr ""
 
-#: template/index.html.j2:43
+#: template/index.html.j2:45
 msgid "Empowers communities to run their own payment infrastructure"
 msgstr ""
 
-#: template/index.html.j2:46
+#: template/index.html.j2:48
 msgid "Try Demo!"
 msgstr ""
 
-#: template/index.html.j2:47
+#: template/index.html.j2:49
 msgid "Read Docs"
 msgstr ""
 
@@ -2413,24 +2430,6 @@ msgstr ""
 msgid "customer perspective"
 msgstr "Perspectiva del consumidor"
 
-#: template/news.html.j2:6
-msgid "News"
-msgstr ""
-
-#: template/news.html.j2:16
-msgid "More news"
-msgstr ""
-
-#: template/old-news.html.j2:6
-#, fuzzy
-#| msgid "Taler News"
-msgid "Older News"
-msgstr "Noticias de Taler"
-
-#: template/old-news.html.j2:9
-msgid "This page documents the GNU Taler history."
-msgstr ""
-
 #: template/press.html.j2:4
 msgid "GNU Taler in the Press"
 msgstr "GNU Taler en la Prensa"
@@ -2713,6 +2712,14 @@ msgstr ""
 msgid "Wallets for other browsers will be provided in the near future."
 msgstr ""
 
+#~ msgid "available upon request"
+#~ msgstr "disponible bajo petición"
+
+#, fuzzy
+#~| msgid "Taler News"
+#~ msgid "Older News"
+#~ msgstr "Noticias de Taler"
+
 #, fuzzy
 #~| msgid "The Team"
 #~ msgid "Team"
diff --git a/locale/fr/LC_MESSAGES/messages.po 
b/locale/fr/LC_MESSAGES/messages.po
index 4746f68..4b3bab3 100644
--- a/locale/fr/LC_MESSAGES/messages.po
+++ b/locale/fr/LC_MESSAGES/messages.po
@@ -2,14 +2,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2019-12-01 21:29+0100\n"
+"POT-Creation-Date: 2019-12-10 00:42+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: fr <address@hidden>\n"
-"Language: fr\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: fr\n"
 "Plural-Forms: nplurals=2; plural=(n!=1)\n"
 "Generated-By: Babel 2.3.4\n"
 
@@ -17,7 +17,7 @@ msgstr ""
 msgid "GNU Taler"
 msgstr ""
 
-#: common/base.j2:6
+#: common/base.j2:6 common/news.j2:6
 msgid "Taxable Anonymous Libre Electronic Reserves"
 msgstr ""
 
@@ -33,19 +33,18 @@ msgstr ""
 msgid "Bibliography"
 msgstr ""
 
-#: common/footer.j2.inc:27 template/bibliography.html.j2:23
-#: template/bibliography.html.j2:30 template/bibliography.html.j2:37
-#: template/bibliography.html.j2:43 template/developers.html.j2:66
+#: common/footer.j2.inc:28 template/bibliography.html.j2:33
+#: template/developers.html.j2:66
 msgid "and"
 msgstr ""
 
-#: common/footer.j2.inc:30
+#: common/footer.j2.inc:31
 msgid ""
 "We are grateful for support and free hosting of this site by <a href='http://";
 "www.bfh.ch/'>BFH</a>"
 msgstr ""
 
-#: common/footer.j2.inc:32
+#: common/footer.j2.inc:33
 msgid ""
 "This page was created using <a href='https://www.gnu.org/'>Free Software</a> "
 "only."
@@ -63,26 +62,32 @@ msgstr ""
 msgid "Docs"
 msgstr ""
 
+#: common/navigation.j2.inc:24 news/index.html.j2:9
+msgid "News"
+msgstr ""
+
+#: common/news.j2:5
+msgid "GNUnet"
+msgstr ""
+
+#: inc/news.macro.j2:22
+msgid "read more"
+msgstr ""
+
 #: template/architecture.html.j2:6
 #, fuzzy
 #| msgid "Taler system overview"
 msgid "Taler System Architecture"
 msgstr "Vue d'ensemble de Taler"
 
-#: template/bibliography.html.j2:4
+#: template/bibliography.html.j2:5
 msgid "GNU Taler Bibliography"
 msgstr ""
 
-#: template/bibliography.html.j2:9 template/bibliography.html.j2:16
-#: template/bibliography.html.j2:23 template/bibliography.html.j2:30
-#: template/bibliography.html.j2:37 template/bibliography.html.j2:43
+#: template/bibliography.html.j2:27
 msgid "by"
 msgstr ""
 
-#: template/bibliography.html.j2:44
-msgid "available upon request"
-msgstr ""
-
 #: template/contact.html.j2:6
 msgid "Contact information"
 msgstr ""
@@ -441,7 +446,7 @@ msgid "Exchange"
 msgstr ""
 
 #: template/docs.html.j2:64
-msgid "Operator's manual for the GNU Taler exchange. Also available as"
+msgid "Operator&#39;s manual for the GNU Taler exchange. Also available as"
 msgstr ""
 
 #: template/docs.html.j2:74
@@ -758,7 +763,7 @@ msgstr ""
 msgid ""
 "When making a payment, customers only need a charged wallet. A merchant can "
 "accept payments <span class=\"tlr\">without making their customers register</"
-"span> on the merchant's Website."
+"span> on the merchant&#39;s Website."
 msgstr ""
 
 #: template/features.html.j2:50
@@ -776,8 +781,8 @@ msgstr ""
 #: template/features.html.j2:71
 msgid ""
 "To pay with Taler, customers install an electronic wallet on their device. "
-"Before the first payment, the desired currency must be added to the wallet's "
-"balance by some other means of payment."
+"Before the first payment, the desired currency must be added to the "
+"wallet&#39;s balance by some other means of payment."
 msgstr ""
 
 #: template/features.html.j2:79
@@ -799,8 +804,9 @@ msgstr ""
 msgid ""
 "To receive Taler payments, a merchant needs a bank account in the desired "
 "currency. We provide supporting software in various programming languages to "
-"make the integration painless. The merchant's backend for Taler transaction "
-"processing can run on the merchant's premises or be hosted by a third party."
+"make the integration painless. The merchant&#39;s backend for Taler "
+"transaction processing can run on the merchant&#39;s premises or be hosted "
+"by a third party."
 msgstr ""
 
 #: template/features.html.j2:105
@@ -836,7 +842,7 @@ msgstr "Taxable"
 msgid ""
 "Taler does not introduce a new currency. Taler uses a digital wallet storing "
 "coins and payment service providers with escrow accounts in existing "
-"currencies. Thus, Taler's cryptographic coins correspond to existing "
+"currencies. Thus, Taler&#39;s cryptographic coins correspond to existing "
 "currencies, such as US Dollars, Euros or even Bitcoins."
 msgstr ""
 
@@ -858,7 +864,7 @@ msgstr "Taxable"
 
 #: template/features.html.j2:172
 msgid ""
-"When using Taler, merchant's revenue is transparent for tax collection "
+"When using Taler, merchant&#39;s revenue is transparent for tax collection "
 "authorities. Unlike cash and most digital currencies, Taler helps prevent "
 "black markets. Taler is not suitable for illegal activities."
 msgstr ""
@@ -1577,37 +1583,37 @@ msgstr ""
 msgid "Shipment Tracking"
 msgstr ""
 
-#: template/index.html.j2:23
+#: template/index.html.j2:25
 msgid ""
 "We provide a payment system that makes <span class='tlr'>privacy-friendly</"
 "span> online transactions <span class='tlr'>fast and easy</span>."
 msgstr ""
 
-#: template/index.html.j2:27
+#: template/index.html.j2:29
 msgid "Payments without registration"
 msgstr ""
 
-#: template/index.html.j2:31
+#: template/index.html.j2:33
 msgid "Data protection by default"
 msgstr ""
 
-#: template/index.html.j2:35
+#: template/index.html.j2:37
 msgid "Fraud eliminated by design"
 msgstr ""
 
-#: template/index.html.j2:39
+#: template/index.html.j2:41
 msgid "Not a new currency!"
 msgstr ""
 
-#: template/index.html.j2:43
+#: template/index.html.j2:45
 msgid "Empowers communities to run their own payment infrastructure"
 msgstr ""
 
-#: template/index.html.j2:46
+#: template/index.html.j2:48
 msgid "Try Demo!"
 msgstr ""
 
-#: template/index.html.j2:47
+#: template/index.html.j2:49
 msgid "Read Docs"
 msgstr ""
 
@@ -1854,22 +1860,6 @@ msgstr ""
 msgid "customer perspective"
 msgstr ""
 
-#: template/news.html.j2:6
-msgid "News"
-msgstr ""
-
-#: template/news.html.j2:16
-msgid "More news"
-msgstr ""
-
-#: template/old-news.html.j2:6
-msgid "Older News"
-msgstr ""
-
-#: template/old-news.html.j2:9
-msgid "This page documents the GNU Taler history."
-msgstr ""
-
 #: template/press.html.j2:4
 msgid "GNU Taler in the Press"
 msgstr ""
diff --git a/locale/it/LC_MESSAGES/messages.po 
b/locale/it/LC_MESSAGES/messages.po
index a4d1774..181be43 100644
--- a/locale/it/LC_MESSAGES/messages.po
+++ b/locale/it/LC_MESSAGES/messages.po
@@ -2,14 +2,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2019-12-01 21:29+0100\n"
+"POT-Creation-Date: 2019-12-10 00:42+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: it <address@hidden>\n"
-"Language: it\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: it\n"
 "Plural-Forms: nplurals=2; plural=(n!=1)\n"
 "Generated-By: Babel 2.3.4\n"
 
@@ -17,7 +17,7 @@ msgstr ""
 msgid "GNU Taler"
 msgstr "GNU Taler"
 
-#: common/base.j2:6
+#: common/base.j2:6 common/news.j2:6
 msgid "Taxable Anonymous Libre Electronic Reserves"
 msgstr "Tassabili Anonime Libere Elettroniche Riserve"
 
@@ -35,19 +35,18 @@ msgstr "FAQ"
 msgid "Bibliography"
 msgstr "Bibliografia"
 
-#: common/footer.j2.inc:27 template/bibliography.html.j2:23
-#: template/bibliography.html.j2:30 template/bibliography.html.j2:37
-#: template/bibliography.html.j2:43 template/developers.html.j2:66
+#: common/footer.j2.inc:28 template/bibliography.html.j2:33
+#: template/developers.html.j2:66
 msgid "and"
 msgstr "e"
 
-#: common/footer.j2.inc:30
+#: common/footer.j2.inc:31
 msgid ""
 "We are grateful for support and free hosting of this site by <a href='http://";
 "www.bfh.ch/'>BFH</a>"
 msgstr ""
 
-#: common/footer.j2.inc:32
+#: common/footer.j2.inc:33
 msgid ""
 "This page was created using <a href='https://www.gnu.org/'>Free Software</a> "
 "only."
@@ -67,24 +66,30 @@ msgstr ""
 msgid "Docs"
 msgstr ""
 
+#: common/navigation.j2.inc:24 news/index.html.j2:9
+msgid "News"
+msgstr ""
+
+#: common/news.j2:5
+msgid "GNUnet"
+msgstr ""
+
+#: inc/news.macro.j2:22
+msgid "read more"
+msgstr ""
+
 #: template/architecture.html.j2:6
 msgid "Taler System Architecture"
 msgstr "Architettura Taler"
 
-#: template/bibliography.html.j2:4
+#: template/bibliography.html.j2:5
 msgid "GNU Taler Bibliography"
 msgstr "Bibliografia GNU Taler"
 
-#: template/bibliography.html.j2:9 template/bibliography.html.j2:16
-#: template/bibliography.html.j2:23 template/bibliography.html.j2:30
-#: template/bibliography.html.j2:37 template/bibliography.html.j2:43
+#: template/bibliography.html.j2:27
 msgid "by"
 msgstr "di"
 
-#: template/bibliography.html.j2:44
-msgid "available upon request"
-msgstr "disponibile su richiesta"
-
 #: template/contact.html.j2:6
 msgid "Contact information"
 msgstr "Contatti"
@@ -614,7 +619,7 @@ msgid "Exchange"
 msgstr "cambio"
 
 #: template/docs.html.j2:64
-msgid "Operator's manual for the GNU Taler exchange. Also available as"
+msgid "Operator&#39;s manual for the GNU Taler exchange. Also available as"
 msgstr ""
 
 #: template/docs.html.j2:74
@@ -1021,7 +1026,7 @@ msgstr ""
 msgid ""
 "When making a payment, customers only need a charged wallet. A merchant can "
 "accept payments <span class=\"tlr\">without making their customers register</"
-"span> on the merchant's Website."
+"span> on the merchant&#39;s Website."
 msgstr ""
 
 #: template/features.html.j2:50
@@ -1047,8 +1052,8 @@ msgstr "Pagare con Taler"
 #| "or identity theft.</p>"
 msgid ""
 "To pay with Taler, customers install an electronic wallet on their device. "
-"Before the first payment, the desired currency must be added to the wallet's "
-"balance by some other means of payment."
+"Before the first payment, the desired currency must be added to the "
+"wallet&#39;s balance by some other means of payment."
 msgstr ""
 "<p>Per pagare con Taler, i clienti installano un portafoglio elettronico sul "
 "proprio dispositivo. Prima del primo pagamento, il saldo del portafoglio "
@@ -1099,8 +1104,9 @@ msgstr "Ricevere pagamenti con Taler"
 msgid ""
 "To receive Taler payments, a merchant needs a bank account in the desired "
 "currency. We provide supporting software in various programming languages to "
-"make the integration painless. The merchant's backend for Taler transaction "
-"processing can run on the merchant's premises or be hosted by a third party."
+"make the integration painless. The merchant&#39;s backend for Taler "
+"transaction processing can run on the merchant&#39;s premises or be hosted "
+"by a third party."
 msgstr ""
 "<p>Per ricevere i pagamenti di Taler, un commerciante ha bisogno di un conto "
 "bancario nella valuta desiderata. Forniamo software di supporto in vari "
@@ -1137,10 +1143,16 @@ msgid "Stable"
 msgstr "Stabile"
 
 #: template/features.html.j2:143
+#, fuzzy
+#| msgid ""
+#| "Taler does not introduce a new currency. Taler uses a digital wallet "
+#| "storing coins and payment service providers with escrow accounts in "
+#| "existing currencies. Thus, Taler's cryptographic coins correspond to "
+#| "existing currencies, such as US Dollars, Euros or even Bitcoins."
 msgid ""
 "Taler does not introduce a new currency. Taler uses a digital wallet storing "
 "coins and payment service providers with escrow accounts in existing "
-"currencies. Thus, Taler's cryptographic coins correspond to existing "
+"currencies. Thus, Taler&#39;s cryptographic coins correspond to existing "
 "currencies, such as US Dollars, Euros or even Bitcoins."
 msgstr ""
 "Taler non introduce una nuova valuta. Taler utilizza un portafoglio digitale "
@@ -1170,8 +1182,13 @@ msgid "Taxable"
 msgstr "Tassabile"
 
 #: template/features.html.j2:172
+#, fuzzy
+#| msgid ""
+#| "When using Taler, merchant's revenue is transparent for tax collection "
+#| "authorities. Unlike cash and most digital currencies, Taler helps prevent "
+#| "black markets. Taler is not suitable for illegal activities."
 msgid ""
-"When using Taler, merchant's revenue is transparent for tax collection "
+"When using Taler, merchant&#39;s revenue is transparent for tax collection "
 "authorities. Unlike cash and most digital currencies, Taler helps prevent "
 "black markets. Taler is not suitable for illegal activities."
 msgstr ""
@@ -2038,37 +2055,37 @@ msgstr ""
 msgid "Shipment Tracking"
 msgstr ""
 
-#: template/index.html.j2:23
+#: template/index.html.j2:25
 msgid ""
 "We provide a payment system that makes <span class='tlr'>privacy-friendly</"
 "span> online transactions <span class='tlr'>fast and easy</span>."
 msgstr ""
 
-#: template/index.html.j2:27
+#: template/index.html.j2:29
 msgid "Payments without registration"
 msgstr ""
 
-#: template/index.html.j2:31
+#: template/index.html.j2:33
 msgid "Data protection by default"
 msgstr ""
 
-#: template/index.html.j2:35
+#: template/index.html.j2:37
 msgid "Fraud eliminated by design"
 msgstr ""
 
-#: template/index.html.j2:39
+#: template/index.html.j2:41
 msgid "Not a new currency!"
 msgstr ""
 
-#: template/index.html.j2:43
+#: template/index.html.j2:45
 msgid "Empowers communities to run their own payment infrastructure"
 msgstr ""
 
-#: template/index.html.j2:46
+#: template/index.html.j2:48
 msgid "Try Demo!"
 msgstr ""
 
-#: template/index.html.j2:47
+#: template/index.html.j2:49
 msgid "Read Docs"
 msgstr ""
 
@@ -2412,22 +2429,6 @@ msgstr ""
 msgid "customer perspective"
 msgstr ""
 
-#: template/news.html.j2:6
-msgid "News"
-msgstr ""
-
-#: template/news.html.j2:16
-msgid "More news"
-msgstr "Altre notizie"
-
-#: template/old-news.html.j2:6
-msgid "Older News"
-msgstr "Notizie precedenti"
-
-#: template/old-news.html.j2:9
-msgid "This page documents the GNU Taler history."
-msgstr "Questa pagina documenta la storia di GNU Taler. "
-
 #: template/press.html.j2:4
 msgid "GNU Taler in the Press"
 msgstr "GNU Taler nella Stampa"
@@ -2710,6 +2711,18 @@ msgstr ""
 msgid "Wallets for other browsers will be provided in the near future."
 msgstr ""
 
+#~ msgid "available upon request"
+#~ msgstr "disponibile su richiesta"
+
+#~ msgid "More news"
+#~ msgstr "Altre notizie"
+
+#~ msgid "Older News"
+#~ msgstr "Notizie precedenti"
+
+#~ msgid "This page documents the GNU Taler history."
+#~ msgstr "Questa pagina documenta la storia di GNU Taler. "
+
 #, fuzzy
 #~| msgid "The Team"
 #~ msgid "Team"
diff --git a/locale/pt/LC_MESSAGES/messages.po 
b/locale/pt/LC_MESSAGES/messages.po
index eebdf7a..9ba988f 100644
--- a/locale/pt/LC_MESSAGES/messages.po
+++ b/locale/pt/LC_MESSAGES/messages.po
@@ -6,14 +6,14 @@ msgid ""
 msgstr ""
 "Project-Id-Version: GNU taler master\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2019-12-01 21:29+0100\n"
+"POT-Creation-Date: 2019-12-10 00:42+0000\n"
 "PO-Revision-Date: 2018-01-28 15:27-0200\n"
 "Last-Translator: Rafael Fontenelle <address@hidden>\n"
 "Language-Team: Brazilian Portuguese\n"
-"Language: pt_BR\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"Language: pt_BR\n"
 "Plural-Forms: nplurals=2; plural=(n > 1);\n"
 "X-Generator: Virtaal 1.0.0-beta1\n"
 "Generated-By: Babel 2.5.3\n"
@@ -22,7 +22,7 @@ msgstr ""
 msgid "GNU Taler"
 msgstr "GNU Taler"
 
-#: common/base.j2:6
+#: common/base.j2:6 common/news.j2:6
 msgid "Taxable Anonymous Libre Electronic Reserves"
 msgstr "Reservas eletrônicas livres, anônimas, tributáveis"
 
@@ -38,19 +38,18 @@ msgstr "FAQ"
 msgid "Bibliography"
 msgstr "Bibliografia"
 
-#: common/footer.j2.inc:27 template/bibliography.html.j2:23
-#: template/bibliography.html.j2:30 template/bibliography.html.j2:37
-#: template/bibliography.html.j2:43 template/developers.html.j2:66
+#: common/footer.j2.inc:28 template/bibliography.html.j2:33
+#: template/developers.html.j2:66
 msgid "and"
 msgstr "e"
 
-#: common/footer.j2.inc:30
+#: common/footer.j2.inc:31
 msgid ""
 "We are grateful for support and free hosting of this site by <a href='http://";
 "www.bfh.ch/'>BFH</a>"
 msgstr ""
 
-#: common/footer.j2.inc:32
+#: common/footer.j2.inc:33
 msgid ""
 "This page was created using <a href='https://www.gnu.org/'>Free Software</a> "
 "only."
@@ -70,24 +69,30 @@ msgstr ""
 msgid "Docs"
 msgstr ""
 
+#: common/navigation.j2.inc:24 news/index.html.j2:9
+msgid "News"
+msgstr ""
+
+#: common/news.j2:5
+msgid "GNUnet"
+msgstr ""
+
+#: inc/news.macro.j2:22
+msgid "read more"
+msgstr ""
+
 #: template/architecture.html.j2:6
 msgid "Taler System Architecture"
 msgstr "Arquitetura do sistema Taler"
 
-#: template/bibliography.html.j2:4
+#: template/bibliography.html.j2:5
 msgid "GNU Taler Bibliography"
 msgstr "Bibliografia do GNU Taler"
 
-#: template/bibliography.html.j2:9 template/bibliography.html.j2:16
-#: template/bibliography.html.j2:23 template/bibliography.html.j2:30
-#: template/bibliography.html.j2:37 template/bibliography.html.j2:43
+#: template/bibliography.html.j2:27
 msgid "by"
 msgstr "por"
 
-#: template/bibliography.html.j2:44
-msgid "available upon request"
-msgstr "disponível mediante solicitação"
-
 #: template/contact.html.j2:6
 msgid "Contact information"
 msgstr "Informações de contato"
@@ -609,7 +614,7 @@ msgid "Exchange"
 msgstr "câmbio <i>(exchange)</i>"
 
 #: template/docs.html.j2:64
-msgid "Operator's manual for the GNU Taler exchange. Also available as"
+msgid "Operator&#39;s manual for the GNU Taler exchange. Also available as"
 msgstr ""
 
 #: template/docs.html.j2:74
@@ -1014,7 +1019,7 @@ msgstr ""
 msgid ""
 "When making a payment, customers only need a charged wallet. A merchant can "
 "accept payments <span class=\"tlr\">without making their customers register</"
-"span> on the merchant's Website."
+"span> on the merchant&#39;s Website."
 msgstr ""
 
 #: template/features.html.j2:50
@@ -1040,8 +1045,8 @@ msgstr "Pagando com o Taler"
 #| "or identity theft.</p>"
 msgid ""
 "To pay with Taler, customers install an electronic wallet on their device. "
-"Before the first payment, the desired currency must be added to the wallet's "
-"balance by some other means of payment."
+"Before the first payment, the desired currency must be added to the "
+"wallet&#39;s balance by some other means of payment."
 msgstr ""
 "<p>Para pagar com o Taler, os clientes instalam uma carteira eletrônica em "
 "seu dispositivo. Antes do primeiro pagamento, a moeda desejada deve ser "
@@ -1090,8 +1095,9 @@ msgstr "Recebendo pagamentos com o Taler"
 msgid ""
 "To receive Taler payments, a merchant needs a bank account in the desired "
 "currency. We provide supporting software in various programming languages to "
-"make the integration painless. The merchant's backend for Taler transaction "
-"processing can run on the merchant's premises or be hosted by a third party."
+"make the integration painless. The merchant&#39;s backend for Taler "
+"transaction processing can run on the merchant&#39;s premises or be hosted "
+"by a third party."
 msgstr ""
 "<p>Para receber pagamentos do Taler, um comerciante precisa de uma conta "
 "bancária na moeda desejada. Nós fornecemos software de suporte em várias "
@@ -1128,10 +1134,16 @@ msgid "Stable"
 msgstr "Estável"
 
 #: template/features.html.j2:143
+#, fuzzy
+#| msgid ""
+#| "Taler does not introduce a new currency. Taler uses a digital wallet "
+#| "storing coins and payment service providers with escrow accounts in "
+#| "existing currencies. Thus, Taler's cryptographic coins correspond to "
+#| "existing currencies, such as US Dollars, Euros or even Bitcoins."
 msgid ""
 "Taler does not introduce a new currency. Taler uses a digital wallet storing "
 "coins and payment service providers with escrow accounts in existing "
-"currencies. Thus, Taler's cryptographic coins correspond to existing "
+"currencies. Thus, Taler&#39;s cryptographic coins correspond to existing "
 "currencies, such as US Dollars, Euros or even Bitcoins."
 msgstr ""
 "O Taler não introduz uma nova moeda. A Taler usa uma carteira digital que "
@@ -1161,8 +1173,13 @@ msgid "Taxable"
 msgstr "Tributável"
 
 #: template/features.html.j2:172
+#, fuzzy
+#| msgid ""
+#| "When using Taler, merchant's revenue is transparent for tax collection "
+#| "authorities. Unlike cash and most digital currencies, Taler helps prevent "
+#| "black markets. Taler is not suitable for illegal activities."
 msgid ""
-"When using Taler, merchant's revenue is transparent for tax collection "
+"When using Taler, merchant&#39;s revenue is transparent for tax collection "
 "authorities. Unlike cash and most digital currencies, Taler helps prevent "
 "black markets. Taler is not suitable for illegal activities."
 msgstr ""
@@ -2018,37 +2035,37 @@ msgstr ""
 msgid "Shipment Tracking"
 msgstr ""
 
-#: template/index.html.j2:23
+#: template/index.html.j2:25
 msgid ""
 "We provide a payment system that makes <span class='tlr'>privacy-friendly</"
 "span> online transactions <span class='tlr'>fast and easy</span>."
 msgstr ""
 
-#: template/index.html.j2:27
+#: template/index.html.j2:29
 msgid "Payments without registration"
 msgstr ""
 
-#: template/index.html.j2:31
+#: template/index.html.j2:33
 msgid "Data protection by default"
 msgstr ""
 
-#: template/index.html.j2:35
+#: template/index.html.j2:37
 msgid "Fraud eliminated by design"
 msgstr ""
 
-#: template/index.html.j2:39
+#: template/index.html.j2:41
 msgid "Not a new currency!"
 msgstr ""
 
-#: template/index.html.j2:43
+#: template/index.html.j2:45
 msgid "Empowers communities to run their own payment infrastructure"
 msgstr ""
 
-#: template/index.html.j2:46
+#: template/index.html.j2:48
 msgid "Try Demo!"
 msgstr ""
 
-#: template/index.html.j2:47
+#: template/index.html.j2:49
 msgid "Read Docs"
 msgstr ""
 
@@ -2379,22 +2396,6 @@ msgstr ""
 msgid "customer perspective"
 msgstr "perspectiva do cliente"
 
-#: template/news.html.j2:6
-msgid "News"
-msgstr ""
-
-#: template/news.html.j2:16
-msgid "More news"
-msgstr "Mais notícias"
-
-#: template/old-news.html.j2:6
-msgid "Older News"
-msgstr "Notícias mais antigas"
-
-#: template/old-news.html.j2:9
-msgid "This page documents the GNU Taler history."
-msgstr "Essa página documenta o histórico do GNU Taler."
-
 #: template/press.html.j2:4
 msgid "GNU Taler in the Press"
 msgstr "GNU Taler na imprensa"
@@ -2677,6 +2678,18 @@ msgstr ""
 msgid "Wallets for other browsers will be provided in the near future."
 msgstr ""
 
+#~ msgid "available upon request"
+#~ msgstr "disponível mediante solicitação"
+
+#~ msgid "More news"
+#~ msgstr "Mais notícias"
+
+#~ msgid "Older News"
+#~ msgstr "Notícias mais antigas"
+
+#~ msgid "This page documents the GNU Taler history."
+#~ msgstr "Essa página documenta o histórico do GNU Taler."
+
 #, fuzzy
 #~| msgid "The Team"
 #~ msgid "Team"
diff --git a/locale/ru/LC_MESSAGES/messages.po 
b/locale/ru/LC_MESSAGES/messages.po
index 236a331..d7331c2 100644
--- a/locale/ru/LC_MESSAGES/messages.po
+++ b/locale/ru/LC_MESSAGES/messages.po
@@ -7,23 +7,23 @@ msgid ""
 msgstr ""
 "Project-Id-Version: PROJECT VERSION\n"
 "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
-"POT-Creation-Date: 2019-12-01 21:29+0100\n"
+"POT-Creation-Date: 2019-12-10 00:42+0000\n"
 "PO-Revision-Date: 2017-12-29 11:14+0100\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: ru <address@hidden>\n"
-"Language: ru\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
-"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
+"Language: ru\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%"
+"10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n"
 "Generated-By: Babel 2.5.1\n"
 
 #: common/base.j2:5
 msgid "GNU Taler"
 msgstr ""
 
-#: common/base.j2:6
+#: common/base.j2:6 common/news.j2:6
 msgid "Taxable Anonymous Libre Electronic Reserves"
 msgstr ""
 
@@ -39,19 +39,18 @@ msgstr ""
 msgid "Bibliography"
 msgstr ""
 
-#: common/footer.j2.inc:27 template/bibliography.html.j2:23
-#: template/bibliography.html.j2:30 template/bibliography.html.j2:37
-#: template/bibliography.html.j2:43 template/developers.html.j2:66
+#: common/footer.j2.inc:28 template/bibliography.html.j2:33
+#: template/developers.html.j2:66
 msgid "and"
 msgstr ""
 
-#: common/footer.j2.inc:30
+#: common/footer.j2.inc:31
 msgid ""
 "We are grateful for support and free hosting of this site by <a href='http://";
 "www.bfh.ch/'>BFH</a>"
 msgstr ""
 
-#: common/footer.j2.inc:32
+#: common/footer.j2.inc:33
 msgid ""
 "This page was created using <a href='https://www.gnu.org/'>Free Software</a> "
 "only."
@@ -69,24 +68,30 @@ msgstr ""
 msgid "Docs"
 msgstr ""
 
+#: common/navigation.j2.inc:24 news/index.html.j2:9
+msgid "News"
+msgstr ""
+
+#: common/news.j2:5
+msgid "GNUnet"
+msgstr ""
+
+#: inc/news.macro.j2:22
+msgid "read more"
+msgstr ""
+
 #: template/architecture.html.j2:6
 msgid "Taler System Architecture"
 msgstr ""
 
-#: template/bibliography.html.j2:4
+#: template/bibliography.html.j2:5
 msgid "GNU Taler Bibliography"
 msgstr ""
 
-#: template/bibliography.html.j2:9 template/bibliography.html.j2:16
-#: template/bibliography.html.j2:23 template/bibliography.html.j2:30
-#: template/bibliography.html.j2:37 template/bibliography.html.j2:43
+#: template/bibliography.html.j2:27
 msgid "by"
 msgstr ""
 
-#: template/bibliography.html.j2:44
-msgid "available upon request"
-msgstr ""
-
 #: template/contact.html.j2:6
 msgid "Contact information"
 msgstr ""
@@ -441,7 +446,7 @@ msgid "Exchange"
 msgstr ""
 
 #: template/docs.html.j2:64
-msgid "Operator's manual for the GNU Taler exchange. Also available as"
+msgid "Operator&#39;s manual for the GNU Taler exchange. Also available as"
 msgstr ""
 
 #: template/docs.html.j2:74
@@ -758,7 +763,7 @@ msgstr ""
 msgid ""
 "When making a payment, customers only need a charged wallet. A merchant can "
 "accept payments <span class=\"tlr\">without making their customers register</"
-"span> on the merchant's Website."
+"span> on the merchant&#39;s Website."
 msgstr ""
 
 #: template/features.html.j2:50
@@ -776,8 +781,8 @@ msgstr ""
 #: template/features.html.j2:71
 msgid ""
 "To pay with Taler, customers install an electronic wallet on their device. "
-"Before the first payment, the desired currency must be added to the wallet's "
-"balance by some other means of payment."
+"Before the first payment, the desired currency must be added to the "
+"wallet&#39;s balance by some other means of payment."
 msgstr ""
 
 #: template/features.html.j2:79
@@ -799,8 +804,9 @@ msgstr ""
 msgid ""
 "To receive Taler payments, a merchant needs a bank account in the desired "
 "currency. We provide supporting software in various programming languages to "
-"make the integration painless. The merchant's backend for Taler transaction "
-"processing can run on the merchant's premises or be hosted by a third party."
+"make the integration painless. The merchant&#39;s backend for Taler "
+"transaction processing can run on the merchant&#39;s premises or be hosted "
+"by a third party."
 msgstr ""
 
 #: template/features.html.j2:105
@@ -832,7 +838,7 @@ msgstr ""
 msgid ""
 "Taler does not introduce a new currency. Taler uses a digital wallet storing "
 "coins and payment service providers with escrow accounts in existing "
-"currencies. Thus, Taler's cryptographic coins correspond to existing "
+"currencies. Thus, Taler&#39;s cryptographic coins correspond to existing "
 "currencies, such as US Dollars, Euros or even Bitcoins."
 msgstr ""
 
@@ -854,7 +860,7 @@ msgstr ""
 
 #: template/features.html.j2:172
 msgid ""
-"When using Taler, merchant's revenue is transparent for tax collection "
+"When using Taler, merchant&#39;s revenue is transparent for tax collection "
 "authorities. Unlike cash and most digital currencies, Taler helps prevent "
 "black markets. Taler is not suitable for illegal activities."
 msgstr ""
@@ -1567,37 +1573,37 @@ msgstr ""
 msgid "Shipment Tracking"
 msgstr ""
 
-#: template/index.html.j2:23
+#: template/index.html.j2:25
 msgid ""
 "We provide a payment system that makes <span class='tlr'>privacy-friendly</"
 "span> online transactions <span class='tlr'>fast and easy</span>."
 msgstr ""
 
-#: template/index.html.j2:27
+#: template/index.html.j2:29
 msgid "Payments without registration"
 msgstr ""
 
-#: template/index.html.j2:31
+#: template/index.html.j2:33
 msgid "Data protection by default"
 msgstr ""
 
-#: template/index.html.j2:35
+#: template/index.html.j2:37
 msgid "Fraud eliminated by design"
 msgstr ""
 
-#: template/index.html.j2:39
+#: template/index.html.j2:41
 msgid "Not a new currency!"
 msgstr ""
 
-#: template/index.html.j2:43
+#: template/index.html.j2:45
 msgid "Empowers communities to run their own payment infrastructure"
 msgstr ""
 
-#: template/index.html.j2:46
+#: template/index.html.j2:48
 msgid "Try Demo!"
 msgstr ""
 
-#: template/index.html.j2:47
+#: template/index.html.j2:49
 msgid "Read Docs"
 msgstr ""
 
@@ -1842,22 +1848,6 @@ msgstr ""
 msgid "customer perspective"
 msgstr ""
 
-#: template/news.html.j2:6
-msgid "News"
-msgstr ""
-
-#: template/news.html.j2:16
-msgid "More news"
-msgstr ""
-
-#: template/old-news.html.j2:6
-msgid "Older News"
-msgstr ""
-
-#: template/old-news.html.j2:9
-msgid "This page documents the GNU Taler history."
-msgstr ""
-
 #: template/press.html.j2:4
 msgid "GNU Taler in the Press"
 msgstr ""
diff --git a/make_site.py b/make_site.py
index d7be569..4c2605a 100755
--- a/make_site.py
+++ b/make_site.py
@@ -9,79 +9,51 @@
 #
 # Note that the gettext files need to be prepared first. This script
 # is thus to be invoked via the Makefile.
-import os
-import os.path
-import sys
-import re
-import gettext
 import jinja2
-import glob
-import codecs
-import os
-sys.path.append(os.getcwd())
-import i18nfix
+import sys
+from pathlib import Path, PurePath
+from inc.site import gen_site
+from inc.fileproc import copy_files
 
-env = 
jinja2.Environment(loader=jinja2.FileSystemLoader(os.path.dirname(__file__)),
+env = 
jinja2.Environment(loader=jinja2.FileSystemLoader(str(PurePath(__file__).parent)),
                          extensions=["jinja2.ext.i18n"],
                          lstrip_blocks=True,
                          trim_blocks=True,
                          undefined=jinja2.StrictUndefined,
                          autoescape=False)
 
-langs_full = {"en": "English",
-              "fr": "Français",
-              "it": "Italiano",
-              "es": "Español",
-              "de": "Deutsch",
-              "ru": "Ру́сский язы́к",
-              "pt": "Português"}
-
-for in_file in glob.glob("template/*.j2"):
-    name, ext = re.match(r"(.*)\.([^.]+)$", in_file.rstrip(".j2")).groups()
-    tmpl = env.get_template(in_file)
-
-    def self_localized(other_locale):
-        """
-        Return URL for the current page in another locale.
-        """
-        return "../" + other_locale + "/" + in_file.replace('template/', 
'').rstrip(".j2")
-
-    def url_localized(filename):
-        return "../" + locale + "/" + filename
-
-    def svg_localized(filename):
-        lf = filename + "." + locale + ".svg"
-        if "en" == locale or not os.path.isfile (lf):
-            return "../" + filename + ".svg"
-        else:
-            return "../" + lf
-
-    def url(x):
-        # TODO: look at the app root environment variable
-        # TODO: check if file exists
-        return "../" + x
-
-    for l in glob.glob("locale/*/"):
-        locale = os.path.basename(l[:-1])
-
-        tr = gettext.translation("messages",
-                                 localedir="locale",
-                                 languages=[locale])
-
-        tr.gettext = i18nfix.wrap_gettext(tr.gettext)
-
-        env.install_gettext_translations(tr, newstyle=True)
-
-        content = tmpl.render(
-                docshost="docs.taler.net",
-                lang=locale,
-                lang_full=langs_full[locale],
-                url=url,
-                self_localized=self_localized,
-                url_localized=url_localized,
-                svg_localized=svg_localized,
-                filename=name + "." + ext)
-        out_name = "./rendered/" + locale + "/" + in_file.replace('template/', 
'').rstrip(".j2")
-        os.makedirs("./rendered/" + locale, exist_ok=True)
-        with codecs.open(out_name, "w", encoding='utf-8') as f:
-            f.write(content)
+if len(sys.argv) >= 2 and sys.argv[1] == "-vv":
+    DEBUG=1
+elif len(sys.argv) >= 2 and sys.argv[1] == "-vvv":
+    DEBUG=2
+elif len(sys.argv) >= 2 and sys.argv[1] == "-vvvv":
+    DEBUG=3
+else:
+    DEBUG=0
+
+def main():
+    x = gen_site(DEBUG)
+    conf = x.load_config("www.yml")
+    x.gen_abstract(conf, "newsposts", "abstract", "page", 1000)
+    x.gen_newspost_content(conf, "newsposts", "content", "page", "en")
+    x.gen_rss("inc", conf, env)
+    if DEBUG:
+        print("generating html from jinja2 templates...")
+    x.run("template", conf, env)
+    if DEBUG >= 2:
+        print(Path.cwd())
+        _ = Path("rendered")
+        for child in _.iterdir():
+            print(child)
+    if DEBUG >= 2:
+        print(Path.cwd())
+    if DEBUG:
+        print("generating html from jinja2 news templates...")
+    x.run("news", conf, env)
+    if DEBUG:
+        print("copying directories...")
+    x.copy_trees("static")
+    x.copy_trees("dist")
+
+if __name__ == "__main__":
+    main()
diff --git a/favicon.ico b/static/favicon.ico
similarity index 100%
rename from favicon.ico
rename to static/favicon.ico
diff --git a/robots.txt b/static/robots.txt
similarity index 100%
rename from robots.txt
rename to static/robots.txt
diff --git a/styles.css b/static/styles.css
similarity index 100%
rename from styles.css
rename to static/styles.css
diff --git a/template/bibliography.html.j2 b/template/bibliography.html.j2
index af91b8d..1065483 100644
--- a/template/bibliography.html.j2
+++ b/template/bibliography.html.j2
@@ -1,48 +1,50 @@
 {% extends "common/base.j2" %}
 {% block body_content %}
-<div class="container">
-<h1>{{ _("GNU Taler Bibliography")}}</h1>
-
-<h2>The GNU Taler System: Practical and Provably Secure Electronic 
Payments</h2>
-<p>
-<a href="{{ url('papers/thesis-dold-phd-2019.pdf') }}"><img border=0 
align=right alt="PDF" width=32 height=32 src="{{ url('images/pdf.svg') }}"></a>
-{{_("by")}} Florian Dold<br>
-PhD Thesis, 2019<br>
-</p>
-
-<h2>Blind Signatures for Untraceable Payments</h2>
-<p>
-<a href="{{ url('papers/chaum-blind-signatures.pdf') }}"><img border=0 
align=right alt="PDF" width=32 height=32 src="{{ url('images/pdf.svg') }}"></a>
-{{_("by")}} David Chaum<br>
-CRYPTO '82<br>
-</p>
-
-<h2>The One-More-RSA-Inversion Problems and the Security of Chaum's Blind 
Signature Scheme</h2>
-<p>
-<a href="{{ url('papers/bellare_blindsigs_proof.pdf') }}"><img border=0 
align=right alt="PDF" width=32 height=32 src="{{ url('images/pdf.svg') }}"></a>
-{{_("by")}} M. Bellare, C. Namprempre, D. Pointcheval {{ _("and") }} M. 
Semanko<br>
-Financial Cryptography '01<br>
-</p>
-
-<h2>Enabling Secure Web Payments with GNU Taler</h2>
-<p>
-<a href="{{ url('papers/taler2016space.pdf') }}"><img border=0 align=right 
width=32 height=32 alt="PDF" src="{{ url('images/pdf.svg') }}"></a>
-{{_("by")}} Jeff Burdges, Florian Dold, Christian Grothoff {{ _("and") }} 
Marcello Stanisci<br>
-SPACE 2016<br>
-</p>
-
-<h2>Digital cash and privacy: What are the alternatives to Libra?</h2>
-<p>
-<a 
href="https://www.media.mit.edu/posts/digital-cash-and-privacy-what-are-the-alternatives-to-libra/";><img
 border=0 align=right alt="HTML" width=32 height=32 src="{{ 
url('images/html.svg') }}"></a>
-{{_("by")}} Christian Grothoff {{ _("and") }} Alex Pentland<br>
-MIT Media Lab, 2019<br>
-</p>
-
-<h2>Refreshing Coins for Giving Change and Refunds in Chaum-style Anonymous 
Payment Systems</h2>
-<p>
-{{_("by")}} Florian Dold, Sree Harsha Totakura, Benedikt M&uuml;ller, Jeff 
Burdges {{ _("and") }} Christian Grothoff<br>
-<em>{{_("available upon request")}}</em><br>
-</p>
-
-</div>
+  <article class="container">
+    <header>
+      <h1>{{ _("GNU Taler Bibliography")}}</h1>
+    </header>
+    <div class="row">
+      <div class="col-lg-12">
+        {% for item in conf["paperslist"] %}
+          <section>
+            <header>
+              <h2>{{ item['name']|e }}</h2>
+            </header>
+            <div class="row container">
+              <div class="col">
+                <p>
+                  {% if item['url_pdf'] %}
+                    <a href="{{ url(item['url_pdf']) }}">
+                      <img border=0 align=right alt="PDF" width=32 height=32 
src="{{ url_static('images/pdf.svg') }}">
+                    </a>
+                  {% endif %}
+                  {% if item['url_html'] %}
+                    <a href="{{ item['url_html'] }}">
+                      <img border=0 align=right alt="HTML" width=32 height=32 
src="{{ url_static('images/html.svg') }}">
+                    </a>
+                  {% endif %}
+                  {{_("by")}}
+                  {% if item['authors'] %}
+                    {% for name in item['authors'] %}
+                      {{ name|e }}
+                      {% if not loop.last %}
+                        ,
+                      {% elif loop.revindex0 == 1 %}
+                        {{ _("and") }}
+                      {% endif %}
+                    {% endfor %}
+                  {% endif %}
+                  <br>
+                  {% if item['kind'] %} {{ item['kind']|e }} {% endif %}
+                  {% if item['year'] %} ({{ item['year'] }}) {% endif %}
+                  {% if item['comment'] %}<br>{{ item['comment'] }} {% endif %}
+                </p>
+              </div>
+            </div>
+          </section>
+        {% endfor %}
+      </div>
+    </div>
+  </article>
 {% endblock body_content %}
diff --git a/template/docs.html.j2 b/template/docs.html.j2
index 83fa2e5..2b9c1b0 100644
--- a/template/docs.html.j2
+++ b/template/docs.html.j2
@@ -1,6 +1,6 @@
 {% extends "common/base.j2" %}
 {% block body_content %}
-
+{% for siteconfitem in siteconf %}
 <div class="container">
   <div class="row">
     <div class="col">
@@ -33,7 +33,7 @@
 
   <div class="row">
     <div class="col-3">
-      <a href="https://{{ docshost }}/taler-merchant-manual.html">
+      <a href="https://{{ siteconfitem["docshost"] 
}}/taler-merchant-manual.html">
       <img src="../icons/icon-backend.svg" height=60>
       <h3>{{ _("Merchant Backend Administration")}}</h3>
       </a>
@@ -41,11 +41,11 @@
         Tutorial and manual for operating a merchant.
         Also available as
       {% endtrans %}
-      <a href="https://{{ docshost }}/pdf/taler-merchant-manual.pdf">PDF</a>.
+      <a href="https://{{ siteconfitem["docshost"] 
}}/pdf/taler-merchant-manual.pdf">PDF</a>.
     </div>
 
     <div class="col-3">
-      <a href="https://{{ docshost }}/taler-merchant-api-tutorial.html">
+      <a href="https://{{ siteconfitem["docshost"] 
}}/taler-merchant-api-tutorial.html">
         <img src="../icons/icon-market.svg" height=60>
         <h3>{{ _("Merchant API Tutorial") }}</h3>
       </a>
@@ -53,23 +53,23 @@
         Tutorial for processing Taler payments using the merchant backend API.
         Also available as
       {% endtrans %}
-      <a href="https://{{ docshost 
}}/pdf/taler-merchant-api-tutorial.pdf">PDF</a>.
+      <a href="https://{{ siteconfitem["docshost"] 
}}/pdf/taler-merchant-api-tutorial.pdf">PDF</a>.
     </div>
 
     <div class="col-3">
-      <a href="https://{{ docshost }}/taler-exchange-manual.html">
+      <a href="https://{{ siteconfitem["docshost"] 
}}/taler-exchange-manual.html">
         <img src="../icons/icon-exchange.svg" height=60>
         <h3>{{ _("Exchange")}}</h3>
       </a>
       {% trans %}
-        Operator's manual for the GNU Taler exchange.
+        Operator&#39;s manual for the GNU Taler exchange.
         Also available as
       {% endtrans %}
-      <a href="https://{{ docshost }}/pdf/taler-exchange-manual.pdf">PDF</a>.
+      <a href="https://{{ siteconfitem["docshost"] 
}}/pdf/taler-exchange-manual.pdf">PDF</a>.
     </div>
 
     <div class="col-3">
-      <a href="https://{{ docshost }}/taler-bank-manual.html">
+      <a href="https://{{ siteconfitem["docshost"] }}/taler-bank-manual.html">
         <img src="../icons/icon-bank.svg" height=60>
         <h3>{{ _("Bank Integration") }}</h3>
       </a>
@@ -77,7 +77,7 @@
         Manual for tightly integrating Taler with banking applications.
         Also available as
       {% endtrans %}
-      <a href="https://{{ docshost }}/pdf/taler-bank-manual.pdf">PDF</a>.
+      <a href="https://{{ siteconfitem["docshost"] 
}}/pdf/taler-bank-manual.pdf">PDF</a>.
     </div>
   </div>
 
@@ -87,7 +87,7 @@
   <div class="row">
 
     <div class="col-3">
-      <a href="https://{{ docshost }}/taler-backoffice-manual.html">
+      <a href="https://{{ siteconfitem["docshost"] 
}}/taler-backoffice-manual.html">
         <img src="../icons/icon-backoffice.svg" height=60>
         <h3>{{ _("Back office") }}</h3>
       </a>
@@ -95,7 +95,7 @@
         Manual to run the back-office Web application.
         Also available as
       {% endtrans %}
-      <a href="https://{{ docshost }}/pdf/taler-backoffice-manual.pdf">PDF</a>.
+      <a href="https://{{ siteconfitem["docshost"] 
}}/pdf/taler-backoffice-manual.pdf">PDF</a>.
     </div>
   </div>
 
@@ -113,7 +113,7 @@
 
   <div class="row">
     <div class="col-3">
-      <a href="https://{{ docshost }}/core/index.html">
+      <a href="https://{{ siteconfitem["docshost"] }}/core/index.html">
         <img src="../icons/icon-api.svg" height=60>
         <h3>{{ _("HTTP API")}}</h3>
       </a>
@@ -123,7 +123,7 @@
     </div>
 
     <div class="col-3">
-      <a href="https://{{ docshost }}/onboarding.html">
+      <a href="https://{{ siteconfitem["docshost"] }}/onboarding.html">
         <img src="../icons/icon-developers.svg" height=60>
         <h3>{{ _("Onboarding")}}</h3>
       </a>
@@ -131,7 +131,7 @@
         Description of our taler.net setup and how to contribute.
         Also available as
       {% endtrans %}
-      <a href="https://{{ docshost }}/pdf/onboarding.pdf">PDF</a>.
+      <a href="https://{{ siteconfitem["docshost"] 
}}/pdf/onboarding.pdf">PDF</a>.
     </div>
   </div>
 
@@ -199,5 +199,5 @@
   </div>
 
 </div>
-
+{% endfor %}
 {% endblock body_content %}
diff --git a/template/features.html.j2 b/template/features.html.j2
index e4c4448..c97517e 100644
--- a/template/features.html.j2
+++ b/template/features.html.j2
@@ -42,7 +42,7 @@
          When making a payment, customers only need a charged wallet.
          A merchant can accept payments
          <span class="tlr">without making their customers register</span>
-         on the merchant's Website.
+         on the merchant&#39;s Website.
        {% endtrans %}
     </p>
 
@@ -57,7 +57,7 @@
     </p>
     </div>
     <div class="col">
-      <img class="img-fluid" src="../images/diagram-simple.png">
+      <img class="img-fluid" src="{{ url_static('images/diagram-simple.png') 
}}">
     </div>
   </div>
 </div>
@@ -71,7 +71,7 @@
           {% trans %}
             To pay with Taler, customers install an electronic wallet
             on their device.  Before the first payment, the desired currency
-            must be added to the wallet's balance
+            must be added to the wallet&#39;s balance
             by some other means of payment.
           {% endtrans %}
         </p>
@@ -97,8 +97,8 @@
             To receive Taler payments, a merchant needs a bank account
             in the desired currency.  We provide supporting software
             in various programming languages to make the integration painless.
-            The merchant's backend for Taler transaction processing can run
-            on the merchant's premises or be hosted by a third party.
+            The merchant&#39;s backend for Taler transaction processing can run
+            on the merchant&#39;s premises or be hosted by a third party.
           {% endtrans %}
         </p>
         <p>
@@ -144,7 +144,7 @@
           Taler does not introduce a new currency. Taler
           uses a digital wallet storing coins and payment service
           providers with escrow accounts in existing currencies.
-          Thus, Taler's cryptographic coins correspond to existing
+          Thus, Taler&#39;s cryptographic coins correspond to existing
           currencies, such as US Dollars, Euros or even Bitcoins.
         {% endtrans %}
       </p>
@@ -170,7 +170,7 @@
 
       <p>
         {% trans %}
-          When using Taler, merchant's revenue is transparent for tax
+          When using Taler, merchant&#39;s revenue is transparent for tax
           collection authorities.  Unlike cash and most digital currencies,
           Taler helps prevent black markets.  Taler is not suitable for
           illegal activities.
diff --git a/template/index.html.j2 b/template/index.html.j2
index 59937c6..e74f82c 100644
--- a/template/index.html.j2
+++ b/template/index.html.j2
@@ -1,17 +1,19 @@
 {% extends "common/base.j2" %}
 {% block body_content %}
-
+  {% import 'inc/news.macro.j2' as news %}
   <div class="container">
 
     <div class="row justify-content-center">
       <div class="col-8">
-        <img src="../images/logo-2018-dold.svg">
+        <img src="{{ url_static('images/logo-2018-dold.svg') }}">
       </div>
     </div>
 
     <div class="row justify-content-center text-center">
       <div class="col-8">
-        <a href="news.html">2018-04: GNU Taler v0.5.0 released</a>
+        {% for item in newsdata[:1] %}
+          {{ news.tinylinkpreview(item, prefix="news/") }}
+        {% endfor %}
       </div>
     </div>
 
@@ -23,23 +25,23 @@
         <h2>{{ _("We provide a payment system that makes <span 
class='tlr'>privacy-friendly</span> online transactions <span class='tlr'>fast 
and easy</span>.")}}</h2>
         <ul class="checklist">
           <li>
-            <img class="checkmark" src="../images/checkmark.png">
+            <img class="checkmark" src="{{ url_static('images/checkmark.png') 
}}">
             {{ _("Payments without registration")}}
           </li>
           <li>
-            <img class="checkmark" src="../images/checkmark.png">
+            <img class="checkmark" src="{{ url_static('images/checkmark.png') 
}}">
             {{ _("Data protection by default")}}
           </li>
           <li>
-            <img class="checkmark" src="../images/checkmark.png">
+            <img class="checkmark" src="{{ url_static('images/checkmark.png') 
}}">
             {{ _("Fraud eliminated by design")}}
           </li>
           <li>
-            <img class="checkmark" src="../images/checkmark.png">
+            <img class="checkmark" src="{{ url_static('images/checkmark.png') 
}}">
             {{ _("Not a new currency!")}}
           </li>
           <li>
-            <img class="checkmark" src="../images/checkmark.png">
+            <img class="checkmark" src="{{ url_static('images/checkmark.png') 
}}">
             {{ _("Empowers communities to run their own payment 
infrastructure")}}
           </li>
         </ul>
@@ -47,7 +49,7 @@
         <form action="https://docs.taler.net/"; style="display:inline;"><button 
type="submit" class="btn btn-secondary">{{ _("Read Docs")}}</button></form>
       </div>
       <div class="col align-self-center">
-        <img class="img-fluid" src="../images/stock1s.jpg" 
style="border-radius: 1cm;" />
+        <img class="img-fluid" src="{{ url_static('images/stock1s.jpg') }}" 
style="border-radius: 1cm;" />
       </div>
     </div>
   </div>
diff --git a/template/news.html.j2 b/template/news.html.j2
deleted file mode 100644
index 311f4c1..0000000
--- a/template/news.html.j2
+++ /dev/null
@@ -1,20 +0,0 @@
-{% extends "common/base.j2" %}
-{% block body_content %}
-
-  <div class="container">
-    <div class="col">
-      <h1>{{ _("News")}}</h1>
-
-      {% include "news/2018-04.inc" %}
-      {% include "news/2017-10.inc" %}
-      {# include "news/2017-08.inc" #}
-      {# include "news/2017-04.inc" #}
-      {# include "news/2017-03.inc" #}
-      {# include "news/2017-02.inc" #}
-      {% include "news/2017-01.inc" %}
-
-      <a href="old-news.html"><h3>{{ _("More news")}}</h3></a>
-    </div>
-  </div>
-
-{% endblock body_content %}
diff --git a/template/old-news.html.j2 b/template/old-news.html.j2
deleted file mode 100644
index 611b4ae..0000000
--- a/template/old-news.html.j2
+++ /dev/null
@@ -1,44 +0,0 @@
-{% extends "common/base.j2" %}
-{% block body_content %}
-
-  <div class="jumbotron">
-    <div class="container text-center">
-      <h1>{{ _("Older News") }}</h1>
-      <div class="col-lg-12">
-        <p>
-          {% trans %}
-            This page documents the GNU Taler history.
-          {% endtrans %}
-        </p>
-      </div>
-    </div>
-  </div>
-
-  <div class="container">
-    <div class="row">
-      <div class="col-lg-12">
-
-        {#
-        {% include "news/2016-12.inc" %}
-        #}
-        {% include "news/2016-10.inc" %}
-        {% include "news/2016-09.inc" %}
-        {% include "news/2016-08.inc" %}
-        {% include "news/2016-06.inc" %}
-        {% include "news/2015-12.inc" %}
-
-        {#
-        {% include "news/2015-11.inc" %}
-        #}
-
-        {% include "news/2015-02.inc" %}
-        {#
-        {% include "news/2014-12.inc" %}
-        #}
-        {% include "news/2014-11.inc" %}
-
-      </div>
-    </div>
-  </div> <!-- /container -->
-
-{% endblock body_content %}
diff --git a/template/principles.html.j2 b/template/principles.html.j2
index f81c01b..d16a8fb 100644
--- a/template/principles.html.j2
+++ b/template/principles.html.j2
@@ -30,7 +30,7 @@
       <div class="col-lg-12">
         <h2>{{ _("1. Free Software implementation") }}</h2>
         <a href="https://www.gnu.org/graphics/freedom.html";>
-          <img style="width:20vw;float:right" 
src="../images/stallman.medium.png" alt="{{ _("... in the area of computing, 
freedom means not using proprietary software") }}">
+          <img style="width:20vw;float:right" src="{{ 
url_static('images/stallman.medium.png') }}" alt="{{ _("... in the area of 
computing, freedom means not using proprietary software") }}">
         </a>
         <p>
           {% trans %}
@@ -55,7 +55,7 @@
       <div class="col-lg-12">
         <h2>{{ _("2. Protect the privacy of buyers") }}</h2>
         <!-- From https://www.pixabay.com/ -->
-        <img style="width:20vw;float:left;padding:15px" 
src="../images/anonymous.jpg" alt="{{_("You deserve some privacy")}}">
+        <img style="width:20vw;float:left;padding:15px" src="{{ 
url_static('images/anonymous.jpg') }}" alt="{{_("You deserve some privacy")}}">
         <p>
           {% trans %}
             Privacy should be guaranteed via technical measures, as opposed to 
mere
@@ -80,7 +80,7 @@
       <div class="col-lg-12">
         <h2>{{ _("3. Enable the state to tax income and crack down on illegal 
business activities") }}</h2>
         <!-- From https://www.pxhere.com/ -->
-        <img style="width:20vw;float:right;padding:15px" 
src="../images/money-laundering.medium.jpg" alt="{{_("Money laundering")}}">
+        <img style="width:20vw;float:right;padding:15px" src="{{ 
url_static('images/money-laundering.medium.jpg') }}" alt="{{_("Money 
laundering")}}">
         <p>
           {% trans %}
             As a payment system must still be legal to operate and use, it 
must comply
@@ -94,7 +94,7 @@
       <div class="col-lg-12">
         <h2>{{ _("4. Prevent payment fraud") }}</h2>
         <!-- From https://www.maxpixel.net/ -->
-        <img style="width:20vw;float:left;padding:15px" 
src="../images/fraud.medium.jpg" alt="{{_("Phishing attack")}}">
+        <img style="width:20vw;float:left;padding:15px" src="{{ 
url_static('images/fraud.medium.jpg') }}" alt="{{_("Phishing attack")}}">
         <p>
           {% trans %}
             This imposes requirements on the security of the system, as well 
as on the
@@ -107,7 +107,7 @@
     <div class="row">
       <div class="col-lg-12">
         <h2>{{ _("5. Only disclose the minimal amount of information 
necessary") }}</h2>
-        <img style="width:20vw;float:right;padding:15px" 
src="../images/gdpr.medium.jpg" alt="{{_("Privacy by design, privacy by 
default, General Data Protection Regulation (GDPR) compliant")}}">
+        <img style="width:20vw;float:right;padding:15px" src="{{ 
url_static('images/gdpr.medium.jpg') }}" alt="{{_("Privacy by design, privacy 
by default, General Data Protection Regulation (GDPR) compliant")}}">
         <p>
           {% trans %}
             The reason behind this goal is similar to (2). The privacy of 
buyers is given
@@ -120,7 +120,7 @@
     <div class="row">
       <div class="col-lg-12">
         <h2>{{ _("6. Be usable") }}</h2>
-        <img style="width:20vw;float:left;padding:15px" 
src="../images/buy.medium.jpg" alt="{{_("Buy with one click")}}">
+        <img style="width:20vw;float:left;padding:15px" src="{{ 
url_static('images/buy.medium.jpg') }}" alt="{{_("Buy with one click")}}">
         <p>
           {% trans %}
             Specifically it must be usable for non-expert customers. Usability 
also
@@ -134,7 +134,7 @@
     <div class="row">
       <div class="col-lg-12">
         <h2>{{ _("7. Be efficient")}}</h2>
-        <img style="width:20vw;float:right;padding:15px" 
src="../images/efficient.png" alt="{{_("Energy efficiency")}}">
+        <img style="width:20vw;float:right;padding:15px" src="{{ 
url_static('images/efficient.png') }}" alt="{{_("Energy efficiency")}}">
         <p>
           {% trans %}
             Approaches such as proof-of-work are ruled out by this
@@ -147,7 +147,7 @@
     <div class="row">
       <div class="col-lg-12">
         <h2>{{ _("8. Fault-tolerant design")}}</h2>
-        <img style="width:20vw;float:left;padding:15px" 
src="../images/life-safer.medium.jpg" alt="{{_("Life Safers")}}">
+        <img style="width:20vw;float:left;padding:15px" src="{{ 
url_static('images/life-safer.medium.jpg') }}" alt="{{_("Life Safers")}}">
         <p>
           {% trans %}
             Taler should tolerate failure of individual components and systems,
@@ -161,7 +161,7 @@
     <div class="row">
       <div class="col-lg-12">
         <h2>{{ _("9. Foster competition")}}</h2>
-        <img style="width:20vw;float:right;padding:15px" 
src="../images/market.medium.jpg" alt="{{_("A competitive market")}}">
+        <img style="width:20vw;float:right;padding:15px" src="{{ 
url_static('images/market.medium.jpg') }}" alt="{{_("A competitive market")}}">
         <p>
           {% trans %}
             It must be relatively easy for competitors to join the systems. 
While the
diff --git a/www.yml b/www.yml
new file mode 100644
index 0000000..ff589c5
--- /dev/null
+++ b/www.yml
@@ -0,0 +1,180 @@
+siteconf:
+  - baseurl: taler.net
+    newsloc: /news/
+    newsdir: news
+    rsstitle: Taler.net
+    rssdescr: "News posts published by Taler about changes related to Taler, 
releases and events"
+    rssloc:
+    rsslink:
+    rsslang:
+    docshost: docs.taler.net
+langs_full: &langs
+  en: English
+  fr: Français
+  it: Italiano
+  es: Español
+  de: Deutsch
+  ru: Ру́сский язы́к
+  pt: Português
+symlinks:
+staticfiles:
+  - file: favicon.ico
+    targets:
+      - favicon.ico
+  - file: robots.txt
+    targets:
+      - robots.txt
+meetingnotes:
+newsposts:
+  - page: 2018-04.html
+    date: 2018-04-01
+    title: GNU Taler v0.5.0 released
+    abstract:
+    content:
+  - page: 2017-10.html
+    date: 2017-10-01
+    title: GNU Taler v0.4.0 released
+    abstract:
+    content:
+  - page: 2017-08.html
+    date: 2017-08-01
+    title: We explain GNU Taler at SHA 2017
+    abstract:
+    content:
+  - page: 2017-04.html
+    date: 2017-04-01
+    title: "Sva explains GNU Taler at EasterHegg and Torsten demonstrates it 
is child's play"
+    abstract:
+    content:
+  - page: 2017-03.html
+    date: 2017-03-01
+    title: Sva explains GNU Taler at FOSSASIA in Singapore
+    abstract:
+    content:
+  - page: 2017-02.html
+    date: 2017-02-01
+    title: Florian Dold explains Taler at 50p in Bangalore
+    abstract:
+    content:
+  - page: 2017-01.html
+    date: 2017-01-01
+    title: Taler Documentation pages updated
+    abstract:
+    content:
+  - page: 2016-12.html
+    date: 2016-12-01
+    title: Christian Grothoff explains Taler at hasgeek in Bangalore
+    abstract:
+    content:
+  - page: 2016-10.html
+    date: 2016-10-01
+    title: Taler Wallet for Firefox online
+    abstract:
+    content:
+  - page: 2016-09.html
+    date: 2016-09-01
+    title: Taler Web Payments paper published
+    abstract:
+    content:
+  - page: 2016-08.html
+    date: 2016-08-01
+    title: Taler Systems S.A. created
+    abstract:
+    content:
+  - page: 2016-06.html
+    date: 2016-06-01
+    title: GNU Taler 0.0.0 released
+    abstract:
+    content:
+  - page: 2015-12.html
+    date: 2015-12-01
+    title: "Taler Demo for Chrome/Chromium online"
+    abstract:
+    content:
+  - page: 2015-11.html
+    date: 2015-11-01
+    title: "Christian Grothoff explains the goals behind Taler"
+    abstract:
+    content:
+  - page: 2015-02.html
+    date: 2015-02-01
+    title: Taler becomes an official GNU package
+    abstract:
+    content:
+  - page: 2014-12.html
+    date: 2014-12-01
+    title: "Watch Christian Grothoff's FOSSA talk on Taler"
+    abstract:
+    content:
+  - page: 2014-11.html
+    date: 2014-11-01
+    title: Launching taler.net
+    abstract:
+    content:
+videoslist:
+paperslist:
+  - year: 2019
+    authors:
+      - Florian Dold
+    name: "The GNU Taler System: Practical and Provably Secure Electronic 
Payments"
+    kind: PhD Thesis
+    url:
+    url_html:
+    url_pdf: "papers/thesis-dold-phd-2019.pdf"
+    comment:
+  - year: 1982
+    authors:
+      - David Chaum
+    name: "Blind Signatures for Untraceable Payments"
+    kind: "CRYPTO '82"
+    url:
+    url_html:
+    url_pdf: "papers/chaum-blind-signatures.pdf"
+    comment:
+  - year:
+    authors:
+      - M. Bellare
+      - C. Namprempre
+      - D. Pointcheval
+      - M. Semanko
+    name: "The One-More-RSA-Inversion Problems and the Security of Chaum's 
Blind Signature Scheme"
+    kind: Financial Cryptography
+    url:
+    url_html:
+    url_pdf: "papers/bellare_blindsigs_proof.pdf"
+    comment:
+  - year: 2016
+    authors:
+      - Jeff Burdges
+      - Florian Dold
+      - Christian Grothoff
+      - Marcello Stanisci
+    name: "Enabling Secure Web Payments with GNU Taler"
+    kind: SPACE 2016
+    url:
+    url_html:
+    url_pdf: "papers/taler2016space.pdf"
+    comment:
+  - year: 2019
+    authors:
+      - Christian Grothoff
+      - Alex Pentland
+    name: "Digital cash and privacy: What are the alternatives to Libra?"
+    kind: MIT Media Lab
+    url:
+    url_html: 
https://www.media.mit.edu/posts/digital-cash-and-privacy-what-are-the-alternatives-to-libra/
+    url_pdf:
+    comment:
+  - year:
+    authors:
+      - Florian Dold
+      - Sree Harsha Totakura
+      - Benedikt Müller
+      - Jeff Burdges
+      - Christian Grothoff
+    name: "Refreshing Coins for Giving Change and Refunds in Chaum-style 
Anonymous Payment Systems"
+    kind:
+    url:
+    url_pdf:
+    url_html:
+    comment: "<em>available upon request</em>"

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



reply via email to

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