Skip to content

Commit bb88db5

Browse files
JonJLevesqueclaude
andcommitted
Add SEO foundation: history mode, sitemap, robots.txt, JSON-LD, meta improvements
- Switch Docsify to history mode (removes # from URLs for better indexing) - Add 404.html for GitHub Pages SPA routing compatibility - Create sitemap.xml with 100 URLs across all 31 chapters, one-pagers, and supporting materials - Add robots.txt pointing crawlers to sitemap - Add Book + WebSite JSON-LD structured data to index.html - Improve title tag to target "Project 2025 counter" keyword - Add keyword-rich meta description, keywords, author, and canonical tags Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 9405121 commit bb88db5

4 files changed

Lines changed: 822 additions & 2 deletions

File tree

404.html

Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>Project 2029: The Counter to Project 2025 | Democratic Policy Blueprint</title>
6+
<meta name="description" content="The 414,000-word counter to Project 2025. Covers all 31 federal agencies with specific legislative proposals, Day One executive actions, and a roadmap for the next Democratic administration.">
7+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
8+
<meta name="keywords" content="Project 2025 counter, Project 2029, democratic reform, progressive policy, federal agencies, Heritage Foundation response, Democratic administration">
9+
<meta name="author" content="Project 2029">
10+
<link rel="canonical" href="https://jonjlevesque.github.io/Project2029/">
11+
12+
<!-- Open Graph -->
13+
<meta property="og:title" content="Project 2029: A Mandate for Democratic Renewal">
14+
<meta property="og:description" content="A comprehensive progressive policy blueprint for restoring and transforming American democracy.">
15+
<meta property="og:type" content="website">
16+
<meta property="og:url" content="https://jonjlevesque.github.io/Project2029/">
17+
<meta property="og:image" content="https://jonjlevesque.github.io/Project2029/assets/og-image.png">
18+
19+
<!-- Twitter Card -->
20+
<meta name="twitter:card" content="summary_large_image">
21+
<meta name="twitter:title" content="Project 2029: A Mandate for Democratic Renewal">
22+
<meta name="twitter:description" content="A comprehensive progressive policy blueprint for restoring and transforming American democracy.">
23+
<meta name="twitter:image" content="https://jonjlevesque.github.io/Project2029/assets/og-image.png">
24+
25+
<!-- JSON-LD Structured Data -->
26+
<script type="application/ld+json">
27+
{
28+
"@context": "https://schema.org",
29+
"@type": "Book",
30+
"name": "Project 2029: A Mandate for Democratic Renewal",
31+
"description": "A 414,000+ word comprehensive progressive policy framework and counter to the Heritage Foundation's Project 2025. Covers all federal agencies with specific legislative proposals for a future Democratic administration.",
32+
"url": "https://jonjlevesque.github.io/Project2029/",
33+
"author": {
34+
"@type": "Organization",
35+
"name": "Project 2029"
36+
},
37+
"keywords": "Project 2025 counter, democratic reform, progressive policy, federal agencies, Project 2029, Democratic administration policy, Heritage Foundation response",
38+
"numberOfPages": 414000,
39+
"inLanguage": "en-US",
40+
"license": "https://creativecommons.org/licenses/by-sa/4.0/"
41+
}
42+
</script>
43+
<script type="application/ld+json">
44+
{
45+
"@context": "https://schema.org",
46+
"@type": "WebSite",
47+
"name": "Project 2029",
48+
"url": "https://jonjlevesque.github.io/Project2029/",
49+
"description": "The comprehensive counter to Project 2025 - a 414,000+ word policy blueprint for democratic renewal covering all 31 federal agencies.",
50+
"potentialAction": {
51+
"@type": "SearchAction",
52+
"target": "https://jonjlevesque.github.io/Project2029/#{search_term_string}",
53+
"query-input": "required name=search_term_string"
54+
}
55+
}
56+
</script>
57+
58+
<!-- Favicon -->
59+
<link rel="icon" type="image/png" href="assets/favicon.png">
60+
61+
<!-- Docsify theme (pinned) -->
62+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsify@4.13.1/lib/themes/vue.css"
63+
integrity="sha384-jCK82M2ExfkqAO/MYBKMjP1qC4AvZ4/Duf2gVWOy3RPn26uz+KW5I+9S39za1Fqv"
64+
crossorigin="anonymous">
65+
66+
<!-- Custom theme -->
67+
<link rel="stylesheet" href="assets/custom.css">
68+
</head>
69+
<body>
70+
<div id="app">Loading...</div>
71+
<script>
72+
window.$docsify = {
73+
name: 'Project 2029',
74+
repo: 'https://github.com/JonJLevesque/Project2029',
75+
routerMode: 'history',
76+
basePath: '/Project2029/',
77+
loadSidebar: true,
78+
loadNavbar: false,
79+
coverpage: true,
80+
onlyCover: false,
81+
subMaxLevel: 2,
82+
auto2top: true,
83+
homepage: 'home.md',
84+
notFoundPage: '_404.md',
85+
search: {
86+
placeholder: 'Search Project 2029',
87+
noData: 'No results found.',
88+
depth: 3
89+
},
90+
pagination: {
91+
previousText: 'Previous Chapter',
92+
nextText: 'Next Chapter',
93+
crossChapter: true,
94+
crossChapterText: true
95+
}
96+
}
97+
</script>
98+
99+
<!-- Docsify core (pinned v4.13.1) -->
100+
<script src="https://cdn.jsdelivr.net/npm/docsify@4.13.1/lib/docsify.min.js"
101+
integrity="sha384-KaHhgnx/OTLoJ4J33SSJsF4x1pk4I7q3s5ZOfIDHJYl6IG7Oyn2vNDsHiWJe46fD"
102+
crossorigin="anonymous"></script>
103+
104+
<!-- Search plugin -->
105+
<script src="https://cdn.jsdelivr.net/npm/docsify@4.13.1/lib/plugins/search.min.js"
106+
integrity="sha384-LthJPBJ4RGco78kBY+EmKz5rmISZ5vrtAu3+l2ALQ2mrZHOe6Wyf6knyKjeC4cL6"
107+
crossorigin="anonymous"></script>
108+
109+
<!-- Copy code plugin -->
110+
<script src="https://cdn.jsdelivr.net/npm/docsify-copy-code@2.1.1/dist/docsify-copy-code.min.js"
111+
integrity="sha384-t4d9b4/0dEBkoJ5e77XEPBrqJ790jbFQFmEaTbBqIlTDeGosM1AbZvC1NQwqTg+5"
112+
crossorigin="anonymous"></script>
113+
114+
<!-- Pagination plugin (prev/next chapter nav) -->
115+
<script src="https://cdn.jsdelivr.net/npm/docsify-pagination/dist/docsify-pagination.min.js"
116+
integrity="sha384-uFEp18/1vv2dYlO64J2lOcnbhirAQZPtruqAZZ7PZYoXenm5c+tIs3AqSMjVMRe8"
117+
crossorigin="anonymous"></script>
118+
119+
<!-- Sidebar collapse plugin -->
120+
<script src="https://cdn.jsdelivr.net/npm/docsify-sidebar-collapse/dist/docsify-sidebar-collapse.min.js"
121+
integrity="sha384-lMHOyuqf3B/T/BgfYxUKprN0bdRf8KhVTE11w76Tvtze86XHVSDYzxqNGDGgIi9I"
122+
crossorigin="anonymous"></script>
123+
124+
<!-- Mermaid diagram support -->
125+
<script src="//cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
126+
<script src="//cdn.jsdelivr.net/npm/docsify-mermaid@latest/dist/docsify-mermaid.js"></script>
127+
128+
<!-- GitHub Pages SPA routing fix for history mode -->
129+
<script>
130+
// Redirect from 404 back to the app with the path preserved
131+
var path = window.location.pathname;
132+
if (path !== '/Project2029/' && path !== '/Project2029') {
133+
// Already handled by Docsify history mode
134+
}
135+
</script>
136+
</body>
137+
</html>

index.html

Lines changed: 40 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,12 @@
22
<html lang="en">
33
<head>
44
<meta charset="UTF-8">
5-
<title>Project 2029: A Mandate for Democratic Renewal</title>
6-
<meta name="description" content="A comprehensive progressive policy blueprint for restoring and transforming American democracy — a 414,000+ word, 31-chapter counter to Project 2025.">
5+
<title>Project 2029: The Counter to Project 2025 | Democratic Policy Blueprint</title>
6+
<meta name="description" content="The 414,000-word counter to Project 2025. Covers all 31 federal agencies with specific legislative proposals, Day One executive actions, and a roadmap for the next Democratic administration.">
77
<meta name="viewport" content="width=device-width, initial-scale=1.0">
8+
<meta name="keywords" content="Project 2025 counter, Project 2029, democratic reform, progressive policy, federal agencies, Heritage Foundation response, Democratic administration">
9+
<meta name="author" content="Project 2029">
10+
<link rel="canonical" href="https://jonjlevesque.github.io/Project2029/">
811

912
<!-- Open Graph -->
1013
<meta property="og:title" content="Project 2029: A Mandate for Democratic Renewal">
@@ -19,6 +22,39 @@
1922
<meta name="twitter:description" content="A comprehensive progressive policy blueprint for restoring and transforming American democracy.">
2023
<meta name="twitter:image" content="https://jonjlevesque.github.io/Project2029/assets/og-image.png">
2124

25+
<!-- JSON-LD Structured Data -->
26+
<script type="application/ld+json">
27+
{
28+
"@context": "https://schema.org",
29+
"@type": "Book",
30+
"name": "Project 2029: A Mandate for Democratic Renewal",
31+
"description": "A 414,000+ word comprehensive progressive policy framework and counter to the Heritage Foundation's Project 2025. Covers all federal agencies with specific legislative proposals for a future Democratic administration.",
32+
"url": "https://jonjlevesque.github.io/Project2029/",
33+
"author": {
34+
"@type": "Organization",
35+
"name": "Project 2029"
36+
},
37+
"keywords": "Project 2025 counter, democratic reform, progressive policy, federal agencies, Project 2029, Democratic administration policy, Heritage Foundation response",
38+
"numberOfPages": 414000,
39+
"inLanguage": "en-US",
40+
"license": "https://creativecommons.org/licenses/by-sa/4.0/"
41+
}
42+
</script>
43+
<script type="application/ld+json">
44+
{
45+
"@context": "https://schema.org",
46+
"@type": "WebSite",
47+
"name": "Project 2029",
48+
"url": "https://jonjlevesque.github.io/Project2029/",
49+
"description": "The comprehensive counter to Project 2025 - a 414,000+ word policy blueprint for democratic renewal covering all 31 federal agencies.",
50+
"potentialAction": {
51+
"@type": "SearchAction",
52+
"target": "https://jonjlevesque.github.io/Project2029/#{search_term_string}",
53+
"query-input": "required name=search_term_string"
54+
}
55+
}
56+
</script>
57+
2258
<!-- Favicon -->
2359
<link rel="icon" type="image/png" href="assets/favicon.png">
2460

@@ -36,6 +72,8 @@
3672
window.$docsify = {
3773
name: 'Project 2029',
3874
repo: 'https://github.com/JonJLevesque/Project2029',
75+
routerMode: 'history',
76+
basePath: '/Project2029/',
3977
loadSidebar: true,
4078
loadNavbar: false,
4179
coverpage: true,

robots.txt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
User-agent: *
2+
Allow: /
3+
4+
Sitemap: https://jonjlevesque.github.io/Project2029/sitemap.xml

0 commit comments

Comments
 (0)