From 4e7535fd73d232a51629fc33f65a61754a155b22 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Wed, 24 May 2023 01:16:29 +0200 Subject: Genesis commit --- .gitignore | 2 + build | 311 +++++++++++++++++++++ data/ccs | 429 ++++++++++++++++++++++++++++ data/coins | 585 +++++++++++++++++++++++++++++++++++++++ data/country-info | 31 +++ data/note-info | 25 ++ data/notes | 160 +++++++++++ scripts/colspan.sed | 10 + scripts/getcls.awk | 16 ++ scripts/last-of-design.sed | 19 ++ scripts/xfsub | 3 + server.go | 98 +++++++ src/banknotes.jpg | Bin 0 -> 69649 bytes src/coins.jpg | Bin 0 -> 110073 bytes src/en/changelog/index.html | 79 ++++++ src/en/euro/coin-nav.html | 26 ++ src/en/euro/coins.template.html | 125 +++++++++ src/en/euro/index.html | 101 +++++++ src/en/euro/note-nav.html | 10 + src/en/euro/notes.template.html | 87 ++++++ src/en/euro/tnotes.template.html | 66 +++++ src/en/footer.html | 3 + src/en/index.html | 63 +++++ src/en/nav-bar.html | 12 + src/en/table-key.html | 27 ++ src/eu-stars.svg | 30 ++ src/favicon.svg | 160 +++++++++++ src/globe.svg | 6 + src/language-selector.html | 4 + src/pt/euro/coin-nav.html | 26 ++ src/pt/euro/coins.template.html | 111 ++++++++ src/pt/euro/index.html | 102 +++++++ src/pt/euro/note-nav.html | 11 + src/pt/euro/notes.template.html | 85 ++++++ src/pt/euro/tnotes.template.html | 64 +++++ src/pt/footer.html | 3 + src/pt/index.html | 63 +++++ src/pt/nav-bar.html | 11 + src/pt/table-key.html | 27 ++ src/style.css | 470 +++++++++++++++++++++++++++++++ src/world-coins.jpg | Bin 0 -> 59149 bytes 41 files changed, 3461 insertions(+) create mode 100644 .gitignore create mode 100755 build create mode 100644 data/ccs create mode 100644 data/coins create mode 100644 data/country-info create mode 100644 data/note-info create mode 100644 data/notes create mode 100755 scripts/colspan.sed create mode 100644 scripts/getcls.awk create mode 100755 scripts/last-of-design.sed create mode 100755 scripts/xfsub create mode 100644 server.go create mode 100644 src/banknotes.jpg create mode 100644 src/coins.jpg create mode 100644 src/en/changelog/index.html create mode 100644 src/en/euro/coin-nav.html create mode 100644 src/en/euro/coins.template.html create mode 100644 src/en/euro/index.html create mode 100644 src/en/euro/note-nav.html create mode 100644 src/en/euro/notes.template.html create mode 100644 src/en/euro/tnotes.template.html create mode 100644 src/en/footer.html create mode 100644 src/en/index.html create mode 100644 src/en/nav-bar.html create mode 100644 src/en/table-key.html create mode 100644 src/eu-stars.svg create mode 100644 src/favicon.svg create mode 100644 src/globe.svg create mode 100644 src/language-selector.html create mode 100644 src/pt/euro/coin-nav.html create mode 100644 src/pt/euro/coins.template.html create mode 100644 src/pt/euro/index.html create mode 100644 src/pt/euro/note-nav.html create mode 100644 src/pt/euro/notes.template.html create mode 100644 src/pt/euro/tnotes.template.html create mode 100644 src/pt/footer.html create mode 100644 src/pt/index.html create mode 100644 src/pt/nav-bar.html create mode 100644 src/pt/table-key.html create mode 100644 src/style.css create mode 100644 src/world-coins.jpg diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..53a9baa --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +out/ +server diff --git a/build b/build new file mode 100755 index 0000000..63b892e --- /dev/null +++ b/build @@ -0,0 +1,311 @@ +#!/bin/sh +# vi: ts=4 sw=4 + +set -e + +require fsub gawk go pee sponge + +PATH="$PATH:scripts" + +rm -rf out +mkdir out +cp -r src/* out + +compile_for_lang() { + sd=src/$1 + od=out/$1 + + case $lang in + en) hlang=en-US ;; + pt) hlang=pt-BR ;; + *) hlang=$1 ;; + esac + + xfsub '' src/language-selector.html \ + $od/nav-bar.html + sed -i "\\..d" $od/nav-bar.html + + find $od -name '*.html' \ + | pee cat "xargs -- sed -i ' + s|href=/XX|href=/$1| + s||| + '" \ + | while read file; do + xfsub '' $od/nav-bar.html $file + xfsub '' $od/euro/coin-nav.html $file + xfsub '' $od/euro/note-nav.html $file + xfsub '' $od/footer.html $file + xfsub '' $od/table-key.html $file + done + + for file in `find $od -name 'index.html'`; do + base=${file#out} + base=${base%/index.html} + sed -Ei " + /|s|([^<]*)|
\1
| + " $file + done + + sed -Ei ' + //,//d + //d + ' $od/euro/notes.template.html $od/euro/tnotes.template.html + sed -Ei ' + //,//d + //d + ' $od/euro/coins.template.html + + nod=$od/euro/tn + mkdir -p $nod + cp $od/euro/tnotes.template.html $nod/index.html + sed -Ei ' + /|s|([^<]*)|
\1
| + ' $nod/index.html + gawk -v denom=$denom ' + @include "scripts/getcls.awk" + + $1 == "TN" { + i++ + col[i][0] = $2 + col[i][1] = $3 + col[i][2] = $4 + } + + END { + for (i = 1; i <= length(col); i++) { + printf \ + "€%d%s\n",\ + col[i][0], getcls(col[i][2]), col[i][1] + } + } + ' data/notes | xfsub '' - $nod/index.html + + for CC in `grep -Eo '^[A-Z]{2}' data/coins | uniq`; do + cc=`echo $CC | tr A-Z a-z` + nod=$od/euro/$cc + mkdir -p $nod + cp $od/euro/coins.template.html $nod/index.html + sed -i " + /|s|$CC|
$CC
| + " $nod/index.html + grep -m1 "^$CC" data/country-info \ + | cut -f2 \ + | xfsub '' - $nod/index.html + sed -Ei " + //d + //,//d + //d + //,//d + " $nod/index.html + + gawk -v CC=$CC ' + @include "scripts/getcls.awk" + + $1 == CC && /.. start/ { + sub(/.. start/, "") + printf "%s\n", $0 + next + } + + $1 == CC { + y = $10 + if ($11 != "") + y_ = $11 + printf "" + for (i = 2; i <= 9; i++) { + # Greece 2002 needs special handling + if (CC == "GR" && $10 == 2002 && $11 == "MM") { + if (i <= 5) + y_ = "F" + else if (i <= 7) + y_ = "E" + else + y_ = "S" + } + + if ($11 != "") { + printf "%s %s", + getcls($i), y, y_ + } else + printf "%s", getcls($i), y + } + print "" + } + + END { print "MARKER LOL" } + ' data/coins \ + | last-of-design.sed \ + | xfsub '' - $nod/index.html + + gawk -v CC=$CC ' + @include "scripts/getcls.awk" + + $1 == CC { + split($0, a, "\t") + $0 = a[1] + + n = 2 + y = $2 + + if (getcls($3) == "error") { + n = 3 + printf "%s %s", y, $3 + } else + printf "%s", y + + for (i = 1; i <= NF - n; i++) { + printf "%s", + getcls($(i + n)), a[i + 1] + } + print "" + } + + END { print "MARKER LOL" } + ' data/ccs \ + | colspan.sed \ + | grep -Fv 'MARKER LOL' \ + | xfsub '' - $nod/index.html + done + + for denom in `grep -Eo '^[0-9]+' data/notes | uniq`; do + nod=$od/euro/$denom + mkdir -p $nod + cp $od/euro/notes.template.html $nod/index.html + sed -Ei " + /|s|([^<]*)|
\\1
| + " $nod/index.html + sed -i "s//$denom/" $nod/index.html + + sed -Ei " + //d + //,//d + //d + //,//d + " $nod/index.html + + gawk -v denom=$denom ' + @include "scripts/getcls.awk" + + BEGIN { FS = "\t" } + + FILENAME == "data/country-info" { cc2name[$1] = $3 } + + FILENAME == "data/note-info" && length == 0 { section++; next } + FILENAME == "data/note-info" && section == 0 { cc2c[$1] = $2 } + FILENAME == "data/note-info" && section == 1 { ab2l[$1] = $2 } + + FILENAME == "data/notes" && $1 == denom && $2 == "2002" { + i++ + col[i][0] = $3 + col[i][1] = $4 + } + + END { + for (i = 1; i <= 3; i++) { + if (i == 3 && denom == 5) { + print "" + break + } + if (i == 1) + sig = "Wim Duisenberg" + else if (i == 2) + sig = "Jean-Claude Trichet" + else if (i == 3) + sig = "Mario Draghi" + print ""sig"" + + c = 0 + for (j = 1; j <= length(col); j++) { + split(col[j][1], s, " ") + if (s[i] == "/") + continue + + if (c % 4 == 0) + printf "" + + printf "", getcls(s[i]) + printf "%s (%s)", cc2name[col[j][0]], cc2c[col[j][0]] + printf "" + + if (c % 4 == 3 && j < length(col)) + print "" + c++ + } + if ((c - 1) % 4 != 3) + print "" + } + print "MARKER LOL" + } + ' data/country-info data/note-info data/notes \ + | colspan.sed \ + | last-of-design.sed \ + | xfsub '' - $nod/index.html + + [ $denom -eq 500 ] && continue + + gawk -v denom=$denom ' + @include "scripts/getcls.awk" + + BEGIN { FS = "\t" } + + FILENAME == "data/country-info" { cc2name[$1] = $3 } + + FILENAME == "data/note-info" && length == 0 { section++; next } + FILENAME == "data/note-info" && section == 0 { cc2c[$1] = $2 } + FILENAME == "data/note-info" && section == 1 { ab2l[$1] = $2 } + + FILENAME == "data/notes" && $1 == denom && $2 == "Europa" { + i++ + col[i][0] = $3 + col[i][1] = $4 + } + + END { + for (i = 1; i <= 2; i++) { + if (i == 1) + sig = "Mario Draghi" + else if (i == 2) + sig = "Christine Lagarde" + print ""sig"" + + c = 0 + for (j = 1; j <= length(col); j++) { + split(col[j][1], s, " ") + if (s[i] == "/") + continue + + if (c % 4 == 0) + printf "" + + printf "", getcls(s[i]) + printf "%s (%s)", cc2name[col[j][0]], cc2c[col[j][0]] + printf "" + + if (c % 4 == 3 && j < length(col)) + print "" + c++ + } + if ((c - 1) % 4 != 3) + print "" + } + print "MARKER LOL" + } + ' data/country-info data/note-info data/notes \ + | colspan.sed \ + | last-of-design.sed \ + | xfsub '' - $nod/index.html + done + + for file in `find $od -name '*.html'`; do + path=${file#out/??} + path=${path%/*.html} + sed -Ei "s|href=/(..)XYZ>|href=/\1$path>|" $file + done +} + +for lang in `find out -mindepth 1 -maxdepth 1 -name '??' -printf '%f\n'`; do + compile_for_lang $lang & +done +wait + +find out -name '*.html' -and -not -name 'index.html' -delete diff --git a/data/ccs b/data/ccs new file mode 100644 index 0000000..24110b3 --- /dev/null +++ b/data/ccs @@ -0,0 +1,429 @@ +AD 2014 * Council of Europe +AD 2015 * * Political Rights Customs Agreement +AD 2016 * * New Reform Radio & Television +AD 2017 * * National Anthem The Pyrenean Country +AD 2018 * * Human Rights Andorran Constitution +AD 2019 * * Council of the Valleys Alpine Ski World Cup +AD 2020 * * Female Suffrage Ibero-American Summit +AD 2021 * * Our Lady of Meritxell Elderly in COVID-19 +AD 2022 * * Charlemagne Currency Agreement + +AT 2005 X State Treaty +AT 2007 X Treaty of Rome +AT 2009 X European Monetary Union +AT 2012 X Euro Cash +AT 2015 X EU Flag +AT 2016 X National Bank +AT 2018 X Centenary of the Republic +AT 2022 X Erasmus Programme + +BE 2005 X Economic Union +BE 2006 X Atomium +BE 2007 X Treaty of Rome +BE 2008 X Human Rights +BE 2009 X X Louis Braille European Monetary Union +BE 2010 X EU Presidency +BE 2011 X Women’s Day +BE 2012 X X Music Competition Euro Cash +BE 2013 X Royal Meteorological Institute +BE 2014 X * WWI Centenery Red Cross +BE 2015 * X Year for Development EU Flag +BE 2016 X * Child Focus Rio Summer Olympics +BE 2017 * * University of Liège University of Ghent +BE 2018 * * Events of May 1968 ESRO-2B +BE 2019 * * Pieter Bruegel the Elder European Monetary Institute +BE 2020 - * Year of Plant Health Jan van Eyck +BE 2021 * * Carolus V Coins Economic Union +BE 2022 - - Healthcare in COVID-19 Erasmus Programme +BE 2023 * Art Nouveau + +CY 2009 X European Monetary Union +CY 2012 X Euro Cash +CY 2015 - EU Flag +CY 2017 X Paphos +CY 2020 - Neurology & Genetics +CY 2022 - Erasmus Programme +CY 2023 - Central Bank + +DE 2006 A X Schleswig-Holstein +DE 2006 D X Schleswig-Holstein +DE 2006 F X Schleswig-Holstein +DE 2006 G X Schleswig-Holstein +DE 2006 J X Schleswig-Holstein +DE 2007 A - X Mecklenburg-Vorpommern Treaty of Rome +DE 2007 D X X Mecklenburg-Vorpommern Treaty of Rome +DE 2007 F X X Mecklenburg-Vorpommern Treaty of Rome +DE 2007 G X X Mecklenburg-Vorpommern Treaty of Rome +DE 2007 J - X Mecklenburg-Vorpommern Treaty of Rome +DE 2008 A - Hamburg +DE 2008 D X Hamburg +DE 2008 F X Hamburg +DE 2008 G X Hamburg +DE 2008 J X Hamburg +DE 2009 A X X Saarland European Monetary Union +DE 2009 D X X Saarland European Monetary Union +DE 2009 F X X Saarland European Monetary Union +DE 2009 G X X Saarland European Monetary Union +DE 2009 J X X Saarland European Monetary Union +DE 2010 A X Bremen +DE 2010 D X Bremen +DE 2010 F X Bremen +DE 2010 G X Bremen +DE 2010 J X Bremen +DE 2011 A X Nordrhein-Westfalen +DE 2011 D X Nordrhein-Westfalen +DE 2011 F X Nordrhein-Westfalen +DE 2011 G X Nordrhein-Westfalen +DE 2011 J X Nordrhein-Westfalen +DE 2012 A X X Bayern Euro Cash +DE 2012 D X X Bayern Euro Cash +DE 2012 F X X Bayern Euro Cash +DE 2012 G X X Bayern Euro Cash +DE 2012 J X X Bayern Euro Cash +DE 2013 A X X Baden-Württemberg Élysée Treaty +DE 2013 D X - Baden-Württemberg Élysée Treaty +DE 2013 F X X Baden-Württemberg Élysée Treaty +DE 2013 G X X Baden-Württemberg Élysée Treaty +DE 2013 J X X Baden-Württemberg Élysée Treaty +DE 2014 A X Niedersachsen +DE 2014 D X Niedersachsen +DE 2014 F X Niedersachsen +DE 2014 G X Niedersachsen +DE 2014 J X Niedersachsen +DE 2015 A X X X Hessen Germany Reunification EU Flag +DE 2015 D X X X Hessen Germany Reunification EU Flag +DE 2015 F X X X Hessen Germany Reunification EU Flag +DE 2015 G X - X Hessen Germany Reunification EU Flag +DE 2015 J X X X Hessen Germany Reunification EU Flag +DE 2016 A X Sachsen +DE 2016 D X Sachsen +DE 2016 F X Sachsen +DE 2016 G X Sachsen +DE 2016 J X Sachsen +DE 2017 A X Rheinland-Pfalz +DE 2017 D X Rheinland-Pfalz +DE 2017 F X Rheinland-Pfalz +DE 2017 G X Rheinland-Pfalz +DE 2017 J X Rheinland-Pfalz +DE 2018 A X X Berlin Helmut Schmidt +DE 2018 D X X Berlin Helmut Schmidt +DE 2018 F X X Berlin Helmut Schmidt +DE 2018 G X X Berlin Helmut Schmidt +DE 2018 J X X Berlin Helmut Schmidt +DE 2019 A X X Bundesrat Berlin Wall +DE 2019 D X X Bundesrat Berlin Wall +DE 2019 F X X Bundesrat Berlin Wall +DE 2019 G X X Bundesrat Berlin Wall +DE 2019 J X X Bundesrat Berlin Wall +DE 2020 A X X Brandenburg Kneeling to Warsaw +DE 2020 D X X Brandenburg Kneeling to Warsaw +DE 2020 F X X Brandenburg Kneeling to Warsaw +DE 2020 G X X Brandenburg Kneeling to Warsaw +DE 2020 J X X Brandenburg Kneeling to Warsaw +DE 2021 A X Sachsen-Anhalt +DE 2021 D X Sachsen-Anhalt +DE 2021 F X Sachsen-Anhalt +DE 2021 G X Sachsen-Anhalt +DE 2021 J X Sachsen-Anhalt +DE 2022 A X X Thüringen Erasmus Programme +DE 2022 D X X Thüringen Erasmus Programme +DE 2022 F X X Thüringen Erasmus Programme +DE 2022 G X X Thüringen Erasmus Programme +DE 2022 J X - Thüringen Erasmus Programme +DE 2023 A - - Hamburg Charlemagne +DE 2023 D - - Hamburg Charlemagne +DE 2023 F - - Hamburg Charlemagne +DE 2023 G - - Hamburg Charlemagne +DE 2023 J X - Hamburg Charlemagne + +EE 2012 X Euro Cash +EE 2015 X EU Flag +EE 2016 X Paul Keres +EE 2017 X Road to Independence +EE 2018 - - Baltic States Estonian Independence +EE 2019 - - Estonian Song Festival University of Tartu +EE 2020 - - Antarctica Tartu Peace Treaty +EE 2021 - X Finno-Urgic Peoples Wolf +EE 2022 - - - Estonian Literati Ukraine Erasmus Programme +EE 2023 - Barn Swallow + +ES 2005 X Don Quixote +ES 2007 X Treaty of Rome +ES 2009 X European Monetary Union +ES 2010 X Córdoba Cathedral +ES 2011 X Alhambra Palace +ES 2012 X X Burgos Cathedral Euro Cash +ES 2013 X El Escorial +ES 2014 X X Park Güell Accession of Felipe VI +ES 2015 X X Cave of Altamira EU Flag +ES 2016 X Segovia Aqueduct +ES 2017 - Asturias Churches +ES 2018 - - Birthday of Felipe VI Satiago de Compostela +ES 2019 - Avilla +ES 2020 X Architecture of Aragon +ES 2021 - Toledo +ES 2022 - - - Circumnavigation Garajonay Erasmus Programme +ES 2023 - - Cáceres EU Presidency + +FI 2004 - EU Enlargement +FI 2005 X Finland in the UN +FI 2006 X Universal Suffrage +FI 2007 X X Independence Treaty of Rome +FI 2008 X Human Rights +FI 2009 X X Autonomy European Monetary Union +FI 2010 - Markka +FI 2011 X National Bank +FI 2012 X X Helene Schjerfbeck Euro Cash +FI 2013 X X Parliament Frans Eemil Sillanpää +FI 2014 - X Tove Jansson Ilmari Tapiovaara +FI 2015 - - - Akseli Gallen-Kallela Jean Sibelius EU Flag +FI 2016 X X Eino Leino Georg Henrik von Wright +FI 2017 X X Finnish Nature Independence +FI 2018 - X Sauna Culture Koli Landscape +FI 2019 X Constitution +FI 2020 - X University of Turku Väinö Linna +FI 2021 X - Journalism Åland Islands +FI 2022 - - - Ballet Climate Research Erasmus Programme +FI 2023 - - Nature Conservation Social & Health Services + +FR 2007 X Treaty of Rome +FR 2008 X EU Presidency +FR 2009 X European Monetary Union +FR 2010 X Appeal of June 18 +FR 2011 X Music Day +FR 2012 - X Abbé Pierre Euro Cash +FR 2013 X - Élysée Treaty Pierre de Coubertin +FR 2014 X X D-Day World AIDS Day +FR 2015 X X X Festival of the Federation End of WW2 EU Flag +FR 2016 X X François Mitterrand UEFA European Championship +FR 2017 X X Auguste Rodin Pink Ribbon +FR 2018 X X Bleuet de France Simone Veil +FR 2019 X * Berlin Wall Astérix +FR 2020 X * Charles de Gaulle Medical Research +FR 2021 X * UNICEF Paris Olympics (Running) +FR 2022 X * X Jacques Chirac Paris Olympics (Discus) Erasmus Programme +FR 2023 ? * Rugby World Cup Paris Olympics (Boxing) + +GR 2004 X Olympic Games +GR 2007 X Treaty of Rome +GR 2009 X European Monetary Union +GR 2010 X Battle of Marathon +GR 2011 X Special Olympics +GR 2012 - Euro Cash +GR 2013 - - Platonic Academy Crete +GR 2014 - - Domenikos Theotokopoulos Ionian Islands +GR 2015 X X Spyridon Louis EU Flag +GR 2016 X X Dimitris Mitropoulos Arkadi Monastery +GR 2017 X X Nikos Kazantzakis Philippi +GR 2018 - X Dodecanese Union Kostis Palamas +GR 2019 X - Manolis Andronicos Andreas Kalvos +GR 2020 - - Battle of Thermopylae Thrace Union +GR 2021 X Greek Revolution +GR 2022 - - Constitution Erasmus Programme +GR 2023 - - Maria Callas Constantin Carathéodory + +IE 2007 X Treaty of Rome +IE 2009 X European Monetary Union +IE 2012 X Euro Cash +IE 2015 X EU Flag +IE 2016 X Easter Rising +IE 2019 X Dáil Éireann +IE 2022 X Erasmus Programme +IE 2023 - European Union Membership + +IT 2004 X World Food Program +IT 2005 X European Constitution +IT 2006 X Turin Winter Olympics +IT 2007 X Treaty of Rome +IT 2008 X Human Rights +IT 2009 - X Louis Braille European Monetary Union +IT 2010 X Count of Cavour +IT 2011 X Italian Unification +IT 2012 X X Giovanni Pascoli Euro Cash +IT 2013 X X Giuseppe Verdi Giovanni Boccaccio +IT 2014 X X Arma dei Carabinieri Galileo Galilei +IT 2015 X X X Milano EXPO Dante Alighieri EU Flag +IT 2016 X X Plautus Donatello +IT 2017 X X St. Mark’s Basilica Titus Livius +IT 2018 X X Italian Constitution Ministry of Health +IT 2019 X Leonardo da Vinci +IT 2020 X X Maria Montessori Firefighter Corps +IT 2021 - X Rome Health Professionals +IT 2022 X - X National Police Falcone & Borsellino Erasmus Programme +IT 2023 - - Air Force Alessandro Manzoni + +LT 2015 X X Lithuanian Language EU Flag +LT 2016 X Baltic Culture +LT 2017 X Vilnius +LT 2018 X - Baltic States Song & Dance Celebration +LT 2019 - - Multipart Songs Žemaitija +LT 2020 - - Hill of Crosses Aukštaitija +LT 2021 - X Žuvintas Biosphere Reserve Dzūkija +LT 2022 - - - Basketball Suvalkija Erasmus Programme +LT 2023 - Ukrainian Sunflower + +LU 2004 X Monogramme +LU 2005 - Henri & Adolphe +LU 2006 - Guillaume +LU 2007 X X Palais Grand-Ducal Treaty of Rome +LU 2008 - Accession of Charlotte +LU 2009 X European Monetary Union +LU 2010 - Grand Duke Henri +LU 2011 - Jean de Luxemburg +LU 2012 - - Royal Wedding Euro Cash +LU 2013 - National Anthem +LU 2014 X - 175 Years of Luxembourg Golden Jubilee +LU 2015 - - X Accession Nassau-Weilburg EU Flag +LU 2016 - Grand Duchess Charlotte Bridge +LU 2017 - - Volunteer Army William III +LU 2018 - - Constitution William I +LU 2019 - - Voting Rights Grand Duchess Charlotte +LU 2020 - - Prince Charles Prince Henri +LU 2020 P - Prince Charles +LU 2021 - - Royal Marriage Grand Duke Jean +LU 2021 P - - Royal Marriage Grand Duke Jean +LU 2022 - - - Grand-Ducal Wedding Luxembourg Flag Erasmus Programme +LU 2023 - - First Constitution Olympic Committee + +LV 2014 X Rīga +LV 2015 X X X Stork EU Council Presidency EU Flag +LV 2016 X X Cow Vidzeme +LV 2017 - - Kurzeme Latgale +LV 2018 X - Baltic States Zemgale +LV 2019 - Rising Sun +LV 2020 - Latgalian Ceramics +LV 2021 X Latvian Recognition +LV 2022 - - Financial Literacy Erasmus Programme +LV 2023 - Ukrainian Sunflower + +MC 2007 * Grace Kelly +MC 2011 - Royal Wedding +MC 2012 - Lucien Grimaldi I +MC 2013 - Admission to the UN +MC 2015 * The Fortress +MC 2016 * Monte Carlo +MC 2017 * Prince’s Company of Carabiniers +MC 2018 * Fraçois-Joseph Bosio +MC 2019 * Prince Honoré V +MC 2020 * Prince Honoré III +MC 2021 * Royal Wedding +MC 2022 * Prince Albert I +MC 2023 * Prince Rainier III + +MT 2009 X European Monetary Union +MT 2011 - First Electives +MT 2012 - X Majority Representation Euro Cash +MT 2013 - Self-Government +MT 2014 - - Independence Malta Police Force +MT 2015 - - - First Flight Republic of Malta EU Flag +MT 2016 X - Ġgantija Temples Love +MT 2016 MdP O Ġgantija Temples +MT 2017 X - Ħaġar Qim Temples The Peace +MT 2017 MdP O The Peace +MT 2018 - - Mnajdra Temples Cultural Heritage +MT 2019 - X Ta’ Ħaġrat Temples Nature & Environment +MT 2020 - - Skorba Temples Games +MT 2021 - - Tarxien Temples Heroes of the Pandemic +MT 2022 - - - Ħal-Saflieni Temples Peace & Security Erasmus Programme +MT 2023 - - Nicolaus Copernicus Napoleon Bonaparte + +NL 2007 X Treaty of Rome +NL 2009 X European Monetary Union +NL 2011 X Erasmus +NL 2012 X Euro Cash +NL 2013 X X Bicentennial of the Kingdom Abdication of Beatrix +NL 2014 X Accession of Willem-Alexander +NL 2015 X EU Flag +NL 2022 X Erasmus Programme + +PT 2007 X X EU Presidency Treaty of Rome +PT 2008 - Human Rights +PT 2009 - X Lusophony Games European Monetary Union +PT 2010 - Portuguese Republic +PT 2011 - Fernão Mendes Pinto +PT 2012 - - Guimarães Euro Cash +PT 2013 - Oporto Clérigos Tower +PT 2014 - - Family Farming Carnation Revolution +PT 2015 - X X Timor Portuguese Red Cross EU Flag +PT 2016 - - April Bridge Rio Olympics +PT 2017 - - Public Security Raul Brandão +PT 2018 - - Garden of Ajuda National Mint +PT 2019 X - Magellan Circumnavigation Maderia Archipelago +PT 2020 - - University of Coimbra United Nations +PT 2021 - - EU Presidency Tokyo Olympics +PT 2022 - - Crossing of the South Atlantic Erasmus Programme +PT 2023 - - Peace World Youth Day + +SI 2007 X Treaty of Rome +SI 2008 - Primož Trubar +SI 2009 X European Monetary Union +SI 2010 - Ljubljana Botanical Garden +SI 2011 - Franc Rozman-Stane +SI 2012 X Euro Cash +SI 2013 X Postojna Cave +SI 2014 - Barbara of Celje +SI 2015 X X Emona-Ljubljana EU Flag +SI 2016 X Independence +SI 2017 X The Euro in Slovenia +SI 2018 X World Bee Day +SI 2019 X University of Ljubljana +SI 2020 X Adam Bohorič +SI 2021 X Museum for Carniola +SI 2022 X - Jože Plečnik Erasmus Programme +SI 2023 - Josip Plemelj + +SK 2009 X X Freedom European Monetary Union +SK 2011 - Visegrad Group +SK 2012 - Euro Cash +SK 2013 - Constantine & Methodius +SK 2014 - European Union +SK 2015 X - Ľudovít Štúr EU Flag +SK 2016 X EU Presidency +SK 2017 - Universitas Istropolitana +SK 2018 X Slovak Republic +SK 2019 - Milan Rastislav Štefánik +SK 2020 - OECD +SK 2021 - Alexander Dubček +SK 2022 - - Steam Engine Erasmus Programme +SK 2023 - - Blood Transfusion Vienna-Bratislava Mail + +SM 2004 * Borghesi +SM 2005 * Physics +SM 2006 * Christopher Columbus +SM 2007 * Garibaldi +SM 2008 * Year of Intercultural Dialogue +SM 2009 * Creativity & Innovation +SM 2010 * Sandro Botticelli +SM 2011 * Giorgio Vasari +SM 2012 * Euro Cash +SM 2013 * Pinturicchio +SM 2014 * * Bramante Giacomo Puccini +SM 2015 * * German Reunification Dante Alighieri +SM 2016 * * William Shakespeare Donatello +SM 2017 * * Giotto Year of Sustainable Tourism +SM 2018 * * Bernini Tintoretto +SM 2019 * * Leonardo da Vinci Filippo Lippi +SM 2020 * * Raffaello Sanzio Giambattista Tiepolo +SM 2021 * * Dürer Caravaggio +SM 2022 * * Antonio Canova Piero Della Francesca +SM 2023 * * Pietro Perugino Luca Signorelli + +VA 2004 * Annivesary of the Vatican +VA 2005 * World Youth Day +VA 2006 * Swiss Guard +VA 2008 * * Benedicts Birthday Saint Paul +VA 2009 * Year of Astronomy +VA 2010 * Year for Priests +VA 2011 * World Youth Day +VA 2012 * World Meeting of Families +VA 2013 * World Youth Day +VA 2014 * Berlin Wall +VA 2015 * World Meeting of Families +VA 2016 * * Vatican Gendarmerie Jubilee of Mercy +VA 2017 * * Saints Peter & Paul Fatima Apparitions +VA 2018 * * Padre Pio Year of Cultural Heritage +VA 2019 * * Sistine Chapel Foundation of the Vatican +VA 2020 * * Pope John Paul II Raphael Sanzio +VA 2021 * * Caravaggio Dante Alighieri +VA 2022 * * Pope Paul VI Mother Teresa +VA 2023 * * Alessandro Manzoni Pietro Perugino diff --git a/data/coins b/data/coins new file mode 100644 index 0000000..91398e4 --- /dev/null +++ b/data/coins @@ -0,0 +1,585 @@ +AD - - - - X - X - 2014 +AD * * * * * * * X 2015 +AD * * * * * * X * 2016 +AD X X X X - X - X 2017 +AD X X X X X X * X 2018 +AD X X X X X X * X 2019 +AD * * * X - X * - 2020 +AD - - * X X X - X 2021 +AD - - - - - - * - 2022 +AD ? ? ? ? ? ? ? ? 2023 + +AT X X X X X X X X 2002 +AT - X X * X X * X 2003 +AT X X X X X X X X 2004 +AT X X X - - X - / 2005 +AT X X - X - X X X 2006 +AT X X X X X X X / 2007 +AT X X X X X X X X 2008 +AT X X - - X X X / 2009 +AT X X X X - X X X 2010 +AT X X X X X X X X 2011 +AT X X X X X * * X 2012 +AT X X X X X * * - 2013 +AT X X X X X * * X 2014 +AT X X X X X * * X 2015 +AT * * * X X X X / 2016 +AT X X X X X X X X 2017 +AT X X X X X X X / 2018 +AT X X X X X X X X 2019 +AT X X X X X X X X 2020 +AT X X X X X X X X 2021 +AT X X X X X X X X 2022 +AT X X X X X X X X 2023 + +BE start King Albert II (Series I) +BE X * X X * X X * 1999 +BE * X * * X * * X 2000 +BE X * * X * * * * 2001 +BE * * * - X X X X 2002 +BE - - X * X * X X 2003 +BE X X X X X X X X 2004 +BE * * X X X * * X 2005 +BE X X X * X * * X 2006 +BE X X * * X X * X 2007 +BE start King Albert II (Series II) +BE * * * * X X X X 2008 +BE - X * * X X X X 2009 +BE X - X X X * * X 2010 +BE - * X X X X X X 2011 +BE X X X X X X X * 2012 +BE X X X X * * * * 2013 +BE start King Philippe +BE * - X * * X * * 2014 +BE - X X X * X * * 2015 +BE X - X * * X * * 2016 +BE X * X - * X * * 2017 +BE * * X X * * O * 2018 +BE * * - - X X * X 2019 +BE * * * * * * * * 2020 +BE * * * * * * * * 2021 +BE * * - * * * * * 2022 +BE ? ? ? ? ? ? ? ? 2023 + +CY X X X X X X X X 2008 +CY X - X X X X X X 2009 +CY - - - - - - X - 2010 +CY X - X X - X - - 2011 +CY X X - X X X - X 2012 +CY - - - - - - - - 2013 +CY - - - - - - - - 2014 +CY X - - - - - - - 2015 +CY X - - - - X - - 2016 +CY - - - - - - - - 2017 +CY X - X - - - - X 2018 +CY X X X X X X - X 2019 +CY - X - - X - - X 2020 +CY - - - - - X - - 2021 +CY - - - - - - - - 2022 +CY ? ? ? ? ? ? ? ? 2023 + +DE X X X X X X X X 2002 A +DE X X X X X X X X 2002 D +DE X - X X X X X X 2002 F +DE X X X X X X X X 2002 G +DE X X X X X X X X 2002 J +DE * - * X X O X X 2003 A +DE * - * X - X * X 2003 D +DE * - * X X * - X 2003 F +DE * X * X X O * X 2003 G +DE * X * X * X X X 2003 J +DE - - X * * X X X 2004 A +DE X X X - X * X X 2004 D +DE X X X X * X X * 2004 F +DE - X X X * X X * 2004 G +DE X - X * * * * X 2004 J +DE X - X * X * * * 2005 A +DE - - X * - * * * 2005 D +DE - X X * X * * * 2005 F +DE - X X * - * * * 2005 G +DE X - X * X * X * 2005 J +DE * X - * X * * * 2006 A +DE * X X * X * * * 2006 D +DE * - - * X * * * 2006 F +DE * - X * X * * * 2006 G +DE * X - * X O * * 2006 J +DE X X X * X * * / 2007 A +DE X - X * X * * / 2007 D +DE - X X * X O * / 2007 F +DE - - X * X * * / 2007 G +DE X - X * X * * / 2007 J +DE - X X * X * * X 2008 A +DE X X - * X * * X 2008 D +DE X - - * X * * X 2008 F +DE X - - * X * * X 2008 G +DE - X X * - * * X 2008 J +DE X - X * X * * / 2009 A +DE X X X * X * * / 2009 D +DE X - X * X * * / 2009 F +DE X X X * X * * / 2009 G +DE - X - * X * * / 2009 J +DE - X X * X * * X 2010 A +DE - X X * X * * X 2010 D +DE - X X * X * * X 2010 F +DE X - X * - * * X 2010 G +DE - - X * X * * X 2010 J +DE X X X * X * * X 2011 A +DE X X X * X * * X 2011 D +DE X - - * X * * X 2011 F +DE X - - * X * * X 2011 G +DE X X X * X * * X 2011 J +DE X - X * X * * / 2012 A +DE X - X * X * * / 2012 D +DE X - X * X * * / 2012 F +DE X - X * X * * / 2012 G +DE X - X * X * * / 2012 J +DE X - X * X * * / 2013 A +DE - X - * X * * / 2013 D +DE - - X * X * * / 2013 F +DE - X - * - * * / 2013 G +DE - - X * X * * / 2013 J +DE - X - * X * * X 2014 A +DE X - X * - * * X 2014 D +DE X - X * X * * X 2014 F +DE X - X * X * * X 2014 G +DE - - X * X * * X 2014 J +DE - X X * X * * / 2015 A +DE X X X * X * * / 2015 D +DE - - X * X * * / 2015 F +DE - - X * X * * / 2015 G +DE - - X * X * * / 2015 J +DE - - X * X * * X 2016 A +DE X X X * X * * X 2016 D +DE - X X * X * * X 2016 F +DE - - X * X * * X 2016 G +DE - X X * X * * X 2016 J +DE - X - X X * * X 2017 A +DE - X X - X * * X 2017 D +DE - X X X - * * X 2017 F +DE - - - - - * * X 2017 G +DE - - X - X * * X 2017 J +DE - - - X X * * / 2018 A +DE - - X X X * * / 2018 D +DE X X - X X * * / 2018 F +DE X - X X X * * / 2018 G +DE - - X X X * * / 2018 J +DE - - X X X * * X 2019 A +DE X X - X X * * X 2019 D +DE - - X X X * * X 2019 F +DE - - X X X * * X 2019 G +DE - - X X - * * X 2019 J +DE - - X X X * * X 2020 A +DE X X X X X * * X 2020 D +DE X - - X X * * X 2020 F +DE - - X X - * * X 2020 G +DE - - - X X * * X 2020 J +DE - - X X X * * X 2021 A +DE - X X X X * * - 2021 D +DE - - - - X * * - 2021 F +DE X X X X X * * X 2021 G +DE - - X - X * * X 2021 J +DE * - X X X - * * 2022 A +DE * X - X X - * * 2022 D +DE * - - - - - * * 2022 F +DE * - - - - - * * 2022 G +DE * - - X X - * * 2022 J +DE - - - - - - * - 2023 A +DE - - - - - - * - 2023 D +DE - - - - - - * - 2023 F +DE - - - - - - * - 2023 G +DE - - - - - - * - 2023 J + +EE - X X X X X X X 2011 +EE - - / / / / / / 2012 +EE / / / / / / / / 2013 +EE / / / / / / / / 2014 +EE - - / / / / / / 2015 +EE * * * * * * * * 2016 +EE X X X / - / / / 2017 +EE - X - - - - X X 2018 +EE - / / / / / / / 2019 +EE / - / / X / / / 2020 +EE / - / / - / / / 2021 +EE - * - - * * * * 2022 +EE ? ? - - - ? ? - 2023 + +ES start King Juan Carlos I (Series I) +ES X X X X X X X X 1999 +ES - X X X X X X X 2000 +ES - X X X X X X X 2001 +ES X - - - X - X X 2002 +ES X - X X - X X X 2003 +ES X X X X - X X X 2004 +ES X X X X - X X X 2005 +ES X - X X X X X X 2006 +ES - X X X X X X - 2007 +ES X - X X X X X - 2008 +ES - X X X X X X - 2009 +ES start King Juan Carlos I (Series II) +ES X X X X X X X X 2010 +ES X - X X X X X X 2011 +ES X - X - X X - X 2012 +ES X X - - X X X X 2013 +ES - - X X X X X X 2014 +ES start King Felipe VI +ES X X X - - X X X 2015 +ES X - X X X X X X 2016 +ES X X X X X X X X 2017 +ES X - X X X X X - 2018 +ES - - X X X X X - 2019 +ES X X X - X - X - 2020 +ES - - X X - - - - 2021 +ES - - - - - - - - 2022 +ES ? ? ? ? ? ? ? ? 2023 + +FI X - X X - X X X 1999 +FI X - X X X X X X 2000 +FI - - X - X X X X 2001 +FI - - X X X - X - 2002 +FI - X - - - - - X 2003 +FI - X - - - - X X 2004 +FI X - - - - X X - 2005 +FI X - - - - X - X 2006 +FI - - - - - X - X 2007 +FI - - - - - X - - 2008 +FI - - - - - X - X 2009 +FI - - - - - X - X 2010 +FI - - - - X - - - 2011 +FI X X - X - - - X 2012 +FI - - - - - - - - 2013 +FI - - - - - - - - 2014 +FI - - - - - - - X 2015 +FI - - - - - - - - 2016 +FI - - - - - - - - 2017 +FI - - - - - - - X 2018 +FI / / - / / / / - 2019 +FI * * * * * * * * 2020 +FI * * * * * * * * 2021 +FI * * * * * * * * 2022 +FI ? ? ? ? ? ? ? ? 2023 + +FR start Series I +FR X X X X X X X X 1999 +FR X - X X X X X X 2000 +FR - X X X X X X X 2001 +FR - - X X X X X X 2002 +FR X - X X * * * * 2003 +FR X X X - * * * * 2004 +FR - X X X * * * * 2005 +FR X - X X * * * * 2006 +FR X X X X X * * * 2007 +FR X - X X X * * * 2008 +FR X - X X X * * * 2009 +FR X X X X X * * * 2010 +FR X - X X X * * X 2011 +FR X X - X * * * X 2012 +FR X - X X X * * X 2013 +FR X X X X X * * - 2014 +FR - - X X X * * X 2015 +FR X X - X * * * X 2016 +FR - X X X - * * X 2017 +FR - - - X X X * X 2018 +FR - - X X X X * X 2019 +FR ? ? X X X X * X 2020 +FR X ? ? X X X * ? 2021 +FR start Series II +FR ? ? ? ? ? X * X 2022 +FR ? ? ? ? ? ? * ? 2023 + +GR X X X X X X X X 2002 +GR - - - X X X X X 2002 MM +GR - - - - - - X - 2003 +GR X - - X - - - * 2004 +GR - - X X - X X X 2005 +GR X X - X - - - X 2006 +GR - - X X - - X * 2007 +GR - - X X X X X X 2008 +GR - - - X X X X X 2009 +GR - X X X X X X X 2010 +GR X X X - - - - * 2011 +GR - - - * * * * * 2012 +GR - X * X * * * * 2013 +GR - - X * * * * * 2014 +GR X - X * * * * * 2015 +GR - - - - * * * * 2016 +GR - - - X * * * * 2017 +GR X - - - * * * * 2018 +GR X - X - X - * * 2019 +GR - - X X X X * * 2020 +GR - - - * - X * * 2021 +GR - - - * - * * * 2022 +GR - - - - - - - - 2023 + +HR X X X X X X X X 2023 + +IE X X X X X X X X 2002 +IE X X X X X X - X 2003 +IE X X X X X X - X 2004 +IE X X X - X X X X 2005 +IE X X X X X X X X 2006 +IE X X X X X X X X 2007 +IE X X X X X X X X 2008 +IE X X X X - X X - 2009 +IE X - - - X - X X 2010 +IE X - - X X X X X 2011 +IE X X - - - X X X 2012 +IE X X - - - - X X 2013 +IE X - X X - X X X 2014 +IE - - X X X - - X 2015 +IE - - X X X - X - 2016 +IE - - X X - - - - 2017 +IE - - X X - - - - 2018 +IE * * X X ? ? ? X 2019 +IE - - X X - - - - 2020 +IE ? ? X X ? ? ? ? 2021 +IE ? ? ? ? ? ? ? ? 2022 +IE ? ? ? ? ? ? ? ? 2023 + +IT X X X X X X X X 2002 +IT - - - X - X X X 2003 +IT X - - - - X - X 2004 +IT X X - X - X - X 2005 +IT X X X X - X X - 2006 +IT X X X X - X X X 2007 +IT X X X X - X X - 2008 +IT X X X X X X X X 2009 +IT X X X X X X X X 2010 +IT X X X X X X X X 2011 +IT X - X X - X - X 2012 +IT X X X - - X - X 2013 +IT X X - X - - - - 2014 +IT X X - - - X - - 2015 +IT X X X - - X X - 2016 +IT X X - X - - - X 2017 +IT * * X X X X - X 2018 +IT * * - X X X - X 2019 +IT * * - X X X - X 2020 +IT * * X X X X X X 2021 +IT * * X - X X - X 2022 +IT ? ? ? ? ? ? ? ? 2023 + +LT - X X X X X X X 2015 +LT - / / / / / / / 2016 +LT X X / - - / / X 2017 +LT * * * * * * * * 2018 +LT * * * * * * * * 2019 +LT * * * * * * * X 2020 +LT * * - - * * * - 2021 +LT * * X * * * * * 2022 +LT ? ? ? ? ? ? ? ? 2023 + +LU X X X X X X X X 2002 +LU X X X X X X X X 2003 +LU X X X X X X X X 2004 +LU X X X X X X X X 2005 +LU X X X X X X X X 2006 +LU X X X X X X X X 2007 +LU X X X X X X X X 2008 +LU X X X X X X X X 2009 +LU X X X X X X X X 2010 +LU X X X X X X X X 2011 +LU X X X X X X X X 2012 +LU X X X X X X X X 2013 +LU X X X X X X X X 2014 +LU X X X X X X X X 2015 +LU X X X X X X X X 2016 +LU - - - - - - - X 2017 +LU - - X X - - X - 2018 +LU - - - - - - - - 2019 +LU - - X X - - - - 2020 +LU - - X - X - - - 2021 +LU - - - X - - - - 2022 +LU - - - - - - - - 2023 + +LV X X X X X X X X 2014 +LV * * * * * * * * 2015 +LV * * * * * * X * 2016 +LV / / / / / / / / 2017 +LV * * * * * * * * 2018 +LV * * - * * * * * 2019 +LV * * * * * * * * 2020 +LV * * * * * * * * 2021 +LV * * * * * * * * 2022 +LV ? ? ? ? ? ? ? ? 2023 + +MC start Prince Rainier III +MC - X X - - - - - 2001 +MC * * * - - - - X 2002 +MC / / / - X X - - 2003 +MC * * * * * * * * 2004 +MC * * * / / / / / 2005 +MC start Prince Albert II +MC * * * * * * * * 2006 +MC / / / / / / - / 2007 +MC / / / / / / / / 2008 +MC * * * * * * * X 2009 +MC / / / / / / / * 2010 +MC * * * * * * * - 2011 +MC / / / / / / / - 2012 +MC * * * * * * * * 2013 +MC * * * * * * X X 2014 +MC / / / / / / / X 2015 +MC / / / / / / - X 2016 +MC * * * * * * * X 2017 +MC / / / / / / X X 2018 +MC / / / / / / - X 2019 +MC * * * * * * X X 2020 +MC * * * * * * - X 2021 +MC / / / / / / - - 2022 +MC ? ? ? ? ? ? ? ? 2023 + +MT - X X X X X X X 2008 +MT / / / / / / / / 2009 +MT / / / / / / / X 2010 +MT * * * * * * * * 2011 +MT * * * * * * * * 2012 +MT X - X * * X * X 2013 +MT * * * * * O * * 2014 +MT * - X * * * * X 2015 +MT - - - - - X X - 2016 +MT X * X - * X X * 2017 +MT X - * * * * * * 2018 +MT - * X X X X X * 2019 +MT * - X - X X X * 2020 +MT X X X X X X X * 2021 +MT - - - - - * * * 2022 +MT ? ? ? ? ? ? ? ? 2023 + +NL start Queen Beatrix +NL X X X X X X X X 1999 +NL X X X X X X X X 2000 +NL X X X X X X X X 2001 +NL - X - - X X X X 2002 +NL X X - X X X - X 2003 +NL X X - X X X X X 2004 +NL - - X X - X - X 2005 +NL - - X - X X - X 2006 +NL - - X - - - - - 2007 +NL - - X - - X - X 2008 +NL - - X - - X - X 2009 +NL - - X - - X - - 2010 +NL - - X - - X - - 2011 +NL - - X - - - - - 2012 +NL - - X - - - - X 2013 +NL start King Willem-Alexander +NL - - X X X X X X 2014 +NL - - X - - - X X 2015 +NL - - X - X - - - 2016 +NL * * X X * * * * 2017 +NL * * X X X * * * 2018 +NL * * X X * * * * 2019 +NL * * X * * * * * 2020 +NL * * * * * * * * 2021 +NL * * X X X * * * 2022 +NL ? ? ? ? ? ? ? ? 2023 + +PT X X X X X X X X 2002 +PT * * * X - X X X 2003 +PT X - X - - X X X 2004 +PT X - - - X - X - 2005 +PT X - X - X X X - 2006 +PT X X X * * * X * 2007 +PT X X X - X X X * 2008 +PT X X X X X X X * 2009 +PT X X - * X X X * 2010 +PT X X - * - * X * 2011 +PT X X X * * * * * 2012 +PT * * * * * * * * 2013 +PT X X * * * * X * 2014 +PT X X * * X X - * 2015 +PT X X - X X X X * 2016 +PT X X X X X X X * 2017 +PT * * X X X * X * 2018 +PT X * X X * X - * 2019 +PT X * X * - * - * 2020 +PT * * - - X X * * 2021 +PT * * * * * * * * 2022 +PT ? ? ? ? ? ? ? ? 2023 + +SI X X X X X X X X 2007 +SI * * * * * * * O 2008 +SI - X * * * * * * 2009 +SI * * * * * * * * 2010 +SI * * * * * * * * 2011 +SI * * * * * * * * 2012 +SI * * * * * * * * 2013 +SI * * * * * * * * 2014 +SI X * * * * * * * 2015 +SI X * * * * * * * 2016 +SI * * * * * * * * 2017 +SI X X * - * * * * 2018 +SI X X - X - * * * 2019 +SI - X * * * * * X 2020 +SI X X - * * - * * 2021 +SI - - - - X * * X 2022 +SI ? ? ? ? ? * * ? 2023 + +SK X X X X X X X X 2009 +SK X X * * * * * * 2010 +SK X X * * * * * X 2011 +SK X * * * * * * * 2012 +SK X * * * * * * * 2013 +SK X - * * * * * * 2014 +SK X - * * * * * X 2015 +SK X - * * * * * X 2016 +SK X - - * * * * X 2017 +SK X - - * * * * * 2018 +SK X X - X * * * * 2019 +SK X - - X * * * X 2020 +SK - - - X * * X * 2021 +SK * * - X * * * - 2022 +SK * * - - * * * - 2023 + +SM start Series I +SM * * * * X - - - 2002 +SM * * * * - X * * 2003 +SM X - - - * * - * 2004 +SM * * * * - - * * 2005 +SM * O * * * - * * 2006 +SM * * * * * - * * 2007 +SM * * * * - X * O 2008 +SM * * * * * * - * 2009 +SM * * * * * * - * 2010 +SM * * * * * * * - 2011 +SM * * * * * * * X 2012 +SM * * * * - - - - 2013 +SM * * * * * - X * 2014 +SM * * * * - - X * 2015 +SM * * * * - * * X 2016 +SM start Series II +SM * * * * X * - - 2017 +SM * * * * - - - * 2018 +SM * * * * * - - - 2019 +SM * * * * * X - - 2020 +SM * * * * - - - - 2021 +SM * * * * - - - - 2022 +SM * * * * - - - - 2023 + +VA start Pope John Paul II +VA * * * * * * * * 2002 +VA * * * * * * * * 2003 +VA * * * * * * * * 2004 +VA * * * * * * * * 2005 +VA start Sede Vacante +VA * * * * * * * * 2005 +VA start Pope Benedict XVI +VA * * * * * * * * 2006 +VA * * * * * * * * 2007 +VA * * * * * * * * 2008 +VA * * * * * * * * 2009 +VA * * * * * X * * 2010 +VA * * * * * X * * 2011 +VA * * * * * X * * 2012 +VA * * * * * X * * 2013 +VA start Pope Francis +VA * * * * * X * * 2014 +VA * * * * * X * * 2015 +VA * * * * * X * * 2016 +VA start Coat of Arms +VA * * * * * X * * 2017 +VA * * * * * X * * 2018 +VA * * * * * X * * 2019 +VA * * * * * X * * 2020 +VA * * * * * X * * 2021 +VA ? ? ? ? ? ? ? ? 2022 +VA ? ? ? ? ? ? ? ? 2023 diff --git a/data/country-info b/data/country-info new file mode 100644 index 0000000..74449f3 --- /dev/null +++ b/data/country-info @@ -0,0 +1,31 @@ +AD Andorran Andorra +AT Austrian Austria +BE Belgian Belgium +BG Bulgarian Bulgaria +CY Cypriot Cyprus +DE German Germany +DE-R German Germany +DE-W German Germany +DE-X German Germany +EE Estonian Estonia +ES Spanish Spain +FI Finnish Finland +FR French France +FR-E French France +FR-U French France +GR Greek Greece +HR Croatian Croatia +IE Irish Ireland +IT Italian Italy +LT Lithuanian Lithuania +LU Luxembourgish Luxembourg +LV Latvian Latvia +MC Monégasque Monaco +MT Maltese Malta +NL Dutch Netherlands +PT Portuguese Portugal +SI Slovene Slovenia +SK Slovak Slovakia +SM Sammarinese San Marino +US American United States of America +VA Vatican Vatican City diff --git a/data/note-info b/data/note-info new file mode 100644 index 0000000..45842f1 --- /dev/null +++ b/data/note-info @@ -0,0 +1,25 @@ +AT N +BE Z +BG F +CY G +DE X +DE-R R +DE-W W +DE-X X +EE D +ES V +FI L +FR U +FR-E E +FR-U U +GR Y +IE T +IT S +MT F +NL P +PT M +SI H +SK E + +2002 Ages and Styles of Europe +Europa Europa diff --git a/data/notes b/data/notes new file mode 100644 index 0000000..9912447 --- /dev/null +++ b/data/notes @@ -0,0 +1,160 @@ +5 2002 AT - X +5 2002 BE - / +5 2002 CY / - +5 2002 FI - - +5 2002 FR - X +5 2002 DE X X +5 2002 GR - / +5 2002 IE - - +5 2002 IT - / +5 2002 MT / - +5 2002 NL X X +5 2002 PT X X +5 2002 SK / - +5 2002 SI / - +5 2002 ES - X +5 Europa AT X X +5 Europa BE X / +5 Europa FR-E / X +5 Europa FR-U X X +5 Europa DE-W X / +5 Europa GR X / +5 Europa IE X / +5 Europa IT X / +5 Europa PT X X +5 Europa ES X - + +10 2002 AT - X / +10 2002 BE - / / +10 2002 FI - / / +10 2002 FR - X / +10 2002 DE - X X +10 2002 GR X X - +10 2002 IE X X X +10 2002 IT - - / +10 2002 NL - - / +10 2002 PT - - / +10 2002 ES - / / +10 Europa AT X - +10 Europa BG X / +10 Europa FR-E X / +10 Europa FR-U X / +10 Europa DE-R / X +10 Europa DE-W X X +10 Europa DE-X X / +10 Europa GR X - +10 Europa IE X / +10 Europa IT X / +10 Europa NL X / +10 Europa PT / - +10 Europa ES X - + +20 2002 AT - - / +20 2002 BE - / / +20 2002 CY / - - +20 2002 EE / / X +20 2002 FI - - - +20 2002 FR X X - +20 2002 DE - X - +20 2002 GR - X - +20 2002 IE X - / +20 2002 IT - X - +20 2002 MT / - - +20 2002 NL - - - +20 2002 PT - - X +20 2002 SK / - - +20 2002 SI / - - +20 2002 ES - - / +20 Europa AT X / +20 Europa BE X / +20 Europa BG / X +20 Europa FR-E X X +20 Europa FR-U X X +20 Europa DE-R X X +20 Europa DE-W X / +20 Europa DE-X - / +20 Europa IE - / +20 Europa IT X X +20 Europa PT X - +20 Europa ES X / + +50 2002 AT - / / +50 2002 BE - X X +50 2002 CY / / - +50 2002 EE / / - +50 2002 FI - / - +50 2002 FR - / / +50 2002 DE X X X +50 2002 GR - / / +50 2002 IE - / / +50 2002 IT - X X +50 2002 MT / / X +50 2002 NL - X X +50 2002 PT - / / +50 2002 SK / / - +50 2002 SI / / - +50 2002 ES - X - +50 Europa AT - / +50 Europa BE X / +50 Europa FR-E - - +50 Europa FR-U X X +50 Europa DE-R X X +50 Europa DE-W X - +50 Europa GR - - +50 Europa IT X X +50 Europa NL - / +50 Europa PT X / +50 Europa ES X X + +100 2002 AT - - - +100 2002 BE - / / +100 2002 FI - - / +100 2002 FR - / / +100 2002 DE X - X +100 2002 GR - / / +100 2002 IE - / / +100 2002 IT X - / +100 2002 NL - - / +100 2002 PT - / / +100 2002 ES - / - +100 Europa AT - / +100 Europa FR-E - X +100 Europa FR-U - / +100 Europa DE-R X / +100 Europa DE-W / X +100 Europa IT - / +100 Europa ES - / + +200 2002 AT - / / +200 2002 BE - / - +200 2002 FI - / / +200 2002 FR - / / +200 2002 DE - - - +200 2002 GR - / / +200 2002 IT - / / +200 2002 NL - / / +200 2002 ES - / / +200 Europa AT X - +200 Europa FR-E / - +200 Europa FR-U - / +200 Europa IT X / + +500 2002 AT - - - +500 2002 BE - / / +500 2002 FI - / / +500 2002 FR - / / +500 2002 DE X - / +500 2002 GR - / / +500 2002 IE - / / +500 2002 IT - / / +500 2002 NL - / / +500 2002 ES - / / + +TN 5 ZA********** * +TN 20 NZ********** - +TN 20 S********999 - +TN 20 VH********** - +TN 20 XZ********** - +TN 50 VH********** - +TN 100 NZ********** - +TN 200 NZ********** - diff --git a/scripts/colspan.sed b/scripts/colspan.sed new file mode 100755 index 0000000..ef6077b --- /dev/null +++ b/scripts/colspan.sed @@ -0,0 +1,10 @@ +#!/bin/sed -f + +/colspan=X.*colspan=X.*colspan=X.*colspan=X/ s/colspan=X/colspan=3/g +/colspan=X.*colspan=X.*colspan=X/ s/colspan=X/colspan=4/g +/colspan=X.*colspan=X/ s/colspan=X/colspan=6/g +/colspan=X/ s/colspan=X/colspan=12/g + +/colspan=Y.*colspan=Y.*colspan=Y/ s/colspan=Y/colspan=2/g +/colspan=Y.*colspan=Y/ s/colspan=Y/colspan=3/g +/colspan=Y/ s/colspan=Y/colspan=6/g diff --git a/scripts/getcls.awk b/scripts/getcls.awk new file mode 100644 index 0000000..5bf3219 --- /dev/null +++ b/scripts/getcls.awk @@ -0,0 +1,16 @@ +function getcls(c) +{ + if (c == "-") + return "missing" + if (c == "X") + return "have" + if (c == "*") + return "nifc" + if (c == "O") + return "have-nifc" + if (c == "?") + return "unknown" + if (c == "/") + return "not-minted" + return "error" +} diff --git a/scripts/last-of-design.sed b/scripts/last-of-design.sed new file mode 100755 index 0000000..8e6c5a4 --- /dev/null +++ b/scripts/last-of-design.sed @@ -0,0 +1,19 @@ +#!/bin/sed -Enf + +//! { + p + d +} + +N + +/|MARKER LOL/ { + s/// + s/MARKER LOL// + p + d +} + +s/// +P +D diff --git a/scripts/xfsub b/scripts/xfsub new file mode 100755 index 0000000..cab652a --- /dev/null +++ b/scripts/xfsub @@ -0,0 +1,3 @@ +#!/bin/sh + +fsub "$1" "$2" "$3" | sponge "$3" diff --git a/server.go b/server.go new file mode 100644 index 0000000..502a038 --- /dev/null +++ b/server.go @@ -0,0 +1,98 @@ +package main + +import ( + "errors" + "log" + "net/http" + "os" + "strings" + "time" +) + +var url string + +const CookieName = "eurothomasvosscom_users-language" + +func isSupportedLanguage(lang string) bool { + if len(lang) != 2 { + return false + } + _, err := os.Stat(lang) + return !os.IsNotExist(err) +} + +func router(w http.ResponseWriter, r *http.Request) { + if r.Method != http.MethodGet { + http.Error(w, "Method is not supported.", http.StatusMethodNotAllowed) + return + } + + var lang string + cookie, err := r.Cookie(CookieName) + if err != nil && !errors.Is(err, http.ErrNoCookie) { + log.Println(err) + http.Error(w, "An error occured", http.StatusInternalServerError) + return + } else if err != nil { + lang = "en/" + } else { + lang = cookie.Value + } + + if r.URL.Path == "/" { + http.SetCookie(w, &http.Cookie{ + Name: "redirect", + Path: "/", + }) + http.Redirect(w, r, lang, http.StatusMovedPermanently) + return + } + + path := r.URL.Path[1:] + parts := strings.Split(path, "/") + + _, err = r.Cookie("redirect") + if isSupportedLanguage(parts[0]) { + if r.Header.Get("Referer") == "" && err != nil { + parts[0] = lang + path = strings.Join(parts, "/") + http.SetCookie(w, &http.Cookie{ + Name: "redirect", + Path: "/", + }) + http.Redirect(w, r, url + path, http.StatusMovedPermanently) + return + } + + if r.Header.Get("Referer") != "" { + http.SetCookie(w, &http.Cookie{ + Name: CookieName, + Value: parts[0], + Path: "/", + }) + } + } + + if err == nil { + http.SetCookie(w, &http.Cookie{ + Name: "redirect", + Expires: time.Unix(0, 0), + Path: "/", + }) + } + http.ServeFile(w, r, path) +} + +func main() { + if len(os.Args) == 2 { + url = os.Args[1] + } else { + url = "http://localhost:8000/" + } + + if err := os.Chdir("out"); err != nil { + panic(err) + } + http.HandleFunc("/", router) + log.Fatal(http.ListenAndServe(":8000", nil)) +} diff --git a/src/banknotes.jpg b/src/banknotes.jpg new file mode 100644 index 0000000..c5baeed Binary files /dev/null and b/src/banknotes.jpg differ diff --git a/src/coins.jpg b/src/coins.jpg new file mode 100644 index 0000000..463a4e3 Binary files /dev/null and b/src/coins.jpg differ diff --git a/src/en/changelog/index.html b/src/en/changelog/index.html new file mode 100644 index 0000000..fe1880e --- /dev/null +++ b/src/en/changelog/index.html @@ -0,0 +1,79 @@ + + + + + Changelog + + + + + + + +
+
+
+

