open note urls in new tab #4091

Signed-off-by: si458 <simonsmith5521@gmail.com>

si458 committed Nov 5, 2024 at 15:58 UTC fc83211e907215dd32352d2a591ee6f0874890dd
2 files changed +26
views/default.handlebars
+13
@@ -1708,6 +1708,19 @@
1708 mainUpdate(512);
1709 }, 200);
1710
1711 + // open notes markdown links in new tab
1712 + if (DOMPurify) {
1713 + DOMPurify.addHook('afterSanitizeAttributes', function (node) {
1714 + if ('target' in node) {
1715 + node.setAttribute('target', '_blank');
1716 + node.setAttribute('rel', 'noopener noreferrer');
1717 + }
1718 + if (!node.hasAttribute('target') && (node.hasAttribute('xlink:href') || node.hasAttribute('href'))) {
1719 + node.setAttribute('xlink:show', 'new');
1720 + }
1721 + });
1722 + }
1723 +
1724 // Connect to the mesh server
1725 meshserver = MeshServerCreateControl(domainUrl);
1726 meshserver.onStateChanged = onStateChanged;
views/default3.handlebars
+13
@@ -2369,6 +2369,19 @@
2369 mainUpdate(512);
2370 }, 200);
2371
2372 + // open notes markdown links in new tab
2373 + if (DOMPurify) {
2374 + DOMPurify.addHook('afterSanitizeAttributes', function (node) {
2375 + if ('target' in node) {
2376 + node.setAttribute('target', '_blank');
2377 + node.setAttribute('rel', 'noopener noreferrer');
2378 + }
2379 + if (!node.hasAttribute('target') && (node.hasAttribute('xlink:href') || node.hasAttribute('href'))) {
2380 + node.setAttribute('xlink:show', 'new');
2381 + }
2382 + });
2383 + }
2384 +
2385 // Connect to the mesh server
2386 meshserver = MeshServerCreateControl(domainUrl);
2387 meshserver.onStateChanged = onStateChanged;