From 0eaec52019a7eaea245e52dc2842fb5b41b77da9 Mon Sep 17 00:00:00 2001 From: Frank Steinberg <steinberg@ibr.cs.tu-bs.de> Date: Wed, 23 Oct 2019 12:28:07 +0200 Subject: [PATCH] New web files to show content. --- web/show.html | 16 ++++++++++++++++ web/show.js | 52 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) create mode 100644 web/show.html create mode 100644 web/show.js diff --git a/web/show.html b/web/show.html new file mode 100644 index 0000000..b569a5b --- /dev/null +++ b/web/show.html @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<html xmlns="http://www.w3.org/1999/xhtml"> + <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="styleguide" type="text/xml" href="bjcp-2015-styleguide-de.xml"/> + </head> + <body> + <div style="border:2px solid black; margin:10px; padding:10px; max-width:800px;"> + <h1 style="text-align:center">Das BJCP Styleguide Übersetzungsprojekt von hobbybrauer.de und HBCON</h1> + </div> + <div id="styleguide"/> + <script src="show.js"> </script> + </body> +</html> diff --git a/web/show.js b/web/show.js new file mode 100644 index 0000000..c420673 --- /dev/null +++ b/web/show.js @@ -0,0 +1,52 @@ + +var styleguide; +var styleguide_node; + +// load styleguide and trigger rendering +var xhr1 = new XMLHttpRequest(); +xhr1.onreadystatechange = function() { + if (xhr1.readyState === 4) { + styleguide = xhr1.responseXML.querySelector("styleguide"); + renderStyleguide(styleguide); + } +} +xhr1.open('GET', document.querySelector('link[rel="styleguide"]').href, true); +xhr1.setRequestHeader('Content-Type','text/xml; charset=UTF-8'); +xhr1.responseType = "document"; +xhr1.send(); + +function renderStyleguide(styleguide) { + + styleguide_node = document.importNode(styleguide, true); + var div = document.querySelector("div[id='styleguide']"); + div.parentNode.insertBefore(styleguide_node, div); + + var parts = styleguide_node.querySelectorAll("chapter, category, subcategory"); + for (var i = 0; i < parts.length; i++) { + + var nav = document.createElement("nav"); + parts[i].insertBefore(nav, parts[i].childNodes[0]); + + nav.addEventListener("dblclick", function() { + if (this.parentNode.classList.contains("collapsed")) { + var parts = document.querySelectorAll("category, subcategory"); + for (var i = 0; i < parts.length; i++) { + parts[i].classList.remove("collapsed"); + } + } else { + var parts = document.querySelectorAll("category, subcategory"); + for (var i = 0; i < parts.length; i++) { + parts[i].classList.add("collapsed"); + } + } + }); + + nav.addEventListener("click", function() { + this.parentNode.classList.toggle("collapsed"); + }); + + parts[i].classList.add("collapsed"); + + } + +} -- GitLab