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", "name": "website-headers",
"version": "1.5.0", "version": "2.1.0",
"description": "", "description": "",
"main": "index.js", "main": "index.js",
"type": "module", "type": "module",

View File

@ -24,7 +24,7 @@ const body = document.querySelector("body");
const title = document.querySelector("title"); const title = document.querySelector("title");
const description = document.querySelector(`meta[name="description"]`); const description = document.querySelector(`meta[name="description"]`);
const { href: url, hostname } = window.location; const { href: url, hostname, pathname } = window.location;
// #endregion // #endregion
@ -42,7 +42,7 @@ openGraphDescription.setAttribute("property", "og:description");
openGraphDescription.setAttribute( openGraphDescription.setAttribute(
"content", "content",
description?.getAttribute("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.", ?? "We are a software engineering and community management consulting firm.",
); );
const openGraphImage = document.createElement("meta"); const openGraphImage = document.createElement("meta");
@ -75,7 +75,7 @@ twitterDescription.setAttribute("name", "twitter:description");
twitterDescription.setAttribute( twitterDescription.setAttribute(
"content", "content",
description?.getAttribute("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.", ?? "We are a software engineering and community management consulting firm.",
); );
const twitterImage = document.createElement("meta"); const twitterImage = document.createElement("meta");
@ -105,6 +105,7 @@ largeIcon.href = "https://cdn.nhcarrigan.com/favicon/favicon-32x32.png";
// #region Styles // #region Styles
const styles = document.createElement("style"); const styles = document.createElement("style");
styles.id = "nhcarrigan-global-styles";
styles.innerHTML = ` styles.innerHTML = `
@font-face { @font-face {
font-family: 'OpenDyslexic'; font-family: 'OpenDyslexic';
@ -112,8 +113,8 @@ styles.innerHTML = `
} }
:root { :root {
--foreground: #db7093; --foreground: #2a0a18;
--background: #ffefefbb; --background: #ffb6c1bb;
} }
* { * {
@ -152,7 +153,7 @@ main {
width: 95%; width: 95%;
max-width: 1080px; max-width: 1080px;
margin: auto; margin: auto;
margin-bottom: 105px; margin-bottom: 85px;
padding: 10px; padding: 10px;
} }
footer { footer {
@ -161,7 +162,7 @@ footer {
background-color: var(--background); background-color: var(--background);
position: fixed; position: fixed;
bottom: 0; bottom: 0;
height: 95px; height: 75px;
padding: 0 10px; padding: 0 10px;
} }
#footer-inner-container { #footer-inner-container {
@ -191,39 +192,13 @@ a {
align-items: center; align-items: center;
} }
.is-dark { .is-dark {
--foreground: #ffefef; --foreground: #ffb6c1;
--background: #db7093bb; --background: #2a0a18bb;
}
@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;
}
} }
@media screen and (max-width: 625px) { @media screen and (max-width: 625px) {
#tree-nation-offset-website { #tree-nation-offset-website {
display: none; display: none;
} }
#footer-badge-container {
display: none;
}
footer, #footer-inner-container { footer, #footer-inner-container {
height: 50px; height: 50px;
justify-content: space-around; justify-content: space-around;
@ -240,47 +215,21 @@ a {
const footer = document.createElement("footer"); const footer = document.createElement("footer");
footer.innerHTML = ` 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"> <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"> <a href="https://chat.nhcarrigan.com" target="_blank" rel="noreferrer">
<i class="fa-solid fa-comments"></i> <i class="fa-solid fa-comments"></i>
</a> </a>
<button id="theme-select-button" type="button"> <button id="theme-select-button" type="button">
<i id="theme-select-icon" class="fa-solid fa-moon"></i> <i id="theme-select-icon" class="fa-solid fa-moon"></i>
</button> </button>
<button id="audio-theme-button" type="button"> <a href="https://buy.stripe.com/cN24iTfqu1j6b3afZ2" target="_blank" rel="noreferrer">
<i class="fa-solid fa-play"></i> <img src="https://cdn.nhcarrigan.com/donate.png" alt="Donate" style="width: 70px; height: 70px;">
</button> </a>
<div id="tree-nation-offset-website"></div> <div id="tree-nation-offset-website"></div>
</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 // #endregion
// #region Scripts // #region Scripts
@ -314,6 +263,10 @@ analytics.setAttribute("domain", "nhcarrigan.com");
analytics.src analytics.src
// eslint-disable-next-line stylistic/max-len // eslint-disable-next-line stylistic/max-len
= "https://analytics.nhcarrigan.com/js/script.file-downloads.hash.outbound-links.pageview-props.revenue.tagged-events.js"; = "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"); const analytics2 = document.createElement("script");
analytics2.innerHTML = ` analytics2.innerHTML = `
window.plausible = window.plausible ?? window.plausible = window.plausible ??
@ -321,6 +274,12 @@ function() {
(window.plausible.q = window.plausible.q ?? []).push(arguments) (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 // #endregion
@ -349,9 +308,9 @@ head?.appendChild(treeNation);
head?.appendChild(fontAwesome); head?.appendChild(fontAwesome);
head?.appendChild(analytics); head?.appendChild(analytics);
head?.appendChild(analytics2); head?.appendChild(analytics2);
head?.appendChild(googleAdsense);
body?.appendChild(footer); body?.appendChild(footer);
body?.appendChild(videoOverlay);
body?.appendChild(treeNationBottom); body?.appendChild(treeNationBottom);
// #endregion // #endregion
@ -426,7 +385,7 @@ cta.id = "community-cta";
cta.innerHTML = ` cta.innerHTML = `
<h1 autofocus>Hello~!</h1> <h1 autofocus>Hello~!</h1>
<div style="display: flex; justify-content: space-around; margin-bottom: 10px;"> <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> <p>
Consider joining our community so you can keep up to date on all of our latest activities! Consider joining our community so you can keep up to date on all of our latest activities!
</p> </p>