generated from nhcarrigan/template
Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
7f8bcb31f0
|
|||
|
7a5032c112
|
|||
|
f77c890e8e
|
|||
| 923c44e634 | |||
| 9124ba2faa | |||
| 11786260d8 | |||
| aec68b86bb | |||
| 791a0fab4f | |||
| a7540edb8f | |||
| eee2fb7de3 | |||
| ee00ff835a |
@@ -1,34 +0,0 @@
|
|||||||
name: Code Analysis
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches:
|
|
||||||
- main
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
sonar:
|
|
||||||
name: SonarQube
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Checkout Source Files
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
with:
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: SonarCube Scan
|
|
||||||
uses: SonarSource/sonarqube-scan-action@v4
|
|
||||||
timeout-minutes: 10
|
|
||||||
env:
|
|
||||||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
|
||||||
SONAR_HOST_URL: "https://quality.nhcarrigan.com"
|
|
||||||
with:
|
|
||||||
args: >
|
|
||||||
-Dsonar.sources=.
|
|
||||||
-Dsonar.projectKey=website-headers
|
|
||||||
|
|
||||||
- name: SonarQube Quality Gate check
|
|
||||||
uses: sonarsource/sonarqube-quality-gate-action@v1
|
|
||||||
with:
|
|
||||||
pollingTimeoutSec: 600
|
|
||||||
env:
|
|
||||||
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
|
|
||||||
SONAR_HOST_URL: "https://quality.nhcarrigan.com"
|
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "website-headers",
|
"name": "website-headers",
|
||||||
"version": "3.0.0",
|
"version": "3.4.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
|
|||||||
+96
-33
@@ -11,7 +11,7 @@ console.log(`
|
|||||||
Loading NHCarrigan library v${nhcarriganHeadersVersion}.
|
Loading NHCarrigan library v${nhcarriganHeadersVersion}.
|
||||||
Copyright (c) ${new Date().getFullYear().
|
Copyright (c) ${new Date().getFullYear().
|
||||||
toString()} NHCarrigan
|
toString()} NHCarrigan
|
||||||
Changelog: https://codeberg.org/nhcarrigan/website-headers/releases
|
Changelog: https://git.nhcarrigan.com/nhcarrigan/website-headers/releases
|
||||||
Licensed under our public license: https://docs.nhcarrigan.com/legal/license
|
Licensed under our public license: https://docs.nhcarrigan.com/legal/license
|
||||||
Questions? Contact us at https://docs.nhcarrigan.com/about/contact
|
Questions? Contact us at https://docs.nhcarrigan.com/about/contact
|
||||||
========================================
|
========================================
|
||||||
@@ -40,6 +40,23 @@ const {
|
|||||||
* The title and description are set by each website. This should
|
* The title and description are set by each website. This should
|
||||||
* only load things like open graph data and favicons.
|
* only load things like open graph data and favicons.
|
||||||
*/
|
*/
|
||||||
|
const nhcarriganHeadersCharacterSet = document.createElement("meta");
|
||||||
|
nhcarriganHeadersCharacterSet.setAttribute("charset", "UTF-8");
|
||||||
|
const nhcarriganHeadersViewport = document.createElement("meta");
|
||||||
|
nhcarriganHeadersViewport.setAttribute("name", "viewport");
|
||||||
|
nhcarriganHeadersViewport.setAttribute(
|
||||||
|
"content",
|
||||||
|
"width=device-width, initial-scale=1.0",
|
||||||
|
);
|
||||||
|
const nhcarriganHeadersThemeColor = document.createElement("meta");
|
||||||
|
nhcarriganHeadersThemeColor.setAttribute("name", "theme-color");
|
||||||
|
nhcarriganHeadersThemeColor.setAttribute("content", "#E1F6F9");
|
||||||
|
const nhcarriganHeadersReferrer = document.createElement("meta");
|
||||||
|
nhcarriganHeadersReferrer.setAttribute("name", "referrer");
|
||||||
|
nhcarriganHeadersReferrer.setAttribute(
|
||||||
|
"content",
|
||||||
|
"strict-origin-when-cross-origin",
|
||||||
|
);
|
||||||
const nhcarriganHeadersOpenGraphTitle = document.createElement("meta");
|
const nhcarriganHeadersOpenGraphTitle = document.createElement("meta");
|
||||||
nhcarriganHeadersOpenGraphTitle.setAttribute("property", "og:title");
|
nhcarriganHeadersOpenGraphTitle.setAttribute("property", "og:title");
|
||||||
nhcarriganHeadersOpenGraphTitle.setAttribute(
|
nhcarriganHeadersOpenGraphTitle.setAttribute(
|
||||||
@@ -68,6 +85,23 @@ nhcarriganHeadersOpenGraphUrl.setAttribute("content", nhcarriganHeadersUrl);
|
|||||||
const nhcarriganHeadersOpenGraphType = document.createElement("meta");
|
const nhcarriganHeadersOpenGraphType = document.createElement("meta");
|
||||||
nhcarriganHeadersOpenGraphType.setAttribute("property", "og:type");
|
nhcarriganHeadersOpenGraphType.setAttribute("property", "og:type");
|
||||||
nhcarriganHeadersOpenGraphType.setAttribute("content", "website");
|
nhcarriganHeadersOpenGraphType.setAttribute("content", "website");
|
||||||
|
const nhcarriganHeadersOpenGraphSiteName = document.createElement("meta");
|
||||||
|
nhcarriganHeadersOpenGraphSiteName.setAttribute("property", "og:site_name");
|
||||||
|
nhcarriganHeadersOpenGraphSiteName.setAttribute("content", "NHCarrigan");
|
||||||
|
const nhcarriganHeadersOpenGraphLocale = document.createElement("meta");
|
||||||
|
nhcarriganHeadersOpenGraphLocale.setAttribute("property", "og:locale");
|
||||||
|
nhcarriganHeadersOpenGraphLocale.setAttribute("content", "en_US");
|
||||||
|
const nhcarriganHeadersOpenGraphImageAlt = document.createElement("meta");
|
||||||
|
nhcarriganHeadersOpenGraphImageAlt.setAttribute("property", "og:image:alt");
|
||||||
|
nhcarriganHeadersOpenGraphImageAlt.
|
||||||
|
setAttribute("content", "NHCarrigan logo and branding");
|
||||||
|
const nhcarriganHeadersOpenGraphImageWidth = document.createElement("meta");
|
||||||
|
nhcarriganHeadersOpenGraphImageWidth.setAttribute("property", "og:image:width");
|
||||||
|
nhcarriganHeadersOpenGraphImageWidth.setAttribute("content", "1920");
|
||||||
|
const nhcarriganHeadersOpenGraphImageHeight = document.createElement("meta");
|
||||||
|
nhcarriganHeadersOpenGraphImageHeight.
|
||||||
|
setAttribute("property", "og:image:height");
|
||||||
|
nhcarriganHeadersOpenGraphImageHeight.setAttribute("content", "1080");
|
||||||
|
|
||||||
const nhcarriganHeadersTwitterCard = document.createElement("meta");
|
const nhcarriganHeadersTwitterCard = document.createElement("meta");
|
||||||
nhcarriganHeadersTwitterCard.setAttribute("name", "twitter:card");
|
nhcarriganHeadersTwitterCard.setAttribute("name", "twitter:card");
|
||||||
@@ -100,6 +134,22 @@ nhcarriganHeadersTwitterImage.setAttribute(
|
|||||||
"content",
|
"content",
|
||||||
"https://cdn.nhcarrigan.com/og-image.png",
|
"https://cdn.nhcarrigan.com/og-image.png",
|
||||||
);
|
);
|
||||||
|
const nhcarriganHeadersTwitterSite = document.createElement("meta");
|
||||||
|
nhcarriganHeadersTwitterSite.setAttribute("name", "twitter:site");
|
||||||
|
nhcarriganHeadersTwitterSite.setAttribute("content", "@nhcarrigan1");
|
||||||
|
const nhcarriganHeadersTwitterCreator = document.createElement("meta");
|
||||||
|
nhcarriganHeadersTwitterCreator.setAttribute("name", "twitter:creator");
|
||||||
|
nhcarriganHeadersTwitterCreator.setAttribute("content", "@nhcarrigan1");
|
||||||
|
|
||||||
|
const nhcarriganHeadersFormatDetection = document.createElement("meta");
|
||||||
|
nhcarriganHeadersFormatDetection.setAttribute("name", "format-detection");
|
||||||
|
nhcarriganHeadersFormatDetection.setAttribute("content", "telephone=no");
|
||||||
|
const nhcarriganHeadersRobots = document.createElement("meta");
|
||||||
|
nhcarriganHeadersRobots.setAttribute("name", "robots");
|
||||||
|
nhcarriganHeadersRobots.setAttribute("content", "index, follow");
|
||||||
|
const nhcarriganHeadersAuthor = document.createElement("meta");
|
||||||
|
nhcarriganHeadersAuthor.setAttribute("name", "author");
|
||||||
|
nhcarriganHeadersAuthor.setAttribute("content", "Naomi Carrigan");
|
||||||
|
|
||||||
// #endregion
|
// #endregion
|
||||||
|
|
||||||
@@ -131,13 +181,14 @@ const nhcarriganHeadersStyles = document.createElement("style");
|
|||||||
nhcarriganHeadersStyles.id = "nhcarrigan-global-styles";
|
nhcarriganHeadersStyles.id = "nhcarrigan-global-styles";
|
||||||
nhcarriganHeadersStyles.innerHTML = `
|
nhcarriganHeadersStyles.innerHTML = `
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'OpenDyslexic';
|
font-family: 'Vampyr';
|
||||||
src: url('https://cdn.nhcarrigan.com/fonts/OpenDyslexicMono-Regular.otf') format('opentype');
|
src: url('https://cdn.nhcarrigan.com/fonts/vampyr.ttf') format('truetype');
|
||||||
}
|
}
|
||||||
|
|
||||||
:root {
|
:root {
|
||||||
--foreground: #2a0a18;
|
--foreground: #8F2447;
|
||||||
--background: #ffb6c1bb;
|
--background: #E1F6F9DC;
|
||||||
|
font-size: 12pt;
|
||||||
}
|
}
|
||||||
|
|
||||||
* {
|
* {
|
||||||
@@ -147,7 +198,7 @@ nhcarriganHeadersStyles.innerHTML = `
|
|||||||
}
|
}
|
||||||
|
|
||||||
html {
|
html {
|
||||||
font-family: 'OpenDyslexic', monospace;
|
font-family: 'Vampyr', monospace;
|
||||||
cursor: url('https://cdn.nhcarrigan.com/cursors/cursor.cur'), auto;
|
cursor: url('https://cdn.nhcarrigan.com/cursors/cursor.cur'), auto;
|
||||||
min-height: 100vh;
|
min-height: 100vh;
|
||||||
min-width: 100vw;
|
min-width: 100vw;
|
||||||
@@ -206,7 +257,7 @@ footer {
|
|||||||
cursor: url('https://cdn.nhcarrigan.com/cursors/pointer.cur'), pointer;
|
cursor: url('https://cdn.nhcarrigan.com/cursors/pointer.cur'), pointer;
|
||||||
color: var(--foreground);
|
color: var(--foreground);
|
||||||
font-size: 1rem;
|
font-size: 1rem;
|
||||||
font-family: 'OpenDyslexic', monospace;
|
font-family: 'Vampyr', monospace;
|
||||||
}
|
}
|
||||||
#show-socials-button > i, #theme-select-button > i {
|
#show-socials-button > i, #theme-select-button > i {
|
||||||
font-size: 1.5rem;
|
font-size: 1.5rem;
|
||||||
@@ -251,8 +302,8 @@ a {
|
|||||||
color: var(--background);
|
color: var(--background);
|
||||||
}
|
}
|
||||||
.is-dark {
|
.is-dark {
|
||||||
--foreground: #ffb6c1;
|
--foreground: #E1F6F9;
|
||||||
--background: #2a0a18bb;
|
--background: #8F2447bb;
|
||||||
}
|
}
|
||||||
@media screen and (max-width: 625px) {
|
@media screen and (max-width: 625px) {
|
||||||
#tree-nation-offset-website {
|
#tree-nation-offset-website {
|
||||||
@@ -266,6 +317,18 @@ a {
|
|||||||
margin-bottom: 60px;
|
margin-bottom: 60px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 425px) {
|
||||||
|
#donate-badge {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@media screen and (max-width: 350px) {
|
||||||
|
footer, #show-socials-button, #theme-select-button, #show-socials-button > i, #theme-select-button > i {
|
||||||
|
font-size: 10pt;
|
||||||
|
}
|
||||||
|
}
|
||||||
`;
|
`;
|
||||||
|
|
||||||
// #endregion
|
// #endregion
|
||||||
@@ -275,14 +338,14 @@ a {
|
|||||||
const nhcarriganHeadersFooter = document.createElement("footer");
|
const nhcarriganHeadersFooter = document.createElement("footer");
|
||||||
nhcarriganHeadersFooter.innerHTML = `
|
nhcarriganHeadersFooter.innerHTML = `
|
||||||
<div id="footer-inner-container">
|
<div id="footer-inner-container">
|
||||||
<p>© <a href="https://nhcarrigan.com" target="_blank">Naomi Carrigan</a></p>
|
<p id="footer-copyright">© <a href="https://nhcarrigan.com" target="_blank">Naomi Carrigan</a></p>
|
||||||
<button id="show-socials-button" type="button">
|
<button id="show-socials-button" type="button">
|
||||||
<i class="fa-solid fa-share-nodes"></i> Connect with Us
|
<i class="fa-solid fa-share-nodes"></i> Connect with Us
|
||||||
</button>
|
</button>
|
||||||
<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> Toggle Theme
|
<i id="theme-select-icon" class="fa-solid fa-moon"></i> Toggle Theme
|
||||||
</button>
|
</button>
|
||||||
<a href="https://buy.stripe.com/cN24iTfqu1j6b3afZ2" target="_blank" rel="noreferrer">
|
<a id="donate-badge" 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;">
|
<img src="https://cdn.nhcarrigan.com/donate.png" alt="Donate" style="width: 70px; height: 70px;">
|
||||||
</a>
|
</a>
|
||||||
<div id="tree-nation-offset-website"></div>
|
<div id="tree-nation-offset-website"></div>
|
||||||
@@ -370,29 +433,17 @@ const nhcarriganHeadersFontAwesome = document.createElement("script");
|
|||||||
nhcarriganHeadersFontAwesome.src = "https://kit.fontawesome.com/f949111719.js";
|
nhcarriganHeadersFontAwesome.src = "https://kit.fontawesome.com/f949111719.js";
|
||||||
const nhcarriganHeadersAnalytics = document.createElement("script");
|
const nhcarriganHeadersAnalytics = document.createElement("script");
|
||||||
nhcarriganHeadersAnalytics.defer = true;
|
nhcarriganHeadersAnalytics.defer = true;
|
||||||
nhcarriganHeadersAnalytics.setAttribute("domain", "nhcarrigan.com");
|
|
||||||
nhcarriganHeadersAnalytics.src
|
nhcarriganHeadersAnalytics.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";
|
= "https://analytics.nhcarrigan.com/js/pa-YUXAn1vhhRttySUAw_LMN.js";
|
||||||
nhcarriganHeadersAnalytics.setAttribute(
|
|
||||||
"event-domain",
|
|
||||||
nhcarriganHeadersHostname,
|
|
||||||
);
|
|
||||||
nhcarriganHeadersAnalytics.setAttribute("data-domain", "nhcarrigan.com");
|
|
||||||
nhcarriganHeadersAnalytics.setAttribute(
|
|
||||||
"event-page",
|
|
||||||
nhcarriganHeadersTitle?.innerText ?? "Unknown Page",
|
|
||||||
);
|
|
||||||
nhcarriganHeadersAnalytics.setAttribute(
|
|
||||||
"event-path",
|
|
||||||
nhcarriganHeadersPathname,
|
|
||||||
);
|
|
||||||
const nhcarriganHeadersAnalytics2 = document.createElement("script");
|
const nhcarriganHeadersAnalytics2 = document.createElement("script");
|
||||||
nhcarriganHeadersAnalytics2.innerHTML = `
|
nhcarriganHeadersAnalytics2.innerHTML = `
|
||||||
window.plausible = window.plausible ??
|
window.plausible=window.plausible||function(){(plausible.q=plausible.q||[]).push(arguments)},plausible.init=plausible.init||function(i){plausible.o=i||{}};
|
||||||
function() {
|
plausible.init({
|
||||||
(window.plausible.q = window.plausible.q ?? []).push(arguments)
|
domain: "${nhcarriganHeadersHostname}",
|
||||||
}
|
page: "${nhcarriganHeadersTitle?.innerText ?? "Unknown Page"}",
|
||||||
|
path: "${nhcarriganHeadersPathname}",
|
||||||
|
})
|
||||||
`;
|
`;
|
||||||
const nhcarriganHeadersGoogleAdsense = document.createElement("script");
|
const nhcarriganHeadersGoogleAdsense = document.createElement("script");
|
||||||
nhcarriganHeadersGoogleAdsense.async = true;
|
nhcarriganHeadersGoogleAdsense.async = true;
|
||||||
@@ -405,23 +456,35 @@ nhcarriganHeadersGoogleAdsense.setAttribute("crossorigin", "anonymous");
|
|||||||
|
|
||||||
// #region Inject Elements
|
// #region Inject Elements
|
||||||
|
|
||||||
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersCharacterSet);
|
||||||
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersViewport);
|
||||||
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersThemeColor);
|
||||||
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersReferrer);
|
||||||
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersOpenGraphTitle);
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersOpenGraphTitle);
|
||||||
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersOpenGraphDescription);
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersOpenGraphDescription);
|
||||||
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersOpenGraphImage);
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersOpenGraphImage);
|
||||||
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersOpenGraphUrl);
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersOpenGraphUrl);
|
||||||
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersOpenGraphType);
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersOpenGraphType);
|
||||||
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersOpenGraphSiteName);
|
||||||
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersOpenGraphLocale);
|
||||||
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersOpenGraphImageAlt);
|
||||||
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersOpenGraphImageWidth);
|
||||||
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersOpenGraphImageHeight);
|
||||||
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersTwitterCard);
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersTwitterCard);
|
||||||
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersTwitterDomain);
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersTwitterDomain);
|
||||||
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersTwitterUrl);
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersTwitterUrl);
|
||||||
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersTwitterTitle);
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersTwitterTitle);
|
||||||
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersTwitterDescription);
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersTwitterDescription);
|
||||||
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersTwitterImage);
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersTwitterImage);
|
||||||
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersTwitterSite);
|
||||||
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersTwitterCreator);
|
||||||
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersFavicon);
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersFavicon);
|
||||||
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersAppleTouchIcon);
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersAppleTouchIcon);
|
||||||
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersSmallIcon);
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersSmallIcon);
|
||||||
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersLargeIcon);
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersLargeIcon);
|
||||||
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersFormatDetection);
|
||||||
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersRobots);
|
||||||
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersAuthor);
|
||||||
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersStyles);
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersStyles);
|
||||||
|
|
||||||
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersTreeNation);
|
nhcarriganHeadersHead?.appendChild(nhcarriganHeadersTreeNation);
|
||||||
|
|||||||
Reference in New Issue
Block a user