+8
-4
app.js
+8
-4
app.js
···
44
// URL
45
const urlCell = document.createElement('td');
46
const urlLink = document.createElement('a');
47
-
urlLink.href = pds.url;
48
urlLink.target = '_blank';
49
-
urlLink.textContent = pds.url;
50
urlCell.appendChild(urlLink);
51
row.appendChild(urlCell);
52
···
63
const maintainerCell = document.createElement('td');
64
if (pds.maintainer) {
65
const link = document.createElement('a');
66
-
link.href = `https://madebydanny.uk/followonbsky.html?did=${pds.maintainer}`;
67
link.target = '_blank';
68
-
link.textContent = pds.maintainer;
69
maintainerCell.appendChild(link);
70
} else {
71
maintainerCell.textContent = '—';
···
44
// URL
45
const urlCell = document.createElement('td');
46
const urlLink = document.createElement('a');
47
+
// sanitize URL by removing any '@' characters
48
+
const safeUrl = pds.url ? pds.url.replace(/@/g, '') : '';
49
+
urlLink.href = safeUrl;
50
urlLink.target = '_blank';
51
+
urlLink.textContent = safeUrl;
52
urlCell.appendChild(urlLink);
53
row.appendChild(urlCell);
54
···
65
const maintainerCell = document.createElement('td');
66
if (pds.maintainer) {
67
const link = document.createElement('a');
68
+
// sanitize maintainer by removing any '@' characters before using in URL and display
69
+
const safeMaintainer = pds.maintainer.replace(/@/g, '');
70
+
link.href = `https://madebydanny.uk/followonbsky.html?did=${encodeURIComponent(safeMaintainer)}`;
71
link.target = '_blank';
72
+
link.textContent = safeMaintainer;
73
maintainerCell.appendChild(link);
74
} else {
75
maintainerCell.textContent = '—';