Skip to content

Commit 9bc87e6

Browse files
author
ChessMastermind
committed
Commit remaining site fixes (excluding CNAME)
1 parent ab4ba0e commit 9bc87e6

9 files changed

Lines changed: 194 additions & 81 deletions

File tree

CIE/index.html

Lines changed: 19 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<script src="https://cdn.datatables.net/1.13.6/js/jquery.dataTables.min.js"></script>
99
<script src="https://cdn.datatables.net/responsive/2.5.0/js/dataTables.responsive.min.js"></script>
1010

11-
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
11+
<script src="https://cdn.jsdelivr.net/npm/chart.js" defer></script>
1212

1313
<!-- dashboard-engine.js injected dynamically below -->
1414
<!-- 🔗 Preconnects for faster handshakes -->
@@ -154,7 +154,7 @@
154154
<body class="text-gray-800 flex flex-col min-h-screen">
155155
<header class="text-white text-center py-6 shadow-lg relative">
156156
<h1 class="page-title">Cambridge International Grade Boundaries</h1>
157-
<button id="theme-toggle" class="absolute top-4 right-4">🌙</button>
157+
<button id="theme-toggle" class="absolute top-4 right-4" aria-label="Toggle dark / light mode"></button>
158158
<nav class="mt-4 flex flex-col md:flex-row items-center justify-center gap-2">
159159
<a href="" class="nav-link mx-4 text-base sm:text-lg hover:text-white transition">Home</a>
160160
<a href="Edexcel" class="nav-link mx-4 text-base sm:text-lg hover:text-white transition">Edexcel</a>
@@ -176,7 +176,7 @@ <h2 class="text-2xl font-semibold mb-4">Cambridge International Grade Boundaries
176176
</div>
177177

178178
<!-- CSV download -->
179-
<p class="site-disclaimer" style="text-align:right"><em>Note: This data is processed from official CIE sources for ease of use. Original rights belong to Cambridge University Press &amp; Assessment (CIE).</em></p>
179+
<p class="csv-note" style="text-align:right"><em>Note: This data is processed from official CIE sources for ease of use. Original rights belong to Cambridge University Press &amp; Assessment (CIE).</em></p>
180180
<div class="text-right my-4">
181181
<button id="downloadCSV" class="class-button px-4 py-2 rounded hover:bg-[#2b7a78] transition">Download CSV</button>
182182
</div>
@@ -243,30 +243,24 @@ <h2 class="text-2xl font-semibold mb-4">Cambridge International Grade Boundaries
243243
</li>
244244
</ul>
245245
</nav>
246-
<p class="site-disclaimer">All exam data is copyright of the respective exam boards. GradeBoundaries.com is an independent educational tool. <a href="/Grade_Boundaries_A_Levels/Disclaimer/">View Full Disclaimer</a></p>
246+
247247
</div>
248248
</footer>
249-
250-
<!-- Sticky one-line disclaimer (dismissible) -->
251-
<div id="sticky-disclaimer" class="sticky-disclaimer" style="display:none">
252-
<span>All exam data is copyright of the respective exam boards. GradeBoundaries.com is an independent educational tool. <a href="/Grade_Boundaries_A_Levels/Disclaimer/">View Full Disclaimer</a></span>
253-
<button class="sd-close" aria-label="Close">×</button>
254-
</div>
255-
<script>
256-
(function(){
257-
try{
258-
const key = 'stickyDisclaimerDismissed_v1';
259-
if (localStorage.getItem(key)) return;
260-
const el = document.getElementById('sticky-disclaimer');
261-
if (!el) return;
262-
el.style.display = 'flex';
263-
el.querySelector('.sd-close').addEventListener('click', function(){
264-
localStorage.setItem(key, '1');
265-
el.style.display='none';
266-
});
267-
}catch(e){}
268-
})();
269-
</script>
249+
250+
<!-- small footer link to full disclaimer -->
251+
<script>
252+
(function(){
253+
try{
254+
const ul = document.querySelector('footer nav[aria-label="Footer links"] ul');
255+
if (ul && !ul.querySelector('a[href*="Disclaimer"]')){
256+
const sep = document.createElement('li'); sep.innerHTML='&nbsp;|&nbsp;'; ul.appendChild(sep);
257+
const li = document.createElement('li');
258+
const a = document.createElement('a'); a.href='Disclaimer/'; a.className='underline'; a.textContent='Disclaimer';
259+
li.appendChild(a); ul.appendChild(li);
260+
}
261+
}catch(e){}
262+
})();
263+
</script>
270264

