From 7b19803639053feab3f342b41cb06c33767c3ca0 Mon Sep 17 00:00:00 2001 From: maltejur <48161361+maltejur@users.noreply.github.com> Date: Wed, 28 Oct 2020 19:14:31 +0100 Subject: [PATCH] Initial commit --- data.json | 864 +++++++++++++++++++++++++++++++++++++++++++ index.html | 37 ++ modules/ausgabe.js | 56 +++ modules/home.js | 23 ++ modules/impressum.js | 7 + modules/liste.js | 29 ++ modules/pdf.js | 13 + modules/router.js | 38 ++ modules/utils.js | 7 + nprogress.min.css | 1 + nprogress.min.js | 1 + script.js | 66 ++++ style.css | 369 ++++++++++++++++++ 13 files changed, 1511 insertions(+) create mode 100644 data.json create mode 100644 index.html create mode 100644 modules/ausgabe.js create mode 100644 modules/home.js create mode 100644 modules/impressum.js create mode 100644 modules/liste.js create mode 100644 modules/pdf.js create mode 100644 modules/router.js create mode 100644 modules/utils.js create mode 100644 nprogress.min.css create mode 100644 nprogress.min.js create mode 100644 script.js create mode 100644 style.css diff --git a/data.json b/data.json new file mode 100644 index 0000000..77598fd --- /dev/null +++ b/data.json @@ -0,0 +1,864 @@ +{ + "baseUrl": "https://files.hertzschlag.eu/", + "hs": [ + { + "Ausgabe": "1", + "Thema": "Quo Vadis?", + "Seitenzahl": "12", + "Erscheinungsdatum": "Nov.-91", + "Chefredakteur(-e)": "Steffen Micheel", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null, + "yumpu": "BN8T6Zhi1GqOInvo" + }, + { + "Ausgabe": "2", + "Thema": "Advent", + "Seitenzahl": "12", + "Erscheinungsdatum": "Dez.-91", + "Chefredakteur(-e)": "Steffen Micheel", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null, + "yumpu": "2ZH4Djo8V3RsNBah" + }, + { + "Ausgabe": "3", + "Thema": "Be(a)st of Teachers '91", + "Seitenzahl": "12", + "Erscheinungsdatum": "Jan.-92", + "Chefredakteur(-e)": "Steffen Micheel", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "Extra 3", + "Thema": "Sonderausgabe - 30 Jahre H2O", + "Seitenzahl": "20", + "Erscheinungsdatum": "Feb.-92", + "Chefredakteur(-e)": "Steffen Micheel", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "4", + "Thema": "[Ohne Titel]", + "Seitenzahl": "20", + "Erscheinungsdatum": "Apr.-92", + "Chefredakteur(-e)": "Steffen Micheel", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "5", + "Thema": "Unsere Zukunft", + "Seitenzahl": "16", + "Erscheinungsdatum": "Juni-92", + "Chefredakteur(-e)": "Steffen Micheel", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "6", + "Thema": "HertzSCHLAG in der Krise?", + "Seitenzahl": "16", + "Erscheinungsdatum": "Okt.-92", + "Chefredakteur(-e)": "Steffen Micheel", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "7", + "Thema": "Danger - Restricted Area", + "Seitenzahl": "32", + "Erscheinungsdatum": "Dez.-92", + "Chefredakteur(-e)": "Steffen Micheel", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "8", + "Thema": "Die Zetteltragödie", + "Seitenzahl": "40", + "Erscheinungsdatum": "Feb.-93", + "Chefredakteur(-e)": "Steffen Micheel", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "9", + "Thema": "Wir schießen den Vogel ab", + "Seitenzahl": "68", + "Erscheinungsdatum": "Apr.-93", + "Chefredakteur(-e)": "Steffen Micheel", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "10", + "Thema": "Das Wort zum Donnerstag", + "Seitenzahl": "32", + "Erscheinungsdatum": "Juni-93", + "Chefredakteur(-e)": "Alexander Hlawenka", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "11", + "Thema": "…und wir wissen alles über dich", + "Seitenzahl": "44", + "Erscheinungsdatum": "Okt.-93", + "Chefredakteur(-e)": "Alexander Hlawenka", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "12", + "Thema": "Heinrich hertz auf der Flucht", + "Seitenzahl": "40", + "Erscheinungsdatum": "Jan.-94", + "Chefredakteur(-e)": "Alexander Hlawenka", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "13", + "Thema": "Projektwoche -Wohin?", + "Seitenzahl": "68", + "Erscheinungsdatum": "März-94", + "Chefredakteur(-e)": "Alexander Hlawenka", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "14", + "Thema": "[Ohne Titel]", + "Seitenzahl": "48", + "Erscheinungsdatum": "Mai-94", + "Chefredakteur(-e)": "Alexander Hlawenka", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "15", + "Thema": "Hertz zieht um", + "Seitenzahl": "40", + "Erscheinungsdatum": "Dez.-94", + "Chefredakteur(-e)": "Alexander Hlawenka", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "16", + "Thema": "Die Kulturausgabe", + "Seitenzahl": "44", + "Erscheinungsdatum": "März-95", + "Chefredakteur(-e)": "Alexander Hlawenka", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "17", + "Thema": "Color", + "Seitenzahl": "52", + "Erscheinungsdatum": "Mai-95", + "Chefredakteur(-e)": "Alexander Hlawenka", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "18", + "Thema": "King Jacques - USA gegen Chirac", + "Seitenzahl": "48", + "Erscheinungsdatum": "Nov.-95", + "Chefredakteur(-e)": "Peter Hartig", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "19", + "Thema": "Ruanda", + "Seitenzahl": "40", + "Erscheinungsdatum": "Jan.-96", + "Chefredakteur(-e)": "Peter Hartig", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "20", + "Thema": "Rassismus", + "Seitenzahl": "36", + "Erscheinungsdatum": "Juni-96", + "Chefredakteur(-e)": "Peter Hartig", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "21", + "Thema": "Hetzerische Springerpresse", + "Seitenzahl": "52", + "Erscheinungsdatum": "Aug.-96", + "Chefredakteur(-e)": "Peter Hartig", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "Extra 21", + "Thema": "Sonderausgabe - 35 Jahre H2O", + "Seitenzahl": "60", + "Erscheinungsdatum": "Feb.-97", + "Chefredakteur(-e)": "Peter Hartig", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "22", + "Thema": "KirchTV", + "Seitenzahl": "56", + "Erscheinungsdatum": "Mai-97", + "Chefredakteur(-e)": "Peter Hartig", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "23", + "Thema": "Projektwoche '97", + "Seitenzahl": "40", + "Erscheinungsdatum": "Sept.-97", + "Chefredakteur(-e)": "Jenny Simon", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "24", + "Thema": "It's just natural", + "Seitenzahl": "40", + "Erscheinungsdatum": "Okt.-97", + "Chefredakteur(-e)": "Jenny Simon", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "25", + "Thema": "Wacht endlich auf!", + "Seitenzahl": "40", + "Erscheinungsdatum": "Feb.-98", + "Chefredakteur(-e)": "Jenny Simon", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "26", + "Thema": "Frühling", + "Seitenzahl": "44", + "Erscheinungsdatum": "Juni-98", + "Chefredakteur(-e)": "Jenny Simon", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "27", + "Thema": "Andere Wege", + "Seitenzahl": "40", + "Erscheinungsdatum": "Sept.-98", + "Chefredakteur(-e)": "Jenny Simon", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "28", + "Thema": "Wir sind wieder da!", + "Seitenzahl": "36", + "Erscheinungsdatum": "Jan.-99", + "Chefredakteur(-e)": "Jenny Simon", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "29", + "Thema": "Frohe Ostern", + "Seitenzahl": "44", + "Erscheinungsdatum": "Apr.-99", + "Chefredakteur(-e)": "Jenny Simon", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "30", + "Thema": "Jubiläumsausgabe - 30 Ausgaben", + "Seitenzahl": "72", + "Erscheinungsdatum": "Juli-99", + "Chefredakteur(-e)": "Jenny Simon", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "31", + "Thema": "Projektwoche '99", + "Seitenzahl": "48", + "Erscheinungsdatum": "Nov.-99", + "Chefredakteur(-e)": "Jenny Simon", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "32", + "Thema": "Ist das Bildung?", + "Seitenzahl": "36", + "Erscheinungsdatum": "März-00", + "Chefredakteur(-e)": "Jenny Simon", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "33", + "Thema": "Medien", + "Seitenzahl": "36", + "Erscheinungsdatum": "Dez.-00", + "Chefredakteur(-e)": "Katja Leuschner, Antonia Reglin, Caroline Stiel", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "34", + "Thema": "Alles über Drogen", + "Seitenzahl": "28", + "Erscheinungsdatum": "Juli-01", + "Chefredakteur(-e)": "Katja Leuschner, Antonia Reglin, Caroline Stiel", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 DM", + "Auflage": null + }, + { + "Ausgabe": "35", + "Thema": "Religionen", + "Seitenzahl": "32", + "Erscheinungsdatum": "Juni-03", + "Chefredakteur(-e)": "Michael Meinel", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "36", + "Thema": "Septemberabend", + "Seitenzahl": "44", + "Erscheinungsdatum": "Sept.-03", + "Chefredakteur(-e)": "Sebastian Haupt", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "Extra 36", + "Thema": "Das alles sind wir", + "Seitenzahl": "24", + "Erscheinungsdatum": "Nov.-03", + "Chefredakteur(-e)": "Jonathan Berchner", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "37", + "Thema": "Rauschebart vs. Glatze", + "Seitenzahl": "44", + "Erscheinungsdatum": "Dez.-03", + "Chefredakteur(-e)": "Jonathan Berchner", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "38", + "Thema": "Biologisch, praktisch, gut", + "Seitenzahl": "56", + "Erscheinungsdatum": "Feb.-04", + "Chefredakteur(-e)": "Jonathan Berchner", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "39", + "Thema": "Monster", + "Seitenzahl": "52", + "Erscheinungsdatum": "Juni-04", + "Chefredakteur(-e)": "Jonathan Berchner", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "40", + "Thema": "Aufbruch Umbruch", + "Seitenzahl": "52", + "Erscheinungsdatum": "Sept.-04", + "Chefredakteur(-e)": "Jonathan Berchner", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "41", + "Thema": "Idole und Ideale", + "Seitenzahl": "52", + "Erscheinungsdatum": "Nov.-04", + "Chefredakteur(-e)": "Jonathan Berchner", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "42", + "Thema": "Reindeer Maze", + "Seitenzahl": "48", + "Erscheinungsdatum": "Dez.-04", + "Chefredakteur(-e)": "Jonathan Berchner", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "43", + "Thema": "Kinder!", + "Seitenzahl": "52", + "Erscheinungsdatum": "März-05", + "Chefredakteur(-e)": "Jonathan Berchner", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "44", + "Thema": "Asien", + "Seitenzahl": "40", + "Erscheinungsdatum": "Juni-05", + "Chefredakteur(-e)": "Jonathan Berchner", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "45", + "Thema": "Zukunftsvisionen", + "Seitenzahl": "40", + "Erscheinungsdatum": "Sept.-05", + "Chefredakteur(-e)": "Anne Künne", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "46", + "Thema": "Löcher", + "Seitenzahl": "36", + "Erscheinungsdatum": "Dez.-05", + "Chefredakteur(-e)": "Anne Künne", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "47", + "Thema": "Lärm", + "Seitenzahl": "40", + "Erscheinungsdatum": "Jan.-06", + "Chefredakteur(-e)": "Anne Künne", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "48", + "Thema": "Hass", + "Seitenzahl": "44", + "Erscheinungsdatum": "Feb.-06", + "Chefredakteur(-e)": "Anne Künne", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "49", + "Thema": "Bienchen und Blümchen", + "Seitenzahl": "48", + "Erscheinungsdatum": "Juni-06", + "Chefredakteur(-e)": "Anne Künne", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "50", + "Thema": "Cambia, todo Cambia", + "Seitenzahl": "68", + "Erscheinungsdatum": "Juli-06", + "Chefredakteur(-e)": "Anne Künne", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "51", + "Thema": "15 Jahre HertzSCHLAG", + "Seitenzahl": "48", + "Erscheinungsdatum": "Nov.-06", + "Chefredakteur(-e)": "Anne Künne", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "52", + "Thema": "Glühwein und Kunstschnee", + "Seitenzahl": "40", + "Erscheinungsdatum": "Dez.-06", + "Chefredakteur(-e)": "Anne Künne", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "53", + "Thema": "Südafrika", + "Seitenzahl": "60", + "Erscheinungsdatum": "Jan.-07", + "Chefredakteur(-e)": "Anne Künne", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "Extra 53", + "Thema": "Sonderausgabe - 150 Jahre H. Hertz", + "Seitenzahl": "24", + "Erscheinungsdatum": "Feb.-07", + "Chefredakteur(-e)": "Anne Künne", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "54", + "Thema": "Knuts Tagebücher entdeckt", + "Seitenzahl": "40", + "Erscheinungsdatum": "Juni-07", + "Chefredakteur(-e)": "Anne Künne", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "55", + "Thema": "Medien, Markt und Machenschaften", + "Seitenzahl": "36", + "Erscheinungsdatum": "Okt.-07", + "Chefredakteur(-e)": "Mathias Lück", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "56", + "Thema": "Winter", + "Seitenzahl": "48", + "Erscheinungsdatum": "Dez.-07", + "Chefredakteur(-e)": "Mathias Lück", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "57", + "Thema": "Dagegen", + "Seitenzahl": "52", + "Erscheinungsdatum": "Apr.-08", + "Chefredakteur(-e)": "Mathias Lück", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "58", + "Thema": "Lebensgeschichten", + "Seitenzahl": "52", + "Erscheinungsdatum": "Juli-08", + "Chefredakteur(-e)": "Jakob Saß", + "Umschlag/Innenteil": "Farbpapier/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "59", + "Thema": "Allles neu!", + "Seitenzahl": "68", + "Erscheinungsdatum": "Nov.-08", + "Chefredakteur(-e)": "Jakob Saß", + "Umschlag/Innenteil": "Farbe/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "60", + "Thema": "Berlin", + "Seitenzahl": "68", + "Erscheinungsdatum": "Apr.-09", + "Chefredakteur(-e)": "Jakob Saß", + "Umschlag/Innenteil": "Farbe/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "61", + "Thema": "Pro Reli", + "Seitenzahl": "44", + "Erscheinungsdatum": "Apr.-09", + "Chefredakteur(-e)": "Jakob Saß", + "Umschlag/Innenteil": "Farbe/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "62", + "Thema": "Gibt es eine Welt da draußen?", + "Seitenzahl": "72", + "Erscheinungsdatum": "Juli-09", + "Chefredakteur(-e)": "Jakob Saß", + "Umschlag/Innenteil": "Farbe/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "63", + "Thema": "Deutschland - Ein Tigerentenclub?", + "Seitenzahl": "80", + "Erscheinungsdatum": "Dez.-09", + "Chefredakteur(-e)": "Jakob Saß", + "Umschlag/Innenteil": "Farbe/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "64", + "Thema": "Verboten?!", + "Seitenzahl": "60", + "Erscheinungsdatum": "Apr.-10", + "Chefredakteur(-e)": "Jakob Saß", + "Umschlag/Innenteil": "Farbe/SW", + "Preis": "0,50 €", + "Auflage": 250 + }, + { + "Ausgabe": "65", + "Thema": "Freiheit", + "Seitenzahl": "56", + "Erscheinungsdatum": "Jan.-11", + "Chefredakteur(-e)": "Jakob Saß", + "Umschlag/Innenteil": "Farbe/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "66", + "Thema": "Medien", + "Seitenzahl": "68", + "Erscheinungsdatum": "Juni-11", + "Chefredakteur(-e)": "Lisa-Michelle Zink", + "Umschlag/Innenteil": "Farbe/SW", + "Preis": "0,50 €", + "Auflage": 300 + }, + { + "Ausgabe": "67", + "Thema": "Baustelle Schule", + "Seitenzahl": "64", + "Erscheinungsdatum": "Sept.-11", + "Chefredakteur(-e)": "Louise Dittmar", + "Umschlag/Innenteil": "Farbe/SW", + "Preis": "0,50 €", + "Auflage": 300 + }, + { + "Ausgabe": "68", + "Thema": "Schlaf", + "Seitenzahl": "64", + "Erscheinungsdatum": "Dez.-12", + "Chefredakteur(-e)": "Louise Dittmar", + "Umschlag/Innenteil": "Farbe/SW", + "Preis": "0,50 €", + "Auflage": null + }, + { + "Ausgabe": "69", + "Thema": "Umwelt", + "Seitenzahl": "60", + "Erscheinungsdatum": "Juni-13", + "Chefredakteur(-e)": "Louise Dittmar", + "Umschlag/Innenteil": "Farbe/SW", + "Preis": "0,50 €", + "Auflage": 300 + }, + { + "Ausgabe": "Sonderbeilage 69", + "Thema": "[Ohne Titel]", + "Seitenzahl": "8", + "Innenteil": "SW" + }, + { + "Ausgabe": "70", + "Thema": "[Ohne Titel]", + "Seitenzahl": "12 (A4)", + "Erscheinungsdatum": "Sept.-13", + "Chefredakteur(-e)": "Louise Dittmar", + "Umschlag/Innenteil": "SW/SW", + "Preis": "0,30 €", + "Auflage": 250 + }, + { + "Ausgabe": "71", + "Thema": "Mysterien der Schule", + "Seitenzahl": "64", + "Erscheinungsdatum": "Feb.-14", + "Chefredakteur(-e)": "Louise Dittmar", + "Umschlag/Innenteil": "Farbe/SW", + "Preis": "0,50 €", + "Auflage": 200 + }, + { + "Ausgabe": "72", + "Thema": "Wissenschaft und Religion", + "Seitenzahl": "68", + "Erscheinungsdatum": "Sept.-14", + "Chefredakteur(-e)": "Patrick Geneit", + "Umschlag/Innenteil": "Farbe/SW", + "Preis": "0,50 €", + "Auflage": 200 + }, + { + "Ausgabe": "73", + "Thema": "Internet", + "Seitenzahl": "52", + "Erscheinungsdatum": "Dez.-14", + "Chefredakteur(-e)": "Patrick Geneit", + "Umschlag/Innenteil": "Farbe/SW", + "Preis": "0,50 €", + "Auflage": 200 + }, + { + "Ausgabe": "74", + "Thema": "Was ist Revolution?", + "Seitenzahl": "72", + "Erscheinungsdatum": "März-15", + "Chefredakteur(-e)": "Karl Bendler, Richard Bendler", + "Umschlag/Innenteil": "Farbe/SW", + "Preis": "0,50 €", + "Auflage": 300 + }, + { + "Ausgabe": "75", + "Thema": "Jubiläum: 75 Ausgaben", + "Seitenzahl": "52", + "Erscheinungsdatum": "Juli-15", + "Chefredakteur(-e)": "Karl Bendler, Richard Bendler", + "Umschlag/Innenteil": "Farbe/Farbe", + "Preis": "1,00 €", + "Auflage": 300 + }, + { + "Ausgabe": "76", + "Thema": "Drogen", + "Seitenzahl": "40", + "Erscheinungsdatum": "Nov.-15", + "Chefredakteur(-e)": "Karl Bendler, Richard Bendler", + "Umschlag/Innenteil": "Farbe/Farbe", + "Preis": "1,00 €", + "Auflage": 300 + }, + { + "Ausgabe": "77", + "Thema": "Sex und Sexismus", + "Seitenzahl": "52", + "Erscheinungsdatum": "Apr.-16", + "Chefredakteur(-e)": "Karl Bendler, Richard Bendler", + "Umschlag/Innenteil": "Farbe/Farbe", + "Preis": "1,00 €", + "Auflage": 300 + }, + { + "Ausgabe": "78", + "Thema": "Musik", + "Seitenzahl": "52", + "Erscheinungsdatum": "Nov.-16", + "Chefredakteur(-e)": "Karl Bendler, Richard Bendler", + "Umschlag/Innenteil": "Farbe/Farbe", + "Preis": "1,00 €", + "Auflage": 300 + }, + { + "Ausgabe": "79", + "Thema": "Essen", + "Seitenzahl": "60", + "Erscheinungsdatum": "März-17", + "Chefredakteur(-e)": "Karl Bendler, Richard Bendler", + "Umschlag/Innenteil": "Farbe/Farbe", + "Preis": "1,00 €", + "Auflage": 300 + }, + { + "Ausgabe": "80", + "Thema": "Medien", + "Seitenzahl": "68", + "Erscheinungsdatum": "Mai-18", + "Chefredakteur(-e)": "Richard Bendler", + "Umschlag/Innenteil": "Farbe/Farbe", + "Preis": "1,00 €", + "Auflage": 500, + "yumpu": "pea6oUMFXRNfg9jP" + }, + { + "Ausgabe": "82", + "Thema": "Mythen", + "Seitenzahl": null, + "Erscheinungsdatum": "kek", + "Chefredakteur(-e)": "Paul Siewert, Elias Saad", + "Umschlag/Innenteil": "Farbe/Farbe", + "Preis": "1,00 €", + "Auflage": null + } + ] +} diff --git a/index.html b/index.html new file mode 100644 index 0000000..20c2b80 --- /dev/null +++ b/index.html @@ -0,0 +1,37 @@ + + + + + + + + HertzSCHLAG Archiv + + + + +
+
+
+
+ +
+
+ + + + diff --git a/modules/ausgabe.js b/modules/ausgabe.js new file mode 100644 index 0000000..d16bfe4 --- /dev/null +++ b/modules/ausgabe.js @@ -0,0 +1,56 @@ +import { checkFile } from "./utils.js"; + +export default async function Ausgabe(params) { + const ret = document.createElement("div"); + ret.classList.add("page"); + + const response = await fetch("data.json"); + const json = await response.json(); + const ausg = json.hs.find((i) => i["Ausgabe"] == params.id); + + ausg["Cover"] = ausg["Ausgabe"] + ".jpg"; + let pagehtml = ` + + +

+ +

HertzSCHLAG ${ausg["Ausgabe"]}

+

${ausg["Thema"]}

+ `; + for (let i in ausg) { + if ( + i != "yumpu" && + i != "Thema" && + i != "Cover" && + i != "Ausgabe" && + ausg[i] != null + ) { + pagehtml = pagehtml + "

" + i + ": " + ausg[i] + "

"; + } + } + checkFile(`${json.baseUrl}hs/pdf/${ausg["Ausgabe"]}.pdf`).then((exists) => { + if (exists) { + ret.innerHTML += + // prettier-ignore + ` + + PDF Anzeigen + + + `; + } + }); + + ret.innerHTML = pagehtml; + return ret; +} diff --git a/modules/home.js b/modules/home.js new file mode 100644 index 0000000..231f589 --- /dev/null +++ b/modules/home.js @@ -0,0 +1,23 @@ +export default async function Home() { + const ret = document.createElement("div"); + ret.classList.add("grid"); + let html = ""; + + const response = await fetch("data.json"); + const json = await response.json(); + + json.hs.forEach((i) => { + html += ` + + +
+

HS ${i.Ausgabe}

+

${i.Thema}

+
+
`; + }); + + ret.innerHTML = html; + + return ret; +} diff --git a/modules/impressum.js b/modules/impressum.js new file mode 100644 index 0000000..e66a4c3 --- /dev/null +++ b/modules/impressum.js @@ -0,0 +1,7 @@ +export default function Impressum() { + const ret = document.createElement("div"); + ret.classList.add("pagewrapper"); + ret.innerHTML = + "

Impressum

Malte Jürgens
Bergmannstraße 70
10961 Berlin

Kontakt:

hertzschlag@hhgym.de
maltejur@web.de
"; + return ret; +} diff --git a/modules/liste.js b/modules/liste.js new file mode 100644 index 0000000..b41cc1e --- /dev/null +++ b/modules/liste.js @@ -0,0 +1,29 @@ +export default async function Liste() { + const ret = document.createElement("div"); + ret.classList.add("page"); + + const response = await fetch("ausgaben.json"); + const json = await response.json(); + + let listehtml = + "

Artikelliste

"; + json.forEach((i) => { + listehtml = + listehtml + + ""; + }); + listehtml = listehtml + "
AusgabeThema
" + + i["Ausgabe"] + + "" + + i["Thema"] + + "
"; + + ret.innerHTML = listehtml; + return ret; +} diff --git a/modules/pdf.js b/modules/pdf.js new file mode 100644 index 0000000..7b3520f --- /dev/null +++ b/modules/pdf.js @@ -0,0 +1,13 @@ +export default async function Pdf(params) { + const response = await fetch("data.json"); + const json = await response.json(); + + const ret = document.createElement("div"); + ret.classList.add("iframe"); + + const iframe = document.createElement("iframe"); + iframe.src = `${json.baseUrl}hs/pdf/${params.src}`; + + ret.appendChild(iframe); + return ret; +} diff --git a/modules/router.js b/modules/router.js new file mode 100644 index 0000000..efcc067 --- /dev/null +++ b/modules/router.js @@ -0,0 +1,38 @@ +export default class Router { + constructor(element, routes, { onpagechange = () => {} }) { + this.routes = routes; + this.el = document.querySelector(element); + this.onpagechange = onpagechange; + window.addEventListener("hashchange", this.onhashchange.bind(this)); + this.onhashchange(); + } + + onhashchange() { + const hash = location.hash; + const hashSplit = hash.slice(1).split("/"); + Object.keys(this.routes).forEach(async (route) => { + const routeSplit = route.split("/"); + let params = {}; + let rigthRoute = true; + for (let i = 0; i < hashSplit.length; i++) { + if (routeSplit[i] != undefined && routeSplit[i][0] == ":") { + if (routeSplit[i][1] == ":") { + params[routeSplit[i].substr(2)] = hashSplit.slice(i).join("/"); + break; + } else { + params[routeSplit[i].substr(1)] = decodeURIComponent(hashSplit[i]); + } + } else if (routeSplit[i] != hashSplit[i]) rigthRoute = false; + } + + if (rigthRoute) { + if (this.routes[route]) { + let neww = await this.routes[route](params); + this.el.innerHTML = ""; + this.el.appendChild(neww); + } + this.onpagechange(route); + } + }); + } +} diff --git a/modules/utils.js b/modules/utils.js new file mode 100644 index 0000000..f3b3932 --- /dev/null +++ b/modules/utils.js @@ -0,0 +1,7 @@ +export function checkFile(url) { + return new Promise((resolve) => { + fetch(url) + .catch(() => resolve(false)) + .then(() => resolve(true)); + }); +} diff --git a/nprogress.min.css b/nprogress.min.css new file mode 100644 index 0000000..2123e2a --- /dev/null +++ b/nprogress.min.css @@ -0,0 +1 @@ +#nprogress{pointer-events:none}#nprogress .bar{background:#fff;position:fixed;z-index:1031;top:0;left:0;width:100%;height:2px}#nprogress .peg{display:block;position:absolute;right:0;width:100px;height:100%;box-shadow:0 0 10px #fff,0 0 5px #fff;opacity:1;-webkit-transform:rotate(3deg) translate(0,-4px);-ms-transform:rotate(3deg) translate(0,-4px);transform:rotate(3deg) translate(0,-4px)}#nprogress .spinner{display:block;position:fixed;z-index:1031;top:15px;right:15px}#nprogress .spinner-icon{width:18px;height:18px;box-sizing:border-box;border:solid 2px transparent;border-top-color:#fff;border-left-color:#fff;border-radius:50%;-webkit-animation:nprogress-spinner .4s linear infinite;animation:nprogress-spinner .4s linear infinite}.nprogress-custom-parent{overflow:hidden;position:relative}.nprogress-custom-parent #nprogress .bar,.nprogress-custom-parent #nprogress .spinner{position:absolute}@-webkit-keyframes nprogress-spinner{0%{-webkit-transform:rotate(0)}100%{-webkit-transform:rotate(360deg)}}@keyframes nprogress-spinner{0%{transform:rotate(0)}100%{transform:rotate(360deg)}} \ No newline at end of file diff --git a/nprogress.min.js b/nprogress.min.js new file mode 100644 index 0000000..311e33f --- /dev/null +++ b/nprogress.min.js @@ -0,0 +1 @@ +(function(n,e){"function"==typeof define&&define.amd?define(e):"object"==typeof exports?module.exports=e():n.NProgress=e()})(this,function(){function n(n,e,t){return nt?t:n}function e(n){return 100*(-1+n)}function t(n,t,r){var i;return i="translate3d"===f.positionUsing?{transform:"translate3d("+e(n)+"%,0,0)"}:"translate"===f.positionUsing?{transform:"translate("+e(n)+"%,0)"}:{"margin-left":e(n)+"%"},i.transition="all "+t+"ms "+r,i}function r(n,e){var t="string"==typeof n?n:o(n);return t.indexOf(" "+e+" ")>=0}function i(n,e){var t=o(n),i=t+e;r(t,e)||(n.className=i.substring(1))}function s(n,e){var t,i=o(n);r(n,e)&&(t=i.replace(" "+e+" "," "),n.className=t.substring(1,t.length-1))}function o(n){return(" "+(n&&n.className||"")+" ").replace(/\s+/gi," ")}function a(n){n&&n.parentNode&&n.parentNode.removeChild(n)}var u,c,l={version:"0.2.0"},f=l.settings={minimum:.08,easing:"linear",positionUsing:"",speed:200,trickle:!0,trickleSpeed:200,showSpinner:!0,barSelector:'[role="bar"]',spinnerSelector:'[role="spinner"]',parent:"body",template:'
'};l.configure=function(n){var e,t;for(e in n)t=n[e],void 0!==t&&n.hasOwnProperty(e)&&(f[e]=t);return this},l.status=null,l.set=function(e){var r=l.isStarted();e=n(e,f.minimum,1),l.status=1===e?null:e;var i=l.render(!r),s=i.querySelector(f.barSelector),o=f.speed,a=f.easing;return i.offsetWidth,d(function(n){""===f.positionUsing&&(f.positionUsing=l.getPositioningCSS()),m(s,t(e,o,a)),1===e?(m(i,{transition:"none",opacity:1}),i.offsetWidth,setTimeout(function(){m(i,{transition:"all "+o+"ms linear",opacity:0}),setTimeout(function(){l.remove(),n()},o)},o)):setTimeout(n,o)}),this},l.isStarted=function(){return"number"==typeof l.status},l.start=function(){l.status||l.set(0);var n=function(){setTimeout(function(){l.status&&(l.trickle(),n())},f.trickleSpeed)};return f.trickle&&n(),this},l.done=function(n){return n||l.status?l.inc(.3+.5*Math.random()).set(1):this},l.inc=function(e){var t=l.status;return t?t>1?void 0:("number"!=typeof e&&(e=t>=0&&t<.2?.1:t>=.2&&t<.5?.04:t>=.5&&t<.8?.02:t>=.8&&t<.99?.005:0),t=n(t+e,0,.994),l.set(t)):l.start()},l.trickle=function(){return l.inc()},u=0,c=0,l.promise=function(n){return n&&"resolved"!==n.state()?(0===c&&l.start(),u++,c++,n.always(function(){c--,0===c?(u=0,l.done()):l.set((u-c)/u)}),this):this},l.render=function(n){if(l.isRendered())return document.getElementById("nprogress");i(document.documentElement,"nprogress-busy");var t=document.createElement("div");t.id="nprogress",t.innerHTML=f.template;var r,s=t.querySelector(f.barSelector),o=n?"-100":e(l.status||0),u=document.querySelector(f.parent);return m(s,{transition:"all 0 linear",transform:"translate3d("+o+"%,0,0)"}),f.showSpinner||(r=t.querySelector(f.spinnerSelector),r&&a(r)),u!=document.body&&i(u,"nprogress-custom-parent"),u.appendChild(t),t},l.remove=function(){s(document.documentElement,"nprogress-busy"),s(document.querySelector(f.parent),"nprogress-custom-parent");var n=document.getElementById("nprogress");n&&a(n)},l.isRendered=function(){return!!document.getElementById("nprogress")},l.getPositioningCSS=function(){var n=document.body.style,e="WebkitTransform"in n?"Webkit":"MozTransform"in n?"Moz":"msTransform"in n?"ms":"OTransform"in n?"O":"";return e+"Perspective"in n?"translate3d":e+"Transform"in n?"translate":"margin"};var d=function(){function n(){var t=e.shift();t&&t(n)}var e=[];return function(t){e.push(t),1==e.length&&n()}}(),m=function(){function n(n){return n.replace(/^-ms-/,"ms-").replace(/-([\da-z])/gi,function(n,e){return e.toUpperCase()})}function e(n){var e=document.body.style;if(n in e)return n;for(var t,r=i.length,s=n.charAt(0).toUpperCase()+n.slice(1);r--;)if(t=i[r]+s,t in e)return t;return n}function t(t){return t=n(t),s[t]||(s[t]=e(t))}function r(n,e,r){e=t(e),n.style[e]=r}var i=["Webkit","O","Moz","ms"],s={};return function(n,e){var t,i,s=arguments;if(2==s.length)for(t in e)i=e[t],void 0!==i&&e.hasOwnProperty(t)&&r(n,t,i);else r(n,s[1],s[2])}}();return l}); \ No newline at end of file diff --git a/script.js b/script.js new file mode 100644 index 0000000..c043ba6 --- /dev/null +++ b/script.js @@ -0,0 +1,66 @@ +import Home from "./modules/home.js"; +import Ausgabe from "./modules/ausgabe.js"; +import Router from "./modules/router.js"; +import Impressum from "./modules/impressum.js"; +import Liste from "./modules/liste.js"; +import Pdf from "./modules/pdf.js"; + +Home().then((home) => { + document.getElementById("home").appendChild(home); +}); + +new Router( + "#contentinner", + { + "": undefined, + "ausgabe/:id": Ausgabe, + impressum: Impressum, + liste: Liste, + "pdf/::src": Pdf, + }, + { + onpagechange: (route) => { + if (route == "") { + document.body.classList.remove("open"); + } else { + document.body.classList.add("open"); + } + }, + } +); + +// Entfert Ladebalken +document.addEventListener("readystatechange", (event) => { + if (document.readyState == "complete") { + NProgress.done(); + } +}); + +// Startet Ladebalken +NProgress.configure({ showSpinner: false }); +NProgress.start(); +NProgress.inc(); + +window.stats = () => { + var script = document.createElement("script"); + script.onload = function () { + var statL = []; + for (let i = 0; i < 3; i++) { + var stats = new Stats(); + stats.showPanel(i); + stats.dom.style.marginLeft = 400 + i * 85 + "px"; + statL.push(stats); + } + statL.forEach((stats) => { + document.body.appendChild(stats.dom); + }); + requestAnimationFrame(function loop() { + statL.forEach((stats) => { + stats.update(); + }); + requestAnimationFrame(loop); + }); + }; + script.src = "//mrdoob.github.io/stats.js/build/stats.min.js"; + document.head.appendChild(script); +}; diff --git a/style.css b/style.css new file mode 100644 index 0000000..0bc907e --- /dev/null +++ b/style.css @@ -0,0 +1,369 @@ +@import url("https://fonts.googleapis.com/css?family=Lato&display=swap"); + +html { + font-family: "Lato", sans-serif; + height: 100%; + width: 100vw; + overflow-x: hidden; +} + +body { + margin: 0 0 0 0; + background-color: black; + height: 100%; + width: 100%; +} + +/* +::-webkit-scrollbar { + margin-top: 5em; + width: 10px; +} + +::-webkit-scrollbar-track { + background: #f1f1f1; +} + +::-webkit-scrollbar-thumb { + background: #888; +} + +::-webkit-scrollbar-thumb:hover { + background: #555; +} */ + +#header { + position: fixed; + top: 0; + height: 2em; + background-color: #0000008c; + width: calc(100% - 3em); + z-index: 11; + display: flex; + justify-content: space-between; + align-items: center; + padding: 1.5em; + transition: background-color 0.3s ease-in-out; +} + +.open #header { + background-color: rgba(0, 0, 0, 0); +} + +#header a { + color: white; + text-decoration: none; + transition: color 0.2s ease; +} + +#header nav a:hover { + color: gainsboro; +} + +.grid { + display: grid; + overflow-x: hidden; + grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); + grid-gap: 0; +} + +.module { + height: 100%; + background-color: black; + position: relative; +} + +.moduleImg { + width: 100%; + height: 100%; + transition: opacity 0.1s ease; +} + +.module:hover .moduleImg { + opacity: 0.5; +} + +.moduleLabel { + opacity: 0; + z-index: 2; + position: absolute; + bottom: 0; + left: 0; + color: white; + padding-left: 1em; + padding-right: 1em; + transition: opacity 0.2s ease, transform 0.2s ease; +} + +.module:hover .moduleLabel { + opacity: 1; + transform: translateY(-4px); +} + +button, +.button { + background-color: rgb(201, 2, 2); + border: none; + border-radius: 8px; + color: white; + padding: 15px 20px; + text-align: center; + text-decoration: none; + display: inline-block; + font-size: 16px; + cursor: pointer; + margin-right: 1em; + margin-top: 1em; + transition: background-color 0.2s ease; + position: relative; +} + +button:hover, +.button:hover { + background-color: darkred; +} + +button .fas, +.button .fas { + margin-right: 0.6em; +} + +button .dropdown, +.button .dropdown { + display: flex; + opacity: 0; + pointer-events: none; + position: absolute; + flex-direction: column; + top: 48px; + left: 0; + width: 200px; + background-color: #f1f1f1; + box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2); + transform: translateY(-4px); + transition: opacity 0.2s ease, transform 0.2s ease; +} + +.dropdown a { + padding: 12px; + display: block; + color: black; + text-decoration: none; +} + +.dropdown a:hover { + background-color: rgba(0, 0, 0, 0.1); +} + +button:focus .dropdown, +.button:focus .dropdown, +.dropdown:hover { + opacity: 1; + pointer-events: all; + transform: translateY(0); +} + +iframe { + width: 100%; + height: 100%; + border: 0; +} + +.iframe { + position: absolute; + z-index: 10; + left: 0; + right: 0; + height: 100%; + overflow: hidden; +} + +/* If Grid is supported, remove the margin we set for the fallback */ +@supports (display: grid) { + .module { + margin: 0; + } +} + +@media only screen and (max-width: 54em) { + .page { + width: calc(100% - 4em); + margin: 0; + padding-top: 2em; + border-radius: 0 !important; + top: 0 !important; + bottom: 0; + height: 100% !important; + max-height: calc(100% - 4em) !important; + } +} + +@media only screen and (max-width: 40em) { + .page { + padding-top: 0; + padding-left: 2em !important; + padding-right: 2em !important; + } + + .cover { + width: 100% !important; + max-width: 25em !important; + float: none !important; + margin-left: calc(auto - 2em) !important; + margin-right: calc(auto - 2em) !important; + margin-bottom: 2em !important; + } +} + +@media only screen and (max-width: 400px) { + .grid { + grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); + } + + #header h1 { + font-size: 1.6em; + } + + #header { + height: 1em; + width: 100%; + } + + #header .fas { + margin: 1em; + font-size: 1.5em; + } + + #home { + padding-top: 4em !important; + } + + #main { + height: calc(100% - 4em) !important; + padding-top: 4em !important; + } +} + +table { + width: 100%; + border-collapse: collapse; +} + +th, +td { + padding: 10px; + text-align: left; +} + +table, +th, +td { + border: 1px solid darkgray; +} + +th { + background-color: #f7f7f7; +} + +.banner { + max-width: initial !important; + width: 880px; + margin: -2em -2em 1em -3em; +} + +/* Show the dropdown menu (use JS to add this class to the .dropdown-content container when the user clicks on the dropdown button) */ +.show { + display: block; +} + +i { + padding-right: 0.5em; +} + +#main { + position: relative; + overflow: hidden; + padding-top: 5em; + width: 100%; + height: calc(100% - 5em); +} + +#home { + position: fixed; + padding-top: 5em; + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: 1; + transition: filter 0.4s ease; + overflow-x: hidden; + overflow: auto; +} + +.open #main #home { + filter: blur(5px) brightness(30%); +} + +#content { + opacity: 0; + height: 100%; + position: relative; + transform: translateY(10px); + transition: transform 0.3s ease, opacity 0.3s ease; + pointer-events: none; + z-index: 10; +} + +#contentinner { + height: 100%; + z-index: 10; +} + +.open #main #content { + pointer-events: all; + opacity: 1; + transform: translateY(0); +} + +.page { + position: absolute; + top: 2em; + left: 0; + right: 0; + max-width: 50em; + margin-left: auto; + margin-right: auto; + padding: 2em 2em 2em 3em; + background-color: white; + min-height: 31em; + max-height: calc(100% - 8em); + overflow: auto; + overflow-x: hidden; + border-radius: 1em; + z-index: 10; +} + +.page img { + max-width: 40%; +} + +.page img.cover { + float: left; + margin-right: 2em; + box-shadow: 2px 2px 8px #6b6b6b; +} + +.page .back { + color: #969696; +} + +.open #main #content #back { + position: absolute; + top: 0; + bottom: 0; + left: 0; + right: 0; + z-index: 9; + cursor: inherit; +}