Wijzigen voor document Huisstijl
Laatst gewijzigd door Jeeves de Butler op 07-10-2026 01:56
Van versie 3.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
Naar versie 24.1
gewijzigd door Jeeves de Butler
op 06-10-2026 01:25
op 06-10-2026 01:25
Opmerking bij wijziging:
Er is geen opmerking bij deze versie
Samenvatting
-
Paginaeigenschappen (1 gewijzigd, 0 toegevoegd, 0 verwijderd)
-
Objecten (1 gewijzigd, 3 toegevoegd, 0 verwijderd)
Details
- Paginaeigenschappen
-
- Inhoud
-
... ... @@ -1,4 +1,4 @@ 1 -Huisstijl van de Wardenburg Kennisbank. Het object //StyleSheetExtension// op deze pagina word top elke pagina geladen.1 +Huisstijl van de Wardenburg Kennisbank. Het object //StyleSheetExtension// op deze pagina (de opmaak) en het object //JavaScriptExtension// (kaartenraster voor tegeltabellen, alleen presentatie) worden 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.StyleSheetExtension[0]
-
- Code
-
... ... @@ -109,10 +109,11 @@ 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 */ 112 112 .floatinginfobox.wbrechts { 113 113 width: 30%; 114 114 min-width: 260px; 115 - max-width: 340px;116 + max-width: 460px; 116 116 margin: 0 0 16px 28px; 117 117 padding: 14px; 118 118 border: 1px solid #e8eaed; ... ... @@ -128,9 +128,10 @@ 128 128 text-align: center; 129 129 margin-bottom: 12px; 130 130 } 132 +/* Nooit groter dan het origineel, zodat logo's klein en scherp blijven */ 131 131 .wbrb img { 132 132 max-width: 100%; 133 - max-height: 150px;135 + max-height: 280px; 134 134 width: auto; 135 135 height: auto; 136 136 border-radius: 10px; ... ... @@ -249,6 +249,11 @@ 249 249 color: #80868b; 250 250 font-variant-numeric: tabular-nums; 251 251 } 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 +} 252 252 #xwikicontent ul.wikitoc > li:not(.nodirectchild), 253 253 #xwikicontent ul.wikitoc > li.nodirectchild > ul > li { 254 254 margin-top: 10px; ... ... @@ -385,8 +385,9 @@ 385 385 #leftPanels { 386 386 padding-left: 30px; 387 387 } 388 -/* Vaste ondergrens, zodat de menu-items ook op een laptop op één regel passen */ 389 -#body.panel-left-width-Medium { 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) { 390 390 --panel-column-left-width: clamp(240px, 17vw, 290px); 391 391 } 392 392 .panels .xwikipanelcontents a { ... ... @@ -660,7 +660,7 @@ 660 660 min-width: 0; 661 661 margin: 0 0 20px; 662 662 display: grid; 663 - grid-template-columns: 150px minmax(0, 1fr);671 + grid-template-columns: 220px minmax(0, 1fr); 664 664 column-gap: 18px; 665 665 align-items: start; 666 666 } ... ... @@ -669,7 +669,7 @@ 669 669 margin: 0; 670 670 } 671 671 .floatinginfobox.wbrechts > .wbrb img { 672 - max-height: 1 20px;680 + max-height: 170px; 673 673 } 674 674 .floatinginfobox.wbrechts > *:not(.wbrb) { 675 675 grid-column: 2; ... ... @@ -686,6 +686,219 @@ 686 686 } 687 687 } 688 688 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 + 689 689 /* ---------- Telefoon ---------- */ 690 690 691 691 @media (max-width: 767px) { ... ... @@ -697,7 +697,7 @@ 697 697 margin: 0 0 16px; 698 698 } 699 699 .wbrb img { 700 - max-height: 110px;921 + max-height: 200px; 701 701 } 702 702 #xwikicontent table:not(.wbinfotab table) { 703 703 display: block; ... ... @@ -713,6 +713,14 @@ 713 713 #contentmenu .btn-label { 714 714 display: none; 715 715 } 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 + } 716 716 #xwikicontent #actionBox ul { 717 717 flex-wrap: nowrap; 718 718 overflow-x: auto; ... ... @@ -724,3 +724,35 @@ 724 724 } 725 725 } 726 726 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 +
- XWiki.JavaScriptExtension[0]
-
- cache
-
... ... @@ -1,0 +1,1 @@ 1 +long - code
-
... ... @@ -1,0 +1,195 @@ 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 + if (document.readyState === 'loading') { 190 + document.addEventListener('DOMContentLoaded', start); 191 + } else { 192 + start(); 193 + } 194 +})(); 195 + - name
-
... ... @@ -1,0 +1,1 @@ 1 +Wardenburg tegels als kaarten - parse
-
... ... @@ -1,0 +1,1 @@ 1 +Nee - use
-
... ... @@ -1,0 +1,1 @@ 1 +always
- XWiki.XWikiRights[1]
-
- allow
-
... ... @@ -1,0 +1,1 @@ 1 +Sta toe - groups
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.XWikiAllGroup - levels
-
... ... @@ -1,0 +1,1 @@ 1 +view
- XWiki.XWikiRights[2]
-
- allow
-
... ... @@ -1,0 +1,1 @@ 1 +Sta toe - groups
-
... ... @@ -1,0 +1,1 @@ 1 +XWiki.XWikiAdminGroup - levels
-
... ... @@ -1,0 +1,1 @@ 1 +view,edit,comment,script