diff --git a/_vendor/git.sandpoints.org/Drawwell/SandpointsTheme/layouts/partials/pagedjs.html b/_vendor/git.sandpoints.org/Drawwell/SandpointsTheme/layouts/partials/pagedjs.html index 0daf7ea..cd0e6a3 100644 --- a/_vendor/git.sandpoints.org/Drawwell/SandpointsTheme/layouts/partials/pagedjs.html +++ b/_vendor/git.sandpoints.org/Drawwell/SandpointsTheme/layouts/partials/pagedjs.html @@ -2,4 +2,4 @@ - + diff --git a/_vendor/git.sandpoints.org/Drawwell/SandpointsTheme/static/js/repeatingHeader.js b/_vendor/git.sandpoints.org/Drawwell/SandpointsTheme/static/js/pagedjsCustomizations.js similarity index 64% rename from _vendor/git.sandpoints.org/Drawwell/SandpointsTheme/static/js/repeatingHeader.js rename to _vendor/git.sandpoints.org/Drawwell/SandpointsTheme/static/js/pagedjsCustomizations.js index 4813ab8..0871eef 100644 --- a/_vendor/git.sandpoints.org/Drawwell/SandpointsTheme/static/js/repeatingHeader.js +++ b/_vendor/git.sandpoints.org/Drawwell/SandpointsTheme/static/js/pagedjsCustomizations.js @@ -1,8 +1,47 @@ -class RepeatingTableHeaders extends Paged.Handler { +var UID = { + _current: 0, + getNew: function(){ + this._current++; + return this._current; + } +}; + +HTMLElement.prototype.pseudoStyle = function(element,prop,value){ + var _this = this; + var _sheetId = "pseudoStyles"; + var _head = document.head || document.getElementsByTagName('head')[0]; + var _sheet = document.getElementById(_sheetId) || document.createElement('style'); + _sheet.id = _sheetId; + var className = "pseudoStyle" + UID.getNew(); + + _this.className += " "+className; + + _sheet.innerHTML += " ."+className+":"+element+"{"+prop+":"+value+"}"; + _head.appendChild(_sheet); + return this; +}; + +class Sandpoints extends Paged.Handler { constructor(chunker, polisher, caller) { super(chunker, polisher, caller); } + beforeParsed(content) { + var d = {}; + content.querySelectorAll('*').forEach((n, i)=> { + if (n.classList.length > 0 ) { + n.classList.forEach((c, i)=>{ + if (c.startsWith("css-")) { + (c in d) ? d[c]++ : d[c] = 1 + let s = "" + Object.keys(d).filter(ks => ks.startsWith(c.slice(0, -1))).forEach((t, i)=> {if (c >= t) {s += `${d[t]}.`}}) + n.pseudoStyle('before','content', `"${s} "`) + } + }) + } + }) + } + afterPageLayout(pageElement, page, breakToken, chunker) { // Find all split table elements let tables = pageElement.querySelectorAll("table[data-split-from]"); @@ -24,7 +63,6 @@ class RepeatingTableHeaders extends Paged.Handler { // Find if there is a header let sourceHeader = sourceTable.querySelector("thead"); if (sourceHeader) { - console.log("Table header was cloned, because it is splitted."); // Clone the header element let clonedHeader = sourceHeader.cloneNode(true); // Insert the header at the start of the split table @@ -55,4 +93,4 @@ class RepeatingTableHeaders extends Paged.Handler { } } -Paged.registerHandlers(RepeatingTableHeaders); +Paged.registerHandlers(Sandpoints); diff --git a/_vendor/modules.txt b/_vendor/modules.txt index 194e84e..dd08a25 100644 --- a/_vendor/modules.txt +++ b/_vendor/modules.txt @@ -1 +1 @@ -# git.sandpoints.org/Drawwell/SandpointsTheme v0.0.0-20210205231518-7612f79321fb +# git.sandpoints.org/Drawwell/SandpointsTheme v0.0.0-20210206114614-2c21080f414b