From 99bc5be07132e3a1cb179ec2994f75b8e717063b Mon Sep 17 00:00:00 2001 From: "John J. Camilleri" Date: Mon, 3 Dec 2018 10:40:00 +0100 Subject: [PATCH] Updated sidebat in synopsis page - toggleable - overlay content at narrow widths - right of page - background & border --- doc/.gitignore | 1 + doc/synopsis/Makefile | 9 +++++--- doc/synopsis/quicklinks.js | 44 ++++++++++++++++++++++++++++++++++++++ doc/synopsis/template.html | 15 ++++++++----- 4 files changed, 61 insertions(+), 8 deletions(-) diff --git a/doc/.gitignore b/doc/.gitignore index 38db8972..0e49bf9f 100644 --- a/doc/.gitignore +++ b/doc/.gitignore @@ -1,4 +1,5 @@ synopsis/index.txt +synopsis/index-t2t.html synopsis/index.html synopsis/api-examples-*.txt synopsis/api-examples.gfs diff --git a/doc/synopsis/Makefile b/doc/synopsis/Makefile index c0c9aeb0..16e2f7d6 100644 --- a/doc/synopsis/Makefile +++ b/doc/synopsis/Makefile @@ -29,10 +29,13 @@ index: index.html index.txt: MkSynopsis.hs MkExxTable.hs $(INCLUDES) $(EXAMPLES_OUT) $(SRC_FILES) runghc -i$(ROOT) MkSynopsis.hs -TITLE=$(shell head -n 1 index.txt) -index.html: index.txt $(TEMPLATE) +index-t2t.html: index.txt txt2tags --target=html --no-headers --quiet --toc --outfile=$@ --infile=$< sed -i.bak "s/<\/A>/
<\/div>/" $@ + rm "$@.bak" + +TITLE=$(shell head -n 1 index.txt) +index.html: index-t2t.html $(TEMPLATE) pandoc \ --from=html \ --to=html5 \ @@ -44,7 +47,7 @@ index.html: index.txt $(TEMPLATE) --css="synopsis.css" \ --include-after-body="quicklinks.html" \ --output=$(TMP) \ - $@ + index-t2t.html mv $(TMP) $@ sed -i.bak "s//
/" $@ sed -i.bak -e '/img src="categories.png"/r categories-imagemap.html' -e '/img src="categories.png"/d' $@ diff --git a/doc/synopsis/quicklinks.js b/doc/synopsis/quicklinks.js index 5e01c24c..1371f3e0 100644 --- a/doc/synopsis/quicklinks.js +++ b/doc/synopsis/quicklinks.js @@ -122,3 +122,47 @@ appendChildren( quicklinks() ] ) + +/* -------------------------------------------------------------------------- */ + +// Toggle quicklinks +function toggleSidebar () { + var m = document.getElementById('main') + var q = document.getElementById('quicklinks') + var mClasses = 'col-md-9 col-xl-10' + var qClasses = 'col-4 col-md-3 col-xl-2 offset-8 offset-md-9 offset-xl-10' + if (hasClass(q, 'd-none')) { + // Show + addClass(m, mClasses) + addClass(q, qClasses) + removeClass(q, 'd-none') + } else { + // Hide + removeClass(m, mClasses) + removeClass(q, qClasses) + addClass(q, 'd-none') + } +} +document.getElementById('btn-quicklinks-toggle').addEventListener('click', toggleSidebar) +if (window.innerWidth >= 768) { + // Below 768 (== 'md' breakpoint) sidebar overlays content and best left hidden + toggleSidebar() +} + +/* -------------------------------------------------------------------------- */ + +// Helpers + +// Won't work on IE9; use className and split +function addClass (elem, classnames) { + for (var c of classnames.split(' ')) elem.classList.add(c) +} +function removeClass (elem, classnames) { + for (var c of classnames.split(' ')) elem.classList.remove(c) +} +// function toggleClass (elem, classnames) { +// for (var c of classnames.split(' ')) elem.classList.toggle(c) +// } +function hasClass (elem, classname) { + return elem.classList.contains(classname) +} diff --git a/doc/synopsis/template.html b/doc/synopsis/template.html index 9c267d03..82438c08 100644 --- a/doc/synopsis/template.html +++ b/doc/synopsis/template.html @@ -35,15 +35,15 @@ $endfor$
- + -
+
$if(title)$
- GF Logo + GF Logo

$title$

$if(subtitle)$ @@ -64,6 +64,11 @@ $if(toc)$ $endif$ $body$
+ + +