Wijzigen voor document Huisstijl
Laatst gewijzigd door Jeeves de Butler op 07-10-2026 01:56
Van versie 9.1
gewijzigd door Jeeves de Butler
op 05-10-2026 03:17
op 05-10-2026 03:17
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
-
Objecten (2 gewijzigd, 0 toegevoegd, 0 verwijderd)
Details
- XWiki.JavaScriptExtension[0]
-
- code
-
... ... @@ -41,6 +41,26 @@ 41 41 return kaarten; 42 42 } 43 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 + 44 44 function maakKaart(k) { 45 45 var kaart = document.createElement(k.link ? 'a' : 'div'); 46 46 kaart.className = 'wb-kaart'; ... ... @@ -55,13 +55,14 @@ 55 55 beeld.className = 'wb-kaart-beeld'; 56 56 if (k.img) { 57 57 var img = document.createElement('img'); 58 - img.src = k.img.currentSrc || k.img.src; 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); 59 59 img.alt = ''; 60 60 img.loading = 'lazy'; 61 61 img.decoding = 'async'; 62 62 var geenBeeld = function () { 63 - beeld.classList.add('wb-kaart-geenbeeld'); 64 64 img.remove(); 85 + zetIcoon(beeld); 65 65 }; 66 66 img.addEventListener('error', geenBeeld); 67 67 // Sommige externe sites geven bij een verdwenen afbeelding een leeg plaatje in plaats van een fout. ... ... @@ -72,7 +72,7 @@ 72 72 }); 73 73 beeld.appendChild(img); 74 74 } else { 75 - beeld.classList.add('wb-kaart-geenbeeld');96 + zetIcoon(beeld); 76 76 } 77 77 var titel = document.createElement('span'); 78 78 titel.className = 'wb-kaart-titel'; ... ... @@ -106,12 +106,56 @@ 106 106 Array.prototype.forEach.call(tabellen, function (tabel) { 107 107 try { verwerk(tabel); } catch (e) { /* bij een fout blijft de tabel gewoon zichtbaar */ } 108 108 }); 130 + Array.prototype.forEach.call(document.querySelectorAll('#xwikicontent ul.wikitoc'), eigenNummering); 131 + Array.prototype.forEach.call(document.querySelectorAll('#xwikicontent .wbrb img'), scherpInfovak); 109 109 } 110 110 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 + 111 111 // Bij wijzigen op de pagina zelf: eerst de oorspronkelijke tabel terug, zodat de editor nooit de kaarten ziet. 112 112 function herstel() { 113 113 Array.prototype.forEach.call(document.querySelectorAll('#xwikicontent .wb-kaarten'), function (r) { r.remove(); }); 114 114 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 + }); 115 115 } 116 116 117 117 if (typeof window.require === 'function') {
- 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; ... ... @@ -764,13 +764,13 @@ 764 764 .wb-kaart:hover .wb-kaart-beeld img { 765 765 transform: scale(1.03); 766 766 } 767 -.wb-kaart-geenbeeld::before { 768 - content: "02d"; 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 { 769 769 position: absolute; 770 770 top: 50%; 771 771 left: 50%; 772 772 transform: translate(-50%, -50%); 773 - font-family: FontAwesome; 774 774 font-size: 34px; 775 775 color: #b86e00; 776 776 opacity: .5; ... ... @@ -781,20 +781,23 @@ 781 781 font-weight: 500; 782 782 line-height: 1.35; 783 783 } 784 -/* Grote schermen: grote rekaarten */792 +/* Grote schermen: grote kaarten, foto's in hun oorspronkelijke 3:2-verhouding */ 785 785 @media (min-width: 1200px) { 786 786 .wb-kaarten { 787 - grid-template-columns: repeat(auto-fill, minmax(30 0px, 1fr));788 - gap: 2 2px;795 + grid-template-columns: repeat(auto-fill, minmax(380px, 1fr)); 796 + gap: 26px; 789 789 } 798 + .wb-kaart-beeld { 799 + aspect-ratio: 3 / 2; 800 + } 790 790 .wb-kaart-titel { 791 - padding: 1 2px 16px 14px;792 - font-size: 1 6px;802 + padding: 14px 18px 16px; 803 + font-size: 17px; 793 793 } 794 794 } 795 795 @media (min-width: 1800px) { 796 796 .wb-kaarten { 797 - grid-template-columns: repeat(auto-fill, minmax( 340px, 1fr));808 + grid-template-columns: repeat(auto-fill, minmax(420px, 1fr)); 798 798 } 799 799 } 800 800 ... ... @@ -837,6 +837,65 @@ 837 837 text-indent: 0 !important; 838 838 } 839 839 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 + 840 840 /* ---------- Telefoon ---------- */ 841 841 842 842 @media (max-width: 767px) { ... ... @@ -848,7 +848,7 @@ 848 848 margin: 0 0 16px; 849 849 } 850 850 .wbrb img { 851 - max-height: 110px;921 + max-height: 200px; 852 852 } 853 853 #xwikicontent table:not(.wbinfotab table) { 854 854 display: block; ... ... @@ -883,3 +883,35 @@ 883 883 } 884 884 } 885 885 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 +