Collection Updates

+
…and some site updates too
+
+
+ +
+

+ This is the site changelog; all updates and changes to the website or + my collections are documented here. For logistical reasons this is + only available in English. +

+
+ +
+
+

18th of April, 2023

+

+ Today was pretty successful. I passed by Chase Bank near closing + hours and it was a good thing I did too. The customer right before + me in the line to the teller deposited $10 in dollar coins. I + bought them from the bank and got two new finds: a “Great Law of + Peace” native-american dollar from Philadelphia, and a Herbert + Hoover NIFC presidential dollar from Philadelphia. +

+ I also hunted a printer (it accepts cash payment to print stuff). I + managed to get 5 new “America the Beautiful” quarters, 5 new state + quarters, my first ever districts quarter, and a new “Westward + Journey” nickel. The “America the Beautiful” quarters were: Block + Island (P), Great Sand Dunes (D), Homestead (D), + Marsh-Billings-Rockefeller (D), and War in the Pacific (P). The + state quarters were: Connecticut (P), Idaho (P), Massachusetts (P), + Utah (P), and Wyoming (P). The district quarter was American Samoa + (D) and the nickel was a Bison (P). +

+ Finally I visited a currency-exchange office hoping to find my first + €500 bill. They didn’t have any but I managed to snag a French €200 + from the Europa series, a new find for myself. +