271265
<script>
272266
(function(){

Contact/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@
9393

9494
<header class="text-white text-center py-6 shadow-lg">
9595
<h1 class="page-title">Contact information</h1>
96-
<button id="theme-toggle" class="absolute top-4 right-4">🌙</button>
96+
<button id="theme-toggle" class="absolute top-4 right-4" aria-label="Toggle dark / light mode"></button>
9797
<nav class="mt-4 flex flex-col md:flex-row items-center justify-center gap-2">
9898
<a href="" class="nav-link mx-4 text-base sm:text-lg hover:text-white transition">Home</a>
9999
<a href="Edexcel" class="nav-link mx-4 text-base sm:text-lg hover:text-white transition">Edexcel</a>

Disclaimer/index.html

Lines changed: 87 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,63 @@
11
<!doctype html>
22
<html lang="en">
33
<head>
4-
<meta charset="utf-8">
5-
<meta name="viewport" content="width=device-width, initial-scale=1">
4+
<style id="css-cloak">
5+
html:not(.css-loaded) body > * { display: none; }
6+
</style>
7+
<!-- Disclaimer – site template copied from Privacy Notice -->
8+
9+
<script>
10+
function uncloak() {
11+
document.documentElement.classList.add("css-loaded");
12+
const cloak = document.getElementById("css-cloak");
13+
if (cloak) cloak.remove();
14+
}
15+
16+
const host = location.hostname;
17+
const myBase = host === 'gradeboundaries.com' ? '/' : '/Grade_Boundaries_A_Levels/';
18+
19+
const baseEl = document.createElement('base'); baseEl.href = myBase; document.head.appendChild(baseEl);
20+
21+
const linkEl = document.createElement('link'); linkEl.rel = 'stylesheet'; linkEl.href = 'dist/output.css'; document.head.appendChild(linkEl);
22+
const linkEle = document.createElement('link'); linkEle.rel = 'stylesheet'; linkEle.href = 'style.css'; linkEle.onload = uncloak; document.head.appendChild(linkEle);
23+
</script>
24+
25+
<meta charset="utf-8" />
26+
<meta name="viewport" content="width=device-width, initial-scale=1" />
27+
<meta property="og:type" content="website">
28+
<meta property="og:title" content="Disclaimer & Intellectual Property Notice | Grade Boundaries Explorer">
29+
<meta property="og:description" content="Disclaimer and intellectual property notice for Grade-Boundary Explorer.">
30+
<meta name="twitter:card" content="summary_large_image">
631
<title>Disclaimer & Intellectual Property Notice</title>
7-
<link rel="stylesheet" href="/Grade_Boundaries_A_Levels/style.css">
32+
33+
<script>
34+
(function() {
35+
const saved = localStorage.getItem('theme');
36+
if (saved === 'dark' || (!saved && matchMedia('(prefers-color-scheme: dark)').matches)) {
37+
document.documentElement.classList.add('dark');
38+
}
39+
})();
40+
</script>
841
</head>
942
<body class="text-gray-800 flex flex-col min-h-screen">
43+
<header class="text-white text-center py-6 shadow-lg relative">
44+
<h1 class="page-title">Grade-Boundary Explorer</h1>
45+
<button id="theme-toggle" class="absolute top-4 right-4" aria-label="Toggle dark / light mode"></button>
46+
<nav class="mt-4 flex flex-col md:flex-row items-center justify-center gap-2">
47+
<a href="/Grade_Boundaries_A_Levels/" class="nav-link mx-4 text-base sm:text-lg hover:text-white transition">Home</a>
48+
<a href="/Grade_Boundaries_A_Levels/Edexcel/" class="nav-link mx-4 text-base sm:text-lg hover:text-white transition">Edexcel</a>
49+
<a href="/Grade_Boundaries_A_Levels/CIE/" class="nav-link mx-4 text-base sm:text-lg hover:text-white transition">CIE</a>
50+
<a href="/Grade_Boundaries_A_Levels/OxfordAqa/" class="nav-link mx-4 text-base sm:text-lg hover:text-white transition">Oxford AQA</a>
51+
<a href="/Grade_Boundaries_A_Levels/OCR/" class="nav-link mx-4 text-base sm:text-lg hover:text-white transition">OCR</a>
52+
</nav>
53+
</header>
54+
1055
<main class="flex-1 w-full px-4 container py-12">
1156
<article class="bg-white rounded-lg shadow-md p-6">
1257
<h1 class="text-2xl font-semibold mb-4">Disclaimer &amp; Intellectual Property Notice</h1>
1358

1459
<h2>1. Ownership of Materials</h2>
15-
<p>All grade thresholds, exam papers, and marking schemes hosted on or processed by GradeBoundaries.com are the intellectual property and copyright of their respective exam boards (e.g., Cambridge University Press &amp; Assessment (CIE), Pearson Edexcel, AQA, OCR). This website does not claim any ownership over the raw data provided.</p>
60+
<p>All grade thresholds and related data hosted on or processed by GradeBoundaries.com are the intellectual property and copyright of their respective exam boards (e.g., Cambridge University Press &amp; Assessment (CIE), Pearson Edexcel, AQA, OCR). This website does not claim any ownership over the raw data provided.</p>
1661

1762
<h2>2. Purpose of this Website</h2>
1863
<p>This site is an independent, non-profit educational project created to help students and teachers access data more efficiently. The conversion of official PDF documents into CSV/digital formats is intended to facilitate student progress tracking and is provided for educational and informational purposes only.</p>
@@ -26,8 +71,45 @@ <h2>4. Accuracy &amp; Liability</h2>
2671
<h2>CSV files distributed from this site</h2>
2772
<p>Downloaded CSVs include a brief metadata comment at the top indicating the data source and that the CSV was processed by GradeBoundaries.com for educational use. CSVs are offered to improve accessibility and are not intended to replace official documents.</p>
2873

29-
<p class="site-disclaimer">If you believe any content here infringes your rights, please contact us via the <a href="/Grade_Boundaries_A_Levels/Contact/">Contact</a> page.</p>
74+
<p class="site-disclaimer">If you believe any content here infringes your rights, please contact us via the <a href="/Grade_Boundaries_A_Levels/Contact/" class="underline link-in-privacy">Contact</a> page.</p>
3075
</article>
3176
</main>
77+
<footer class="mt-12" role="contentinfo">
78+
<div class="container mx-auto flex flex-col items-center py-6 px-4">
79+
<p class="text-lg">Created by</p>
80+
<nav aria-label="Created by">
81+
<ul class="flex space-x-4 text-lg">
82+
<li><a href="https://github.com/Fire-Frog-Fuel/" class="underline">Fire-Frog-Fuel</a></li>
83+
<li><span>&nbsp;and&nbsp;</span></li>
84+
<li><a href="https://github.com/ChessMastermind" class="underline">ChessMastermind</a></li>
85+
</ul>
86+
</nav>
87+
<nav aria-label="Footer links">
88+
<ul class="flex space-x-4 text-lg">
89+
<li><a href="/Grade_Boundaries_A_Levels/Contact/" class="underline">Contact us</a></li>
90+
<li><span>&nbsp;|&nbsp;</span></li>
91+
<li><a href="/Grade_Boundaries_A_Levels/Privacy/" class="underline">Privacy Notice</a></li>
92+
<li><span>&nbsp;|&nbsp;</span></li>
93+
<li><a href="/Grade_Boundaries_A_Levels/Disclaimer/" class="underline">Disclaimer</a></li>
94+
</ul>
95+
</nav>
96+
</div>
97+
</footer>
98+
<script>
99+
// Wire up theme toggle button on Disclaimer page
100+
(function(){
101+
try{
102+
const btn = document.getElementById('theme-toggle');
103+
const root = document.documentElement;
104+
if (!btn) return;
105+
btn.textContent = root.classList.contains('dark') ? '☀️' : '🌙';
106+
btn.addEventListener('click', () => {
107+
const dark = root.classList.toggle('dark');
108+
localStorage.setItem('theme', dark ? 'dark' : 'light');
109+
btn.textContent = dark ? '☀️' : '🌙';
110+
});
111+
}catch(e){}
112+
})();
113+
</script>
32114
</body>
33115
</html>

Edexcel/index.html

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<script src="https://cdn.datatables.net/1.13.6/js/jquery.dataTables.min.js"></script>
1313
<script src="https://cdn.datatables.net/responsive/2.5.0/js/dataTables.responsive.min.js"></script>
1414

15-
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
15+
<script src="https://cdn.jsdelivr.net/npm/chart.js" defer></script>
1616

1717
<!--  Privacy-friendly analytics -->
1818
<script defer data-domain="gradeboundaries.com" src="https://plausible.io/js/script.js"></script>
@@ -155,7 +155,7 @@
155155
<body class="text-gray-800 flex flex-col min-h-screen">
156156
<header class="text-white text-center py-6 shadow-lg">
157157
<h1 class="page-title">Edexcel Grade Boundaries</h1>
158-
<button id="theme-toggle" class="absolute top-4 right-4">🌙</button>
158+
<button id="theme-toggle" class="absolute top-4 right-4" aria-label="Toggle dark / light mode"></button>
159159
<nav class="mt-4 flex flex-col md:flex-row items-center justify-center gap-2">
160160
<a href="" class="nav-link mx-4 text-base sm:text-lg hover:text-white transition">Home</a>
161161
<a href="CIE" class="nav-link mx-4 text-base sm:text-lg hover:text-white transition">CIE</a>
@@ -174,7 +174,7 @@ <h2 class="text-2xl font-semibold mb-4">Edexcel Grade Boundaries</h2>
174174
</div>
175175

176176
<div class="text-right my-4">
177-
<p class="site-disclaimer" style="text-align:right"><em>Note: This data is processed from official Edexcel sources for ease of use. Original rights belong to Pearson Edexcel.</em></p>
177+
<p class="csv-note" style="text-align:right"><em>Note: This data is processed from official Edexcel sources for ease of use. Original rights belong to Pearson Edexcel.</em></p>
178178
<button id="downloadCSV" class="class-button text-white px-4 py-2 rounded hover:bg-[#2b7a78] transition">Download CSV</button>
179179
</div>
180180

@@ -232,17 +232,19 @@ <h2 class="text-2xl font-semibold mb-4">Edexcel Grade Boundaries</h2>
232232
</li>
233233
</ul>
234234
</nav>
235-
<p class="site-disclaimer">All exam data is copyright of the respective exam boards. GradeBoundaries.com is an independent educational tool. <a href="/Grade_Boundaries_A_Levels/Disclaimer/">View Full Disclaimer</a></p>
236235
</div>
237-
</footer>
238-
239-
<div id="sticky-disclaimer" class="sticky-disclaimer" style="display:none">
240-
<span>All exam data is copyright of the respective exam boards. GradeBoundaries.com is an independent educational tool. <a href="/Grade_Boundaries_A_Levels/Disclaimer/">View Full Disclaimer</a></span>
241-
<button class="sd-close" aria-label="Close">×</button>
242-
</div>
236+
</footer>
243237
<script>
244238
(function(){
245-
try{const key='stickyDisclaimerDismissed_v1'; if(localStorage.getItem(key))return; const el=document.getElementById('sticky-disclaimer'); if(!el) return; el.style.display='flex'; el.querySelector('.sd-close').addEventListener('click',function(){localStorage.setItem(key,'1');el.style.display='none';});}catch(e){}
239+
try{
240+
const ul = document.querySelector('footer nav[aria-label="Footer links"] ul');
241+
if (ul && !ul.querySelector('a[href*="Disclaimer"]')){
242+
const sep = document.createElement('li'); sep.innerHTML='&nbsp;|&nbsp;'; ul.appendChild(sep);
243+
const li = document.createElement('li');
244+
const a = document.createElement('a'); a.href='Disclaimer/'; a.className='underline'; a.textContent='Disclaimer';
245+
li.appendChild(a); ul.appendChild(li);
246+
}
247+
}catch(e){}
246248
})();
247249
</script>
248250
<!-- PAGE SCRIPT -->

OCR/index.html

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<script src="https://cdn.datatables.net/1.13.6/js/jquery.dataTables.min.js"></script>
1616
<script src="https://cdn.datatables.net/responsive/2.5.0/js/dataTables.responsive.min.js"></script>
1717

18-
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
18+
<script src="https://cdn.jsdelivr.net/npm/chart.js" defer></script>
1919
<!-- dashboard-engine.js injected dynamically below -->
2020
<!-- Analytics (kept) -->
2121
<script defer data-domain="gradeboundaries.com" src="https://plausible.io/js/script.js"></script>
@@ -139,7 +139,7 @@
139139
<body class="text-gray-800 flex flex-col min-h-screen">
140140
<header class="text-white text-center py-6 shadow-lg">
141141
<h1 class="page-title">OCR Grade Boundaries</h1>
142-
<button id="theme-toggle" class="absolute top-4 right-4">🌙</button>
142+
<button id="theme-toggle" class="absolute top-4 right-4" aria-label="Toggle dark / light mode"></button>
143143
<nav class="mt-4 flex flex-col md:flex-row items-center justify-center gap-2">
144144
<a href="" class="nav-link mx-4 text-base sm:text-lg hover:text-white transition"
145145
>Home</a
@@ -183,7 +183,7 @@ <h2 class="text-2xl font-semibold mb-4">OCR Grade Boundaries</h2>
183183

184184
<!-- ===== CSV DOWNLOAD ===== -->
185185
<div class="text-right my-4">
186-
<p class="site-disclaimer" style="text-align:right"><em>Note: This data is processed from official OCR sources for ease of use. Original rights belong to OCR (Oxford, Cambridge and RSA).</em></p>
186+
<p class="csv-note" style="text-align:right"><em>Note: This data is processed from official OCR sources for ease of use. Original rights belong to OCR (Oxford, Cambridge and RSA).</em></p>
187187
<button id="downloadCSV" class="class-button px-4 py-2 rounded hover:bg-[#2b7a78] transition">Download CSV</button>
188188
</div>
189189

@@ -268,17 +268,19 @@ <h2 class="text-2xl font-semibold mb-4">OCR Grade Boundaries</h2>
268268
</ul>
269269
</nav>
270270
<p class="site-disclaimer">Disclaimer: Data is provided for informational purposes only. We strive for accuracy but cannot guarantee completeness or timeliness. Use at your own discretion.</p>
271-
<p class="site-disclaimer">All exam data is copyright of the respective exam boards. GradeBoundaries.com is an independent educational tool. <a href="/Grade_Boundaries_A_Levels/Disclaimer/">View Full Disclaimer</a></p>
272-
</div>
273-
</footer>
274-
275-
<div id="sticky-disclaimer" class="sticky-disclaimer" style="display:none">
276-
<span>All exam data is copyright of the respective exam boards. GradeBoundaries.com is an independent educational tool. <a href="/Grade_Boundaries_A_Levels/Disclaimer/">View Full Disclaimer</a></span>
277-
<button class="sd-close" aria-label="Close">×</button>
278-
</div>
271+
</div>
272+
</footer>
279273
<script>
280274
(function(){
281-
try{const key='stickyDisclaimerDismissed_v1'; if(localStorage.getItem(key))return; const el=document.getElementById('sticky-disclaimer'); if(!el) return; el.style.display='flex'; el.querySelector('.sd-close').addEventListener('click',function(){localStorage.setItem(key,'1');el.style.display='none';});}catch(e){}
275+
try{
276+
const ul = document.querySelector('footer nav[aria-label="Footer links"] ul');
277+
if (ul && !ul.querySelector('a[href*="Disclaimer"]')){
278+
const sep = document.createElement('li'); sep.innerHTML='&nbsp;|&nbsp;'; ul.appendChild(sep);
279+
const li = document.createElement('li');
280+
const a = document.createElement('a'); a.href='Disclaimer/'; a.className='underline'; a.textContent='Disclaimer';
281+
li.appendChild(a); ul.appendChild(li);
282+
}
283+
}catch(e){}
282284
})();
283285
</script>
284286
<!-- ─── PAGE SCRIPT ─── -->

0 commit comments

Comments
 (0)