Wijzigen voor document Huisstijl

Laatst gewijzigd door Jeeves de Butler op 07-10-2026 01:56

Van versie 7.1
gewijzigd door Jeeves de Butler
op 05-10-2026 02:49
Opmerking bij wijziging: Er is geen opmerking bij deze versie
Naar versie 16.1
gewijzigd door Jeeves de Butler
op 05-10-2026 03:49
Opmerking bij wijziging: Er is geen opmerking bij deze versie

Samenvatting

Details

XWiki.StyleSheetExtension[0]
Code
... ... @@ -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";
767 +/* Geen of verdwenen afbeelding: het script zet er een boekpictogram in (geen backslash-codes in deze CSS:
768 + de CSS-verkleiner van XWiki breekt die, en dan valt de rest van het bestand weg). */
769 +.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,6 +781,25 @@
781 781   font-weight: 500;
782 782   line-height: 1.35;
783 783  }
784 +/* Grote schermen: grote kaarten, foto's in hun oorspronkelijke 3:2-verhouding */
785 +@media (min-width: 1200px) {
786 + .wb-kaarten {
787 + grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
788 + gap: 26px;
789 + }
790 + .wb-kaart-beeld {
791 + aspect-ratio: 3 / 2;
792 + }
793 + .wb-kaart-titel {
794 + padding: 14px 18px 16px;
795 + font-size: 17px;
796 + }
797 +}
798 +@media (min-width: 1800px) {
799 + .wb-kaarten {
800 + grid-template-columns: repeat(auto-fill, minmax(420px, 1fr));
801 + }
802 +}
784 784  
785 785  /* Zonder script: de tabel past in elk geval binnen het scherm */
786 786  #xwikicontent table.vgmtabel {
... ... @@ -867,3 +867,35 @@
867 867   }
868 868  }
869 869  
889 +/* Overzichtstabellen (livetable): woorden heel laten, lange adressen afkappen met ...; bij aanwijzen het volledige adres */
890 +#xwikicontent table.xwiki-livetable {
891 + font-size: 14px;
892 +}
893 +#xwikicontent .xwiki-livetable-display-header th,
894 +#xwikicontent .xwiki-livetable-display-body td {
895 + padding: 6px 7px;
896 +}
897 +#xwikicontent table.xwiki-livetable .xwiki-livetable-display-body td {
898 + word-break: normal;
899 + overflow-wrap: break-word;
900 + hyphens: manual;
901 +}
902 +#xwikicontent table.xwiki-livetable .xwiki-livetable-display-body td.URL,
903 +#xwikicontent table.xwiki-livetable .xwiki-livetable-display-body td.DOWNLOADURL {
904 + max-width: 140px;
905 + white-space: nowrap;
906 + overflow: hidden;
907 + text-overflow: ellipsis;
908 +}
909 +#xwikicontent table.xwiki-livetable .xwiki-livetable-display-body td.URL:hover,
910 +#xwikicontent table.xwiki-livetable .xwiki-livetable-display-body td.DOWNLOADURL:hover {
911 + white-space: normal;
912 + overflow-wrap: anywhere;
913 +}
914 +/* Een brede overzichtstabel blijft binnen de pagina en schuift zo nodig opzij */
915 +#xwikicontent table.xwiki-livetable {
916 + display: block;
917 + max-width: 100%;
918 + overflow-x: auto;
919 +}
920 +
XWiki.JavaScriptExtension[0]
cache
... ... @@ -1,0 +1,1 @@
1 +long
code
... ... @@ -1,0 +1,139 @@
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 + function zetIcoon(beeld) {
45 + beeld.classList.add('wb-kaart-geenbeeld');
46 + var icoon = document.createElement('span');
47 + icoon.className = 'fa fa-book wb-kaart-icoon';
48 + icoon.setAttribute('aria-hidden', 'true');
49 + beeld.appendChild(icoon);
50 + }
51 +
52 + function maakKaart(k) {
53 + var kaart = document.createElement(k.link ? 'a' : 'div');
54 + kaart.className = 'wb-kaart';
55 + if (k.link) {
56 + kaart.setAttribute('href', k.link.getAttribute('href'));
57 + if (k.link.getAttribute('target')) {
58 + kaart.setAttribute('target', k.link.getAttribute('target'));
59 + kaart.setAttribute('rel', 'noopener');
60 + }
61 + }
62 + var beeld = document.createElement('span');
63 + beeld.className = 'wb-kaart-beeld';
64 + if (k.img) {
65 + var img = document.createElement('img');
66 + // Het origineel laden in plaats van de door XWiki verkleinde versie (?width=…&height=…), zodat grote kaarten scherp zijn.
67 + img.src = (k.img.currentSrc || k.img.src).replace(/([?&])(width|height)=d+/g, '$1').replace(/[?&]+$/, '').replace(/?&+/, '?').replace(/&&+/g, '&');
68 + img.alt = '';
69 + img.loading = 'lazy';
70 + img.decoding = 'async';
71 + var geenBeeld = function () {
72 + img.remove();
73 + zetIcoon(beeld);
74 + };
75 + img.addEventListener('error', geenBeeld);
76 + // Sommige externe sites geven bij een verdwenen afbeelding een leeg plaatje in plaats van een fout.
77 + img.addEventListener('load', function () {
78 + if (!img.naturalWidth || img.naturalWidth < 4) {
79 + geenBeeld();
80 + }
81 + });
82 + beeld.appendChild(img);
83 + } else {
84 + zetIcoon(beeld);
85 + }
86 + var titel = document.createElement('span');
87 + titel.className = 'wb-kaart-titel';
88 + titel.textContent = k.titel;
89 + kaart.appendChild(beeld);
90 + kaart.appendChild(titel);
91 + return kaart;
92 + }
93 +
94 + function verwerk(tabel) {
95 + if (tabel.classList.contains('wb-vervangen')) {
96 + return;
97 + }
98 + var kaarten = kaartenUitTabel(tabel);
99 + if (!kaarten.length) {
100 + return;
101 + }
102 + var raster = document.createElement('div');
103 + raster.className = 'wb-kaarten';
104 + kaarten.forEach(function (k) { raster.appendChild(maakKaart(k)); });
105 + tabel.parentNode.insertBefore(raster, tabel.nextSibling);
106 + tabel.classList.add('wb-vervangen');
107 + }
108 +
109 + function start() {
110 + var actie = (window.XWiki && window.XWiki.contextaction) || 'view';
111 + if (actie !== 'view') {
112 + return;
113 + }
114 + var tabellen = document.querySelectorAll('#xwikicontent table.vgmtabel');
115 + Array.prototype.forEach.call(tabellen, function (tabel) {
116 + try { verwerk(tabel); } catch (e) { /* bij een fout blijft de tabel gewoon zichtbaar */ }
117 + });
118 + }
119 +
120 + // Bij wijzigen op de pagina zelf: eerst de oorspronkelijke tabel terug, zodat de editor nooit de kaarten ziet.
121 + function herstel() {
122 + Array.prototype.forEach.call(document.querySelectorAll('#xwikicontent .wb-kaarten'), function (r) { r.remove(); });
123 + Array.prototype.forEach.call(document.querySelectorAll('#xwikicontent table.wb-vervangen'), function (t) { t.classList.remove('wb-vervangen'); });
124 + }
125 +
126 + if (typeof window.require === 'function') {
127 + window.require(['jquery'], function ($) {
128 + $(document).on('xwiki:actions:edit', herstel);
129 + $(document).on('xwiki:actions:view', function () { setTimeout(start, 0); });
130 + });
131 + }
132 +
133 + if (document.readyState === 'loading') {
134 + document.addEventListener('DOMContentLoaded', start);
135 + } else {
136 + start();
137 + }
138 +})();
139 +
name
... ... @@ -1,0 +1,1 @@
1 +Wardenburg tegels als kaarten
parse
... ... @@ -1,0 +1,1 @@
1 +Nee
use
... ... @@ -1,0 +1,1 @@
1 +always