+
+
+ +
+
+

Start of Changelog

+

+ This is the start of the sites changelog. The site has been around + since the 11th of February 2023, and this collection began around + April of 2022, so theres a lot of “history” here that won’t end up + documented. If you really care for some reason, you can check the + git-log of the site on the git repository. From now on I’ll be + documenting all my new finds here both so I can look back on it in + the future for fun, and incase anyone finds anything here + interesting. I suppose it makes the site a bit more human. + + I am currently in the United States on vacation, so the next couple + of site updates are going to be primarily american coins. +

+
+
+ +
+
+ + diff --git a/src/en/euro/coin-nav.html b/src/en/euro/coin-nav.html new file mode 100644 index 0000000..e885b44 --- /dev/null +++ b/src/en/euro/coin-nav.html @@ -0,0 +1,26 @@ + diff --git a/src/en/euro/coins.template.html b/src/en/euro/coins.template.html new file mode 100644 index 0000000..ae39ec5 --- /dev/null +++ b/src/en/euro/coins.template.html @@ -0,0 +1,125 @@ + + + + + <!-- DEMON --> Euro Coins + + + + + + + +
+
+
+

Euro Coins

+
+
+ +

+ +
+ +

+ + +
+

+ Germany has 5 different mints that each mint coins. These mints are + located in Berlin (A), Munich (D), Stuttgart (F), Karlsruhe (G), and + Hamburg (J). All German euro-coins contain a letter (the “mintmark”) + identifying which mint the coin was minted at. This means that there + are 5 versions of every German euro-coin that must be collected. +

