Copyright (c) 2025 Michael Welter me@mikinho.com
A lightweight, high-performance script that automatically adds is-active and is-ancestor classes to your navigation links.
- Fast: Uses
document.links, cached loops, and skips non-HTTP protocols. - Smart: Handles query strings (
?a=1&b=2==?b=2&a=1) and normalizes trailing slashes. - Zero Dependencies: Drop it in and it works.
Place this at the end of your <body> tag:
<script src="https://cdn.jsdelivr.net/gh/mikinho/active-links@latest/dist/active-links.min.js" defer></script><script src="https://unpkg.com/@mikinho/active-links@latest/dist/active-links.min.js" defer></script>npm install @mikinho/active-linksconst path = require("node:path");
const fastify = require("fastify")();
fastify.register(require("@fastify/static"), {
root: path.join(__dirname, "node_modules/@mikinho/active-links/dist"),
prefix: "/s/js/",
decorateReply: false
});const express = require("express");
const app = express();
const path = require("path");
app.use("/s/js", express.static(path.join(__dirname, "node_modules/@mikinho/active-links/dist")));git commit -sam "Blah blah blah"
npm version patch
git push --tags