Skip to content

Commit c894344

Browse files
authored
Add KERN landing page, references, and link checking workflows (#8)
* feat: Add new KERN landing page and references section - Created index.html for KERN with a comprehensive overview of the autonomous energy platform. - Added references.html to showcase live installations and customer references. - Updated main.js to change favicon to SVG format for better scalability. - Introduced technology.html detailing the technology stack behind KERN, including MIOTY and Zigbee Mesh. - Added infrastructure-iq.pdf to the slides directory for presentation purposes. - Updated main.css to reflect new color scheme and styling adjustments. * feat: Add workflows for link checking and QA, update HTML files for entity encoding * fix: Update typo check action reference in QA workflow * feat: Update primary color to a new accent shade across multiple files * feat: Revamp About Us page and update footer and navigation links for KERN platform * feat: Update page titles and add branding elements for KERN by Riddle&Code * feat: Add KERN product bar component and integrate it into multiple pages * feat: Revise hero section layout and styling for improved responsiveness and visual hierarchy * Refactor styles across multiple files to enhance visual consistency and update color scheme - Updated color variables and styles in technology-section.html to use new accent colors. - Removed stats bar section from index.html and adjusted audience section padding. - Changed border colors and backgrounds in for-aggregators.html, for-communities.html, for-platforms.html, and for-utilities.html for a cohesive design. - Modified card styles in kern/index.html to align with new color palette. - Updated dark background color in news articles for improved readability. - Adjusted reference card styles in references/index.html to match new design standards. - Refined main CSS variables in main.css for better color management. - Enhanced showcase styles in showcase.css to utilize new accent colors. - Updated connectivity card styles in technology/index.html for consistency with new design. * feat: Remove unused CSS files and clean up stylesheet references * feat: Update utility references for clarity and consistency across multiple pages * Add new HTML templates for KERN product pages, references, and technology overview - Created `for-utilities.html` for utility-focused content with structured sections for pains, use cases, and references. - Developed `index.html` for the KERN landing page, featuring core concepts, contexts, optimization modes, and audience navigation. - Introduced `references/index.html` to showcase live installations and reference details with a call-to-action. - Implemented `technology/index.html` to detail technology offerings, connectivity comparisons, asset protocols, and security compliance. * Fix HTML entity encoding for Riddle&Code in various pages and update meta descriptions across the site * Add new images and tracking script for team members and wallets - Added a tracking script in image_89173.jpg to handle cookie parsing and redirection based on the user's domain and protocol. - Introduced several new wallet images: - r&c_industry_wallet.png - r&c_community_wallet.png - r&c_energy_wallet.png - r&c_mobility_wallet.png - r&c_trust_anchor.png - reComputer_R1000_2024-Jul-15_09-40-13AM-000_CustomizedView3341575976 (1).png * feat: Revise headings and descriptions for KERN references to enhance clarity and impact * feat: Add new HTML templates for Industry Showcase and Sustainability pages * Add new navigation and footer components with localization support - Introduced a new navigation bar in German and English with dropdowns for products and company information. - Implemented a responsive design for mobile devices, including a toggle button for the navigation menu. - Created a modern footer layout with links to company information, legal details, and social media. - Added localization strings for navigation and footer elements in both German and English. - Updated JavaScript to handle mobile dropdown interactions and menu visibility. * feat: Update localization strings for references and improve clarity in German and English content * feat: Enhance clarity and detail in German and English content across multiple pages, including new optimization engine section * feat: Revise German content for clarity in technology section, updating IoT reference * feat: Add German and English spelling check configurations to QA workflow * feat: Update cspell configuration to include German localization files for spell checking * feat: Add new German terms to cspell configuration for improved spell checking * feat: Enhance styling and responsiveness of news and embed cards in multiple languages * feat: Refactor language URL handling for improved path management * Refactor pain points presentation across multiple templates - Replaced the existing pain grid layout with a new split-row format for better readability and structure. - Updated CSS styles to support the new layout, including responsive adjustments for mobile devices. - Ensured consistent labeling for problems and solutions, enhancing clarity for users. - Modified HTML structure in the following templates: for-communities.html, for-platforms.html, for-utilities.html, for-aggregators.html, and for-utilities.html. * feat: Update references to use plural form for utilities across multiple language files
1 parent 40c4d5a commit c894344

240 files changed

Lines changed: 11075 additions & 865 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/links.yml

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
name: Dead links
2+
3+
on:
4+
push:
5+
branches: [main]
6+
schedule:
7+
- cron: '0 8 * * 1' # every Monday 08:00 UTC
8+
9+
jobs:
10+
lychee:
11+
name: Link check
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/checkout@v4
15+
16+
- name: Check links
17+
uses: lycheeverse/lychee-action@v2
18+
with:
19+
args: >
20+
--config .lychee.toml
21+
'**/*.html'
22+
fail: true
23+
env:
24+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
25+
26+
- name: Create issue on scheduled failure
27+
if: failure() && github.event_name == 'schedule'
28+
uses: peter-evans/create-issue-from-file@v5
29+
with:
30+
title: 'Dead links detected'
31+
content-filepath: ./lychee/out.md
32+
labels: bug, content

.github/workflows/qa.yml

Lines changed: 130 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,130 @@
1+
name: QA
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
11+
# ── 0. Build freshness ──────────────────────────────────────────────────────
12+
build-fresh:
13+
name: Build freshness check
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v4
17+
- name: Install dependencies
18+
run: pip install -r requirements.txt
19+
- name: Check generated files match templates
20+
run: python3 build.py --check
21+
22+
# ── 1. Typos ────────────────────────────────────────────────────────────────
23+
typos:
24+
name: Typo check
25+
runs-on: ubuntu-latest
26+
steps:
27+
- uses: actions/checkout@v4
28+
- uses: crate-ci/typos@v1
29+
30+
# ── 2. German spelling ─────────────────────────────────────────────────────
31+
cspell-de:
32+
name: German pages spelling
33+
runs-on: ubuntu-latest
34+
steps:
35+
- uses: actions/checkout@v4
36+
- uses: actions/setup-node@v4
37+
with:
38+
node-version: '20'
39+
- name: Spell-check German pages
40+
run: |
41+
npx --yes \
42+
-p cspell \
43+
-p @cspell/dict-de-de \
44+
-p @cspell/dict-de-at \
45+
cspell lint --config cspell.de.json
46+
47+
# ── 3. English spelling ────────────────────────────────────────────────────
48+
cspell-en:
49+
name: English pages spelling
50+
runs-on: ubuntu-latest
51+
steps:
52+
- uses: actions/checkout@v4
53+
- uses: actions/setup-node@v4
54+
with:
55+
node-version: '20'
56+
- name: Spell-check English pages
57+
run: |
58+
npx --yes \
59+
-p cspell \
60+
cspell lint --config cspell.en.json
61+
62+
# ── 4. HTML validity ────────────────────────────────────────────────────────
63+
html:
64+
name: HTML validation
65+
runs-on: ubuntu-latest
66+
steps:
67+
- uses: actions/checkout@v4
68+
- uses: actions/setup-node@v4
69+
with:
70+
node-version: '20'
71+
- run: npm install -g html-validate
72+
- name: Validate HTML
73+
run: |
74+
html-validate \
75+
index.html \
76+
kern/ \
77+
technology/ \
78+
references/ \
79+
includes/nav.html \
80+
includes/footer.html
81+
82+
# ── 5. Meta descriptions ────────────────────────────────────────────────────
83+
meta:
84+
name: Meta descriptions
85+
runs-on: ubuntu-latest
86+
steps:
87+
- uses: actions/checkout@v4
88+
- name: Every KERN page must have a meta description
89+
run: |
90+
missing=0
91+
while IFS= read -r file; do
92+
if ! grep -qi '<meta name="description"' "$file"; then
93+
echo "::error file=$file::Missing meta description"
94+
missing=$((missing + 1))
95+
fi
96+
done < <(find index.html kern/ technology/ references/ -name "*.html")
97+
98+
if [ "$missing" -gt 0 ]; then
99+
echo "::error::$missing page(s) missing <meta name=\"description\">"
100+
exit 1
101+
fi
102+
echo "All KERN pages have meta descriptions ✓"
103+
104+
# ── 6. Image size budget ────────────────────────────────────────────────────
105+
images:
106+
name: Image size budget
107+
runs-on: ubuntu-latest
108+
steps:
109+
- uses: actions/checkout@v4
110+
- name: Warn on images > 500 KB
111+
run: |
112+
limit=$((500 * 1024))
113+
oversized=0
114+
while IFS= read -r img; do
115+
size=$(stat -c%s "$img")
116+
if [ "$size" -gt "$limit" ]; then
117+
kb=$((size / 1024))
118+
echo "::warning file=$img::${kb} KB — consider compressing (budget: 500 KB)"
119+
oversized=$((oversized + 1))
120+
fi
121+
done < <(find images/ -type f \( \
122+
-iname "*.jpg" -o -iname "*.jpeg" \
123+
-o -iname "*.png" -o -iname "*.gif" \
124+
-o -iname "*.webp" \))
125+
126+
if [ "$oversized" -gt 0 ]; then
127+
echo "$oversized image(s) over budget — see warnings above"
128+
else
129+
echo "All images within 500 KB budget ✓"
130+
fi

.gitignore

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,24 @@
1-
new/node_modules
1+
new/node_modules
2+
.venv
3+
__pycache__
4+
*.pyc
5+
*.pyo
6+
*.pyd
7+
*.db
8+
*.sqlite3
9+
*.log
10+
*.env
11+
*.DS_Store
12+
.idea
13+
.vscode
14+
*.swp
15+
*.swo
16+
*.bak
17+
*.tmp
18+
*.egg-info
19+
dist
20+
build
21+
*.egg
22+
*.egg-info
23+
*.egg-info/
24+
*.egg-info/*

.htmlvalidate.json

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"extends": ["html-validate:recommended"],
3+
"rules": {
4+
"attr-quotes": "error",
5+
"no-dup-attr": "error",
6+
"no-dup-id": "error",
7+
8+
"no-inline-style": "off",
9+
"require-sri": "off",
10+
"void-style": "off",
11+
"no-trailing-whitespace": "off",
12+
"long-title": "off",
13+
"tel-non-breaking": "off",
14+
"script-type": "off",
15+
"no-unknown-elements": "off"
16+
},
17+
"elements": ["html5"],
18+
"transform": {}
19+
}

.lychee.toml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Lychee link checker configuration
2+
# Docs: https://lychee.cli.rs/usage/configuration/
3+
4+
timeout = 20
5+
max_retries = 3
6+
retry_wait_time = 3
7+
threads = 8
8+
9+
# 429 = Too Many Requests (rate-limited, not a dead link)
10+
accept = ["200..=299", "429"]
11+
12+
exclude_loopback = true
13+
include_mail = false
14+
15+
exclude = [
16+
# JavaScript pseudo-links
17+
"^javascript:",
18+
"^#$",
19+
20+
# Google services — blocked in CI environments
21+
"googletagmanager\\.com",
22+
"googleapis\\.com",
23+
"google\\.com/maps",
24+
"google\\.com/recaptcha",
25+
26+
# Social platforms — aggressively rate-limit CI IPs
27+
"linkedin\\.com",
28+
"twitter\\.com",
29+
"x\\.com",
30+
"instagram\\.com",
31+
"facebook\\.com",
32+
33+
# Localhost and staging
34+
"localhost",
35+
"127\\.0\\.0\\.1",
36+
]
37+
38+
# Output dead links to a file so the scheduled issue workflow can attach it
39+
output = "lychee/out.md"

.typos.toml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
[files]
2+
extend-exclude = [
3+
# Binary / generated / legacy directories
4+
"images/**",
5+
"archive/**",
6+
"slides/**",
7+
"ttf/**",
8+
"csv/**",
9+
"data/**",
10+
"showcase/**",
11+
"media/**",
12+
"news/**",
13+
# German content pages are checked by cspell-de
14+
"de/**/*.html",
15+
"locales/de.yaml",
16+
# Old Webflow CSS/JS
17+
"company/css/**",
18+
"company/js/**",
19+
# Backup files
20+
"*.bak",
21+
"*.min.js",
22+
]
23+
24+
[default.extend-words]
25+
# Energy sector protocols and standards
26+
MIOTY = "MIOTY"
27+
EEBUS = "EEBUS"
28+
SunSpec = "SunSpec"
29+
aFRR = "aFRR"
30+
FCR = "FCR"
31+
SCADA = "SCADA"
32+
OCPP = "OCPP"
33+
BESS = "BESS"
34+
HEMS = "HEMS"
35+
36+
# Austrian / German regulatory terms
37+
EnFG = "EnFG"
38+
EAG = "EAG"
39+
40+
# Brands and product names
41+
KERN = "KERN"
42+
Lumenaza = "Lumenaza"
43+
cybergrid = "cybergrid"
44+
VERBUND = "VERBUND"
45+
TTTech = "TTTech"
46+
joulie = "joulie"
47+
egon = "egon"
48+
49+
# Place names
50+
Heiligenkreuz = "Heiligenkreuz"
51+
Wetzlas = "Wetzlas"
52+
Steiermark = "Steiermark"
53+
54+
# German words used in content
55+
Stadtwerke = "Stadtwerke"

404.html

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
}
1515

1616
:root {
17-
--primary-green: #00ff88;
18-
--dark-bg: #0a0a0a;
17+
--primary-green: #F59E0B;
18+
--dark-bg: #1C2333;
1919
--text-primary: #ffffff;
2020
--text-secondary: #e0e0e0;
2121
--text-muted: #999999;
@@ -49,10 +49,10 @@
4949

5050
@keyframes glow {
5151
0%, 100% {
52-
text-shadow: 0 0 20px rgba(0, 255, 136, 0.5);
52+
text-shadow: 0 0 20px rgba(245, 158, 11, 0.5);
5353
}
5454
50% {
55-
text-shadow: 0 0 40px rgba(0, 255, 136, 0.8);
55+
text-shadow: 0 0 40px rgba(245, 158, 11, 0.8);
5656
}
5757
}
5858

0 commit comments

Comments
 (0)