+
+
+ + +
+

+ As a result of a late joining to the Eurozone, Greece was assisted by + the countries of France, Spain, and Finland to mint coins for 2002. + For this reason all 2002 coins have two varieties — one with a + mintmark in the star (‘F’, ‘E’, and ‘S’) and one without. +

+
+
+ + +
+

+ For the years 2020–2021 Luxembourg released certain commemorative + coins in both a “classic” and “photo” variety. Any years labeled with + ‘P’ are of the “photo” variety while years without a label are of the + standard “classic” variety. +

+
+
+ + +
+

+ Many Maltese commemoratives have different mintmarks depending on in + they were intended for circulation, coincards, or sets. Any years + listed on this page suffixed with “MdP” bear the mintmark of the + Monnaie de Paris (Paris Mint), while years suffixed with “KNM” bear + the mintmark of the Koninklijke Nederlandse Munt (Royal Dutch Mint). +

+
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
Standard Issues
1 Cent2 Cent5 Cent10 Cent20 Cent50 Cent1 Euro2 Euro
+
+
+ + +
+
+ + + + + + + + + + + + + +
Commemorative Issues
YearCommemorated Topics
+
+
+ + +
+
+ + diff --git a/src/en/euro/index.html b/src/en/euro/index.html new file mode 100644 index 0000000..faa1cc6 --- /dev/null +++ b/src/en/euro/index.html @@ -0,0 +1,101 @@ + + + + + Euro-Coins & -Banknotes + + + + + + + +
+
+
+

