14 Commits

Author SHA1 Message Date
2bd410631b release: v2.1.0
Some checks failed
Code Analysis / SonarQube (push) Failing after 16s
Node.js CI / Lint and Test (push) Successful in 41s
2025-07-04 14:30:54 -07:00
25ec9f8e2a feat: add id to programmatically remove custom styling (#3)
Some checks failed
Code Analysis / SonarQube (push) Failing after 15s
Node.js CI / Lint and Test (push) Has been cancelled
### Explanation

_No response_

### Issue

_No response_

### Attestations

- [x] I have read and agree to the [Code of Conduct](https://docs.nhcarrigan.com/community/coc/)
- [x] I have read and agree to the [Community Guidelines](https://docs.nhcarrigan.com/community/guide/).
- [x] My contribution complies with the [Contributor Covenant](https://docs.nhcarrigan.com/dev/covenant/).

### Dependencies

- [ ] I have pinned the dependencies to a specific patch version.

### Style

- [x] I have run the linter and resolved any errors.
- [x] My pull request uses an appropriate title, matching the conventional commit standards.
- [x] My scope of feat/fix/chore/etc. correctly matches the nature of changes in my pull request.

### Tests

- [ ] My contribution adds new code, and I have added tests to cover it.
- [ ] My contribution modifies existing code, and I have updated the tests to reflect these changes.
- [ ] All new and existing tests pass locally with my changes.
- [ ] Code coverage remains at or above the configured threshold.

### Documentation

_No response_

### Versioning

_No response_

Reviewed-on: #3
Co-authored-by: Naomi Carrigan <commits@nhcarrigan.com>
Co-committed-by: Naomi Carrigan <commits@nhcarrigan.com>
2025-07-04 14:30:25 -07:00
1f450156c8 2.0.0
Some checks failed
Code Analysis / SonarQube (push) Failing after 18s
Node.js CI / Lint and Test (push) Successful in 43s
2025-06-27 14:22:09 -07:00
5e9d0dd11e feat: copyright should link to homepage 2025-06-27 14:21:56 -07:00
4f05dbafbb feat: remove border radius from CTA avatar
Some checks failed
Code Analysis / SonarQube (push) Failing after 16s
Node.js CI / Lint and Test (push) Successful in 43s
2025-06-12 15:23:04 -07:00
934de19c1e release: v1.8.0
Some checks failed
Node.js CI / Lint and Test (push) Successful in 1m8s
Code Analysis / SonarQube (push) Failing after 1m21s
2025-05-31 17:39:55 -07:00
4a76b22119 feat: replace audio button with donate badge
Some checks failed
Code Analysis / SonarQube (push) Has been cancelled
Node.js CI / Lint and Test (push) Has been cancelled
2025-05-31 17:39:34 -07:00
542aef157a release: v1.7.0
Some checks failed
Node.js CI / Lint and Test (push) Successful in 1m18s
Code Analysis / SonarQube (push) Failing after 1m26s
2025-05-30 21:05:18 -07:00
2e72c34c2d feat: include google ads snippet 2025-05-30 21:04:38 -07:00
c9ae8804eb feat: remove video overlay
Some checks failed
Node.js CI / Lint and Test (push) Successful in 1m13s
Code Analysis / SonarQube (push) Failing after 1m24s
2025-05-08 16:55:33 -07:00
a5f17bb2eb feat: use logo in modalx
Some checks failed
Node.js CI / Lint and Test (push) Successful in 1m18s
Code Analysis / SonarQube (push) Failing after 1m28s
2025-05-08 16:54:00 -07:00
06e58752b9 release: v1.6.0
Some checks failed
Node.js CI / Lint and Test (push) Successful in 1m13s
Code Analysis / SonarQube (push) Failing after 1m22s
2025-04-04 15:06:21 -07:00
db4dcc3090 feat: track urls and page titles 2025-04-04 15:06:04 -07:00
53aa95c9c2 fix: tweak the colours a bit
Some checks failed
Node.js CI / Lint and Test (push) Successful in 1m12s
Code Analysis / SonarQube (push) Failing after 1m22s
2025-03-31 15:42:25 -07:00
2 changed files with 27 additions and 68 deletions

View File

@ -1,6 +1,6 @@
{
"name": "website-headers",
"version": "1.5.0",
"version": "2.1.0",
"description": "",
"main": "index.js",
"type": "module",

View File

@ -24,7 +24,7 @@ const body = document.querySelector("body");
const title = document.querySelector("title");
const description = document.querySelector(`meta[name="description"]`);
const { href: url, hostname } = window.location;
const { href: url, hostname, pathname } = window.location;
// #endregion
@ -42,7 +42,7 @@ openGraphDescription.setAttribute("property", "og:description");
openGraphDescription.setAttribute(
"content",
description?.getAttribute("content")
// eslint-disable-next-line stylistic/max-len
// eslint-disable-next-line stylistic/max-len -- big boi string
?? "We are a software engineering and community management consulting firm.",
);
const openGraphImage = document.createElement("meta");
@ -75,7 +75,7 @@ twitterDescription.setAttribute("name", "twitter:description");
twitterDescription.setAttribute(
"content",
description?.getAttribute("content")
// eslint-disable-next-line stylistic/max-len
// eslint-disable-next-line stylistic/max-len -- big boi string
?? "We are a software engineering and community management consulting firm.",
);
const twitterImage = document.createElement("meta");
@ -105,6 +105,7 @@ largeIcon.href = "https://cdn.nhcarrigan.com/favicon/favicon-32x32.png";
// #region Styles
const styles = document.createElement("style");
styles.id = "nhcarrigan-global-styles";
styles.innerHTML = `
@font-face {
font-family: 'OpenDyslexic';
@ -112,8 +113,8 @@ styles.innerHTML = `
}
:root {
--foreground: #db7093;
--background: #ffefefbb;
--foreground: #2a0a18;
--background: #ffb6c1bb;
}
* {
@ -152,7 +153,7 @@ main {
width: 95%;
max-width: 1080px;
margin: auto;
margin-bottom: 105px;
margin-bottom: 85px;
padding: 10px;
}
footer {
@ -161,7 +162,7 @@ footer {
background-color: var(--background);
position: fixed;
bottom: 0;
height: 95px;
height: 75px;
padding: 0 10px;
}
#footer-inner-container {
@ -191,39 +192,13 @@ a {
align-items: center;
}
.is-dark {
--foreground: #ffefef;
--background: #db7093bb;
}
@media screen and (prefers-reduced-motion) {
#footer-badge-container {
display: none;
}
footer, #footer-inner-container {
height: 75px;
justify-content: space-around;
}
main {
margin-bottom: 85px;
}
}
@media screen and (max-width: 1225px) {
#footer-badge-container {
grid-template-columns: repeat(4, 1fr);
}
footer {
height: 120px;
}
main {
margin-bottom: 130px;
}
--foreground: #ffb6c1;
--background: #2a0a18bb;
}
@media screen and (max-width: 625px) {
#tree-nation-offset-website {
display: none;
}
#footer-badge-container {
display: none;
}
footer, #footer-inner-container {
height: 50px;
justify-content: space-around;
@ -240,47 +215,21 @@ a {
const footer = document.createElement("footer");
footer.innerHTML = `
<div id="footer-badge-container">
<img src="https://cdn.nhcarrigan.com/blinkies/bigots.gif" alt="no bigots allowed"/>
<img src="https://cdn.nhcarrigan.com/blinkies/blm.gif" alt="black lives matter"/>
<img src="https://cdn.nhcarrigan.com/blinkies/miku.gif" alt="miku fan!!!"/>
<img src="https://cdn.nhcarrigan.com/blinkies/neuro.gif" alt="neurodivergent pride"/>
<img src="https://cdn.nhcarrigan.com/blinkies/palestine.gif" alt="free palestine"/>
<img src="https://cdn.nhcarrigan.com/blinkies/technomancer.gif" alt="technomancer"/>
<img src="https://cdn.nhcarrigan.com/blinkies/trans.gif" alt="trans rights!!!"/>
<img src="https://cdn.nhcarrigan.com/blinkies/ukraine.gif" alt="glory to ukraine"/>
</div>
<div id="footer-inner-container">
<p>&copy; Naomi Carrigan</p>
<p>&copy; <a href="https://nhcarrigan.com" target="_blank">Naomi Carrigan</a></p>
<a href="https://chat.nhcarrigan.com" target="_blank" rel="noreferrer">
<i class="fa-solid fa-comments"></i>
</a>
<button id="theme-select-button" type="button">
<i id="theme-select-icon" class="fa-solid fa-moon"></i>
</button>
<button id="audio-theme-button" type="button">
<i class="fa-solid fa-play"></i>
</button>
<a href="https://buy.stripe.com/cN24iTfqu1j6b3afZ2" target="_blank" rel="noreferrer">
<img src="https://cdn.nhcarrigan.com/donate.png" alt="Donate" style="width: 70px; height: 70px;">
</a>
<div id="tree-nation-offset-website"></div>
</div>
`;
const videoOverlay = document.createElement("video");
videoOverlay.autoplay = true;
videoOverlay.loop = true;
videoOverlay.muted = true;
videoOverlay.playsInline = true;
videoOverlay.src = "https://cdn.nhcarrigan.com/overlay.webm";
videoOverlay.style.pointerEvents = "none";
videoOverlay.style.position = "fixed";
videoOverlay.style.top = "0";
videoOverlay.style.left = "0";
videoOverlay.style.opacity = "0.25";
videoOverlay.style.width = "100vw";
videoOverlay.style.height = "100vh";
videoOverlay.style.objectFit = "cover";
videoOverlay.style.zIndex = "10000";
// #endregion
// #region Scripts
@ -314,6 +263,10 @@ analytics.setAttribute("domain", "nhcarrigan.com");
analytics.src
// eslint-disable-next-line stylistic/max-len
= "https://analytics.nhcarrigan.com/js/script.file-downloads.hash.outbound-links.pageview-props.revenue.tagged-events.js";
analytics.setAttribute("event-domain", hostname);
analytics.setAttribute("data-domain", "nhcarrigan.com");
analytics.setAttribute("event-page", title?.innerText ?? "Unknown Page");
analytics.setAttribute("event-path", pathname);
const analytics2 = document.createElement("script");
analytics2.innerHTML = `
window.plausible = window.plausible ??
@ -321,6 +274,12 @@ function() {
(window.plausible.q = window.plausible.q ?? []).push(arguments)
}
`;
const googleAdsense = document.createElement("script");
googleAdsense.async = true;
googleAdsense.src
// eslint-disable-next-line stylistic/max-len -- big boi string
= "https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-3569924701890974";
googleAdsense.setAttribute("crossorigin", "anonymous");
// #endregion
@ -349,9 +308,9 @@ head?.appendChild(treeNation);
head?.appendChild(fontAwesome);
head?.appendChild(analytics);
head?.appendChild(analytics2);
head?.appendChild(googleAdsense);
body?.appendChild(footer);
body?.appendChild(videoOverlay);
body?.appendChild(treeNationBottom);
// #endregion
@ -426,7 +385,7 @@ cta.id = "community-cta";
cta.innerHTML = `
<h1 autofocus>Hello~!</h1>
<div style="display: flex; justify-content: space-around; margin-bottom: 10px;">
<img src="https://cdn.nhcarrigan.com/profile.png" alt="Naomi Carrigan" style="width: 100px; height: 100px; border-radius: 50%;">
<img src="https://cdn.nhcarrigan.com/logo.png" alt="NHCarrigan Logo" style="width: 100px; height: 100px;">
<p>
Consider joining our community so you can keep up to date on all of our latest activities!
</p>