Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
135 commits
Select commit Hold shift + click to select a range
d822cab
Initial commit
samharp Jun 13, 2025
55b6274
Update README.md
samharp Jun 13, 2025
2233507
Update README.md
samharp Jun 13, 2025
2d584a7
feat: init 11ty
samharp Jun 13, 2025
b6a20b8
feat: add website template assets
samharp Jun 13, 2025
c9cae97
feat: add nunjucks templates
samharp Jun 13, 2025
d4f49c0
feat: update process docs
samharp Jun 13, 2025
7be76fd
feat: add analytics, Aurum; refactor if statements to remove unwanted…
samharp Jun 16, 2025
fe54252
feat: add dev deploy proc, other shared components
samharp Jun 16, 2025
22d5e02
fix: minor formatting
samharp Jun 16, 2025
0cdc730
feat: include accessibility table of contents component (placeholder)
samharp Jun 16, 2025
709b9b0
update reference to aurum framework
samharp Jun 16, 2025
873e5a7
feat: add content for SEO
samharp Jun 18, 2025
4a42f80
feat: add standardized code comments; splash design to head section
samharp Jun 18, 2025
7bd2370
fix: minor additions of comments and planned inclusions
samharp Jun 20, 2025
93aa8fb
feat: add commonly used svgs
samharp Jun 26, 2025
55f1a64
feat: build accessibility TOC per page
samharp Jun 26, 2025
02d984e
feat: remove need for separate component
samharp Jun 26, 2025
190e54e
feat: move accessibility table of contents styles to shared org styles
samharp Jun 26, 2025
7c5e2a3
feat: remove favicons; accessibility table of contents
samharp Jun 26, 2025
4d26ac8
feat: add terrabyte favicons
samharp Jun 26, 2025
1ad23a4
feat: build sitemap and robots files in 11ty build process
samharp Aug 19, 2025
13d5496
feat: build sitemap in 11ty build process
samharp Aug 19, 2025
8fb2f76
feat: build web manifest from site data
samharp Aug 19, 2025
e7ff135
feat: implement css variables for high contrast settings (futureproof…
samharp Aug 19, 2025
061b028
feat: create error template page
samharp Aug 20, 2025
23d2b32
docs: update caveats in copy/pasta process
samharp Aug 20, 2025
6d4d633
docs: expand on build/copy process
samharp Aug 20, 2025
613cd53
feat: add sameAs example schema data
samharp Aug 20, 2025
821f3d6
feat: add default schema site logo
samharp Aug 20, 2025
2b1b287
fix: refactor sitemap and canonical URL generation
samharp Aug 21, 2025
a65fd6c
feat: optimize for modularity
samharp Aug 22, 2025
4d3a1fb
fix: update linked/project URLs
samharp Aug 22, 2025
b4abeb2
fix: minor edits to verbiage
samharp Aug 22, 2025
33e9f8e
feat: begin to include variables for dark/light mode and other proper…
samharp Aug 22, 2025
6270707
feat: add references to local copies of shared styles
samharp Aug 25, 2025
9b7df88
feat: add the brand value to site data
samharp Aug 25, 2025
128a958
docs: update subtree workflow in readme
samharp Sep 5, 2025
4b05784
feat: implement version sync script between template package and site…
samharp Sep 5, 2025
9c9fcaa
1.1.1
samharp Sep 5, 2025
85b30fd
dev: implement shell scripts for managing versioning
samharp Sep 5, 2025
588279f
1.1.2
samharp Sep 5, 2025
4f9f4d9
chore: sync site.json with package version
samharp Sep 5, 2025
4faa87a
dev: remove git push from scripts (utilize GitHub CLI)
samharp Sep 5, 2025
9ea1ef2
1.1.3
samharp Sep 5, 2025
1381e5d
chore: sync site.json with package version
samharp Sep 5, 2025
c75e516
Update README.md
samharp Sep 6, 2025
b7134f8
feat: optimize site.json; use site.json logic to show/hide script and…
samharp Sep 6, 2025
5d49a7a
feat: include .htaccess in site build process
samharp Sep 6, 2025
ec6cb40
fix: move site.json ref to _data folder for easy reference
samharp Sep 6, 2025
79c5c0a
1.1.4
samharp Sep 6, 2025
da87db7
chore: sync site.json with package version
samharp Sep 6, 2025
9ce882f
dev: add /template directory to 11ty ignore
samharp Sep 6, 2025
31e9cb6
Update README.md
samharp Sep 6, 2025
987f9d5
docs: reorganize documentation on subtree process and syncing template
samharp Sep 8, 2025
b4ecfb9
docs: include subtree initialization commands
samharp Sep 8, 2025
8214108
dev: add Update Template yaml files for keeping downstream files up-t…
samharp Sep 8, 2025
5597c54
dev: Update Template auto-syncing yaml files
samharp Sep 8, 2025
f216629
dev: update the Template sync Action yaml files to handle the GitHub …
samharp Sep 8, 2025
0bd6ab4
docs: add documentation on how the Template sync workflow works
samharp Sep 8, 2025
c9efcf3
1.2.0
samharp Sep 8, 2025
82994ec
chore: sync site.json with package version
samharp Sep 8, 2025
b0ccdef
feat: introduce macros to template
samharp Sep 8, 2025
14b7c84
feat: implement banners as macros
samharp Sep 9, 2025
c835b36
docs: include info on /scripts and their purpose
samharp Sep 9, 2025
87a3a41
dev: implement versioning as git commit tag
samharp Sep 9, 2025
df58d0a
1.2.1
samharp Sep 9, 2025
b1813ec
chore: sync site.json with package version
samharp Sep 9, 2025
4719b5a
dev: include versioning git tags into release scripts
samharp Sep 9, 2025
c7c52a3
1.2.2
samharp Sep 9, 2025
a6046c2
chore(release): v1.2.2 - sync site.json with package version
samharp Sep 9, 2025
54c7e6b
feat: add redirect page template
samharp Sep 9, 2025
033221f
docs: add table of contents to readme
samharp Sep 10, 2025
a535af1
feat: include shared Terrabyte styles and Pixel styles within the tem…
samharp Sep 11, 2025
5ac80bb
1.2.3
samharp Sep 11, 2025
bb0d8fb
chore(release): v1.2.3 - sync site.json with package version
samharp Sep 11, 2025
d7cf76b
dev: update tagging in shell script to add annotation
samharp Sep 11, 2025
207f6d2
1.2.4
samharp Sep 11, 2025
15c497b
chore(release): v1.2.4 - sync site.json with package version
samharp Sep 11, 2025
4f4303b
dev: sync process for tagging commits across shell scripts
samharp Sep 11, 2025
93f5860
feat: add shared pixel images/icons to template
samharp Sep 11, 2025
c7c1bbe
1.3.0
samharp Sep 11, 2025
aac1db7
chore(release): v1.3.0 - sync site.json with package version
samharp Sep 11, 2025
61c14c1
dev: update release-prep scripts to include pushing tag
samharp Sep 11, 2025
3aeff3f
dev: fix timing issue with pre-release tagging process
samharp Sep 11, 2025
1cd2292
chore(release): v1.3.1 - sync site.json with package version
samharp Sep 11, 2025
e6edf87
dev: update pre-release versioning process
samharp Sep 11, 2025
fb89985
chore(release): v1.3.2 - sync site.json with package version
samharp Sep 11, 2025
e726796
dev: update pre-release versioning script to commit package.json
samharp Sep 11, 2025
56e7f0f
chore(release): v1.3.3 - sync site.json with package version
samharp Sep 11, 2025
758eb96
dev: fix local tags not pushing to origin; package.json not committing
samharp Sep 11, 2025
67d90de
chore(release): v1.3.4 - sync site.json with package version
samharp Sep 11, 2025
a3f4eae
feat: begin copying over code for footer component
samharp Sep 12, 2025
2b6636c
docs: add warning against overwriting custom site styles
samharp Sep 12, 2025
968a815
fix: background styling on cookie footer
samharp Sep 12, 2025
6317422
Merge pull request #12 from terrabyte-tech/main
samharp Sep 13, 2025
53f406b
Squashed 'template/' content from commit 968a815
samharp Sep 13, 2025
854995d
Merge commit '53f406b3682f1a193b8c579266ff0543d36290b7' as 'template'
samharp Sep 13, 2025
e0b04cb
feat: template v1.3.4 file additions
samharp Sep 13, 2025
8040dc5
feat: template v1.3.4 file updates
samharp Sep 13, 2025
144f0bc
feat: add canapi shared styles to template package
samharp Sep 13, 2025
2f658fc
chore(release): v1.3.5 - sync site.json with package version
samharp Sep 13, 2025
d3f0441
Remove incorrectly merged subtree from root
samharp Sep 13, 2025
6f8d55d
fix: revert content to Canapi site content
samharp Sep 13, 2025
893abf5
Squashed 'template/' content from commit 2f658fc
samharp Sep 13, 2025
8d4cdb1
Merge commit '893abf5907b19e081104b9d40685eec2812b4df3' as 'template'
samharp Sep 13, 2025
5eb22df
dev: remove template, trying again.....
samharp Sep 13, 2025
a83b709
Add 'template/' from commit '2f658fc34e409333588f3574a3ece2be0bb6d9c0'
samharp Sep 13, 2025
5458c9f
docs: update subtree process to include defining remote template
samharp Sep 13, 2025
0a74df1
feat: template v1.3.5 updates
samharp Sep 13, 2025
4cbbb99
feat: add shared canapi styles
samharp Sep 13, 2025
36d6a1c
chore(release): v1.3.6 - sync site.json with package version
samharp Sep 13, 2025
364dd71
feat: begin to implement multi-section homepage for information and n…
samharp Sep 13, 2025
3fa6330
Merge commit '36d6a1c834bc50d6f5b4fc2e2b0c7f1fd4f08006' into 11ty-tem…
samharp Sep 13, 2025
300375c
feat: template v1.3.6 updates
samharp Sep 13, 2025
9d29fff
feat: Add info to homepage
samharp Sep 14, 2025
097d500
feat: organize files; move some files to boilerplate
samharp Sep 14, 2025
8ae30a7
docs: update verbiage on template vs. boilerplate
samharp Sep 14, 2025
6d9c300
chore(release): v1.4.0 - sync site.json with package version
samharp Sep 14, 2025
0ded7bd
feat: add content to error page
samharp Sep 14, 2025
0f3d28c
feat: add downstream repos to downstream template sync
samharp Sep 14, 2025
a0644e3
Merge commit '0ded7bd0b8aaa6de92208ec6bc6af1732df24486' into 11ty-tem…
samharp Sep 14, 2025
f3219bc
feat: implement template v1.4.0
samharp Sep 14, 2025
0553153
Merge pull request #13 from terrabyte-tech/11ty-template
samharp Sep 14, 2025
05b805c
fix: minor css fixes for canapi css variables
samharp Sep 14, 2025
eb553a3
fix: organize styles
samharp Sep 15, 2025
64935af
fix: deprecate unused styles; update Aurum framework version
samharp Sep 15, 2025
1764f7a
docs: update commands to utilize created scripts
samharp Sep 15, 2025
f21f078
Merge commit '1764f7a7bf78f3ddf61dc337e3fa522325468f6a' into dev
samharp Sep 15, 2025
a02ac1e
feat: update Template
samharp Sep 15, 2025
ac080b5
fix: update page section structure
samharp Sep 15, 2025
f235ae2
fix: update canapi page layout styles
samharp Sep 15, 2025
4cc748a
Merge commit 'f235ae29c225fc2c42150221dfedbe7f13c675f8' into dev
samharp Sep 15, 2025
20e7a4f
fix: canapi shared styles and page layout issues
samharp Sep 15, 2025
98f5025
fix: update to section verbiage
samharp Sep 15, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
64 changes: 60 additions & 4 deletions .eleventy.js
Original file line number Diff line number Diff line change
@@ -1,21 +1,77 @@
const cheerio = require("cheerio");
const site = require("./_data/site.json");

module.exports = function (eleventyConfig) {
// copy site data
eleventyConfig.addPassthroughCopy('htaccess.txt');
eleventyConfig.addPassthroughCopy('.htaccess');
// copy directories to the output
eleventyConfig.addPassthroughCopy('css');
eleventyConfig.addPassthroughCopy('js');
eleventyConfig.addPassthroughCopy('img');
// copy favicons
eleventyConfig.addPassthroughCopy('site.webmanifest');
eleventyConfig.addPassthroughCopy('*.ico');
eleventyConfig.addPassthroughCopy('*.png');

// watch directories for changes
eleventyConfig.addWatchTarget('css');
eleventyConfig.addWatchTarget('js');
eleventyConfig.addWatchTarget('img');
eleventyConfig.addWatchTarget('cards');
eleventyConfig.addWatchTarget('site.webmanifest');

// shortcodes
eleventyConfig.addShortcode("currentYear", () => `${new Date().getFullYear()}`);

// page transforms and filters
// FILTER: split a string by a separator
eleventyConfig.addFilter("split", function(str, separator) {
if (!str) return [];
return str.split(separator);
});

// FILTER: Generate canonical URL
eleventyConfig.addFilter("canonicalUrl", function(pageUrl) {
// Remove trailing slash from site.url (if present, though it shouldn't be)
const base = site.url.replace(/\/$/, "");

// check if it's the homepage; if so, just return the base URL
if (!pageUrl || pageUrl === "/" || pageUrl === "/index.html") {
return base;
}

// otherwise, ensure pageUrl starts with a slash
const rel = pageUrl.startsWith("/") ? pageUrl : `/${pageUrl}`;
return base + rel;
});

// TRANSFORM: create accessibility table of contents
eleventyConfig.addTransform("injectSrToc", function(content, outputPath) {
if (outputPath && outputPath.endsWith(".html")) {
const $ = cheerio.load(content);

// Build TOC from sections
const sections = [];
$("section[id]").each((i, elem) => {
const id = $(elem).attr("id");
const title = id + " section";
sections.push({ id, title });
});

// Only inject if there are sections
if (sections.length) {
const tocHtml = `
<nav class="sr-only sr-toc" aria-label="Table of Contents" role="navigation">
<h2>Page Table of Contents</h2>
<ul>
<li><a class="text-link" href="#top">Jump to content</a></li>
${sections.map(s => `<li><a href="#${s.id}" class="text-link" tabindex="0">${s.title}</a></li>`).join("\n")}
</ul>
</nav>
`;
// Insert TOC at the start of <body> on the page
$("body").prepend(tocHtml);
return $.html();
}
}
return content;
});

};
2 changes: 2 additions & 0 deletions .eleventyignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
template/
scripts/
33 changes: 33 additions & 0 deletions .github/workflows/dev.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
on:
push:
branches:
- dev
name: Build and deploy website (dev)
jobs:
deploy_job:
name: Deploy
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2

- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '23'

- name: Install dependencies
run: npm install

- name: Build site
run: npx eleventy

- name: Deploy file(s)
uses: wlixcc/SFTP-Deploy-Action@v1.2.4
with:
server: ${{ secrets.sftp_server }}
username: ${{ secrets.sftp_username }}
password: ${{ secrets.sftp_password }}
port: 22
local_path: './_site/*'
remote_path: ${{ secrets.sftp_remote_path_dev }}
44 changes: 44 additions & 0 deletions .github/workflows/update-template.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
name: Sync Template on Template Release

on:
repository_dispatch:
types: [template-release] # Triggered remotely from template repo
workflow_dispatch:

jobs:
update-template:
runs-on: ubuntu-latest
steps:
- name: Determine target branch
id: branch-check
run: |
if git ls-remote --heads origin dev | grep dev; then
echo "branch=dev" >> $GITHUB_OUTPUT
else
echo "branch=main" >> $GITHUB_OUTPUT
fi

- name: Checkout target branch
uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ steps.branch-check.outputs.branch }}