Euro-Coins and -Banknotes

+
My Primary Collection
+
+
+ +
+

+ This is my euro collection. It’s the largest collection I’ve ever + amassed. It’s also my primary collection as I reside in the Eurozone. + I do own uncirculated-coins and -banknotes, but all coins and + banknotes listed on this section of the site are circulated. +

+
+ +
+ +
+ +
+
+

Euro Banknotes

+ + + + + + + + + + + + + + + +
€5€10€20€50
€100€200€500Test Notes
+
+
+ +
+
+ + diff --git a/src/en/euro/note-nav.html b/src/en/euro/note-nav.html new file mode 100644 index 0000000..1043191 --- /dev/null +++ b/src/en/euro/note-nav.html @@ -0,0 +1,10 @@ + diff --git a/src/en/euro/notes.template.html b/src/en/euro/notes.template.html new file mode 100644 index 0000000..f15f087 --- /dev/null +++ b/src/en/euro/notes.template.html @@ -0,0 +1,87 @@ + + + + + €<!-- DENOM --> Banknotes + + + + + + + +
+
+
+

Banknotes

+
+
+ +

+ +
+ +

+ +
+

+ In the serial numbers of the banknotes found in the “Ages and Styles + of Europe” series, also known as the “2002” series, the first letter + represents the country that the banknote was issued by. In the second + series (the “Europa” series) the first letter no longer represents the + issuing country but instead the location at which the banknote was + printed. + +

