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
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
Opmerking bij wijziging: Er is geen opmerking bij deze versie

Samenvatting

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) worden op 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: 460px;
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: 170px;
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 -