- name: Configure Git
run: |
git config --global user.name "Terrabyte Bot"
git config --global user.email "bot@terrabyte.eco"

- name: Pull latest template release
run: |
git subtree pull \
--prefix=template \
https://github.com/terrabyte-tech/terrabyte-11ty-template.git \
${{ github.event.client_payload.tag }} \
--squash

- name: Commit & Push changes
run: |
git add template
git commit -m "chore: sync template to release ${{ github.event.client_payload.tag }} ${{ github.event.client_payload.commit_message_suffix }}" || echo "No changes to commit"
git push origin ${{ steps.branch-check.outputs.branch }}
23 changes: 22 additions & 1 deletion .htaccess
Original file line number Diff line number Diff line change
@@ -1,4 +1,25 @@
ErrorDocument 400 /error.php
ErrorDocument 401 /error.php
ErrorDocument 403 /error.php
ErrorDocument 404 /error.php
ErrorDocument 404 /error.php

# Performance: Caching headers
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType font/woff2 "access plus 1 year"
ExpiresByType image/webp "access plus 30 days"
ExpiresByType text/css "access plus 7 days"
ExpiresByType application/javascript "access plus 7 days"
</IfModule>

<IfModule mod_headers.c>
<FilesMatch "\.(woff2|woff|ttf|otf)$">
Header set Cache-Control "public, max-age=31536000"
</FilesMatch>
<FilesMatch "\.(webp|png|jpe?g|svg)$">
Header set Cache-Control "public, max-age=2592000"
</FilesMatch>
<FilesMatch "\.(css|js)$">
Header set Cache-Control "public, max-age=604800"
</FilesMatch>
</IfModule>
12 changes: 10 additions & 2 deletions _data/site.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
{
"templateVersion": "1.4.0",
"project": "Canapi",
"title": "Canapi",
"url": "https://canapi.io",
"url": "https://www.canapi.io",
"author": "Terrabyte",
"brand": "Terrabyte",
"language": "en-US",
"description": "Canapi is a marketplace and API suite that allows businesses and organizations to make automated environmental contributions."
"description": "Canapi is a marketplace and API suite that allows businesses and organizations to make automated environmental contributions.",
"accentColor": "#",
"backgroundColor": "#ffffff",
"foregroundColor": "#333333",
"schemaType": "Thing",
"fontsRel": "https://fonts.googleapis.com/css2?family=Roboto+Mono&family=Manrope:wght@400;800&display=swap"
}
26 changes: 26 additions & 0 deletions _includes/banners.njk
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
{% from 'macros/banner.njk' import banner %}

<div class="banner-container">
<noscript>
{{ banner(
content="It looks like JavaScript is currently disabled for your browser. We recommend enabling JavaScript in order for the site to function as anticipated.",
id="no-js-banner",
dismissible=false,
timeout=false,
position="top",
type="warning"
) }}
</noscript>

<!--[if IE]>
{{ banner(
content="It looks like you are using an out-of-date browser. Please use a modern browser for a better browsing experience.",
id="ie-banner",
dismissible=true,
timeout=false,
position="top",
type="error"
) }}
<![endif]-->

</div>
6 changes: 6 additions & 0 deletions _includes/inspector-splash.njk
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
<!-- ##### (C) Copyright 2025 -->
<!-- ## ## {{ site.author }}, the company -->
<!-- ## ## behind {{ site.project }}. -->
<!-- ## All rights reserved. -->
<!-- ## ## -->
<!-- -->
Loading