+ No €5 banknotes were printed for the “Ages and Styles of Europe” + series which bear the signature of Mario Draghi. + + +

+ The €500 banknote was discontinued and withdrawn from circulation with + the release of the “Europa” series. + +

+
+ +
+ +
+
+ + + + + + + + + +
Ages and Styles of Europe
+
+
+ + +
+
+ + + + + + + + + +
Europa Series
+
+
+ + +
+
+ + diff --git a/src/en/euro/tnotes.template.html b/src/en/euro/tnotes.template.html new file mode 100644 index 0000000..982e1cf --- /dev/null +++ b/src/en/euro/tnotes.template.html @@ -0,0 +1,66 @@ + + + + + Euro Test-Banknotes + + + + + + + +
+
+
+

Euro Test-Banknotes

+
+
+ +

+ +
+ +

+ +
+

+ The following “test banknotes” were banknotes from the “Europa” series + printed to test their usage in ATMs and such. The ‘*’ character in + the below serial numbers represents an arbitrary number/letter. +

+ A few additional notes: the €5 test-note bears the signature of + Jean-Claude Trichet, and the €20 test-note beginning with ‘S’ was + printed on the plate “S004”. If a note matches the serial-number + pattern but does fails these requirements, it’s not a test-note. +

+
+ +
+ +
+
+ + + + + + + + + + + + + +
Test Banknotes
YearSerial Number
+
+
+ +
+
+ + diff --git a/src/en/footer.html b/src/en/footer.html new file mode 100644 index 0000000..ca42706 --- /dev/null +++ b/src/en/footer.html @@ -0,0 +1,3 @@ +

