From 3a063c941712c5c248f5b95c8861fc65ec840657 Mon Sep 17 00:00:00 2001 From: Sebastian Lukas Hauer Date: Thu, 9 Nov 2023 21:26:56 +0100 Subject: [PATCH 01/17] add a11y page mode --- resource/decker/support/plugins/a11y/a11y.js | 70 +++++++++++-------- .../decker/support/plugins/handout/handout.js | 8 +++ 2 files changed, 47 insertions(+), 31 deletions(-) diff --git a/resource/decker/support/plugins/a11y/a11y.js b/resource/decker/support/plugins/a11y/a11y.js index 868359c4..d4190d9d 100644 --- a/resource/decker/support/plugins/a11y/a11y.js +++ b/resource/decker/support/plugins/a11y/a11y.js @@ -68,6 +68,44 @@ function addCustomSpacebarHandler() { } } +function toggleAccessibility() { + a11yMode = !a11yMode; + + if (a11yMode) { + document.documentElement.classList.add("a11y"); + const videos = document.getElementsByTagName("VIDEO"); + for (const video of videos) { + modifyMedia(video); + } + const audios = document.getElementsByTagName("AUDIO"); + for (const audio of audios) { + modifyMedia(audio); + } + Decker.flash.message( + `Accessible Colors: ON` + ); + window.MathJax.startup.document.menu.menu + .findID("Accessibility", "Activate") + .variable.setter(true); + } else { + document.documentElement.classList.remove("a11y"); + const videos = document.getElementsByTagName("VIDEO"); + for (const video of videos) { + restoreMedia(video); + } + const audios = document.getElementsByTagName("AUDIO"); + for (const audio of audios) { + restoreMedia(audio); + } + Decker.flash.message( + `Accessible Colors: OFF` + ); + } +} + +// Is initial accessibility view requested? +const a11y = /a11y/gi.test(window.location.search); + const Plugin = { id: "a11y", init: (reveal) => { @@ -83,37 +121,7 @@ const Plugin = { description: "Toggle Decker Accessibility Adjustments (Triple Click)", }, - Decker.tripleClick(() => { - a11yMode = !a11yMode; - - if (a11yMode) { - document.documentElement.classList.add("a11y"); - const videos = document.getElementsByTagName("VIDEO"); - for (const video of videos) { - modifyMedia(video); - } - const audios = document.getElementsByTagName("AUDIO"); - for (const audio of audios) { - modifyMedia(audio); - } - Decker.flash.message( - `Accessible Colors: ON` - ); - } else { - document.documentElement.classList.remove("a11y"); - const videos = document.getElementsByTagName("VIDEO"); - for (const video of videos) { - restoreMedia(video); - } - const audios = document.getElementsByTagName("AUDIO"); - for (const audio of audios) { - restoreMedia(audio); - } - Decker.flash.message( - `Accessible Colors: OFF` - ); - } - }) + Decker.tripleClick(toggleAccessibility) ); }, }; diff --git a/resource/decker/support/plugins/handout/handout.js b/resource/decker/support/plugins/handout/handout.js index 01d413ef..f7082fd4 100644 --- a/resource/decker/support/plugins/handout/handout.js +++ b/resource/decker/support/plugins/handout/handout.js @@ -502,6 +502,9 @@ function createButtons() { } } +// Is initial accessibility view requested? +const a11y = /a11y/gi.test(window.location.search); + const Plugin = { id: "handout", isActive: () => handoutSlideMode, @@ -531,6 +534,11 @@ const Plugin = { } }) ); + if (a11y) { + Reveal.addEventListener("ready", () => { + toggleHandoutMode(); + }); + } }, }; From 639f775c55e3ea93b3c7eab68d2cb8e3101d5bf9 Mon Sep 17 00:00:00 2001 From: Sebastian Lukas Hauer Date: Thu, 9 Nov 2023 21:56:51 +0100 Subject: [PATCH 02/17] if the flying focus focuses anything not on the current slide, move to that slide --- resource/decker/support/flyingFocus/flying-focus.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/resource/decker/support/flyingFocus/flying-focus.js b/resource/decker/support/flyingFocus/flying-focus.js index 2c49bf9e..a0066bfc 100644 --- a/resource/decker/support/flyingFocus/flying-focus.js +++ b/resource/decker/support/flyingFocus/flying-focus.js @@ -35,6 +35,15 @@ export function showFlyingFocus(event) { } target = event.target; + // Navigate to the slide the focus target is located in if not in handout mode + if (!document.documentElement.classList.contains("handout")) { + const section = target.closest("section"); + if (section && !section.classList.contains("present")) { + const index = window.Reveal.getIndices(section); + window.Reveal.slide(index.h, index.v); + } + } + // set new position of flying focus Object.assign(flyingFocus.style, rectOf(target)); From b6ed02f884a9017edd1e407cbffe69061e299984 Mon Sep 17 00:00:00 2001 From: Sebastian Lukas Hauer Date: Thu, 9 Nov 2023 21:58:59 +0100 Subject: [PATCH 03/17] move things around to add the workaround for faulty a11y loading --- resource/decker/support/plugins/math/math.js | 84 ++++++++------------ 1 file changed, 35 insertions(+), 49 deletions(-) diff --git a/resource/decker/support/plugins/math/math.js b/resource/decker/support/plugins/math/math.js index 27433f1d..a759c6f0 100644 --- a/resource/decker/support/plugins/math/math.js +++ b/resource/decker/support/plugins/math/math.js @@ -135,6 +135,9 @@ function injectStyle() { document.head.append(style); } +// Is initial a11y mode requested? +const a11y = /a11y/gi.test(window.location.search); + const Plugin = { id: "math", @@ -144,38 +147,41 @@ const Plugin = { // get configuration, built MathJax URL const options = Reveal.getConfig().math || {}; if (!options.mathjax) { - console.error("MathJax not properly configured. Call Hauer."); + console.error( + "No MathJax source URI has been configured. This should not happen!", + "The config.math.mathjax value is usually configured in your resource pack's 'deck.html'", + "Please contact the developers: https://github.com/decker-edu/decker" + ); return; } const url = options.mathjax + "tex-svg.js"; - // remove menu settings, which are stored in localStorage. - // otherwise user could select CHTML renderer, which is not - // installed in decker. - if (window.localStorage) { - window.localStorage.removeItem("MathJax-Menu-Settings"); + // define \fragment{...} funtion + let macros = { fragment: ["\\class{fragment}{#1}", 1] }; + // add user-defined Latex macros + if (options.macros) { + macros = Object.assign(macros, options.macros); } // configure through global MathJax object window.MathJax = { loader: { - load: [ - "[tex]/ams", - // "a11y/assistive-mml", - // "a11y/explorer", - // "a11y/semantic-enrich", - // "a11y/complexity", - // "a11y/sre", - ], typeset: false, }, startup: { ready: () => { - console.log("mathjax loaded"); + const { mathjax } = window.MathJax._.mathjax; + const { STATE } = window.MathJax._.core.MathItem; + const { Menu } = window.MathJax._.ui.menu.Menu; + const rerender = Menu.prototype.rerender; + Menu.prototype.rerender = function (start = STATE.TYPESET) { + mathjax.handleRetriesFor(() => rerender.call(this, start)); + }; + window.MathJax.startup.defaultReady(); }, }, svg: { - scale: Decker.meta.math.scale || 1.0, // global scaling factor for all expressions + scale: window.Decker.meta.math.scale || 1.0, // global scaling factor for all expressions minScale: 0.5, // smallest scaling factor to use mtextInheritFont: true, // true to make mtext elements use surrounding font merrorInheritFont: true, // true to make merror text use surrounding font @@ -191,9 +197,6 @@ const Plugin = { }, tex: { tags: "ams", - packages: { - "[+]": ["ams"], - }, inlineMath: [ // start/end delimiter pairs for in-line math ["$", "$"], @@ -204,41 +207,24 @@ const Plugin = { ["$$", "$$"], ["\\[", "\\]"], ], + macros: macros, }, options: { - enableMenu: false, - // enableMenu: true, - // enableEnrichment: true, - // enableComplexity: true, - // enableExplorer: true, - // menuOptions: { - // settings: { - // assistiveMml: true, - // collapsible: false, // messes up spacing in some equations - // explorer: true, - // }, - // }, - // a11y: { - // speech: true, - // braille: true, - // }, - // sre: { - // speech: "deep", - // domain: "mathspeak", - // style: "default", - // locale: window.navigator.language, - // }, + enableMenu: true, + menuOptions: { + settings: { + explorer: a11y, //if in a11y page mode: active by default + }, + }, + a11y: { + backgroundColor: "Green", + backgroundOpacity: 50, + foregroundColor: "Black", + foregroundOpacity: 100, + }, }, }; - // define \fragment{...} funtion - let macros = { fragment: ["\\class{fragment}{#1}", 1] }; - // add user-defined Latex macros - if (options.macros) { - macros = Object.assign(macros, options.macros); - } - window.MathJax.tex.macros = macros; - // use promise mechanism to make sure that math typesetting // is performend before Reveal fires ready-event or // generates a PDF From 69f3e0966e8bbb74b7abf2c8972fdb9e4b807c04 Mon Sep 17 00:00:00 2001 From: Sebastian Lukas Hauer Date: Fri, 10 Nov 2023 11:01:07 +0100 Subject: [PATCH 04/17] mathjax a11y toggle when toggling a11y mode --- resource/decker/support/plugins/a11y/a11y.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/resource/decker/support/plugins/a11y/a11y.js b/resource/decker/support/plugins/a11y/a11y.js index d4190d9d..81966d44 100644 --- a/resource/decker/support/plugins/a11y/a11y.js +++ b/resource/decker/support/plugins/a11y/a11y.js @@ -84,9 +84,12 @@ function toggleAccessibility() { Decker.flash.message( `Accessible Colors: ON` ); - window.MathJax.startup.document.menu.menu - .findID("Accessibility", "Activate") - .variable.setter(true); + if (window.MathJax) { + // Turn on MathJax explorer + window.MathJax.startup.document.menu.menu + .findID("Accessibility", "Activate") + .variable.setter(true); + } } else { document.documentElement.classList.remove("a11y"); const videos = document.getElementsByTagName("VIDEO"); @@ -100,6 +103,12 @@ function toggleAccessibility() { Decker.flash.message( `Accessible Colors: OFF` ); + if (window.MathJax) { + // Does it make sense to remove this again if once activated? + window.MathJax.startup.document.menu.menu + .findID("Accessibility", "Activate") + .variable.setter(false); + } } } From 7a4c084bfed53662a2ac8b74c6cf29355f7258f8 Mon Sep 17 00:00:00 2001 From: Sebastian Lukas Hauer Date: Fri, 10 Nov 2023 16:04:40 +0100 Subject: [PATCH 05/17] add toggle if a11y page mode --- resource/decker/support/plugins/a11y/a11y.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/resource/decker/support/plugins/a11y/a11y.js b/resource/decker/support/plugins/a11y/a11y.js index 81966d44..4c84f009 100644 --- a/resource/decker/support/plugins/a11y/a11y.js +++ b/resource/decker/support/plugins/a11y/a11y.js @@ -132,6 +132,9 @@ const Plugin = { Decker.tripleClick(toggleAccessibility) ); + if (a11y) { + Reveal.addEventListener("ready", toggleAccessibility); + } }, }; From d71f12612dc5734dcc1b74d9b5bd638aa1dc45db Mon Sep 17 00:00:00 2001 From: Sebastian Lukas Hauer Date: Tue, 14 Nov 2023 09:51:54 +0100 Subject: [PATCH 06/17] lots of printf debugging --- resource/decker/support/plugins/math/math.js | 26 +++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/resource/decker/support/plugins/math/math.js b/resource/decker/support/plugins/math/math.js index a759c6f0..aebc20a7 100644 --- a/resource/decker/support/plugins/math/math.js +++ b/resource/decker/support/plugins/math/math.js @@ -166,19 +166,30 @@ const Plugin = { // configure through global MathJax object window.MathJax = { loader: { - typeset: false, + ready: () => { + console.log("loader ready"); + MathJax.loader.defaultReady(); + }, }, startup: { + // typeset: false, ready: () => { + console.log("startup ready"); const { mathjax } = window.MathJax._.mathjax; const { STATE } = window.MathJax._.core.MathItem; const { Menu } = window.MathJax._.ui.menu.Menu; const rerender = Menu.prototype.rerender; Menu.prototype.rerender = function (start = STATE.TYPESET) { - mathjax.handleRetriesFor(() => rerender.call(this, start)); + mathjax.handleRetriesFor(() => { + rerender.call(this, start); + }); }; window.MathJax.startup.defaultReady(); }, + pageReady: () => { + console.log("pageReady"); + return window.MathJax.startup.defaultPageReady(); + }, }, svg: { scale: window.Decker.meta.math.scale || 1.0, // global scaling factor for all expressions @@ -210,7 +221,7 @@ const Plugin = { macros: macros, }, options: { - enableMenu: true, + enableMenu: a11y, menuOptions: { settings: { explorer: a11y, //if in a11y page mode: active by default @@ -231,12 +242,15 @@ const Plugin = { return new Promise((resolve) => { // load mathjax script loadScript(url, () => { + console.log("loadScript callback"); // Typeset followed by an immediate reveal.js layout since // the typesetting process could affect slide height - console.time("mathjax typesetting"); - window.MathJax.startup.defaultReady(); + // console.time("mathjax typesetting"); + // window.MathJax.startup.defaultReady(); + // window.MathJax.typesetPromise(); window.MathJax.startup.promise.then(() => { - console.timeEnd("mathjax typesetting"); + // console.timeEnd("mathjax typesetting"); + console.log("typeset done"); Reveal.layout(); fixLinks(); setupMathIncremental(); From f0d02ae9f1c4678e589ef40f7c40040bf5117bdd Mon Sep 17 00:00:00 2001 From: Sebastian Lukas Hauer Date: Tue, 14 Nov 2023 10:16:37 +0100 Subject: [PATCH 07/17] cleanup and making execution order more explicit --- resource/decker/support/plugins/math/math.js | 40 +++++--------------- 1 file changed, 9 insertions(+), 31 deletions(-) diff --git a/resource/decker/support/plugins/math/math.js b/resource/decker/support/plugins/math/math.js index aebc20a7..cb46720f 100644 --- a/resource/decker/support/plugins/math/math.js +++ b/resource/decker/support/plugins/math/math.js @@ -9,9 +9,7 @@ * Modifications by Mario Botsch: * - upgrade to MathJax v3 * - disable math typesetting on each slide change - * - disable AssistiveMML, since it duplicates math in speaker notes * - disable SVG font caches, since it doesn't work in speaker notes - * - reset menu settings in localStorage * - use promise mechanism to ensure that math is typset before PDF print * - fix links generated by referencing equations to jump to the slide * containing the referenced equation @@ -22,7 +20,7 @@ * Reveal's zoom plugin work on equations. */ -// reference to Reveal object +// This module's reference to Reveal let Reveal; function loadScript(url, callback) { @@ -163,18 +161,12 @@ const Plugin = { macros = Object.assign(macros, options.macros); } - // configure through global MathJax object + /* MathJax configuration object */ window.MathJax = { - loader: { - ready: () => { - console.log("loader ready"); - MathJax.loader.defaultReady(); - }, - }, startup: { - // typeset: false, ready: () => { - console.log("startup ready"); + /* Workaround to allow loading of a11y features past initial load + * Necessary due do a bug in 3.2.2 throwing a Mathjax.retry error. */ const { mathjax } = window.MathJax._.mathjax; const { STATE } = window.MathJax._.core.MathItem; const { Menu } = window.MathJax._.ui.menu.Menu; @@ -184,11 +176,6 @@ const Plugin = { rerender.call(this, start); }); }; - window.MathJax.startup.defaultReady(); - }, - pageReady: () => { - console.log("pageReady"); - return window.MathJax.startup.defaultPageReady(); }, }, svg: { @@ -236,28 +223,19 @@ const Plugin = { }, }; - // use promise mechanism to make sure that math typesetting - // is performend before Reveal fires ready-event or - // generates a PDF + injectStyle(); + + /* Return a promise to reveal to make it wait until startup.promise resolves. */ return new Promise((resolve) => { - // load mathjax script loadScript(url, () => { - console.log("loadScript callback"); - // Typeset followed by an immediate reveal.js layout since - // the typesetting process could affect slide height - // console.time("mathjax typesetting"); - // window.MathJax.startup.defaultReady(); - // window.MathJax.typesetPromise(); window.MathJax.startup.promise.then(() => { - // console.timeEnd("mathjax typesetting"); - console.log("typeset done"); - Reveal.layout(); fixLinks(); setupMathIncremental(); fixAssistiveMML(); - injectStyle(); + Reveal.layout(); resolve(); }); + window.MathJax.startup.defaultReady(); }); }); }, From 9c1819c29d55a87e1c61e438d30287e11e8e93cd Mon Sep 17 00:00:00 2001 From: Sebastian Lukas Hauer Date: Tue, 14 Nov 2023 10:32:23 +0100 Subject: [PATCH 08/17] add adjustments to rerender and make them handout and a11y aware --- resource/decker/support/plugins/math/math.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/resource/decker/support/plugins/math/math.js b/resource/decker/support/plugins/math/math.js index cb46720f..f567de79 100644 --- a/resource/decker/support/plugins/math/math.js +++ b/resource/decker/support/plugins/math/math.js @@ -67,7 +67,12 @@ function fixLinks() { if (eqn) { const s = eqn.closest("section"); if (s) { - a.href.baseVal = location.origin + location.pathname + "#" + s.id; + a.href.baseVal = + location.origin + + location.pathname + + location.search + + "#" + + s.id; } } } @@ -81,11 +86,15 @@ function fixLinks() { * appear row-by-row. */ function setupMathIncremental() { + const doc = document.documentElement; // unlabeled equations for (let mrow of document.querySelectorAll( '.reveal .math-incremental mjx-container svg g[data-mml-node="mtable"]:first-of-type > g[data-mml-node="mtr"]' )) { mrow.classList.add("fragment"); + if (doc.classList.contains("handout") || doc.classList.contains("a11y")) { + mrow.classList.add("visible"); + } } // unlabeled equations @@ -93,6 +102,9 @@ function setupMathIncremental() { '.reveal .math-incremental mjx-container svg g[data-mml-node="mtable"]:first-of-type g[data-mml-node="mlabeledtr"]' )) { mrow.classList.add("fragment"); + if (doc.classList.contains("handout") || doc.classList.contains("a11y")) { + mrow.classList.add("visible"); + } } } @@ -174,6 +186,9 @@ const Plugin = { Menu.prototype.rerender = function (start = STATE.TYPESET) { mathjax.handleRetriesFor(() => { rerender.call(this, start); + fixLinks(); + setupMathIncremental(); + fixAssistiveMML(); }); }; }, From 2d119435c28877bb2e32a5186185fcda9f8111b1 Mon Sep 17 00:00:00 2001 From: Sebastian Lukas Hauer Date: Tue, 14 Nov 2023 10:33:08 +0100 Subject: [PATCH 09/17] add test examples of incremental math and referenced equation to math-deck.md --- test/decks/math-deck.md | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/test/decks/math-deck.md b/test/decks/math-deck.md index cb44ca90..ccafc9d0 100644 --- a/test/decks/math-deck.md +++ b/test/decks/math-deck.md @@ -39,15 +39,40 @@ $$ $$\lim_{x \to \infty} \exp(-x) = 0$$ +# labeled equation + +$$\begin{equation} + E = mc^2 + \label{eq:einstein} +\end{equation}$$ + # test4 + [$$ + \begin{eqnarray*} + a &=& b \\ + a^2 &=& ab \\ + 2a^2 &=& a^2 + ab \\ + 2a^2-2ab &=& a^2 - ab \\ + 2a(a-b) &=& a (a-b) \\ + 2a &=& a \\ + 2 &=& 1 + \end{eqnarray*} + $$]{ .math-incremental } + +::: footer +Reference label: $\eqref{eq:einstein}$ +::: + +# test5 + This slide contains a math equation in the speaker notes. Press `s` to show it. ::: notes Notes with math! $$\sum_i \pi^i \to \infty$$ ::: -# test5 +# test6 Test speaker notes again. From b70f4d81583d8c63a50ed982f7989583461045e6 Mon Sep 17 00:00:00 2001 From: Sebastian Lukas Hauer Date: Tue, 14 Nov 2023 12:18:10 +0100 Subject: [PATCH 10/17] turn adjustments to render actions to be able to run them during a rerender when activating a11y mode --- resource/decker/support/plugins/math/math.js | 108 ++++++++++--------- 1 file changed, 57 insertions(+), 51 deletions(-) diff --git a/resource/decker/support/plugins/math/math.js b/resource/decker/support/plugins/math/math.js index f567de79..7c48e367 100644 --- a/resource/decker/support/plugins/math/math.js +++ b/resource/decker/support/plugins/math/math.js @@ -51,28 +51,33 @@ function loadScript(url, callback) { head.appendChild(script); } -/* - * correct links generated by referencing equations, such that they - * point to the slide containing the referenced equation. - * Requires that each slide has a CSS id (as generated e.g. by pandoc/decker) - */ -function fixLinks() { - for (let a of document.getElementsByTagName("a")) { - let href = a.href; - if (href.baseVal) { - let label = href.baseVal; - if (label.includes("#mjx-eqn")) { - label = decodeURIComponent(label.substring(1)); - const eqn = document.getElementById(label); - if (eqn) { - const s = eqn.closest("section"); - if (s) { - a.href.baseVal = - location.origin + - location.pathname + - location.search + - "#" + - s.id; +function adjustLinksDocument(doc) { + for (const item of doc.math) { + adjustLinksItem(item, doc); + } +} + +function adjustLinksItem(item, doc) { + const root = item.typesetRoot; + if (root) { + const anchors = root.querySelectorAll("a"); + for (const anchor of anchors) { + const href = anchor.href; + if (href.baseVal) { + let label = href.baseVal; + if (label.includes("#mjx-eqn")) { + label = decodeURIComponent(label.substring(1)); + const eqn = document.getElementById(label); + if (eqn) { + const s = eqn.closest("section"); + if (s) { + anchor.href.baseVal = + location.origin + + location.pathname + + location.search + + "#" + + s.id; + } } } } @@ -80,38 +85,40 @@ function fixLinks() { } } -/* - * If a multi-line equation is enclosed in a div with class math-incremental, - * then add class fragment to the individual rows of the equation, making it - * appear row-by-row. - */ -function setupMathIncremental() { - const doc = document.documentElement; - // unlabeled equations - for (let mrow of document.querySelectorAll( - '.reveal .math-incremental mjx-container svg g[data-mml-node="mtable"]:first-of-type > g[data-mml-node="mtr"]' - )) { - mrow.classList.add("fragment"); - if (doc.classList.contains("handout") || doc.classList.contains("a11y")) { - mrow.classList.add("visible"); - } +function incrementalDocument(doc) { + for (const item of doc.math) { + incrementalItem(item, doc); } +} - // unlabeled equations - for (let mrow of document.querySelectorAll( - '.reveal .math-incremental mjx-container svg g[data-mml-node="mtable"]:first-of-type g[data-mml-node="mlabeledtr"]' - )) { - mrow.classList.add("fragment"); - if (doc.classList.contains("handout") || doc.classList.contains("a11y")) { - mrow.classList.add("visible"); +function incrementalItem(item, mdoc) { + const doc = document.documentElement; + const root = item.typesetRoot; + if (root && root.closest(".math-incremental")) { + for (let mrow of root.querySelectorAll( + 'g[data-mml-node="mtable"]:first-of-type > g[data-mml-node="mtr"]' + )) { + mrow.classList.add("fragment"); + if (doc.classList.contains("handout") || doc.classList.contains("a11y")) { + mrow.classList.add("visible"); + } + } + for (let mrow of document.querySelectorAll( + 'g[data-mml-node="mtable"]:first-of-type g[data-mml-node="mlabeledtr"]' + )) { + mrow.classList.add("fragment"); + if (doc.classList.contains("handout") || doc.classList.contains("a11y")) { + mrow.classList.add("visible"); + } } } } +/* /* * remove fragments from assistive MML blocks */ -function fixAssistiveMML() { +function fixAssistiveMML(doc) { for (let elem of document.querySelectorAll("mjx-assistive-mml .fragment")) { elem.classList.remove("fragment"); } @@ -186,9 +193,6 @@ const Plugin = { Menu.prototype.rerender = function (start = STATE.TYPESET) { mathjax.handleRetriesFor(() => { rerender.call(this, start); - fixLinks(); - setupMathIncremental(); - fixAssistiveMML(); }); }; }, @@ -223,6 +227,11 @@ const Plugin = { macros: macros, }, options: { + renderActions: { + incremental: [1000, incrementalDocument, incrementalItem, false], + adjustLinks: [1001, adjustLinksDocument, adjustLinksItem, false], + fixmml: [1002, fixAssistiveMML, "", false], + }, enableMenu: a11y, menuOptions: { settings: { @@ -244,9 +253,6 @@ const Plugin = { return new Promise((resolve) => { loadScript(url, () => { window.MathJax.startup.promise.then(() => { - fixLinks(); - setupMathIncremental(); - fixAssistiveMML(); Reveal.layout(); resolve(); }); From 9e3d53dd56bc11f1bf43054bbc617d473b485917 Mon Sep 17 00:00:00 2001 From: Sebastian Lukas Hauer Date: Tue, 14 Nov 2023 20:18:52 +0100 Subject: [PATCH 11/17] allow enable / disable of mathjax menu through a11y mode via AAA --- resource/decker/support/plugins/a11y/a11y.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/resource/decker/support/plugins/a11y/a11y.js b/resource/decker/support/plugins/a11y/a11y.js index 4c84f009..b41fb88d 100644 --- a/resource/decker/support/plugins/a11y/a11y.js +++ b/resource/decker/support/plugins/a11y/a11y.js @@ -86,6 +86,8 @@ function toggleAccessibility() { ); if (window.MathJax) { // Turn on MathJax explorer + window.MathJax.startup.document.options.enableMenu = true; + window.MathJax.startup.document.rerender(); window.MathJax.startup.document.menu.menu .findID("Accessibility", "Activate") .variable.setter(true); @@ -108,6 +110,8 @@ function toggleAccessibility() { window.MathJax.startup.document.menu.menu .findID("Accessibility", "Activate") .variable.setter(false); + window.MathJax.startup.document.options.enableMenu = false; + window.MathJax.startup.document.rerender(); } } } From 4b2aaa5afe3d0e0b6075a4fcdd1444b081e028c0 Mon Sep 17 00:00:00 2001 From: Sebastian Lukas Hauer Date: Tue, 27 Aug 2024 16:45:50 +0200 Subject: [PATCH 12/17] force sre to use meta.lang value or navigator value --- resource/decker/support/plugins/math/math.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/resource/decker/support/plugins/math/math.js b/resource/decker/support/plugins/math/math.js index 7c48e367..8b0533c5 100644 --- a/resource/decker/support/plugins/math/math.js +++ b/resource/decker/support/plugins/math/math.js @@ -180,6 +180,8 @@ const Plugin = { macros = Object.assign(macros, options.macros); } + const language = Decker.meta.lang || navigator.language; + /* MathJax configuration object */ window.MathJax = { startup: { @@ -232,6 +234,9 @@ const Plugin = { adjustLinks: [1001, adjustLinksDocument, adjustLinksItem, false], fixmml: [1002, fixAssistiveMML, "", false], }, + sre: { + locale: language === "de" ? "de" : "en", + }, enableMenu: a11y, menuOptions: { settings: { From 4417347c3d9f41ce9d31e88f43cd873d5c3aa791 Mon Sep 17 00:00:00 2001 From: Sebastian Lukas Hauer Date: Mon, 30 Sep 2024 18:16:46 +0200 Subject: [PATCH 13/17] remove all merge typos and always use load promise just to be sure --- resource/decker/support/plugins/a11y/a11y.js | 23 +++++++++++--------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/resource/decker/support/plugins/a11y/a11y.js b/resource/decker/support/plugins/a11y/a11y.js index fa42b617..3b78e217 100644 --- a/resource/decker/support/plugins/a11y/a11y.js +++ b/resource/decker/support/plugins/a11y/a11y.js @@ -112,12 +112,13 @@ function toggleAccessibility() { } Decker.flash.message(localization.accessible_colors_on); if (window.MathJax) { - // Turn on MathJax explorer window.MathJax.startup.document.options.enableMenu = true; - window.MathJax.startup.document.rerender(); window.MathJax.startup.document.menu.menu .findID("Accessibility", "Activate") .variable.setter(true); + window.MathJax.startup.document.menu.loadingPromise.then(() => { + window.MathJax.startup.document.rerender(); + }); } } else { pluginButton.ariaPressed = false; @@ -134,11 +135,13 @@ function toggleAccessibility() { Decker.flash.message(localization.accessible_colors_off); if (window.MathJax) { // Does it make sense to remove this again if once activated? + window.MathJax.startup.document.options.enableMenu = false; window.MathJax.startup.document.menu.menu .findID("Accessibility", "Activate") .variable.setter(false); - window.MathJax.startup.document.options.enableMenu = false; - window.MathJax.startup.document.rerender(); + window.MathJax.startup.document.menu.loadingPromise.then(() => { + window.MathJax.startup.document.rerender(); + }); } } } @@ -180,11 +183,6 @@ const Plugin = { Decker.tripleClick(toggleAccessibility) ); - if (a11y) { - Reveal.addEventListener("ready", () => { - toggleAccessibility(); - }); - } reveal.addEventListener("ready", () => { const menuPlugin = reveal.getPlugin("decker-menu"); if (!!menuPlugin && !!menuPlugin.addPluginButton) { @@ -192,10 +190,15 @@ const Plugin = { "decker-menu-a11y-button", "fa-universal-access", localization.activate_accessibility, - toggleA11YMode + toggleAccessibility ); } }); + if (a11y) { + Reveal.addEventListener("ready", () => { + toggleAccessibility(); + }); + } }, }; From b023d62bf145cb0b241c5e420d4b9bd680279884 Mon Sep 17 00:00:00 2001 From: Mario Botsch Date: Sat, 19 Oct 2024 16:52:38 +0200 Subject: [PATCH 14/17] tudo: can now switch to font Atkinson Hyperlegible To do so, put the following into decker.yaml: template: font: atkinson --- resource/mario/support/css/mario-page.css | 137 +++++++++--------- resource/tudo/support/css/tudo-deck.css | 2 - resource/tudo/support/css/tudo-index.css | 3 - resource/tudo/support/css/tudo-page.css | 3 - .../fonts/AtkinsonHyperlegible-Bold.ttf | Bin 0 -> 54444 bytes .../fonts/AtkinsonHyperlegible-BoldItalic.ttf | Bin 0 -> 54608 bytes .../fonts/AtkinsonHyperlegible-Italic.ttf | Bin 0 -> 54200 bytes .../fonts/AtkinsonHyperlegible-Regular.ttf | Bin 0 -> 53504 bytes resource/tudo/support/fonts/atkinson.css | 35 +++++ resource/tudo/support/fonts/lato.css | 4 + resource/tudo/template/deck-styles.html | 5 + resource/tudo/template/index.html | 5 + resource/tudo/template/page.html | 5 + 13 files changed, 123 insertions(+), 76 deletions(-) create mode 100644 resource/tudo/support/fonts/AtkinsonHyperlegible-Bold.ttf create mode 100644 resource/tudo/support/fonts/AtkinsonHyperlegible-BoldItalic.ttf create mode 100644 resource/tudo/support/fonts/AtkinsonHyperlegible-Italic.ttf create mode 100644 resource/tudo/support/fonts/AtkinsonHyperlegible-Regular.ttf create mode 100644 resource/tudo/support/fonts/atkinson.css diff --git a/resource/mario/support/css/mario-page.css b/resource/mario/support/css/mario-page.css index 9de2b7fd..8479197c 100644 --- a/resource/mario/support/css/mario-page.css +++ b/resource/mario/support/css/mario-page.css @@ -1,119 +1,120 @@ @import url("../fonts/lato.css"); :root { - --blue: #2a9ddf; - --light-blue: #30B3FF; - --emphColor: var(--blue); - --icon-active-color: #2a9ddf; - --icon-inactive-color: lightgrey; - --icon-size: 2vmin; + --blue: #2a9ddf; + --light-blue: #30b3ff; + --emphColor: var(--blue); + --icon-active-color: #2a9ddf; + --icon-inactive-color: lightgrey; + --icon-size: 2vmin; } /* repeat light mode settings from light.css to override dark mode settings, which don't look nice */ :root { - --background-body: #ffffff; - --background: #efefef; - --background-alt: #f7f7f7; - - --selection: #9e9e9e; - - --text-main: #363636; - --text-bright: #000000; - --text-muted: #999999; - - --links: #0076d1; - --focus: #0096bfab; - --border: #dbdbdb; - --code: #000000; - - --animation-duration: 0.1s; - --button-hover: #dddddd; - - --scrollbar-thumb: rgb(213, 213, 213); - --scrollbar-thumb-hover: rgb(196, 196, 196); - - --form-placeholder: #949494; - --form-text: #000000; - - --variable: #39a33c; - --highlight: #ffff00; + --background-body: #ffffff; + --background: #efefef; + --background-alt: #f7f7f7; + + --selection: #9e9e9e; + + --text-main: #363636; + --text-bright: #000000; + --text-muted: #999999; + + --links: #0076d1; + --focus: #0096bfab; + --border: #dbdbdb; + --code: #000000; + + --animation-duration: 0.1s; + --button-hover: #dddddd; + + --scrollbar-thumb: rgb(213, 213, 213); + --scrollbar-thumb-hover: rgb(196, 196, 196); + + --form-placeholder: #949494; + --form-text: #000000; + + --variable: #39a33c; + --highlight: #ffff00; } body { - background: #ffffff; - background-color: #ffffff; - font-family: "Lato"; - color: #222; + background: #ffffff; + background-color: #ffffff; + font-family: "Lato"; + color: #222; } header { - background: var(--blue); - text-align: center; + background: var(--blue); + text-align: center; } -header > h1, header > h2 { - color: white; +header > h1, +header > h2 { + color: white; } header > h1 { - font-size: 50px; + font-size: 50px; } h1 { - margin-top: 3rem; + margin-top: 3rem; } hr { - margin-top: 2rem; + margin-top: 2rem; } a { - color: var(--blue); + color: var(--blue); } a:hover { - color: var(--lightblue); + color: var(--lightblue); } details { - outline: none; - border: 1px solid black; - border-radius: 4px; - padding: 10px; - margin-bottom:10px; + outline: none; + border: 1px solid black; + border-radius: 4px; + padding: 10px; + margin-bottom: 10px; } details summary { - outline: none; - padding: 4px; + outline: none; + padding: 4px; } details summary:hover { - background-color: #2a9ddf58; + background-color: #2a9ddf58; } details summary[icon]::marker { - display: inline-block; - font-style: normal; - font-variant: normal; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - font-family: "Font Awesome 5 Free"; - font-weight: 900; - color: var(--blue); - content: attr(icon); + display: inline-block; + font-style: normal; + font-variant: normal; + text-rendering: auto; + -webkit-font-smoothing: antialiased; + font-family: "Font Awesome 5 Free"; + font-weight: 900; + color: var(--blue); + content: attr(icon); } details summary::after { - font-style: italic; - content: '(click)...' + font-style: italic; + content: "(click)..."; } :lang(de) details summary::after { - content: '(klicken)...' + content: "(klicken)..."; } details input { - box-sizing: border-box; - width: 100%; -} \ No newline at end of file + box-sizing: border-box; + width: 100%; +} diff --git a/resource/tudo/support/css/tudo-deck.css b/resource/tudo/support/css/tudo-deck.css index 15b638fe..d8ef29e6 100644 --- a/resource/tudo/support/css/tudo-deck.css +++ b/resource/tudo/support/css/tudo-deck.css @@ -1,5 +1,4 @@ @import url("../vendor/fontawesome/css/all.css"); -@import url("../fonts/lato.css"); /********************************************* * GLOBAL STYLES @@ -11,7 +10,6 @@ body { background: var(--background-color); - font-family: "Lato", sans-serif; color: var(--foreground-color); accent-color: var(--accent3); } diff --git a/resource/tudo/support/css/tudo-index.css b/resource/tudo/support/css/tudo-index.css index aef63704..9680db76 100644 --- a/resource/tudo/support/css/tudo-index.css +++ b/resource/tudo/support/css/tudo-index.css @@ -1,5 +1,4 @@ @import url("../vendor/fontawesome/css/all.css"); -@import url("../fonts/lato.css"); /**********************/ /* Variables @@ -90,13 +89,11 @@ details input { html { width: 100%; height: 100dvh; - font-family: "Lato"; position: relative; accent-color: var(--accent3); } body.index { - font-family: "Lato"; display: flex; flex-direction: column; flex-wrap: nowrap; diff --git a/resource/tudo/support/css/tudo-page.css b/resource/tudo/support/css/tudo-page.css index 61a3de98..74efed39 100644 --- a/resource/tudo/support/css/tudo-page.css +++ b/resource/tudo/support/css/tudo-page.css @@ -1,5 +1,4 @@ @import url("../vendor/fontawesome/css/all.css"); -@import url("../fonts/lato.css"); /**********************/ /* Variables @@ -349,12 +348,10 @@ details input { html { width: 100%; height: 100vh; - font-family: "Lato"; position: relative; } body { - font-family: "Lato"; display: flex; flex-direction: column; flex-wrap: nowrap; diff --git a/resource/tudo/support/fonts/AtkinsonHyperlegible-Bold.ttf b/resource/tudo/support/fonts/AtkinsonHyperlegible-Bold.ttf new file mode 100644 index 0000000000000000000000000000000000000000..c72b4889f0439e1d0d1de19b0cc270711e5c9809 GIT binary patch literal 54444 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 TKr#_LfslvfIfvvCp7Z|;vKEK6 literal 0 HcmV?d00001 diff --git a/resource/tudo/support/fonts/AtkinsonHyperlegible-BoldItalic.ttf b/resource/tudo/support/fonts/AtkinsonHyperlegible-BoldItalic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..ff966b11c155b5f7a72fa5980c9db7167ec0fda3 GIT binary patch literal 54608 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 Ye}FH<%pHT&FiW$TxsO4n)^Yy-3r@YwzW@LL literal 0 HcmV?d00001 diff --git a/resource/tudo/support/fonts/AtkinsonHyperlegible-Italic.ttf b/resource/tudo/support/fonts/AtkinsonHyperlegible-Italic.ttf new file mode 100644 index 0000000000000000000000000000000000000000..1cf113a0819c4b9082011facbb362386c0b194b3 GIT binary patch literal 54200 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 WqDOAS`u|&HC+6CRFzYMU>HiBzi|u0o literal 0 HcmV?d00001 diff --git a/resource/tudo/support/fonts/AtkinsonHyperlegible-Regular.ttf b/resource/tudo/support/fonts/AtkinsonHyperlegible-Regular.ttf new file mode 100644 index 0000000000000000000000000000000000000000..23614a4d3e27365f83989f2da4338e978de21c09 GIT binary patch literal 53504 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 t4&dcR>0H|!#K`;iVLge^?1os+Yd + $if(template.font)$ + + $else$ + + $endif$ $for(template.css)$ diff --git a/resource/tudo/template/index.html b/resource/tudo/template/index.html index f44518fe..1754dd2c 100644 --- a/resource/tudo/template/index.html +++ b/resource/tudo/template/index.html @@ -56,6 +56,11 @@ + $if(template.font)$ + + $else$ + + $endif$ $for(template.index.css)$ diff --git a/resource/tudo/template/page.html b/resource/tudo/template/page.html index ef9e2e88..0d48e1b9 100644 --- a/resource/tudo/template/page.html +++ b/resource/tudo/template/page.html @@ -49,6 +49,11 @@ + $if(template.font)$ + + $else$ + + $endif$ $for(template.css)$ From ba034a858866650fda7881f65a47fc32f9479304 Mon Sep 17 00:00:00 2001 From: Mario Botsch Date: Sun, 20 Oct 2024 13:01:51 +0200 Subject: [PATCH 15/17] fix a11y: empty headers should stay empty --- resource/decker/support/plugins/a11y/a11y.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resource/decker/support/plugins/a11y/a11y.js b/resource/decker/support/plugins/a11y/a11y.js index a606bf29..d7f8f9c2 100644 --- a/resource/decker/support/plugins/a11y/a11y.js +++ b/resource/decker/support/plugins/a11y/a11y.js @@ -27,7 +27,7 @@ function addScreenReaderSlideNumbers() { function addScreenReaderSlideNumber(slide, h, v) { const header = slide.querySelector("h1"); - if (header) { + if (header && header.textContent.trim() !== "") { const innerHTML = header.innerHTML; const replacementHTML = `${localization.slide} ${ h + 1 From 4ae195fd0322430897eee14046d4eef87edbbe8f Mon Sep 17 00:00:00 2001 From: Mario Botsch Date: Sun, 20 Oct 2024 13:03:08 +0200 Subject: [PATCH 16/17] add Alex' config parsing fix (thanks!) --- resource/decker/support/plugins/whiteboard/whiteboard.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/resource/decker/support/plugins/whiteboard/whiteboard.js b/resource/decker/support/plugins/whiteboard/whiteboard.js index 270be126..6830cd38 100644 --- a/resource/decker/support/plugins/whiteboard/whiteboard.js +++ b/resource/decker/support/plugins/whiteboard/whiteboard.js @@ -108,8 +108,8 @@ function readConfig() { ]; // reveal setting wrt slide dimension - pageHeight = Reveal.getConfig().height; - pageWidth = Reveal.getConfig().width; + pageHeight = parseInt(Reveal.getConfig().height); + pageWidth = parseInt(Reveal.getConfig().width); // reveal elements slides = document.querySelector(".reveal .slides"); From dcc2b0826854afb3d940b65bae6279f68848311a Mon Sep 17 00:00:00 2001 From: Mario Botsch Date: Sun, 20 Oct 2024 17:47:52 +0200 Subject: [PATCH 17/17] update fontawesome and mathjax --- third-party/Font-Awesome | 2 +- third-party/MathJax | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/third-party/Font-Awesome b/third-party/Font-Awesome index 0698449d..f0c25837 160000 --- a/third-party/Font-Awesome +++ b/third-party/Font-Awesome @@ -1 +1 @@ -Subproject commit 0698449d50f2b95517562295a59d414afc68b369 +Subproject commit f0c25837a3fe0e03783b939559e088abcbfb3c4b diff --git a/third-party/MathJax b/third-party/MathJax index 7146ffa4..600692ad 160000 --- a/third-party/MathJax +++ b/third-party/MathJax @@ -1 +1 @@ -Subproject commit 7146ffa47956e7dae05739cfe905d8aaf1e4780a +Subproject commit 600692ad9d3552cc25f85510d5797bc942ecc9f7