Changes in src/views/shell.ejs [1e172f3:421046c] in Klonkt
- File:
-
- 1 edited
-
src/views/shell.ejs (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/views/shell.ejs
r1e172f3 r421046c 339 339 </head> 340 340 341 <body class="<%= bodyClass || 'on-home' %> has-bottom-tab" data- js="chrome<%= (typeof pageJs !== 'undefined' && pageJs) ? ' ' + pageJs : '' %>" data-feed-view="<%- _e(safeSite.feed_view_default || 'timeline') %>" data-grid-cols="3" data-site-base="<%- _e((typeof siteUrlBase !== 'undefined' && siteUrlBase) ? siteUrlBase : '') %>">341 <body class="<%= bodyClass || 'on-home' %> has-bottom-tab" data-feed-view="<%- _e(safeSite.feed_view_default || 'timeline') %>" data-grid-cols="3" data-site-base="<%- _e((typeof siteUrlBase !== 'undefined' && siteUrlBase) ? siteUrlBase : '') %>"> 342 342 343 343 <% if (typeof isViewer !== 'undefined' && isViewer) { %> … … 449 449 } 450 450 451 // Welke modules deze pagina wil (shaer-bqr). De bootstrap hieronder leest452 // dit zodra deze handler klaar is.453 if (typeof d.js === 'string' && /^[a-z0-9 -]*$/.test(d.js)) {454 document.body.setAttribute('data-js', d.js);455 }456 457 451 var next = d.bodyClass; 458 452 if (!next) return; … … 473 467 // de pcmsNav-trigger (accent/palette/bodyClass) correct toepast. De vroegere 474 468 // htmx:historyRestore-handler is vervallen nu htmx-history uitstaat.) 475 })();476 </script>477 478 <!-- Modules laden (shaer-bqr). Inline script in gewisselde inhoud wordt door de479 CSP geweigerd: de nonce rouleert per verzoek, dus een script dat via htmx480 binnenkomt draagt er een die dit document niet kent (shaer-0i6). Alles wat481 bij een pagina hoort komt daarom uit een module, en die wordt HIER geladen —482 vanuit de shell, die alleen bij een volledige laadbeurt binnenkomt en dus483 wél de goede nonce heeft.484 485 Een dynamische import vanuit een vertrouwd (genonced) script is precies waar486 'strict-dynamic' voor bedoeld is, dus de module zelf heeft geen nonce nodig. -->487 <script>488 (function () {489 if (window.__modBoot) return;490 window.__modBoot = true;491 492 var loaded = {};493 function load() {494 var names = (document.body.getAttribute('data-js') || '').trim().split(/\s+/);495 names.forEach(function (name) {496 // Streng: deze waarde komt uit een template en wordt een PAD. Alleen497 // kleine letters, cijfers en streepjes; nooit een punt of een schuine498 // streep.499 if (!name || loaded[name] || !/^[a-z0-9-]+$/.test(name)) return;500 loaded[name] = 1;501 import('/assets/js/mod/' + name + '.js').catch(function (e) {502 console.warn('[mod] ' + name + ' laadde niet:', e && e.message);503 });504 });505 }506 load();507 // Bij een htmx-navigatie wisselt de INHOUD, niet de body. De nav-trigger508 // hieronder zet data-js opnieuw; daarna halen we op wat er nieuw bij staat.509 // Een module die er al is wordt niet opnieuw geimporteerd -- vandaar dat elke510 // module gedelegeerd moet werken en tegen een tweede aanroep moet kunnen.511 document.body.addEventListener('pcmsNav', load);512 469 })(); 513 470 </script>
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/chrome/site/your_project_logo.png)