+ Found a mistake or a bad translation? Contact me! +

diff --git a/src/en/index.html b/src/en/index.html new file mode 100644 index 0000000..b81583d --- /dev/null +++ b/src/en/index.html @@ -0,0 +1,63 @@ + + + + + Thomas’ Euro Collection + + + + + + + +
+
+
+

Thomas’ Euro Collection

+
…and some world stuff too!
+
+
+ +
+

+ This website houses the entirety of my circulated euro-coin and + -banknote collection. It also has some non-euro currencies too! + Unless explicitly stated otherwise, all coins and banknotes listed on + this site should be circulated. In other words, they shouldn’t’ve + just come from a coin set I purchased from a coin mint. I think it’s + just a lot cooler knowing that a piece of money was previously used in + a real-world transaction. +

+
+ +
+ +

Euro-Coins and -Banknotes

+

+ The main focus of my currency collecting with a single currency that + spans 26 countries and almost 350 million people. Standard issues, + commemorative issues, and banknotes from all series are all + included. +

+ +
+
+ +
+ +

World-Coins and -Banknotes

+

+ Money from around the world! This collection gets progressively + larger over time, but is not my primary focus. There are a few + countries in which I take a special interest though. +

+ This section is currently unavailable. +

+ +
+
+ +
+
+ + diff --git a/src/en/nav-bar.html b/src/en/nav-bar.html new file mode 100644 index 0000000..21e15ad --- /dev/null +++ b/src/en/nav-bar.html @@ -0,0 +1,12 @@ + diff --git a/src/en/table-key.html b/src/en/table-key.html new file mode 100644 index 0000000..0868211 --- /dev/null +++ b/src/en/table-key.html @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Missing from my collection (NIFC)
In my collection
In my collection (NIFC)
Data missing
Not mintedNot printed
diff --git a/src/eu-stars.svg b/src/eu-stars.svg new file mode 100644 index 0000000..7ee32dd --- /dev/null +++ b/src/eu-stars.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/favicon.svg b/src/favicon.svg new file mode 100644 index 0000000..be29307 --- /dev/null +++ b/src/favicon.svg @@ -0,0 +1,160 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/globe.svg b/src/globe.svg new file mode 100644 index 0000000..42da5d8 --- /dev/null +++ b/src/globe.svg @@ -0,0 +1,6 @@ + + + + Svg Vector Icons : http://www.onlinewebfonts.com/icon + + diff --git a/src/language-selector.html b/src/language-selector.html new file mode 100644 index 0000000..96fb139 --- /dev/null +++ b/src/language-selector.html @@ -0,0 +1,4 @@ + diff --git a/src/pt/euro/coin-nav.html b/src/pt/euro/coin-nav.html new file mode 100644 index 0000000..e885b44 --- /dev/null +++ b/src/pt/euro/coin-nav.html @@ -0,0 +1,26 @@ + diff --git a/src/pt/euro/coins.template.html b/src/pt/euro/coins.template.html new file mode 100644 index 0000000..5708f69 --- /dev/null +++ b/src/pt/euro/coins.template.html @@ -0,0 +1,111 @@ + + + + + + <!-- DEMON --> Euro Coins + + + + + + + +
+
+
+

Euro Coins

+
+
+ +

+ +
+ +

+ + +
+

+ Germany has 5 different mints that each mint coins. These mints are + located in Berlin (A), Munich (D), Stuttgart (F), Karlsruhe (G), and + Hamburg (J). All German euro-coins contain a letter (the “mintmark”) + identifying which mint the coin was minted at. This means that there + are 5 versions of every German euro-coin that must be collected. +

+
+
+ + +
+

+ As a result of a late joining to the Eurozone, Greece was assisted by + the countries of France, Spain, and Finland to mint coins for 2002. + For this reason all 2002 coins have two varieties — one with a + mintmark in the star (‘F’, ‘E’, and ‘S’) and one without. +

+
+
+ + +
+

+ For certain commemorative releases Luxembourg minted two different + varieties — “classic” and a “holographic”. Any years listed on this + page suffixed with ‘C’ are of the classic variety while any years + suffixed with ‘H’ are of the holographic variety. +

+
+
+ + +
+
+ + + + + + + + + + + + + + + + + + + +
Standard Issues
1 Cent2 Cent5 Cent10 Cent20 Cent50 Cent1 Euro2 Euro
+
+
+ + +
+
+ + + + + + + + + + + + + +
Commemorative Issues
YearCommemorated Topics
+
+
+ + +
+
+ + diff --git a/src/pt/euro/index.html b/src/pt/euro/index.html new file mode 100644 index 0000000..32c4469 --- /dev/null +++ b/src/pt/euro/index.html @@ -0,0 +1,102 @@ + + + + + + Euro-Coins & -Banknotes + + + + + + + +
+
+
+

Euro-Coins and -Banknotes

+
My Primary Collection
+
+
+ +
+

+ This is my euro collection. It’s the largest collection I’ve ever + amassed. It’s also my primary collection as I reside in the Eurozone. + I do own uncirculated-coins and -banknotes, but all coins and + banknotes listed on this section of the site are circulated. +

+
+ +
+ +
+ +
+
+

Euro Banknotes

+ + + + + + + + + + + + + + + +
€5€10€20€50
€100€200€500Test Notes
+
+
+ +
+
+ + diff --git a/src/pt/euro/note-nav.html b/src/pt/euro/note-nav.html new file mode 100644 index 0000000..c08af2a --- /dev/null +++ b/src/pt/euro/note-nav.html @@ -0,0 +1,11 @@ + + diff --git a/src/pt/euro/notes.template.html b/src/pt/euro/notes.template.html new file mode 100644 index 0000000..7a78bb1 --- /dev/null +++ b/src/pt/euro/notes.template.html @@ -0,0 +1,85 @@ + + + + + + €<!-- DENOM --> Banknotes + + + + + + + +
+
+
+

Banknotes

+
+
+ +

+ +
+ +

+ +
+

+ In the serial numbers of the banknotes found in the “Ages and Styles + of Europe” series, also known as the “2002” series, the first letter + represents the country that the banknote was issued by. In the second + series (the “Europa” series) the first letter no longer represents the + issuing country but instead the location at which the banknote was + printed. + +

+ No €5 banknotes were printed for the “Ages and Styles of Europe” + series which bear the signature of Mario Draghi. + + +

+ The €500 banknote was discontinued and withdrawn from circulation with + the release of the “Europa” series. + +

+
+ +
+ +
+
+ + + + + + + + + +
Ages and Styles of Europe
+
+
+ + +
+
+ + + + + + + + + +
Europa Series
+
+
+ + +
+
+ + diff --git a/src/pt/euro/tnotes.template.html b/src/pt/euro/tnotes.template.html new file mode 100644 index 0000000..a5fde9b --- /dev/null +++ b/src/pt/euro/tnotes.template.html @@ -0,0 +1,64 @@ + + + + + + Euro Test-Banknotes + + + + + + + +
+
+
+

Euro Test-Banknotes

+
+
+ +

+ +
+ +

+ +
+

+ The following “test banknotes” were banknotes from the “Europa” series + printed to test their usage in ATMs and such. The ‘*’ character in + the below serial numbers represents an arbitrary number/letter. +

+ A few additional notes: the €5 test-note bears the signature of + Jean-Claude Trichet, and the €20 test-note beginning with ‘S’ was + printed on the plate “S004”. If a note matches the serial-number + pattern but does fails these requirements, it’s not a test-note. +

+
+ +
+ +
+
+ + + + + + + + + + + + + +
Test Banknotes
YearSerial Number
+
+
+ +
+
+ + diff --git a/src/pt/footer.html b/src/pt/footer.html new file mode 100644 index 0000000..c6351c6 --- /dev/null +++ b/src/pt/footer.html @@ -0,0 +1,3 @@ +

