From 48075c9463d1c2e315b9a10a00246b20f336f039 Mon Sep 17 00:00:00 2001 From: Frank Steinberg <steinberg@ibr.cs.tu-bs.de> Date: Thu, 24 Oct 2019 10:46:15 +0200 Subject: [PATCH] HTML and CSS cleanup. Slight chapter fixes. --- Makefile | 20 +- de/introduction-to-beer-styles.xml | 6 +- de/introduction-to-specialty-type-beer.xml | 2 +- web/edit.css | 66 +++--- web/edit.html | 4 +- web/{bjcp-styleguide.css => show.css} | 149 ++++++++----- web/show.html | 2 +- web/show.js | 11 + xsl/bjcp-2015-styleguide-html.xsl | 231 --------------------- 9 files changed, 158 insertions(+), 333 deletions(-) rename web/{bjcp-styleguide.css => show.css} (64%) delete mode 100644 xsl/bjcp-2015-styleguide-html.xsl diff --git a/Makefile b/Makefile index 427f758..7a3882b 100644 --- a/Makefile +++ b/Makefile @@ -8,7 +8,7 @@ PROJECTID = bjcp-styleguide-1570890297003 LOCATION = us-central1 GLOSSARYID = bjcp-en-de-glossary -default: bjcp-2015-styleguide-orig.xml bjcp-2015-styleguide-de.xml bjcp-2015-styleguide-orig.html bjcp-2015-styleguide-de.html web/bjcp-2015-styleguide-orig.xml web/bjcp-2015-styleguide-de.xml web/bjcp-2015-styleguide-orig.html web/bjcp-2015-styleguide-de.html web/bjcp-2015-styleguide-de-auto.xml +default: bjcp-2015-styleguide-orig.xml bjcp-2015-styleguide-de.xml web/bjcp-2015-styleguide-orig.xml web/bjcp-2015-styleguide-de.xml web/bjcp-2015-styleguide-de-auto.xml cache/2015_Guidelines_Beer.docx: @if [ ! -d cache ] ; then mkdir cache ; fi @@ -30,14 +30,6 @@ bjcp-2015-styleguide-de.xml: de bjcp-2015-styleguide-orig.xml $(DEFILES) xsl/bjc @bash -c 'xsltproc --stringparam lang de --output bjcp-2015-styleguide-de.xml xsl/bjcp-2015-styleguide-translate.xsl bjcp-2015-styleguide-orig.xml 2> >(grep -v "failed to load external entity")' @echo "built $@" -bjcp-2015-styleguide-orig.html: xsl/bjcp-2015-styleguide-html.xsl bjcp-2015-styleguide-orig.xml - @xsltproc xsl/bjcp-2015-styleguide-html.xsl bjcp-2015-styleguide-orig.xml > bjcp-2015-styleguide-orig.html - @echo "built $@" - -bjcp-2015-styleguide-de.html: xsl/bjcp-2015-styleguide-html.xsl bjcp-2015-styleguide-de.xml - @xsltproc xsl/bjcp-2015-styleguide-html.xsl bjcp-2015-styleguide-de.xml > bjcp-2015-styleguide-de.html - @echo "built $@" - web/bjcp-2015-styleguide-orig.xml: bjcp-2015-styleguide-orig.xml cp bjcp-2015-styleguide-orig.xml web/ @@ -47,12 +39,6 @@ web/bjcp-2015-styleguide-de.xml: bjcp-2015-styleguide-de.xml web/bjcp-2015-styleguide-de-auto.xml: cache/bjcp-2015-styleguide-de-auto.xml cp cache/bjcp-2015-styleguide-de-auto.xml web/bjcp-2015-styleguide-de-auto.xml -web/bjcp-2015-styleguide-orig.html: bjcp-2015-styleguide-orig.html - cp bjcp-2015-styleguide-orig.html web/ - -web/bjcp-2015-styleguide-de.html: bjcp-2015-styleguide-de.html - cp bjcp-2015-styleguide-de.html web/ - format: @for f in de/*.xml ; do xmllint --format $$f | sed -e 's/ standalone="yes"//' > cache/tmp.xml ; cmp -s cache/tmp.xml $$f ; if [ $$? -ne 0 ] ; then cat cache/tmp.xml > $$f ; echo "reformatted $$f" ; fi ; rm cache/tmp.xml ; done @@ -68,13 +54,9 @@ clean: @rm -rf orig @rm -f bjcp-2015-styleguide-orig.xml @rm -f bjcp-2015-styleguide-de.xml - @rm -f bjcp-2015-styleguide-orig.html - @rm -f bjcp-2015-styleguide-de.html @rm -f web/bjcp-2015-styleguide-orig.xml @rm -f web/bjcp-2015-styleguide-de.xml @rm -f web/bjcp-2015-styleguide-de-auto.xml - @rm -f web/bjcp-2015-styleguide-orig.html - @rm -f web/bjcp-2015-styleguide-de.html @echo "cleanup done" distclean: clean diff --git a/de/introduction-to-beer-styles.xml b/de/introduction-to-beer-styles.xml index 8690a04..75bf6ce 100644 --- a/de/introduction-to-beer-styles.xml +++ b/de/introduction-to-beer-styles.xml @@ -37,10 +37,10 @@ <p><b>DMS</b> - Dimethylsulfid, das ein breites Spektrum von Wahrnehmungseigenschaften annehmen kann. Die meisten sind für jede Biersorte unpassend. Bei Bieren mit einem hohem Gehalt an Pilsner Malz kann jedoch eine leichte Note von gekochtem Mais erkennbar sein. Wenn in den Richtlinien angegeben ist, dass ein gewisser DMS-Gehalt angemessen ist, handelt es sich um dieses leichte Aroma von gekochtem Mais, jedoch nicht um andere Eigenschaften von gekochtem Gemüse oder andere DMS-Aromen.</p> <p><b>Rustikal, zünftig</b> - rauer, herzhafter, robuster Charakter, der an ältere, traditionelle Zutaten erinnert. Vielleicht weniger raffiniert als andere Genusserfahrungen.</p> <p><b>Elegant</b> - weicher, genussvoller, raffinierter und angenehmer Charakter, der an hochwertige Zutaten erinnert, die mit Sorgfalt verarbeitet wurden. Ohne raue Kanten, krasse Aromen und den Gaumen herausfordernde Eigenschaften.</p> - <p><b>Funky, modrig</b> - ein positiver oder negativer Begriff, je nach Kontext. Wenn erwartet oder erwünscht, kann es oft an einen Scheunenhof, feuchtes Heu, etwas Erdiges, eine Pferdedecke oder einen Bauernhofcharakter erinnern. Wenn es zu intensiv, unerwartet oder unerwünscht ist, kann es Gerüche von Silage, Fäkalien, Babywindel oder Pferdestall annehmen.</p> + <p><b>"Funky", modrig</b> - ein positiver oder negativer Begriff, je nach Kontext. Wenn erwartet oder erwünscht, kann es oft an einen Scheunenhof, feuchtes Heu, etwas Erdiges, eine Pferdedecke oder einen Bauernhofcharakter erinnern. Wenn es zu intensiv, unerwartet oder unerwünscht ist, kann es Gerüche von Silage, Fäkalien, Babywindel oder Pferdestall annehmen.</p> <h4 id="appearance-terms">Begriffe für das Erscheinungsbild</h4> - <p><b>Schaumhaftung</b> - ein charakteristisches stabiles Netzmuster aus Schaum, das beim Trinken des Bieres auf der Innenseite des Glases verbleibt. Der Anblick erinnert an feine Spitzen aus Brüssel oder Belgien und ist ein wünschenswerter Indikator für die Bierqualität in Belgien.</p> - <p><b>Schlierenbildung</b> - ein Muster, das ein Getränk auf der Innenseite eines Glases hinterlässt, nachdem ein Teil getrunken wurde. Der Begriff bezieht sich auf die Tröpfchen, die langsam in kleinen Strömen von Getränkeresten auf der Innenseite des Glases herab laufen. Kein Qualitätsmerkmal, kann jedoch auf einen höheren Alkohol-, Zucker- oder Glyceringehalt hinweisen.</p> + <p><b>Schaumhaftung</b> ("Belgian Lace") - ein charakteristisches stabiles Netzmuster aus Schaum, das beim Trinken des Bieres auf der Innenseite des Glases verbleibt. Der Anblick erinnert an feine Spitzen aus Brüssel oder Belgien und ist ein wünschenswerter Indikator für die Bierqualität in Belgien.</p> + <p><b>Schlierenbildung</b> ("Legs") - ein Muster, das ein Getränk auf der Innenseite eines Glases hinterlässt, nachdem ein Teil getrunken wurde. Der Begriff bezieht sich auf die Tröpfchen, die langsam in kleinen Strömen von Getränkeresten auf der Innenseite des Glases herab laufen. Kein Qualitätsmerkmal, kann jedoch auf einen höheren Alkohol-, Zucker- oder Glyceringehalt hinweisen.</p> <h3 id="color-reference">Farbreferenz</h3> <p>Beachten Sie, dass SRM ein Maß für die Bierfarbdichte ist, nicht für den Farbton. Denken Sie daran, wenn Sie bei der Beschreibung von Bieren nur SRM-Werte verwenden. Innerhalb dieser Richtlinien werden Worte für Bierfarben im Allgemeinen gemäß der folgenden Zuordnung zu SRM-Werten verwendet:</p> <div class="table"> diff --git a/de/introduction-to-specialty-type-beer.xml b/de/introduction-to-specialty-type-beer.xml index d029162..9ae77aa 100644 --- a/de/introduction-to-specialty-type-beer.xml +++ b/de/introduction-to-specialty-type-beer.xml @@ -16,6 +16,6 @@ <p> Die Wettbewerbsrichter sollten nicht zu pedantisch sein, wenn es darum geht, den exakten Charakter eines bestimmten Grundbierstils zu treffen. Schließlich enthält das Basisbier in der Regel keine speziellen Zutaten, so dass sein Charakter nicht derselbe sein kann. Es kann geschmackliche Wechselwirkungen geben, die zusätzliche sensorische Effekte hervorrufen. Ebenso sollten die Richter berücksichtigen, dass der Gärungsprozess Einfluss auf die Inhaltsstoffe nimmt (insbesondere auf solche, die vergärbare Zucker enthalten) und dass somit der Charakter eines Inhaltsstoffes möglicherweise nicht mit dem des unverfälschten Spezialbestandteils identisch ist. Die Richter sollten daher auf die allgemeinen Genußeigenschaften und die Ausgewogenheit der resultierenden Kombination achten, sofern das Bier sowohl dem Basisbier als auch der Spezialzutat oder dem Spezialverfahren gerecht wird.</p> <p>Bierspezialitäten zu kreieren und zu beurteilen, kann sehr bereichernd sein. Die Wettbewerbsrichter sollten bedenken, dass in diesen Stilen ein kreatives Element vorhanden ist und dass im Allgemeinen etwas Ungewöhnliches und Genussvolles belohnt werden sollte. Seien Sie offen, wenn Sie diese Stile bewerten, und versuchen Sie nicht, sie so streng zu beurteilen wie klassische Stile.</p> <h3 id="effects-of-added-ingredients-onbalance-in-beer">Auswirkungen zugesetzter Inhaltsstoffe auf die Ausgewogenheit eines Bieres</h3> - <p>Der Charakter eines Inhaltsstoffes sollte angenehm und unterstützend sein, nicht künstlich oder unangemessen überbetont. Er sollte keine Brau-, Gärungs- oder sonstige Handhabungsfehler aufweisen. Aromahopfen, Gärungsnebenprodukte und Malzbestandteile des zugrund liegenden Bieres sind angesichts zusätzlicher Zutaten meist nicht so vordergründig. Diese Komponenten (insbesondere Hopfen) können auch absichtlich reduziert werden, damit der Inhaltsstoffcharakter im resultierenden Bier stärker zum Tragen kommt. Wenn das Basisbier ein Ale ist, können unspezifische Fruchtigkeit und/oder andere Gärungsnebenprodukte vorhanden sein, die für eine wärmere Gärung typisch sind. Wenn das Basisbier hingegen ein Lager ist, sollten insgesamt weniger Gärungsnebenprodukte erkennbar sein. Etwas Malzaroma kann wünschenswert sein, insbesondere bei dunklen Stilen. Das Hopfenaroma kann je nach Stil fehlen oder mit den hinzugefügten Zutaten ausbalanciert sein. Die hinzugefügten Zutaten sollten dem Bier eine zusätzliche Komplexität verleihen, jedoch nicht so auffällig sein, dass das resultierende Bier seine Ausgewogenheit verliert.</p> + <p>Der Charakter eines Inhaltsstoffes sollte angenehm und unterstützend sein, nicht künstlich oder unangemessen überbetont. Er sollte keine Brau-, Gärungs- oder sonstige Handhabungsfehler aufweisen. Aromahopfen, Gärungsnebenprodukte und Malzbestandteile des zugrund liegenden Bieres sind angesichts zusätzlicher Zutaten meist nicht so vordergründig. Diese Komponenten (insbesondere Hopfen) können auch absichtlich reduziert sein, damit der Inhaltsstoffcharakter im resultierenden Bier stärker zum Tragen kommt. Wenn das Basisbier ein Ale ist, können unspezifische Fruchtigkeit und/oder andere Gärungsnebenprodukte vorhanden sein, die für eine wärmere Gärung typisch sind. Wenn das Basisbier hingegen ein Lager ist, sollten insgesamt weniger Gärungsnebenprodukte erkennbar sein. Etwas Malzaroma kann wünschenswert sein, insbesondere bei dunklen Stilen. Das Hopfenaroma kann je nach Stil fehlen oder mit den hinzugefügten Zutaten ausbalanciert sein. Die hinzugefügten Zutaten sollten dem Bier eine zusätzliche Komplexität verleihen, jedoch nicht so auffällig sein, dass das resultierende Bier seine Ausgewogenheit verliert.</p> </chapter> </styleguide> \ No newline at end of file diff --git a/web/edit.css b/web/edit.css index 3bf400a..230a580 100644 --- a/web/edit.css +++ b/web/edit.css @@ -1,4 +1,6 @@ +/* editor stuff */ + .pell-content{ border-bottom: 1px solid black; } @@ -77,19 +79,28 @@ div#editor-inner { height: 95%; } -styleguide nav, styleguide *[source] { - cursor: pointer; -} - styleguide[orig="true"] * { display:none; } +styleguide *[source="original"] { + background-color: #ffd0d0; +} +styleguide *[source="lang-file"] { + background-color: #dfffdf; +} +styleguide *[source="this-session"] { + background-color: #b0ffb0; +} +styleguide nav:not([todo="0"]) { + background-color: #ffb0b0; +} +/* other */ styleguide category:before, styleguide subcategory:before { white-space: pre; @@ -107,6 +118,23 @@ styleguide chapter, styleguide category, styleguide subcategory { margin-left:0em; display: block; } + +styleguide name { + margin-left:1em; +} + +styleguide h2 { + margin-top: 0px; + margin-bottom: 0px; +} + +/* +styleguide h2 { font-size: large; } +styleguide h3 { font-size: medium; } +styleguide h4 { font-size: small; } +*/ + +/* styleguide category.collapsed, styleguide subcategory.collapsed { height: 1.3em; overflow: hidden; @@ -119,19 +147,16 @@ styleguide chapter.collapsed { styleguide category.collapsed subcategory, styleguide subcategory.collapsed subcategory { display: none; } +*/ -styleguide name { - margin-left:1em; -} -styleguide h2 { - margin-top: 0px; - margin-bottom: 0px; -} -styleguide h2 { font-size: large; } -styleguide h3 { font-size: medium; } -styleguide h4 { font-size: small; } + + +/* +styleguide nav, styleguide *[source] { + cursor: pointer; +} styleguide nav { display:inline-block; @@ -153,16 +178,5 @@ styleguide nav { styleguide chapter.collapsed nav, styleguide category.collapsed nav, styleguide subcategory.collapsed nav { transform: rotate(-90deg); } +*/ -styleguide *[source="original"] { - background-color: #ffd0d0; -} -styleguide *[source="lang-file"] { - background-color: #dfffdf; -} -styleguide *[source="this-session"] { - background-color: #b0ffb0; -} -styleguide nav:not([todo="0"]) { - background-color: #ffb0b0; -} diff --git a/web/edit.html b/web/edit.html index a429b9c..c4fbbe2 100644 --- a/web/edit.html +++ b/web/edit.html @@ -3,9 +3,9 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>BJCP 2015 Styleguide</title> - <link rel="stylesheet" type="text/css" charset="utf-8" href="bjcp-styleguide.css"/> - <link rel="stylesheet" type="text/css" charset="utf-8" href="pell.css"/> + <link rel="stylesheet" type="text/css" charset="utf-8" href="show.css"/> <link rel="stylesheet" type="text/css" charset="utf-8" href="edit.css"/> + <link rel="stylesheet" type="text/css" charset="utf-8" href="pell.css"/> <link rel="styleguide" type="text/xml" href="bjcp-2015-styleguide-de.xml"/> <link rel="styleguide-orig" type="text/xml" href="bjcp-2015-styleguide-orig.xml"/> <link rel="styleguide-auto" type="text/xml" href="bjcp-2015-styleguide-de-auto.xml"/> diff --git a/web/bjcp-styleguide.css b/web/show.css similarity index 64% rename from web/bjcp-styleguide.css rename to web/show.css index cecbc62..55dee9a 100644 --- a/web/bjcp-styleguide.css +++ b/web/show.css @@ -1,10 +1,10 @@ -styleguide { - font-family: Helvetica, Arial, Geneva, sans-serif; +styleguide { + font-family: Helvetica, Arial, Geneva, sans-serif; } styleguide chapter p, styleguide chapter h1, styleguide chapter h2, styleguide chapter h3, styleguide chapter h4, styleguide chapter ol, styleguide chapter ul, styleguide chapter { - margin-left: 1em; + margin-left: 0.7em; } /* the following rules are copied from standard html rules */ @@ -13,36 +13,22 @@ styleguide p { display: block; margin-block-start: 1em; margin-block-end: 1em; - margin-inline-start: 0px; - margin-inline-end: 0px; } styleguide h2 { display: block; font-size: 1.5em; - margin-block-start: 0.83em; - margin-block-end: 0.83em; - margin-inline-start: 0px; - margin-inline-end: 0px; font-weight: bold; } styleguide h3 { display: block; font-size: 1.17em; - margin-block-start: 1em; - margin-block-end: 1em; - margin-inline-start: 0px; - margin-inline-end: 0px; font-weight: bold; } styleguide h4 { display: block; - margin-block-start: 1.33em; - margin-block-end: 1.33em; - margin-inline-start: 0px; - margin-inline-end: 0px; font-weight: bold; } @@ -51,8 +37,6 @@ styleguide ol { list-style-type: decimal; margin-block-start: 1em; margin-block-end: 1em; - margin-inline-start: 0px; - margin-inline-end: 0px; padding-inline-start: 40px; } @@ -61,8 +45,6 @@ styleguide ul { list-style-type: disc; margin-block-start: 1em; margin-block-end: 1em; - margin-inline-start: 0px; - margin-inline-end: 0px; padding-inline-start: 40px; } @@ -75,7 +57,7 @@ styleguide li { text-align: -webkit-match-parent; } -/* end of copied css */ +/* table-style divs */ styleguide div.table { table-layout: fixed; @@ -102,21 +84,21 @@ styleguide div.table-cell { margin: 0px 10px; } -styleguide p.list-item { - list-style-type: decimal; -} + +/* categories */ styleguide category, styleguide subcategory { - margin-top:1em; - margin-bottom:1em; - margin-left:0em; - display: list-item; - list-style-position: inside; + /*margin-top:1em;*/ + /*margin-bottom:1em;*/ + margin-left:1em; + display: block; } +/* styleguide p { margin-top:1em; } +*/ styleguide b { font-weight: bold; @@ -130,20 +112,21 @@ styleguide u { text-decoration: underline; } -styleguide category:before, styleguide subcategory:before { - content: attr(id); -} styleguide name { - display: inline-block; - margin-bottom:1em; + display: inline-block; + /*margin-bottom:0.5em;*/ + font-size: 1.5em; + font-weight: bold; } styleguide description { - margin-left:1em; - display: block; + /*margin-left:1em;*/ + display: block; } +/* styleguide description p { margin-top: 0; } +*/ styleguide overall-impression:before { content: "Overall Impression: "; @@ -191,46 +174,56 @@ styleguide strength-classifications:before { styleguide[lang="de"] overall-impression:before { content: "Gesamteindruck: "; } -styleguide aroma:before { +styleguide[lang="de"] aroma:before { content: "Geruch: "; } -styleguide appearance:before { +styleguide[lang="de"] appearance:before { content: "Erscheinungsbild: "; } -styleguide flavor:before { +styleguide[lang="de"] flavor:before { content: "Geschmack: "; } -styleguide mouthfeel:before { +styleguide[lang="de"] mouthfeel:before { content: "Mundgefühl: "; } -styleguide comments:before { +styleguide[lang="de"] comments:before { content: "Kommentare: "; } -styleguide history:before { +styleguide[lang="de"] history:before { content: "Geschichte: "; } -styleguide characteristic-ingredients:before { +styleguide[lang="de"] characteristic-ingredients:before { content: "Charakteristische Zutaten: "; } -styleguide style-comparison:before { +styleguide[lang="de"] style-comparison:before { content: "Stilvergleich: "; } -styleguide entry-instructions:before { +styleguide[lang="de"] entry-instructions:before { content: "Einreichungsbestimmungen: "; } -styleguide specs:before { +styleguide[lang="de"] specs:before { content: "Eckdaten: "; } -styleguide commercial-examples:before { +styleguide[lang="de"] commercial-examples:before { content: "Kommerzielle Beispiele: "; } -styleguide tags:before { +styleguide[lang="de"] tags:before { content: "Tags: "; } -styleguide strength-classifications:before { +styleguide[lang="de"] strength-classifications:before { content: "Stärkeklassifikation: "; } +styleguide[lang="de"] category > name:after { + content: " (Stilkategorie)"; +} +styleguide[lang="de"] subcategory > name:after { + content: " (Bierstil)"; +} +styleguide[lang="de"] subcategory[id*="-"] > name:after { + content: " (Bierstilalternative)"; +} + styleguide overall-impression, styleguide aroma, styleguide appearance, @@ -309,6 +302,62 @@ styleguide specs div * { */ +/* navigation */ + +styleguide nav, +styleguide *[source] { + cursor: pointer; +} +styleguide nav, +styleguide nav, +styleguide nav { + display:inline-block; + position: absolute; + left:5px; + overflow: hidden; + margin-left:0px; + margin-top:3px; + width:20px; + height:20px; + transform: rotate(0deg); + transition: -webkit-transform 0.3s cubic-bezier(0.19, 1, 0.22, 1); + transition: transform 0.3s cubic-bezier(0.19, 1, 0.22, 1); + background-position: center; + background-size: 0.75rem auto; + background-repeat: no-repeat; + background-image: url("data:image/svg+xml,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 320 512%27%3E%3Cpath fill=%27%23003f57%27 d=%27M143 352.3L7 216.3c-9.4-9.4-9.4-24.6 0-33.9l22.6-22.6c9.4-9.4 24.6-9.4 33.9 0l96.4 96.4 96.4-96.4c9.4-9.4 24.6-9.4 33.9 0l22.6 22.6c9.4 9.4 9.4 24.6 0 33.9l-136 136c-9.2 9.4-24.4 9.4-33.8 0z%27/%3E%3C/svg%3E"); +} +styleguide chapter.collapsed > nav, +styleguide category.collapsed > nav, +styleguide subcategory.collapsed > nav { + transform: rotate(-90deg); +} +styleguide chapter.collapsed, +styleguide category.collapsed, +styleguide subcategory.collapsed { + overflow: hidden; +} + +styleguide *.collapsed * { + display:none !important; +} +styleguide *.collapsed nav, +styleguide *.collapsed h2, +styleguide *.collapsed name { + display:block !important; +} + +styleguide * *:nth-child(3) { + /* after "name" and "nav" */ + margin-block-start: 1em; +} +styleguide * *:last-child { + margin-block-end: 1em; +} +styleguide subcategory[id="7C"] entry-instructions { + /* layout hack for this one occurance */ + margin-block-end: 1em; +} diff --git a/web/show.html b/web/show.html index b569a5b..89c36e7 100644 --- a/web/show.html +++ b/web/show.html @@ -3,7 +3,7 @@ <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title>BJCP 2015 Styleguide</title> - <link rel="stylesheet" type="text/css" charset="utf-8" href="bjcp-styleguide.css"/> + <link rel="stylesheet" type="text/css" charset="utf-8" href="show.css"/> <link rel="styleguide" type="text/xml" href="bjcp-2015-styleguide-de.xml"/> </head> <body> diff --git a/web/show.js b/web/show.js index c420673..52405d8 100644 --- a/web/show.js +++ b/web/show.js @@ -24,6 +24,17 @@ function renderStyleguide(styleguide) { var parts = styleguide_node.querySelectorAll("chapter, category, subcategory"); for (var i = 0; i < parts.length; i++) { + // add category id to the name element, so that it becomes searchable in browsers + if ((parts[i].tagName == "category") || (parts[i].tagName == "subcategory")) { + var id0 = parts[i].getAttribute("id"); + var name0 = parts[i].querySelector("name"); + if (id0 && name0) { + id0 = id0.replace(/\-.*$/,""); + name0.textContent = id0 + ": " + name0.textContent; + } + } + + // add navigation element var nav = document.createElement("nav"); parts[i].insertBefore(nav, parts[i].childNodes[0]); diff --git a/xsl/bjcp-2015-styleguide-html.xsl b/xsl/bjcp-2015-styleguide-html.xsl deleted file mode 100644 index d3cb447..0000000 --- a/xsl/bjcp-2015-styleguide-html.xsl +++ /dev/null @@ -1,231 +0,0 @@ -<?xml version="1.0"?> -<xsl:stylesheet - version="1.0" - xmlns="http://www.w3.org/1999/xhtml" - xmlns:bjcp="http://heimbrauconvention.de/bjcp-styleguide/2015" - xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> - - - - <xsl:param name="edit">no</xsl:param> - <xsl:param name="orig"></xsl:param> - - - - <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> - - - - <xsl:template match="/bjcp:styleguide"> - <xsl:element name="html"> - <xsl:element name="head"> - <xsl:element name="title"> - <xsl:text>BJCP 2015 Styleguide</xsl:text> - </xsl:element> - <xsl:element name="link"> - <xsl:attribute name="rel">stylesheet</xsl:attribute> - <xsl:attribute name="type">text/css</xsl:attribute> - <xsl:attribute name="href">bjcp-styleguide.css</xsl:attribute> - </xsl:element> - <xsl:if test="not($edit = 'no')"> - <xsl:element name="link"> - <xsl:attribute name="rel">stylesheet</xsl:attribute> - <xsl:attribute name="type">text/css</xsl:attribute> - <xsl:attribute name="href">pell.css</xsl:attribute> - </xsl:element> - <xsl:element name="link"> - <xsl:attribute name="rel">stylesheet</xsl:attribute> - <xsl:attribute name="type">text/css</xsl:attribute> - <xsl:attribute name="href">edit.css</xsl:attribute> - </xsl:element> - </xsl:if> - </xsl:element> - <xsl:element name="body"> - <xsl:apply-templates select="." mode="copy"/> - <xsl:if test="not($edit = 'no')"> - <div id="editor"> - <div id="editor-inner"> - <p>Editing <span id="editstyleid">-</span> "<span id="editstylename">-</span>", element: <span id="editelemname">-</span>, last change: <span id="lastdate">-</span> by <span id="lastauthor">-</span></p> - <div id="original">-</div> - <p>Your short name (e.g. from hobbybrauer): <input type="text" name="author" id="author" /></p> - <div id="pelleditor"> </div> - <!-- - <p>Markup:</p> - <div id="markup">-</div> - <p>Preview:</p> - <div id="render">-</div> - --> - </div> - </div> - <div/> - <xsl:element name="script"> - <xsl:attribute name="src">pell.js</xsl:attribute> - <xsl:text> </xsl:text> - </xsl:element> - <xsl:element name="script"> - <xsl:attribute name="src">edit.js</xsl:attribute> - <xsl:text> </xsl:text> - </xsl:element> - </xsl:if> - </xsl:element> - </xsl:element> - </xsl:template> - - - - <xsl:template match="bjcp:specs" mode="copy"> - <xsl:element name="specs"> - <xsl:value-of select="./text()"/> - <xsl:if test="bjcp:ibu or bjcp:srm or bjcp:og or bjcp:fg or bjcp:abv"> - <xsl:element name="div"> - <xsl:if test="bjcp:ibu"> - <xsl:element name="div"> - <xsl:attribute name="class">ibu</xsl:attribute> - <xsl:if test="bjcp:ibu/@min"> - <xsl:value-of select="bjcp:ibu/@min"/> - <xsl:text> – </xsl:text> - <xsl:value-of select="bjcp:ibu/@max"/> - </xsl:if> - <xsl:value-of select="normalize-space(bjcp:ibu/text())"/> - </xsl:element> - </xsl:if> - <xsl:if test="bjcp:srm"> - <xsl:element name="div"> - <xsl:attribute name="class">srm</xsl:attribute> - <xsl:if test="bjcp:srm/@min"> - <xsl:value-of select="bjcp:srm/@min"/> - <xsl:text> – </xsl:text> - <xsl:value-of select="bjcp:srm/@max"/> - </xsl:if> - <xsl:value-of select="normalize-space(bjcp:srm/text())"/> - </xsl:element> - </xsl:if> - <xsl:if test="bjcp:og"> - <xsl:element name="div"> - <xsl:attribute name="class">og</xsl:attribute> - <xsl:if test="bjcp:og/@min"> - <xsl:value-of select="bjcp:og/@min"/> - <xsl:text> – </xsl:text> - <xsl:value-of select="bjcp:og/@max"/> - </xsl:if> - <xsl:value-of select="normalize-space(bjcp:og/text())"/> - </xsl:element> - </xsl:if> - <xsl:if test="bjcp:fg"> - <xsl:element name="div"> - <xsl:attribute name="class">fg</xsl:attribute> - <xsl:if test="bjcp:fg/@min"> - <xsl:value-of select="bjcp:fg/@min"/> - <xsl:text> – </xsl:text> - <xsl:value-of select="bjcp:fg/@max"/> - </xsl:if> - <xsl:value-of select="normalize-space(bjcp:fg/text())"/> - </xsl:element> - </xsl:if> - <xsl:if test="bjcp:abv"> - <xsl:element name="div"> - <xsl:attribute name="class">abv</xsl:attribute> - <xsl:if test="bjcp:abv/@min"> - <xsl:value-of select="bjcp:abv/@min"/> - <xsl:text> – </xsl:text> - <xsl:value-of select="bjcp:abv/@max"/> - </xsl:if> - <xsl:value-of select="normalize-space(bjcp:abv/text())"/> - </xsl:element> - </xsl:if> - </xsl:element> - </xsl:if> - </xsl:element> - </xsl:template> - - - - <xsl:template match="bjcp:a" mode="copy"> - <xsl:variable name="href"> - <xsl:value-of select="@href"/> - </xsl:variable> - <xsl:variable name="idref"> - <xsl:value-of select="translate(@href,'#','')"/> - </xsl:variable> - <xsl:element name="{local-name(.)}"> - <xsl:attribute name="href"> - <xsl:value-of select="$href"/> - </xsl:attribute> - <xsl:choose> - <xsl:when test="string-length(./text()) > 0"> - <xsl:value-of select="./text()"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="//bjcp:styleguide//bjcp:*[@id=$idref]/bjcp:name"/> - </xsl:otherwise> - </xsl:choose> - </xsl:element> - </xsl:template> - - - - <xsl:template match="bjcp:*" mode="copy"> - <xsl:element name="{local-name(.)}"> - <xsl:apply-templates select="@*" mode="copy"/> - <xsl:apply-templates mode="copy"/> - </xsl:element> - </xsl:template> - - - - <xsl:template match="bjcp:name|bjcp:description|bjcp:overall-impression|bjcp:aroma|bjcp:appearance|bjcp:flavor|bjcp:mouthfeel|bjcp:comments|bjcp:history|bjcp:characteristic-ingredients|bjcp:style-comparison|bjcp:entry-instructions|bjcp:commercial-examples" mode="copy"> - <xsl:variable name="name"> - <xsl:value-of select="local-name(.)"/> - </xsl:variable> - <xsl:variable name="idref"> - <xsl:value-of select="../@id"/> - </xsl:variable> - <xsl:element name="{$name}"> - <xsl:apply-templates select="@*" mode="copy"/> - <xsl:if test="not($edit = 'no')"> - <xsl:attribute name="onclick"> - <xsl:text>doedit(this);</xsl:text> - </xsl:attribute> - </xsl:if> - <xsl:apply-templates mode="copy"/> - </xsl:element> - <xsl:if test="$orig"> - <xsl:variable name="orignode" select="document(concat('../',$orig))/bjcp:styleguide//bjcp:*[@id=$idref]/bjcp:*[local-name(.) = $name]"/> - <xsl:element name="{$name}"> - <xsl:apply-templates select="$orignode/@*" mode="copy"/> - <xsl:attribute name="orig">true</xsl:attribute> - <xsl:apply-templates select="$orignode/* | $orignode/text()" mode="copy"/> - </xsl:element> - </xsl:if> - </xsl:template> - - - - <xsl:template match="@id" mode="copy"> - <xsl:attribute name="id"> - <xsl:value-of select="."/> - <!-- - <xsl:choose> - <xsl:when test="contains(.,'-')"> - <xsl:value-of select="substring-before(.,'-')"/> - </xsl:when> - <xsl:otherwise> - <xsl:value-of select="."/> - </xsl:otherwise> - </xsl:choose> - --> - </xsl:attribute> - </xsl:template> - - - - <xsl:template match="@* | text()" mode="copy"> - <xsl:copy> - <xsl:apply-templates select="@*" mode="copy"/> - <xsl:apply-templates mode="copy"/> - </xsl:copy> - </xsl:template> - - - -</xsl:stylesheet> -- GitLab