add favicons before links with js

Changed files
+30
site
+17
site/assets/js/faviconBeforeLinks.js
···
+
const iconUrl = "https://favicon.garden/";
+
+
const links = document.querySelectorAll("a[href*='://'");
+
+
function addIcons() {
+
links.forEach((link) => {
+
const aDomain = link.hostname;
+
const iconEl = document.createElement("img");
+
iconEl.classList.add("favicon");
+
iconEl.setAttribute("onerror", "this.style.display='none';")
+
iconEl.setAttribute("aria-hidden", "true");
+
iconEl.src = iconUrl + aDomain;
+
link.insertAdjacentElement("beforebegin", iconEl);
+
});
+
};
+
+
addIcons();
+11
site/assets/styles/main.css
···
ul.nav-secondary-support::before {
content: "💙";
}
+
+
/* link icons */
+
+
.favicon {
+
display: inline;
+
vertical-align: middle;
+
width: 2ch;
+
height: 2ch;
+
padding-left: 2px;
+
padding-right: 4px;
+
}
+2
site/head.php
···
<link rel="stylesheet" href="assets/styles/main.css">
<title>girl on the moon</title>
+
+
<script src="../assets/js/faviconBeforeLinks.js" defer></script>
</head>