+ Encontrou um erro ou uma tradução ruim? Contate-me! +

diff --git a/src/pt/index.html b/src/pt/index.html new file mode 100644 index 0000000..54dc842 --- /dev/null +++ b/src/pt/index.html @@ -0,0 +1,63 @@ + + + + + Coleção de Euros de Thomas + + + + + + + +
+
+
+

Coleção de Euros de Thomas

+
…e algumas coisas do mundo também!
+
+
+ +
+

+ Este site contém toda a minha coleção de moedas e notas de euro em + circulação. Também tem algumas moedas diferentes do euro! Salvo + indicação em contrário, todas as moedas e notas listadas neste site + devem ser distribuídas. Em outras palavras, eles não deveriam ter + vindo apenas de um conjunto de moedas que comprei em uma casa da + moeda. Acho muito mais legal saber que uma parte do dinheiro foi + usada anteriormente em uma transação do mundo real. +

+
+ +
+ +

Moedas e Notas de Euro

+

+ O foco principal da minha coleta de moeda com uma moeda única que + abrange 26 países e quase 350 milhões de pessoas. Problemas padrão, + edições comemorativas e cédulas de todas as séries são todas + incluído. +

+ +
+
+ +
+ +

Moedas e Notas de Mundo

+

+ Dinheiro de todo o mundo! Esta coleção fica progressivamente maior + ao longo do tempo, mas não é meu foco principal. existem alguns + países nos quais tenho um interesse especial. +

+ Esta seção está indisponível no momento. +

+ +
+
+ +
+
+ + diff --git a/src/pt/nav-bar.html b/src/pt/nav-bar.html new file mode 100644 index 0000000..bd56bb1 --- /dev/null +++ b/src/pt/nav-bar.html @@ -0,0 +1,11 @@ + diff --git a/src/pt/table-key.html b/src/pt/table-key.html new file mode 100644 index 0000000..7f1f85e --- /dev/null +++ b/src/pt/table-key.html @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + +
Em falta na minha coleção (NIFC)
Na minha coleção
Na minha coleção (NIFC)
Faltam dados
Não cunhadaNão impresso
diff --git a/src/style.css b/src/style.css new file mode 100644 index 0000000..d271c3b --- /dev/null +++ b/src/style.css @@ -0,0 +1,470 @@ +:root { + --background-color: #121212; + --secondary-darker-color: #1B1B1B; + --secondary-color: #1F1F1F; + --tertiary-color: #282828; + --secondary-hover-color: #282828; + --tertiary-hover-color: #313131; + + --font-color: #FFF; + --font-opacity: 87%; + --font-secondary-opacity: 60%; + + --background-image-opacity: 30%; + + --slant-delta: 120px; +} + +* { + color: var(--font-color); + box-sizing: border-box; +} + +body { + align-items: center; + background-color: var(--background-color); + display: flex; + flex-direction: column; + font-family: 'Ysabeau', sans-serif; + font-variant-numeric: lining-nums; + font-feature-settings: 'ss02'; + font-weight: 500; + margin: 0; +} + +h1, h2, h3, h4, h5, h6, p { + opacity: var(--font-opacity); +} + +nav { + width: 100%; +} + +nav a:link, nav a:visited { + text-decoration: inherit; + color: inherit; +} + +nav ul { + align-items: center; + background-color: var(--secondary-color); + border-bottom: 1px solid white; + display: flex; + font-size: 1.5rem; + justify-content: space-around; + list-style: none; + margin: 0; + padding: 0; + z-index: 69; +} + +nav ul ul { + border-left: 1px solid white; + display: none; + position: absolute; + width: 100%; +} + +nav li:hover ul { + display: block; +} + +nav li:hover { + background-color: var(--secondary-hover-color); +} + +nav > ul > li > ul > li { + background-color: var(--secondary-color); +} + +nav ul ul:last-child, nav ul ul li:last-child { + border-radius: 0 0 4px 4px; +} + +nav li a, #lang-selected { + transition: ease 300ms; +} + +nav li { + position: relative; +} + +nav li a, nav li div, nav li label { + display: flex; + justify-content: center; + height: 100%; + padding: 12px; +} + +nav li:hover a, li:hover > #lang-selected { + transform: translate(0, -4px); +} + +nav ul > * { + flex-grow: 1; + text-align: center; +} + +#lang-dd { + max-height: 50vh; + overflow: auto; +} + +.unavailable { + font-style: italic; + opacity: var(--font-secondary-opacity); +} + +header h1 { + font-size: 3rem; + margin-bottom: 0; +} + +header h6 { + font-style: italic; + font-size: 1.1rem; + text-align: right; + opacity: var(--font-secondary-opacity); + margin-top: 0; +} + +p { + text-align: justify; + font-size: 1.5rem; + line-height: 2.5rem; + width: 50%; +} + +main { + width: 100%; +} + +main section { + width: 100%; + display: flex; + justify-content: center; +} + +.selected { + background-color: var(--secondary-hover-color); +} + +.slant-up { + -webkit-clip-path: polygon( + 0 var(--slant-delta), + 100% 0, + 100% calc(100% - var(--slant-delta)), + 0 100% + ); + clip-path: polygon( + 0 var(--slant-delta), + 100% 0, + 100% calc(100% - var(--slant-delta)), + 0 100% + ); +} + +.slant-down { + -webkit-clip-path: polygon( + 0 0, + 100% var(--slant-delta), + 100% 100%, + 0 calc(100% - var(--slant-delta)) + ); + clip-path: polygon( + 0 0, + 100% var(--slant-delta), + 100% 100%, + 0 calc(100% - var(--slant-delta)) + ); +} + +.c-section { + height: 600px; +} + +.cl-section { + display: flex; + justify-content: center; + align-items: center; +} + +.c-section, .cl-section { + background-color: var(--secondary-color); +} + +.cl-section > div { + padding: var(--slant-delta) 0; + width: 100%; + display: flex; + flex-direction: column; + align-items: center; +} + +.cl-section h2 { + font-size: 2rem; +} + +.c-section > * { + text-decoration: none; + height: 100%; + width: 100%; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; +} + +.c-section:hover { + background-color: var(--secondary-hover-color); +} + +.c-section:hover h2 { + font-size: 2.2rem; +} + +.c-section:hover img { + height: 500px; +} + +.c-section p, +.c-section h2, +.c-section img { + transition: ease 300ms; +} + +.c-section h2 { + font-size: 2rem; + width: 50%; + text-align: left; +} + +.c-section img { + position: absolute; + height: 450px; + opacity: var(--background-image-opacity); + z-index: -1; +} + +.right-align { + text-align: right; +} + +.nifc { background-color: pink; } +.have { background-color: green; } +.have-nifc { background-color: #5DBB63; } +.not-minted { background-color: black; } +.unknown { background-color: grey; } +.error { background-color: red; } + +#table-key { + background-color: var(--secondary-color); + border-radius: 8px; +} + +#table-key td { + padding: 0; +} + +#table-key tr td:first-child { + height: 40px; + width: 60px; +} + +#table-key tr td:last-child { + padding: 0 25px; + font-size: 1.2rem; +} + +#table-key tr td:first-child div { + height: 100%; + width: 100%; +} + +#table-key tr:first-child td:first-child div { + border-radius: 8px 8px 0 0; +} + +#table-key tr:last-child td:first-child div { + border-radius: 0 0 8px 8px; +} + +.country-table { + background-color: var(--tertiary-color); + border-radius: 16px; + border-spacing: 0; + width: 50%; +} + +.country-table td { + font-size: 1.25rem; + text-align: center; + width: 25%; +} + +.country-table td:hover { + background-color: var(--tertiary-hover-color); +} + +.country-table a { + display: block; + padding: 16px 0; + text-decoration: none; +} + +.country-table tr:first-child td:first-child { + border-radius: 16px 0 0 0; +} + +.country-table tr:first-child td:last-child { + border-radius: 0 16px 0 0; +} + +.country-table tr:last-child td:first-child { + border-radius: 0 0 0 16px; +} + +.country-table tr:last-child td:last-child { + border-radius: 0 0 16px 0; +} + +.coin-table { + width: calc(50% + 32px); + white-space: nowrap; + max-width: 100%; + text-align: center; + table-layout: fixed; + font-size: 1.5rem; + background-color: var(--secondary-darker-color); + border-radius: 16px; + border-left: 16px solid var(--secondary-darker-color); + border-right: 16px solid var(--secondary-darker-color); + border-bottom: 16px solid var(--secondary-darker-color); +} + +.coin-table .first-design th { + border-radius: 0; +} + +.coin-table .new-design + tr td:first-child, +.coin-table tbody tr:first-child td:first-child, +.commemorative-table tbody tr:first-child td:nth-child(2) { + border-top-left-radius: 16px; +} + +.coin-table .new-design + tr td:last-child, +.coin-table tbody tr:first-child td:last-child { + border-top-right-radius: 16px; +} + +.coin-table .last-of-design td:first-child, +.commemorative-table tr:last-child td:nth-child(2) { + border-bottom-left-radius: 16px; +} + +.coin-table tbody tr:only-child td:first-child, +.commemorative-table tbody tr:only-child td:nth-child(2) { + border-top-left-radius: 16px; + border-bottom-left-radius: 16px; +} + +.coin-table tbody tr:only-child td:last-child { + border-top-right-radius: 16px; + border-bottom-right-radius: 16px; +} + +.coin-table .last-of-design td:last-child, +.commemorative-table tr:last-child td:last-child { + border-bottom-right-radius: 16px; +} + +.coin-table .missing { + background-color: var(--tertiary-color); +} + +.coin-table .have, +.coin-table .nifc, +.coin-table .have-nifc, +.coin-table .not-minted { + color: black; +} + +.coin-table td { + border: 1px solid black; +} + +.coin-table thead tr:first-child th { + font-size: 2rem; +} + +.coin-table th { + font-style: bold; + width: 12.5%; +} + +.coin-table th, .coin-table td { + padding: 8px; +} + +.commemorative-table { + border-left: none; +} + +.commemorative-table td:not(:first-child) { + border: 1px solid black; +} + +.bnote-table td { + border: 1px solid black; +} + +.commemorative-table td:first-child { + border: none; +} + +.coin-table td:first-child, +.commemorative-table td:nth-child(2) { + border-left: none; +} + +.coin-table td:last-child, +.commemorative-table td:last-child { + border-right: none; +} + +.coin-table tbody tr:first-child td, +.coin-table .new-design + tr td, +.commemorative-table tr:first-child td { + border-top: none; +} + +.coin-table .last-of-design td, +.coin-table tr:last-child td, +.commemorative-table tr:last-child td { + border-bottom: none; +} + +.commemorative-table tr:last-child th { + width: 30%; +} + +.commemorative-table tr:last-child th:first-child { + width: 10%; +} + +.commemorative-table tr td:first-child { + background-color: var(--secondary-dark-color); +} + +#test-banknote-table td:first-child { + width: 10%; +} + +#test-banknote-table td:last-child { + width: 90%; +} + +.coin-table sup, .commemorative-table sup { + color: inherit; + font-size: 0.8rem; +} diff --git a/src/world-coins.jpg b/src/world-coins.jpg new file mode 100644 index 0000000..3b24d27 Binary files /dev/null and b/src/world-coins.jpg differ -- cgit v1.2.3