Wijzigen voor document Huisstijl
Laatst gewijzigd door Jeeves de Butler op 07-10-2026 01:56
Van versie 25.1
gewijzigd door Jeeves de Butler
op 07-10-2026 01:56
op 07-10-2026 01:56
Opmerking bij wijziging:
Er is geen opmerking bij deze versie
Naar versie 5.1
gewijzigd door Jeeves de Butler
op 05-10-2026 01:21
op 05-10-2026 01:21
Opmerking bij wijziging:
Er is geen opmerking bij deze versie
Samenvatting
-
Paginaeigenschappen (1 gewijzigd, 0 toegevoegd, 0 verwijderd)
-
Objecten (1 gewijzigd, 0 toegevoegd, 1 verwijderd)
Details
- Paginaeigenschappen
-
- Inhoud
-
... ... @@ -1,4 +1,4 @@ 1 -Huisstijl van de Wardenburg Kennisbank. Het object //StyleSheetExtension// op deze pagina (de opmaak) en het object //JavaScriptExtension// (kaartenraster voor tegeltabellen, alleen presentatie)wordenop elke pagina geladen.1 +Huisstijl van de Wardenburg Kennisbank. Het object //StyleSheetExtension// op deze pagina wordt op elke pagina geladen. 2 2 3 3 Kleuren en lettertypen staan in het kleurthema [[Wardenburg>>doc:FlamingoThemes.Wardenburg]]. Zie het [[register van eigen aanpassingen>>doc:Wardenburg.Code.WebHome]]. 4 4
- XWiki.JavaScriptExtension[0]
-
- cache
-
... ... @@ -1,1 +1,0 @@ 1 -long - code
-
... ... @@ -1,215 +1,0 @@ 1 -/* Wardenburg Kennisbank; presentatie van tegeltabellen (class "vgmtabel"). 2 - Een tegeltabel is een rij met titels (kopcellen) met daaronder een rij met afbeeldingen die naar een pagina linken. 3 - Dit script toont dezelfde titels, afbeeldingen en links als een rustig kaartenraster. De pagina zelf verandert niet: 4 - de tabel blijft in de pagina staan en wordt alleen verborgen. Werkt alleen in de leesweergave. */ 5 -(function () { 6 - 'use strict'; 7 - 8 - function cellen(rij) { 9 - return rij ? Array.prototype.slice.call(rij.cells) : []; 10 - } 11 - 12 - function isKopRij(rij) { 13 - var c = cellen(rij); 14 - return c.length > 0 && c.every(function (cel) { return cel.tagName === 'TH'; }); 15 - } 16 - 17 - function kaartenUitTabel(tabel) { 18 - var rijen = Array.prototype.slice.call(tabel.rows); 19 - var kaarten = []; 20 - for (var i = 0; i < rijen.length; i++) { 21 - var kop = rijen[i]; 22 - if (!isKopRij(kop)) { 23 - continue; 24 - } 25 - var beeldRij = rijen[i + 1] && !isKopRij(rijen[i + 1]) ? rijen[i + 1] : null; 26 - var beeldCellen = cellen(beeldRij); 27 - cellen(kop).forEach(function (th, j) { 28 - var td = beeldCellen[j] || null; 29 - var titel = (th.textContent || '').replace(/\s+/g, ' ').trim(); 30 - var img = (td && td.querySelector('img')) || th.querySelector('img'); 31 - var link = (td && td.querySelector('a[href]')) || th.querySelector('a[href]'); 32 - if (!titel && !img) { 33 - return; 34 - } 35 - kaarten.push({ titel: titel || (img && img.getAttribute('alt')) || '', img: img, link: link }); 36 - }); 37 - if (beeldRij) { 38 - i++; 39 - } 40 - } 41 - return kaarten; 42 - } 43 - 44 - // Adres van de oorspronkelijke afbeelding: zonder de width- en height-parameters waarmee XWiki verkleint. 45 - function origineel(src) { 46 - try { 47 - var url = new URL(src, window.location.href); 48 - url.searchParams.delete('width'); 49 - url.searchParams.delete('height'); 50 - return url.toString(); 51 - } catch (e) { 52 - return src; 53 - } 54 - } 55 - 56 - function zetIcoon(beeld) { 57 - beeld.classList.add('wb-kaart-geenbeeld'); 58 - var icoon = document.createElement('span'); 59 - icoon.className = 'fa fa-book wb-kaart-icoon'; 60 - icoon.setAttribute('aria-hidden', 'true'); 61 - beeld.appendChild(icoon); 62 - } 63 - 64 - function maakKaart(k) { 65 - var kaart = document.createElement(k.link ? 'a' : 'div'); 66 - kaart.className = 'wb-kaart'; 67 - if (k.link) { 68 - kaart.setAttribute('href', k.link.getAttribute('href')); 69 - if (k.link.getAttribute('target')) { 70 - kaart.setAttribute('target', k.link.getAttribute('target')); 71 - kaart.setAttribute('rel', 'noopener'); 72 - } 73 - } 74 - var beeld = document.createElement('span'); 75 - beeld.className = 'wb-kaart-beeld'; 76 - if (k.img) { 77 - var img = document.createElement('img'); 78 - // Het origineel laden in plaats van de door XWiki verkleinde versie (?width=ā¦&height=ā¦), zodat grote kaarten scherp zijn. 79 - img.src = origineel(k.img.currentSrc || k.img.src); 80 - img.alt = ''; 81 - img.loading = 'lazy'; 82 - img.decoding = 'async'; 83 - var geenBeeld = function () { 84 - img.remove(); 85 - zetIcoon(beeld); 86 - }; 87 - img.addEventListener('error', geenBeeld); 88 - // Sommige externe sites geven bij een verdwenen afbeelding een leeg plaatje in plaats van een fout. 89 - img.addEventListener('load', function () { 90 - if (!img.naturalWidth || img.naturalWidth < 4) { 91 - geenBeeld(); 92 - } 93 - }); 94 - beeld.appendChild(img); 95 - } else { 96 - zetIcoon(beeld); 97 - } 98 - var titel = document.createElement('span'); 99 - titel.className = 'wb-kaart-titel'; 100 - titel.textContent = k.titel; 101 - kaart.appendChild(beeld); 102 - kaart.appendChild(titel); 103 - return kaart; 104 - } 105 - 106 - function verwerk(tabel) { 107 - if (tabel.classList.contains('wb-vervangen')) { 108 - return; 109 - } 110 - var kaarten = kaartenUitTabel(tabel); 111 - if (!kaarten.length) { 112 - return; 113 - } 114 - var raster = document.createElement('div'); 115 - raster.className = 'wb-kaarten'; 116 - kaarten.forEach(function (k) { raster.appendChild(maakKaart(k)); }); 117 - tabel.parentNode.insertBefore(raster, tabel.nextSibling); 118 - tabel.classList.add('wb-vervangen'); 119 - } 120 - 121 - function start() { 122 - var actie = (window.XWiki && window.XWiki.contextaction) || 'view'; 123 - if (actie !== 'view') { 124 - return; 125 - } 126 - var tabellen = document.querySelectorAll('#xwikicontent table.vgmtabel'); 127 - Array.prototype.forEach.call(tabellen, function (tabel) { 128 - try { verwerk(tabel); } catch (e) { /* bij een fout blijft de tabel gewoon zichtbaar */ } 129 - }); 130 - Array.prototype.forEach.call(document.querySelectorAll('#xwikicontent ul.wikitoc'), eigenNummering); 131 - Array.prototype.forEach.call(document.querySelectorAll('#xwikicontent .wbrb img'), scherpInfovak); 132 - } 133 - 134 - // Infovak: het origineel tonen in plaats van de kleine XWiki-verkleining, zodat de afbeelding op een breed scherm scherp blijft. 135 - // Bij een fout terug naar de verkleining. Het oude adres blijft bewaard voor herstel(). 136 - function scherpInfovak(img) { 137 - var src = img.getAttribute('src') || ''; 138 - if (img.hasAttribute('data-wb-src') || !/[?&](width|height)=/.test(src)) { 139 - return; 140 - } 141 - var groot = origineel(src); 142 - if (groot === src) { 143 - return; 144 - } 145 - img.setAttribute('data-wb-src', src); 146 - img.addEventListener('error', function terug() { 147 - img.removeEventListener('error', terug); 148 - img.setAttribute('src', src); 149 - }); 150 - img.removeAttribute('srcset'); 151 - img.setAttribute('src', groot); 152 - } 153 - 154 - // Inhoudsopgave: staan de nummers al in de koppen ("2.1 Mogelijkheden"), dan geen tweede nummering ervoor. 155 - // Beslist per inhoudsopgave, zodat die in zijn geheel genummerd of ongenummerd is. 156 - function eigenNummering(toc) { 157 - var links = toc.querySelectorAll('a'); 158 - if (!links.length) { 159 - return; 160 - } 161 - var genummerd = 0; 162 - Array.prototype.forEach.call(links, function (a) { 163 - if (/^\s*\d+(\.\d+)*\.?\s/.test(a.textContent || '')) { 164 - genummerd++; 165 - } 166 - }); 167 - if (genummerd / links.length >= 0.6) { 168 - toc.classList.add('wb-toc-eigen-nummers'); 169 - } 170 - } 171 - 172 - // Bij wijzigen op de pagina zelf: eerst de oorspronkelijke tabel terug, zodat de editor nooit de kaarten ziet. 173 - function herstel() { 174 - Array.prototype.forEach.call(document.querySelectorAll('#xwikicontent .wb-kaarten'), function (r) { r.remove(); }); 175 - Array.prototype.forEach.call(document.querySelectorAll('#xwikicontent table.wb-vervangen'), function (t) { t.classList.remove('wb-vervangen'); }); 176 - Array.prototype.forEach.call(document.querySelectorAll('#xwikicontent .wbrb img[data-wb-src]'), function (img) { 177 - img.setAttribute('src', img.getAttribute('data-wb-src')); 178 - img.removeAttribute('data-wb-src'); 179 - }); 180 - } 181 - 182 - if (typeof window.require === 'function') { 183 - window.require(['jquery'], function ($) { 184 - $(document).on('xwiki:actions:edit', herstel); 185 - $(document).on('xwiki:actions:view', function () { setTimeout(start, 0); }); 186 - }); 187 - } 188 - 189 - // Na opslaan bij wijzigen op de pagina zelf bouwt XWiki de inhoudsopgave opnieuw op zonder de pagina te herladen. 190 - // Daarom ook nieuwe inhoudsopgaven nalopen zodra ze verschijnen; niet binnen de editor, zodat niets in de tekst belandt. 191 - function nummersBijwerken() { 192 - Array.prototype.forEach.call(document.querySelectorAll('#xwikicontent ul.wikitoc:not(.wb-toc-eigen-nummers)'), function (toc) { 193 - if (!toc.closest('[contenteditable="true"]')) { 194 - eigenNummering(toc); 195 - } 196 - }); 197 - } 198 - var wachtend = null; 199 - if (window.MutationObserver) { 200 - new MutationObserver(function () { 201 - if (wachtend) { 202 - return; 203 - } 204 - wachtend = setTimeout(function () { wachtend = null; nummersBijwerken(); }, 100); 205 - }).observe(document.documentElement, { childList: true, subtree: true }); 206 - } 207 - 208 - if (document.readyState === 'loading') { 209 - document.addEventListener('DOMContentLoaded', function () { start(); nummersBijwerken(); }); 210 - } else { 211 - start(); 212 - nummersBijwerken(); 213 - } 214 -})(); 215 - - use
-
... ... @@ -1,1 +1,0 @@ 1 -always - name
-
... ... @@ -1,1 +1,0 @@ 1 -Wardenburg tegels als kaarten - parse
-
... ... @@ -1,1 +1,0 @@ 1 -Nee
- XWiki.StyleSheetExtension[0]
-
- Code
-
... ... @@ -109,11 +109,10 @@ 109 109 110 110 /* ---------- Infovak rechts (wbrechts) ---------- */ 111 111 112 -/* Groeit mee met de inhoudskolom: op een laptop als voorheen, op brede schermen ruimer voor de afbeelding */ 113 113 .floatinginfobox.wbrechts { 114 114 width: 30%; 115 115 min-width: 260px; 116 - max-width: 4 60px;115 + max-width: 340px; 117 117 margin: 0 0 16px 28px; 118 118 padding: 14px; 119 119 border: 1px solid #e8eaed; ... ... @@ -129,10 +129,9 @@ 129 129 text-align: center; 130 130 margin-bottom: 12px; 131 131 } 132 -/* Nooit groter dan het origineel, zodat logo's klein en scherp blijven */ 133 133 .wbrb img { 134 134 max-width: 100%; 135 - max-height: 280px;133 + max-height: 150px; 136 136 width: auto; 137 137 height: auto; 138 138 border-radius: 10px; ... ... @@ -251,11 +251,6 @@ 251 251 color: #80868b; 252 252 font-variant-numeric: tabular-nums; 253 253 } 254 -/* Koppen die zelf al genummerd zijn ("2.1 Mogelijkheden"): het script zet deze class, dan geen tweede nummer */ 255 -#xwikicontent ul.wikitoc.wb-toc-eigen-nummers li > .wikilink::before, 256 -#xwikicontent ul.wikitoc.wb-toc-eigen-nummers ul li > .wikilink::before { 257 - content: none; 258 -} 259 259 #xwikicontent ul.wikitoc > li:not(.nodirectchild), 260 260 #xwikicontent ul.wikitoc > li.nodirectchild > ul > li { 261 261 margin-top: 10px; ... ... @@ -392,9 +392,8 @@ 392 392 #leftPanels { 393 393 padding-left: 30px; 394 394 } 395 -/* Vaste ondergrens, zodat de menu-items ook op een laptop op ƩƩn regel passen. Niet als de zijbalk is ingeklapt: 396 - dan zet XWiki de breedte op 0 en krijgt de inhoud de volle breedte. */ 397 -#body.panel-left-width-Medium:not(.hideleft):not(.hidelefthideright) { 388 +/* Vaste ondergrens, zodat de menu-items ook op een laptop op ƩƩn regel passen */ 389 +#body.panel-left-width-Medium { 398 398 --panel-column-left-width: clamp(240px, 17vw, 290px); 399 399 } 400 400 .panels .xwikipanelcontents a { ... ... @@ -668,7 +668,7 @@ 668 668 min-width: 0; 669 669 margin: 0 0 20px; 670 670 display: grid; 671 - grid-template-columns: 220px minmax(0, 1fr);663 + grid-template-columns: 150px minmax(0, 1fr); 672 672 column-gap: 18px; 673 673 align-items: start; 674 674 } ... ... @@ -677,7 +677,7 @@ 677 677 margin: 0; 678 678 } 679 679 .floatinginfobox.wbrechts > .wbrb img { 680 - max-height: 1 70px;672 + max-height: 120px; 681 681 } 682 682 .floatinginfobox.wbrechts > *:not(.wbrb) { 683 683 grid-column: 2; ... ... @@ -694,219 +694,6 @@ 694 694 } 695 695 } 696 696 697 -/* ---------- Paginakop: titel en knoppen naast elkaar ---------- */ 698 - 699 -@media (min-width: 992px) { 700 - #mainContentArea > .document-header { 701 - display: flex; 702 - align-items: flex-start; 703 - gap: 16px; 704 - } 705 - #mainContentArea > .document-header::before, 706 - #mainContentArea > .document-header::after { 707 - content: none; 708 - } 709 - #mainContentArea > .document-header > .document-info { 710 - flex: 1 1 auto; 711 - width: auto; 712 - min-width: 0; 713 - } 714 - #mainContentArea > .document-header > .document-menu { 715 - flex: 0 0 auto; 716 - width: auto; 717 - } 718 - #mainContentArea > .document-header #contentmenu { 719 - float: none; 720 - display: flex; 721 - flex-wrap: nowrap; 722 - } 723 -} 724 - 725 -/* ---------- Tegels (vgmtabel) als kaarten ---------- */ 726 - 727 -/* Het script huisstijl.js zet een tegeltabel om in een kaartenraster en verbergt de tabel. */ 728 -#xwikicontent table.vgmtabel.wb-vervangen { 729 - display: none !important; 730 -} 731 -.wb-kaarten { 732 - display: grid; 733 - grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); 734 - gap: 18px; 735 - margin: 14px 0 30px; 736 - clear: none; 737 -} 738 -#body #xwikicontent a.wb-kaart, 739 -.wb-kaart { 740 - display: flex; 741 - flex-direction: column; 742 - overflow: hidden; 743 - border: 1px solid #e8eaed; 744 - border-radius: 12px; 745 - background: #ffffff; 746 - color: #202124; 747 - text-decoration: none; 748 - transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease; 749 -} 750 -#body #xwikicontent a.wb-kaart:hover, 751 -#body #xwikicontent a.wb-kaart:focus { 752 - border-color: #ffb447; 753 - box-shadow: 0 4px 14px rgba(31, 35, 40, .10); 754 - transform: translateY(-2px); 755 - color: #202124; 756 -} 757 -.wb-kaart-beeld { 758 - display: block; 759 - position: relative; 760 - aspect-ratio: 16 / 10; 761 - overflow: hidden; 762 - background: #f1f3f4; 763 -} 764 -.wb-kaart-beeld img { 765 - display: block; 766 - width: 100% !important; 767 - height: 100% !important; 768 - max-width: none; 769 - object-fit: cover; 770 - transition: transform .25s ease; 771 -} 772 -.wb-kaart:hover .wb-kaart-beeld img { 773 - transform: scale(1.03); 774 -} 775 -/* Geen of verdwenen afbeelding: het script zet er een boekpictogram in (geen backslash-codes in deze CSS: 776 - de CSS-verkleiner van XWiki breekt die, en dan valt de rest van het bestand weg). */ 777 -.wb-kaart-icoon { 778 - position: absolute; 779 - top: 50%; 780 - left: 50%; 781 - transform: translate(-50%, -50%); 782 - font-size: 34px; 783 - color: #b86e00; 784 - opacity: .5; 785 -} 786 -.wb-kaart-titel { 787 - padding: 10px 14px 12px; 788 - font-size: 15px; 789 - font-weight: 500; 790 - line-height: 1.35; 791 -} 792 -/* Grote schermen: grote kaarten, foto's in hun oorspronkelijke 3:2-verhouding */ 793 -@media (min-width: 1200px) { 794 - .wb-kaarten { 795 - grid-template-columns: repeat(auto-fill, minmax(380px, 1fr)); 796 - gap: 26px; 797 - } 798 - .wb-kaart-beeld { 799 - aspect-ratio: 3 / 2; 800 - } 801 - .wb-kaart-titel { 802 - padding: 14px 18px 16px; 803 - font-size: 17px; 804 - } 805 -} 806 -@media (min-width: 1800px) { 807 - .wb-kaarten { 808 - grid-template-columns: repeat(auto-fill, minmax(420px, 1fr)); 809 - } 810 -} 811 - 812 -/* Zonder script: de tabel past in elk geval binnen het scherm */ 813 -#xwikicontent table.vgmtabel { 814 - width: 100% !important; 815 - max-width: 100%; 816 - table-layout: fixed; 817 -} 818 -#xwikicontent table.vgmtabel th, 819 -#xwikicontent table.vgmtabel td { 820 - width: auto !important; 821 - position: static !important; 822 - top: auto !important; 823 - padding: 6px; 824 -} 825 -#xwikicontent table.vgmtabel img { 826 - width: 100% !important; 827 - height: auto !important; 828 - aspect-ratio: 16 / 10; 829 - object-fit: cover; 830 - border-radius: 10px; 831 -} 832 - 833 -/* ---------- Handboeken: geplakte Word-opmaak volgt de huisstijl ---------- */ 834 - 835 -html[data-xwiki-space^="Main.Handboeken"] #xwikicontent [style*="font-family"] { 836 - font-family: inherit !important; 837 -} 838 -html[data-xwiki-space^="Main.Handboeken"] #xwikicontent [style*="font-size"] { 839 - font-size: inherit !important; 840 -} 841 -html[data-xwiki-space^="Main.Handboeken"] #xwikicontent [style*="line-height"] { 842 - line-height: inherit !important; 843 -} 844 -html[data-xwiki-space^="Main.Handboeken"] #xwikicontent table:not(.vgmtabel) { 845 - font-size: 14px; 846 -} 847 -html[data-xwiki-space^="Main.Handboeken"] #xwikicontent table [style*="text-indent"] { 848 - text-indent: 0 !important; 849 -} 850 - 851 -/* ---------- Overzicht van onderliggende pagina's (startpagina van een onderdeel) ---------- */ 852 - 853 -.wb-overzicht { 854 - list-style: none; 855 - display: grid; 856 - grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); 857 - gap: 10px; 858 - margin: 14px 0 28px; 859 - padding: 0; 860 -} 861 -.wb-overzicht li { 862 - margin: 0; 863 -} 864 -#body #xwikicontent .wb-overzicht a { 865 - display: flex; 866 - align-items: center; 867 - gap: 12px; 868 - height: 100%; 869 - padding: 12px 14px; 870 - border: 1px solid #e8eaed; 871 - border-radius: 10px; 872 - background: #ffffff; 873 - color: #202124; 874 - text-decoration: none; 875 - transition: border-color .15s ease, box-shadow .15s ease; 876 -} 877 -#body #xwikicontent .wb-overzicht a:hover, 878 -#body #xwikicontent .wb-overzicht a:focus { 879 - border-color: #ffb447; 880 - box-shadow: 0 2px 10px rgba(31, 35, 40, .08); 881 -} 882 -.wb-overzicht-icoon { 883 - flex: none; 884 - width: 36px; 885 - height: 36px; 886 - display: flex; 887 - align-items: center; 888 - justify-content: center; 889 - border-radius: 50%; 890 - background: #ffefd5; 891 - color: #b86e00; 892 - font-size: 16px; 893 - text-align: center; 894 -} 895 -.wb-overzicht strong { 896 - display: block; 897 - font-weight: 500; 898 - line-height: 1.3; 899 -} 900 -.wb-overzicht small { 901 - display: block; 902 - margin-top: 2px; 903 - font-size: 13px; 904 - color: #5f6368; 905 -} 906 -.wb-overzicht-leeg { 907 - color: #5f6368; 908 -} 909 - 910 910 /* ---------- Telefoon ---------- */ 911 911 912 912 @media (max-width: 767px) { ... ... @@ -918,7 +918,7 @@ 918 918 margin: 0 0 16px; 919 919 } 920 920 .wbrb img { 921 - max-height: 200px;700 + max-height: 110px; 922 922 } 923 923 #xwikicontent table:not(.wbinfotab table) { 924 924 display: block; ... ... @@ -934,14 +934,6 @@ 934 934 #contentmenu .btn-label { 935 935 display: none; 936 936 } 937 - .wb-kaarten { 938 - grid-template-columns: repeat(2, minmax(0, 1fr)); 939 - gap: 10px; 940 - } 941 - .wb-kaart-titel { 942 - padding: 8px 10px 10px; 943 - font-size: 13.5px; 944 - } 945 945 #xwikicontent #actionBox ul { 946 946 flex-wrap: nowrap; 947 947 overflow-x: auto; ... ... @@ -953,35 +953,3 @@ 953 953 } 954 954 } 955 955 956 -/* Overzichtstabellen (livetable): woorden heel laten, lange adressen afkappen met ...; bij aanwijzen het volledige adres */ 957 -#xwikicontent table.xwiki-livetable { 958 - font-size: 14px; 959 -} 960 -#xwikicontent .xwiki-livetable-display-header th, 961 -#xwikicontent .xwiki-livetable-display-body td { 962 - padding: 6px 7px; 963 -} 964 -#xwikicontent table.xwiki-livetable .xwiki-livetable-display-body td { 965 - word-break: normal; 966 - overflow-wrap: break-word; 967 - hyphens: manual; 968 -} 969 -#xwikicontent table.xwiki-livetable .xwiki-livetable-display-body td.URL, 970 -#xwikicontent table.xwiki-livetable .xwiki-livetable-display-body td.DOWNLOADURL { 971 - max-width: 140px; 972 - white-space: nowrap; 973 - overflow: hidden; 974 - text-overflow: ellipsis; 975 -} 976 -#xwikicontent table.xwiki-livetable .xwiki-livetable-display-body td.URL:hover, 977 -#xwikicontent table.xwiki-livetable .xwiki-livetable-display-body td.DOWNLOADURL:hover { 978 - white-space: normal; 979 - overflow-wrap: anywhere; 980 -} 981 -/* Een brede overzichtstabel blijft binnen de pagina en schuift zo nodig opzij */ 982 -#xwikicontent table.xwiki-livetable { 983 - display: block; 984 - max-width: 100%; 985 - overflow-x: auto; 986 -} 987 -