PageSourceSearch

https://bradleysmaths.co.uk/index.html

html bradleysmaths.co.uk collected 2026-10-09 00:58:43 UTC 8,656 bytes, 240 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3<!-- OVERRIDES (must stay ABOVE <head>) -->
4<meta name="page-title" content="Bradley's Maths – GCSE & IGCSE Resources">
5<meta name="page-description" content="Master Higher Tier Maths with worksheets, model answers, and predicted papers.">
6<meta name="page-url" content="https://bradleysmaths.co.uk/">
7<meta name="page-og-image" content="/images/01/g_13.png">
8<meta name="page-type" content="homepage">
9
10<head>
11    <!-- Google Analytics -->
vendor: 68 bytes, lines 11-12
11
12    <script async src="https://www.googletagmanager.com/gtag/js?id=
12G-PY6CVXTWP4
vendor: 16 bytes, lines 12-13
12"></script>
13    
13<script>
14      
vendor: 145 bytes, lines 14-17
14window.dataLayer = window.dataLayer || [];
15      function gtag(){dataLayer.push(arguments);}
16      gtag('js', new Date());
17      gtag('config', '
17G-PY6CVXTWP4
vendor: 8 bytes, lines 17-18
17');
18    
18</script>
18
19
20    <!-- Fonts -->
21    <link href="https://fonts.googleapis.com/css2?family=Merriweather:wght@400;600&display=swap" rel="stylesheet">
22
23    <!-- Basic SEO -->
24    <meta charset="UTF-8">
25    <meta name="viewport" content="width=device-width, initial-scale=1.0">
26
27    <!-- PWA App Links -->
28    <link rel="manifest" href="/manifest.json">
29    <meta name="theme-color" content="#5C2092">
30    <link rel="apple-touch-icon" href="/images/app-icon-192.png">
31
32    <!-- DEFAULTS (will be replaced by overrides if present) -->
33    <title>Bradley's Maths</title>
34    <meta name="description" content="Higher Tier GCSE & IGCSE Maths resources. Worksheets, model answers, and predicted papers.">
35
36    <!-- Canonical (dynamic) -->
37    <link id="canonical-link" rel="canonical" href="">
38
39    <!-- Open Graph (dynamic) -->
40    <meta property="og:title" content="">
41    <meta property="og:description" content="">
42    <meta property="og:type" content="">
43    <meta property="og:url" content="">
44    <meta property="og:site_name" content="Bradley's Maths">
45    <meta property="og:image" content="">
46
47    <!-- Styles -->
48    <link rel="stylesheet" href="/styles.css">
49
50    <!-- MathJax -->
51    
51<script>
52      window.MathJax = { tex: { inlineMath: [['$', '$'], ['\\(', '\\)']] } };
53    </script>
53
54    
54<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
54
55
56    <!-- JSON-LD container -->
57    
57<script id="jsonld-block" type="application/ld+json"></script>
57
58
59    <!-- DYNAMIC META SCRIPT -->
60    
60<script>
61      document.addEventListener("DOMContentLoaded", function () {
62
63        // Read overrides
64        const title = document.querySelector('meta[name="page-title"]')?.content || "Bradley's Maths";
65        const desc = document.querySelector('meta[name="page-description"]')?.content || "Higher Tier GCSE & IGCSE Maths resources.";
66        const url = document.querySelector('meta[name="page-url"]')?.content || window.location.href;
67        const img = document.querySelector('meta[name="page-og-image"]')?.content || "/images/social-preview.png";
68        const type = document.querySelector('meta[name="page-type"]')?.content || "webpage";
69
70        // Apply title + description
71        document.title = title;
72        document.querySelector('meta[name="description"]').setAttribute("content", desc);
73
74        // Canonical
75        document.getElementById("canonical-link").setAttribute("href", url);
76
77        // Open Graph
78        document.querySelector('meta[property="og:title"]').setAttribute("content", title);
79        document.querySelector('meta[property="og:description"]').setAttribute("content", desc);
80        document.querySelector('meta[property="og:url"]').setAttribute("content", url);
81        document.querySelector('meta[property="og:image"]').setAttribute("content", img);
82
83        // OG type
84        const ogType = (type === "article") ? "article" :
85                       (type === "homepage") ? "website" :
86                       "website";
87        document.querySelector('meta[property="og:type"]').setAttribute("content", ogType);
88
89        // JSON-LD generation
90        let jsonld = {};
91
92        if (type === "homepage") {
93          jsonld = {
94            "@context": "https://schema.org",
95            "@type": "WebSite",
96            "name": "Bradley's Maths",
97            "url": url,
98            "potentialAction": {
99              "@type": "SearchAction",
100              "target": url + "?q={search_term_string}",
101              "query-input": "required name=search_term_string"
102            }
103          };
104        }
105
106        if (type === "webpage") {
107          jsonld = {
108            "@context": "https://schema.org",
109            "@type": "WebPage",
110            "name": title,
111            "url": url
112          };
113        }
114
115        if (type === "article") {
116          jsonld = {
117            "@context": "https://schema.org",
118            "@type": "Article",
119            "headline": title,
120            "description": desc,
121            "url": url,
122            "image": img,
123            "author": { "@type": "Person", "name": "William Bradley" }
124          };
125        }
126
127        document.getElementById("jsonld-block").textContent = JSON.stringify(jsonld, null, 2);
128      });
129    </script>
129
130
131</head>
132
133<body>
134    <!-- NAVIGATION BAR -->
135   <nav class="navbar">
136        <a href="index.html" class="nav-brand">Bradley's Maths</a>
137        <button class="hamburger" onclick="toggleMenu()">☰</button>
138
139        <div class="nav-links" id="navLinks">
140            <a href="index.html" class="highlight-link">Home</a>
141
142            <a href="unified-revision-hub.html">The Revision Hub</a>
143
144            <a href="blog/index.html">Blog</a>
145
146            <a href="gcse.html">GCSE</a>
147
148            <a href="igcse.html">IGCSE (0580)</a>
149
150            <a href="qa.html">Q&A / Request a Topic</a>
151
152            <a href="https://payhip.com/bradleysmaths">Store</a>
153
154            <a href="https://www.youtube.com/@BradleysMaths" style="color:#ff9999;">YouTube</a>
155    <!-- Hide the dark mode button for now
156            <button id="theme-toggle" class="btn-theme" onclick="toggleTheme()">
157            🌙 Dark Mode
158            </button>
159            -->
160        </div>
161    </nav>
162
163    <div class="credential-bar">
164        <span>Retired British International Head Teacher</span>
165        <span>•</span>
166        <span>UK GCSE & IGCSE Mathematics Specialist</span>
167    </div>
168
169<!-- COURSE PATHWAYS -->
170
171    <h1>Bradley's Maths</h1>
172
173    <h2>Structured, Exam-Focused Mathematics</h2>
174
175    <p class="section-intro">
176        Choose the course you are studying to access structured worksheets,
177        prediction papers and daily exam practice.
178    </p>    
179
180
181    <div class="btn-group">
182        <a href="gcse.html" class="btn btn-large btn-gcse">
183            GCSE Mathematics<br>
184        <span class="btn-sub">AQA • Edexcel • OCR • WJEC</span>
185        </a>
186
187        <a href="igcse.html" class="btn btn-large btn-igcse">
188            Cambridge IGCSE Mathematics<br>
189            <span class="btn-sub">Syllabus 0580</span>
190        </a>
191    </div>
192    
193    <div class="container">
194        <div class="trust-badge">
195            <h2 style="text-align: center; color: #2c3e50;">Trusted by International Educators</h2>
196        </div>
197    <!-- Jeff's Quote -->
198        <div class="resource-card">
199        
200            <p style="font-style: italic;">"I gave your Paper 2 to my students... <strong>I did not find a single wrong answer!</strong> Your solution document is superb. I have described your website to all 40 of my Extended students."</p>
201            <p style="font-weight: bold; margin-top: 10px; color: #34495e;">— J.H., Senior Maths Teacher</p>
202        
203        </div>  
204
205        <!-- Seef's Quote -->
206        <div class="resource-card">
207
208            <p style="font-style: italic;">"These are <strong>brilliant.</strong> Mr. Bradley was our Principal and has many years of experience as an excellent mathematics teacher. I've sent the link to all our Y10 and Y11 students."</p>
209            <p style="font-weight: bold; margin-top: 10px; color: #34495e;">— S. M., IBDP Coordinator and Mathematics Teacher</p>
210   
211        </div>
212    </div>      
213
214
215<!-- FOOTER -->
216    <div class="footer">
217
218        <p>&copy; 2025 Bradley's Maths</p>
219
220    </div>
221
222    <!-- JAVASCRIPT (Keep your existing script here) -->
223    
223<script src="problems-main.js"></script>
223
224    
224<script src="engine.js"></script>
224
225    
225<script src="dark.js"></script>
225
226    <!-- Register Service Worker for PWA -->
227    
227<script>
228      if ('serviceWorker' in navigator) {
229        window.addEventListener('load', () => {
230          navigator.serviceWorker.register('/sw.js').then(reg => {
231            console.log('App ready for download!', reg.scope);
232          }).catch(err => {
233            console.error('App download registration failed:', err);
234          });
235        });
236      }
237    </script>
237
238    
239</body>
240</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.