jekyll-theme-zer0 0.2.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +56 -0
  3. data/README.md +455 -417
  4. data/_data/navigation/about.yml +2 -0
  5. data/_data/navigation/main.yml +17 -11
  6. data/_data/navigation/quickstart.yml +12 -0
  7. data/_includes/README.md +97 -0
  8. data/_includes/{info-section.html → components/info-section.html} +4 -4
  9. data/_includes/components/mermaid.html +101 -0
  10. data/_includes/content/giscus.html +60 -0
  11. data/_includes/content/intro.html +66 -0
  12. data/_includes/{sitemap.html → content/sitemap.html} +1 -1
  13. data/_includes/{toc.html → content/toc.html} +1 -1
  14. data/_includes/{branding.html → core/branding.html} +2 -2
  15. data/_includes/core/footer.html +167 -0
  16. data/_includes/core/head.html +163 -0
  17. data/_includes/core/header.html +125 -0
  18. data/_includes/landing/landing-install-cards.html +52 -0
  19. data/_includes/landing/landing-quick-links.html +28 -0
  20. data/_includes/navigation/navbar.html +96 -0
  21. data/_includes/navigation/sidebar-left.html +83 -0
  22. data/_includes/{sidebar-right.html → navigation/sidebar-right.html} +3 -10
  23. data/_layouts/README.md +8 -0
  24. data/_layouts/blog.html +2 -2
  25. data/_layouts/default.html +3 -3
  26. data/_layouts/journals.html +9 -80
  27. data/_layouts/landing.html +122 -45
  28. data/_layouts/root.html +6 -8
  29. data/assets/js/back-to-top.js +16 -19
  30. metadata +44 -69
  31. data/_includes/footer.html +0 -57
  32. data/_includes/giscus.html +0 -16
  33. data/_includes/head.html +0 -95
  34. data/_includes/header.html +0 -79
  35. data/_includes/intro.html +0 -68
  36. data/_includes/navbar.html +0 -34
  37. data/_includes/sidebar-left.html +0 -41
  38. data/_includes/toc +0 -7
  39. data/_layouts/javascript.html +0 -63
  40. /data/_includes/{google-analytics.html → analytics/google-analytics.html} +0 -0
  41. /data/_includes/{google-tag-manager-body.html → analytics/google-tag-manager-body.html} +0 -0
  42. /data/_includes/{google-tag-manager-head.html → analytics/google-tag-manager-head.html} +0 -0
  43. /data/_includes/{dev-shortcuts.html → components/dev-shortcuts.html} +0 -0
  44. /data/_includes/{halfmoon.html → components/halfmoon.html} +0 -0
  45. /data/_includes/{js-cdn.html → components/js-cdn.html} +0 -0
  46. /data/_includes/{powered-by.html → components/powered-by.html} +0 -0
  47. /data/_includes/{quick-index.html → components/quick-index.html} +0 -0
  48. /data/_includes/{searchbar.html → components/searchbar.html} +0 -0
  49. /data/_includes/{svg.html → components/svg.html} +0 -0
  50. /data/_includes/{zer0-env-var.html → components/zer0-env-var.html} +0 -0
  51. /data/_includes/{seo.html → content/seo.html} +0 -0
  52. /data/_includes/{style.html → docs/bootstrap-docs.html} +0 -0
  53. /data/_includes/{breadcrumbs.html → navigation/breadcrumbs.html} +0 -0
  54. /data/_includes/{nav_list.html → navigation/nav_list.html} +0 -0
  55. /data/_includes/{sidebar-categories.html → navigation/sidebar-categories.html} +0 -0
  56. /data/_includes/{sidebar-folders.html → navigation/sidebar-folders.html} +0 -0
data/README.md CHANGED
@@ -3,585 +3,623 @@ title: zer0-mistakes
3
3
  sub-title: Jekyll Theme
4
4
  description: Docker-optimized Jekyll theme with AI-powered installation automation and comprehensive error handling.
5
5
  version: 2.0.0
6
+ layout: default
6
7
  tags:
7
8
  - jekyll
8
9
  - docker
9
- - automation
10
- - ai-powered
11
- - error-handling
10
+ - remote-theme
11
+ - github-pages
12
12
  categories:
13
- - bootstrap
14
- - quickstart
13
+ - jekyll-theme
15
14
  - docker
15
+ - bootstrap
16
16
  created: 2024-02-10T23:51:11.480Z
17
- lastmod: 2025-07-03T12:00:00.000Z
17
+ lastmod: 2025-09-21T12:00:00.000Z
18
18
  draft: false
19
- sidebar:
20
- nav: dynamic
21
19
  permalink: /zer0/
22
20
  slug: zer0
23
21
  keywords:
24
22
  - jekyll
25
23
  - docker
26
- - automation
27
- - installation
28
- date: 2025-07-03T12:00:00.000Z
29
- snippet: Jekyll theme installation with Docker optimization
24
+ - remote-theme
25
+ - github-pages
26
+ date: 2025-09-21T12:00:00.000Z
27
+ snippet: Docker-first Jekyll theme with remote theme support
30
28
  comments: true
31
29
  preview: /images/zer0-mistakes-docker.png
32
30
  ---
33
31
 
34
32
  [![pages-build-deployment](https://github.com/bamr87/zer0-mistakes/actions/workflows/pages/pages-build-deployment/badge.svg)](https://github.com/bamr87/zer0-mistakes/actions/workflows/pages/pages-build-deployment)
35
-
36
33
  [![Gem Version](https://badge.fury.io/rb/jekyll-theme-zer0.svg)](https://badge.fury.io/rb/jekyll-theme-zer0)
34
+ [![CI](https://github.com/bamr87/zer0-mistakes/actions/workflows/ci.yml/badge.svg)](https://github.com/bamr87/zer0-mistakes/actions/workflows/ci.yml)
35
+ [![Auto Version Bump](https://github.com/bamr87/zer0-mistakes/actions/workflows/auto-version-bump.yml/badge.svg)](https://github.com/bamr87/zer0-mistakes/actions/workflows/auto-version-bump.yml)
36
+ [![Docker](https://img.shields.io/badge/docker-ready-blue.svg)](https://github.com/bamr87/zer0-mistakes/blob/main/docker-compose.yml)
37
+
38
+ # 🚀 zer0-mistakes Jekyll Theme
37
39
 
38
- # 🌱 Jekyll Theme Seed
40
+ **Professional Jekyll theme** with AI-powered installation, Docker-first development, automated release management, and comprehensive error handling. Built for developers who value reliability, modern workflows, and zero-configuration setup.
39
41
 
40
- This is a **Docker-optimized Jekyll theme** with AI-powered installation automation, and comprehensive error handling. It embodies IT-Journey principles of Design for Failure (DFF), Don't Repeat Yourself (DRY), Keep It Simple (KIS), and AI-Powered Development (AIPD).
42
+ > **🎯 95% installation success rate** **⚡ 2-5 minute setup** **🐳 Universal Docker compatibility** **🤖 AI-powered error recovery** **🚀 Automated releases with semantic versioning**
41
43
 
42
44
  ## 🚀 Quick Start
43
45
 
44
- ### Option 1: One-Line Installation (Recommended)
46
+ ### One-Line Installation (Recommended)
47
+
48
+ **Get started in under 5 minutes with AI-powered setup:**
45
49
 
46
50
  ```bash
51
+ # Create new site with intelligent installation
52
+ mkdir my-awesome-site && cd my-awesome-site
47
53
  curl -fsSL https://raw.githubusercontent.com/bamr87/zer0-mistakes/main/install.sh | bash
48
- ```
49
-
50
- ### Option 2: Manual Installation
51
54
 
52
- ```bash
53
- gh repo clone bamr87/zer0-mistakes
54
- cd zer0-mistakes
55
+ # Start development immediately
55
56
  docker-compose up
57
+ # Visit: http://localhost:4000
56
58
  ```
57
59
 
58
- ## ✨ What Makes This Special
60
+ **What this does automatically:**
61
+ - ✅ Detects your platform (Apple Silicon, Intel, Linux)
62
+ - ✅ Downloads and configures all theme files
63
+ - ✅ Sets up Docker development environment
64
+ - ✅ Creates optimized configurations
65
+ - ✅ Handles errors and provides solutions
59
66
 
60
- ### 🐳 **Docker-First Approach**
67
+ ### 🔧 Manual Installation Options
61
68
 
62
- - **Cross-Platform Compatibility** - Works on Apple Silicon, Intel, and Linux
63
- - **Zero Configuration** - Automatic environment setup and optimization
64
- - **Port Standardization** - Consistent localhost:4000 across all environments
65
- - **Platform Isolation** - No local Ruby/Jekyll installation required
69
+ <details>
70
+ <summary>Click to expand manual installation methods</summary>
66
71
 
67
- ### 🛡️ **Self-Healing Installation**
72
+ #### Method 1: GitHub Remote Theme
73
+ Perfect for GitHub Pages hosting:
68
74
 
69
- - **Error Detection** - Automatically identifies and fixes common issues
70
- - **Content Protection** - Safely handles missing dependencies and broken includes
71
- - **Configuration Optimization** - Creates Docker-compatible development settings
72
- - **Comprehensive Documentation** - Auto-generates troubleshooting guides
75
+ ```bash
76
+ # Add to your _config.yml
77
+ remote_theme: "bamr87/zer0-mistakes"
73
78
 
74
- ### 🧬 **AI-Enhanced Error Handling**
79
+ # Add to your Gemfile
80
+ gem "jekyll-remote-theme"
81
+ ```
75
82
 
76
- - **Predictive Problem Resolution** - Fixes issues before they cause failures
77
- - **Context-Aware Configuration** - Adapts to different project structures
78
- - **Intelligent Fallbacks** - Graceful degradation when components are unavailable
79
- - **Learning System** - Improves based on common installation patterns
83
+ #### Method 2: Fork & Customize
84
+ For extensive theme development:
80
85
 
81
- ## 🚀 Core Features
86
+ ```bash
87
+ # Fork on GitHub, then clone
88
+ gh repo fork bamr87/zer0-mistakes --clone
89
+ cd zer0-mistakes
82
90
 
83
- ### Installation Automation
91
+ # Start development
92
+ docker-compose up
93
+ ```
94
+
95
+ #### Method 3: Local Installation
96
+ Install from local repository:
84
97
 
85
98
  ```bash
86
- # Installs and configures everything automatically
87
- curl -fsSL https://raw.githubusercontent.com/bamr87/zer0-mistakes/main/install.sh | bash
99
+ # Clone the repository
100
+ git clone https://github.com/bamr87/zer0-mistakes.git
101
+ cd zer0-mistakes
88
102
 
89
- # Results in working Docker environment:
90
- docker-compose up # Just works!
103
+ # Install to new directory
104
+ ./install.sh ../my-new-site
105
+ cd ../my-new-site
106
+ docker-compose up
91
107
  ```
92
108
 
93
- ### Error Prevention
109
+ </details>
94
110
 
95
- - **Theme Dependency Resolution** - Handles missing gem themes
96
- - **Include File Protection** - Comments out problematic script includes
97
- - **Plugin Management** - Ensures essential Jekyll plugins are configured
98
- - **Docker Optimization** - Creates container-friendly configurations
111
+ ## What Makes This Special
99
112
 
100
- ### Development Experience
113
+ ### 🤖 **AI-Powered Intelligence**
101
114
 
102
- - **2-5 minute setup** - From zero to running site
103
- - **95%+ success rate** - Reliable installation across environments
104
- - **Comprehensive troubleshooting** - Self-documenting error solutions
105
- - **Zero manual configuration** - Automated optimization for common scenarios
115
+ - **Smart Error Detection** - Automatically identifies and fixes common Jekyll issues
116
+ - **Platform Optimization** - Detects Apple Silicon, Intel, and Linux configurations
117
+ - **Self-Healing Setup** - Recovers from installation failures automatically
118
+ - **Intelligent Diagnostics** - Provides actionable solutions for problems
106
119
 
107
- ## 📊 Evolution Metrics
120
+ ### 🐳 **Docker-First Development**
108
121
 
109
- | Metric | Before | After | Improvement |
110
- |--------|--------|-------|-------------|
111
- | Build Success Rate | ~60% | ~95% | +58% |
112
- | Setup Time | 15-30 min | 2-5 min | -80% |
113
- | Docker Compatibility | Limited | Universal | +100% |
114
- | Error Recovery | Manual | Automatic | +100% |
122
+ - **Universal Compatibility** - Works identically on all platforms
123
+ - **Zero Local Dependencies** - No Ruby/Jekyll installation required
124
+ - **Instant Setup** - `docker-compose up` and you're running
125
+ - **Isolated Environment** - No conflicts with other projects
115
126
 
116
- ## Prerequisites
127
+ ### 🎨 **Modern Design System**
117
128
 
118
- ### Required Tools
129
+ - **Bootstrap 5.3** - Latest responsive framework with dark mode
130
+ - **Professional Layouts** - Blog, landing, documentation, and collection templates
131
+ - **SEO Optimized** - Built-in meta tags, structured data, and social sharing
132
+ - **Performance Focused** - Optimized loading, caching, and Core Web Vitals
119
133
 
120
- - **Docker** - For containerized development environment
121
- - **Git** - For repository management
122
- - **curl** - For one-line installation (or manual download)
134
+ ### 🌐 **Deployment Ready**
123
135
 
124
- ```shell
125
- # Confirm your system information
136
+ - **GitHub Pages** - Zero-config deployment with remote theme
137
+ - **Azure Static Web Apps** - Pre-configured CI/CD workflows
138
+ - **Custom Domains** - SSL/TLS and CDN ready
139
+ - **Multiple Hosting** - Works with Netlify, Vercel, and custom servers
126
140
 
127
- system_profiler SPHardwareDataType | awk '/Model Name:|Model Identifier:|Model Number:|Chip:|System Firmware Version:/ {print $0}'
128
- system_profiler SPSoftwareDataType | awk '/System Version:|Kernel Version:/ {print $0}'
141
+ ### 🤖 **Automated Release Management**
129
142
 
130
- ```
143
+ - **Smart Version Bumping** - Analyzes commits and automatically increments versions
144
+ - **Conventional Commits** - Follows semantic versioning based on commit patterns
145
+ - **Automated Changelogs** - Generates release notes from commit history
146
+ - **RubyGems Publishing** - Automatically publishes gem releases
147
+ - **GitHub Releases** - Creates comprehensive release pages with assets
148
+ - **CI/CD Integration** - Seamless automation with GitHub Actions
131
149
 
132
- ## Prerequisites
133
-
134
- Before we begin, make sure you have the following software installed on your machine:
135
-
136
- - [VS code](https://code.visualstudio.com/) installed on your machine (if you're smart)
137
- - [docker](https://docs.docker.com/get-docker/) installed on your machine (if you're a pro)
138
- - [homebrew](https://brew.sh/) installed on your machine (if you're a cli junkie)
139
- - [git](https://git-scm.com/) installed on your machine (if you want to track the truth)
140
- - [gh cli](https://cli.github.com/) installed on your machine (if you want to publish the truth)
141
-
142
- For step-by-step instructions on how to install these tools, visit the "Quickstart" section of the site here: [Quickstart](/quickstart)
143
-
144
- To use these tools effectively, you need:
145
-
146
- - A GitHub account and a repository where you want to maintain and publish your site.
147
- - A personal access token from GitHub to authenticate with the GitHub API.
148
- - A cup of coffee or your favorite beverage to keep you energized.
149
- - A positive attitude and a sense of curiosity.
150
- - A sense of adventure and a willingness to explore new tools and technologies.
151
- - A growth mindset and a willingness to embrace challenges and learn from mistakes.
152
- - A sense of humor and the ability to laugh at unexpected errors and bugs.
153
- - A supportive community or network of friends and colleagues to ask for help and share your progress.
154
- - A clear goal and motivation to build this project and share your knowledge with the world.
155
- - A spirit of creativity and a desire to express yourself through code and technology.
156
-
157
- More importantly, you need to:
158
-
159
- - Embrace responsibility and ethical, inclusive software development.
160
- - Cultivate empathy and create tools that benefit others.
161
- - Appreciate opportunities and resources for learning and growth.
162
- - Foster curiosity about AI and machine learning.
163
- - Pursue a purpose that enhances productivity and creativity.
164
- - Persevere through challenges with determination.
165
- - Learn from others and share knowledge with humility.
166
- - Believe in technology's potential to improve lives and create positive change.
167
- - Make the learning process fun and engaging.
168
- - Balance work with breaks for well-being.
169
- - Celebrate achievements and share your work with the world.
170
- - Anticipate making a difference in the developer community.
171
- - Find satisfaction and fulfillment in creating value for others.
172
- - Connect with the global community of developers and creators.
173
- - Believe in your ability to create something meaningful and impactful.
174
- - Stand in awe of technology's power to transform ideas into reality.
175
-
176
- ## Confirm Prerequisites
177
-
178
- Make sure you have the following installed on your machine:
179
-
180
- ```shell
181
- # Check if git is installed
182
- if ! git --version > /dev/null 2>&1; then
183
- echo "git is not installed. Installing..."
184
- brew install git
185
- else
186
- echo "git is already installed."
187
- fi
188
-
189
- # Check if gh is installed
190
- if ! gh --version > /dev/null 2>&1; then
191
- echo "gh is not installed. Installing..."
192
- brew install gh
193
- else
194
- echo "gh is already installed."
195
- fi
196
-
197
- # Check if gh is authenticated
198
- if ! gh auth status > /dev/null 2>&1; then
199
- echo "gh is not authenticated. Please authenticate..."
200
- gh auth login
201
- else
202
- echo "gh is already authenticated."
203
- fi
204
-
205
- # Check if Docker is installed
206
- if ! docker --version > /dev/null 2>&1; then
207
- echo "Docker is not installed. Installing..."
208
- brew install --cask docker
209
- else
210
- echo "Docker is already installed."
211
- fi
212
-
213
- # Check if Visual Studio Code is installed
214
- if ! code --version > /dev/null 2>&1; then
215
- echo "Visual Studio Code is not installed. Installing..."
216
- brew install --cask visual-studio-code
217
- else
218
- echo "Visual Studio Code is already installed."
219
- fi
220
- ```
150
+ > 📖 **Learn more**: [Automated Version System Documentation](AUTOMATED_VERSION_SYSTEM.md)
221
151
 
222
- ## Installation
152
+ ### 📊 **Mermaid Diagram Integration** *(New in v0.3.0)*
223
153
 
224
- The zer0-mistakes Jekyll theme can be installed in any repository using the included installation script. This script copies all essential theme files and creates the proper directory structure.
154
+ - **Complete Diagram Support** - Flowcharts, sequence diagrams, class diagrams, state diagrams, ER diagrams, Gantt charts, pie charts, git graphs, journey diagrams, and mindmaps
155
+ - **GitHub Pages Compatible** - Works seamlessly with both local development and GitHub Pages deployment
156
+ - **Conditional Loading** - Only loads Mermaid when needed, optimizing performance
157
+ - **Responsive Design** - Diagrams automatically scale across all devices
158
+ - **Dark Mode Support** - Forest theme optimized for dark mode compatibility
159
+ - **Comprehensive Documentation** - Complete user guide with live examples and troubleshooting
160
+ - **Automated Testing** - 16 automated tests covering all aspects of functionality
225
161
 
226
- ### Quick Installation
162
+ > 📖 **Learn more**: [Mermaid Documentation](/docs/jekyll/mermaid/) • [Integration Tutorial](/docs/jekyll/jekyll-diagram-with-mermaid/) • [Test Suite](/docs/jekyll/mermaid-test-suite/)
227
163
 
228
- ```bash
229
- # Clone this repository
230
- git clone https://github.com/bamr87/zer0-mistakes.git
231
- cd zer0-mistakes
164
+ ## 📋 Prerequisites
165
+
166
+ Before you begin, ensure you have:
167
+
168
+ - **Docker Desktop** - [Download here](https://www.docker.com/products/docker-desktop) (recommended)
169
+ - **Git** - For version control and repository management
170
+ - **Text Editor** - VS Code, Sublime Text, or your preferred editor
171
+
172
+ **Optional but helpful:**
173
+ - **GitHub CLI** - For easier repository management
174
+ - **Ruby 3.0+** - If you prefer local development over Docker
232
175
 
233
- # Install the theme in a new directory
234
- ./install.sh my-new-site
176
+ ## 🎯 Remote Theme Setup
235
177
 
236
- # Or install in current directory
237
- ./install.sh .
178
+ ### Step 1: Create Your Site Repository
179
+
180
+ ```bash
181
+ # Create new repository
182
+ mkdir my-awesome-site
183
+ cd my-awesome-site
184
+ git init
238
185
  ```
239
186
 
240
- ### What Gets Installed
187
+ ### Step 2: Add Remote Theme Configuration
241
188
 
242
- The installation script copies the following essential files:
189
+ Create `_config.yml`:
243
190
 
244
- **Configuration Files:**
191
+ ```yaml
192
+ # Remote theme configuration
193
+ remote_theme: "bamr87/zer0-mistakes"
194
+
195
+ # Site settings
196
+ title: Your Site Title
197
+ email: your-email@example.com
198
+ description: >-
199
+ Your site description here. This will appear in search engines
200
+ and social media previews.
201
+
202
+ # GitHub Pages configuration
203
+ plugins:
204
+ - jekyll-remote-theme
205
+ - jekyll-feed
206
+ - jekyll-sitemap
207
+ - jekyll-seo-tag
208
+ - jekyll-paginate
209
+
210
+ # Build settings
211
+ markdown: kramdown
212
+ highlighter: rouge
213
+ permalink: /:categories/:year/:month/:day/:title/
214
+ paginate: 10
215
+ paginate_path: "/blog/page:num/"
216
+ ```
217
+
218
+ ### Step 3: Add Development Configuration
245
219
 
246
- - `_config.yml` - Main Jekyll configuration
247
- - `_config_dev.yml` - Development configuration
248
- - `frontmatter.json` - VS Code frontmatter configuration
220
+ Create `_config_dev.yml` for local development:
221
+
222
+ ```yaml
223
+ # Development overrides
224
+ url: "http://localhost:4000"
225
+ baseurl: ""
226
+
227
+ # Development plugins
228
+ plugins:
229
+ - jekyll-remote-theme
230
+ - jekyll-feed
231
+ - jekyll-sitemap
232
+ - jekyll-seo-tag
233
+ - jekyll-paginate
234
+ - jekyll-livereload
235
+
236
+ # Development settings
237
+ incremental: true
238
+ livereload: true
239
+ open_url: true
240
+ ```
249
241
 
250
- **Build & Dependency Files:**
242
+ ### Step 4: Create Docker Environment
251
243
 
252
- - `Gemfile` - Ruby dependencies
253
- - `Rakefile` - Build tasks
254
- - `package.json` - Node.js dependencies
244
+ Create `docker-compose.yml`:
255
245
 
256
- **Docker Files:**
246
+ ```yaml
247
+ services:
248
+ jekyll:
249
+ image: jekyll/jekyll:latest
250
+ platform: linux/amd64
251
+ command: jekyll serve --watch --force_polling --config "_config.yml,_config_dev.yml" --host 0.0.0.0 --port 4000
252
+ volumes:
253
+ - ./:/app
254
+ ports:
255
+ - "4000:4000"
256
+ working_dir: /app
257
+ environment:
258
+ JEKYLL_ENV: development
259
+ ```
257
260
 
258
- - `docker-compose.yml` - Multi-container setup
259
- - `Dockerfile` - Container configuration
261
+ ### Step 5: Add Essential Files
260
262
 
261
- **Theme Directories:**
263
+ Create `Gemfile`:
262
264
 
263
- - `_data/` - Site data files and navigation
264
- - `_sass/` - Sass stylesheets and custom styles
265
- - `_includes/` - Reusable template components
266
- - `_layouts/` - Page layout templates
267
- - `assets/` - Static assets (CSS, JS, images)
265
+ ```ruby
266
+ source "https://rubygems.org"
268
267
 
269
- **Static Files:**
268
+ gem "github-pages", group: :jekyll_plugins
269
+ gem "jekyll-remote-theme"
270
270
 
271
- - `404.html` - Custom error page
272
- - `favicon.ico` - Site icon
273
- - `index.md` - Homepage (only if not exists)
271
+ group :jekyll_plugins do
272
+ gem "jekyll-feed"
273
+ gem "jekyll-sitemap"
274
+ gem "jekyll-seo-tag"
275
+ gem "jekyll-paginate"
276
+ end
277
+ ```
274
278
 
275
- **Additional Files:**
279
+ Create `index.md`:
276
280
 
277
- - `.gitignore` - Git ignore rules (only if not exists)
278
- - `INSTALLATION.md` - Setup instructions
281
+ ```markdown
282
+ ---
283
+ layout: home
284
+ title: Home
285
+ ---
279
286
 
280
- ### Installation Options
287
+ # Welcome to Your Site
281
288
 
282
- ```bash
283
- # Show help and usage information
284
- ./install.sh --help
289
+ Your content goes here. This theme provides a solid foundation
290
+ for your Jekyll site with Bootstrap 5 styling and Docker development.
291
+ ```
285
292
 
286
- # Install in current directory
287
- ./install.sh
293
+ ### Step 6: Start Development
288
294
 
289
- # Install in a specific directory
290
- ./install.sh /path/to/my-site
295
+ ```bash
296
+ # Start the development server
297
+ docker-compose up
291
298
 
292
- # Install in a relative directory
293
- ./install.sh ../my-new-site
299
+ # Your site will be available at http://localhost:4000
294
300
  ```
295
301
 
296
- ### After Installation
302
+ ## 🚢 Deployment Options
297
303
 
298
- Once installed, navigate to your new site directory and start developing:
304
+ ### GitHub Pages (Automatic)
299
305
 
300
- ```bash
301
- cd my-new-site
306
+ 1. Push your repository to GitHub
307
+ 2. Go to repository Settings → Pages
308
+ 3. Select source branch (usually `main`)
309
+ 4. Your site will be automatically built and deployed
302
310
 
303
- # Using Docker (recommended)
304
- docker-compose up
311
+ ### Manual Deployment
305
312
 
306
- # Or using local Ruby environment
307
- bundle install
308
- bundle exec jekyll serve --config _config_dev.yml
313
+ ```bash
314
+ # Build production site
315
+ docker-compose run --rm jekyll jekyll build --config "_config.yml"
309
316
 
310
- # Your site will be available at http://localhost:4000
317
+ # Deploy the _site directory to your hosting provider
311
318
  ```
312
319
 
313
- ### Customization
320
+ ## 📦 Installation Script Features
314
321
 
315
- After installation:
322
+ The automated installation script provides:
316
323
 
317
- 1. **Edit Configuration:** Update `_config.yml` with your site details
318
- 2. **Customize Styles:** Modify `_sass/custom.scss` for custom styling
319
- 3. **Add Content:** Create pages in the `pages/` directory
320
- 4. **Update Navigation:** Edit `_data/navigation/` files for site navigation
324
+ - **Smart Detection** - Identifies existing Jekyll sites vs. new setups
325
+ - **Dependency Resolution** - Installs required gems and configurations
326
+ - **Error Recovery** - Fixes common issues automatically
327
+ - **Docker Setup** - Creates optimized Docker Compose environment
328
+ - **GitHub Pages Prep** - Configures for seamless GitHub Pages deployment
321
329
 
322
- For detailed setup instructions, see the `INSTALLATION.md` file created during installation.
330
+ ## 🔧 Prerequisites
323
331
 
324
- ## Environment
332
+ ### Required Software
325
333
 
326
- ### Set your own environment variables
334
+ - **Docker** - For containerized development
335
+ - **Git** - For version control
336
+ - **Text Editor** - VS Code recommended
327
337
 
328
- {% if site.level == 'her0' %}
329
- {% include zer0-env-var.html %}
330
- {% endif %}
338
+ ### Installation Commands
331
339
 
332
- ### Set the default environment variables
340
+ ```bash
341
+ # Install Docker (macOS with Homebrew)
342
+ brew install --cask docker
333
343
 
334
- ```shell
335
- # Or use the following to set the environment variables
344
+ # Install Git (if not already installed)
345
+ brew install git
336
346
 
337
- export GITHOME=~/github
338
- export GHUSER=$(gh api user --jq '.login')
339
- export GIT_REPO=zer0-mistakes
340
- export ZREPO=$GITHOME/$GIT_REPO
347
+ # Verify installations
348
+ docker --version
349
+ git --version
341
350
  ```
342
351
 
343
- ### Add the environment variables to your shell profile (optional)
352
+ ## 🎨 Customization
353
+
354
+ ### Theme Structure
355
+
356
+ ```text
357
+ your-site/
358
+ ├── _config.yml # Main configuration
359
+ ├── _config_dev.yml # Development overrides
360
+ ├── docker-compose.yml # Docker environment
361
+ ├── Gemfile # Ruby dependencies
362
+ ├── index.md # Homepage
363
+ ├── _data/ # Site data files
364
+ ├── _posts/ # Blog posts
365
+ ├── _pages/ # Additional pages
366
+ └── assets/ # Images, CSS, JS
367
+ ```
344
368
 
345
- ```shell
346
- #open Code to edit your shell profile and copy the environment variables
369
+ ### Custom Styling
347
370
 
348
- code ~/.zprofile
349
- ```
371
+ Create `assets/css/custom.css`:
350
372
 
351
- ```shell
352
- # Confirm the environment variables by echoing them
373
+ ```css
374
+ /* Your custom styles here */
375
+ :root {
376
+ --primary-color: #your-color;
377
+ --secondary-color: #your-secondary;
378
+ }
353
379
 
354
- echo $GITHOME # /Users/bamr87/github
355
- echo $GHUSER # bamr87
356
- echo $GIT_REPO # zer0-mistakes
357
- echo $ZREPO # /Users/bamr87/github/zer0-mistakes
380
+ /* Override theme styles */
381
+ .navbar-brand {
382
+ color: var(--primary-color) !important;
383
+ }
358
384
  ```
359
385
 
360
- ### Set your Git email and name
386
+ ### Navigation Setup
361
387
 
362
- ```shell
363
- # Set your Git email and name to tag your commits
388
+ Edit `_data/navigation.yml`:
364
389
 
365
- git config --global user.email "$GHUSER@users.noreply.github.com"
366
- git config --global user.name "$GHUSER"
390
+ ```yaml
391
+ main:
392
+ - title: "Home"
393
+ url: /
394
+ - title: "About"
395
+ url: /about/
396
+ - title: "Blog"
397
+ url: /blog/
398
+ - title: "Contact"
399
+ url: /contact/
367
400
  ```
368
401
 
369
- ### Set your GitHub email using ID (optional)
402
+ ## 🧪 Testing & Validation
370
403
 
371
- See [here](https://github.com/settings/emails) for details.
404
+ ### Quick Health Check
372
405
 
373
- ```shell
374
- # If you didnt already set it in the previous step
375
- # FIXME: quotes in comments dont work
406
+ After installation, verify everything is working:
376
407
 
377
- echo "What is your Github ID?"
378
- read GIT_ID
408
+ ```bash
409
+ # 1. Check installation files
410
+ ls -la _config.yml docker-compose.yml INSTALLATION.md
411
+
412
+ # 2. Validate configuration
413
+ docker-compose config # Should show no errors
414
+ ruby -e "require 'yaml'; YAML.load_file('_config.yml')" # Should load without errors
415
+
416
+ # 3. Test Docker environment
417
+ docker-compose up -d # Start in background
418
+ sleep 30 # Wait for Jekyll to start
419
+ curl -I http://localhost:4000 # Should return HTTP 200 OK
420
+ docker-compose down # Stop services
379
421
  ```
380
422
 
381
- ```shell
382
- # Set your email using ID
423
+ ### 🔬 Comprehensive Test Suite
383
424
 
384
- git config --global user.email "$GIT_ID+$GHUSER@users.noreply.github.com"
425
+ Our testing framework validates the entire installation and deployment process:
426
+
427
+ #### Quick Validation (30 seconds)
428
+ ```bash
429
+ # Fast validation without Docker
430
+ ./test/validate_installation.sh
385
431
  ```
386
432
 
387
- ```shell
388
- # confirm your email
433
+ #### Docker Deployment Test (2-3 minutes)
434
+ ```bash
435
+ # Test Docker-specific functionality
436
+ ./test/test_docker_deployment.sh --verbose
389
437
 
390
- git config -l
438
+ # Keep test site for inspection
439
+ ./test/test_docker_deployment.sh --no-cleanup
391
440
  ```
392
441
 
393
- ## Initialize your new github repository
442
+ #### Complete Installation Test (3-5 minutes)
443
+ ```bash
444
+ # Test all installation methods
445
+ ./test/test_installation_complete.sh
394
446
 
395
- [gh cli docs](https://cli.github.com/manual/)
447
+ # Skip remote tests for faster execution
448
+ ./test/test_installation_complete.sh --skip-remote --verbose
449
+ ```
396
450
 
397
- ```shell
398
- # Create your github home directory and repo
451
+ #### End-to-End Deployment Test (5-10 minutes)
452
+ ```bash
453
+ # Full deployment workflow validation
454
+ ./test/test_deployment_complete.sh
399
455
 
400
- mkdir -p $ZREPO
456
+ # Skip Docker if unavailable
457
+ ./test/test_deployment_complete.sh --skip-docker
401
458
  ```
402
459
 
403
- ```shell
404
- # Initialize your github repository
460
+ ### 🎯 Test Results Interpretation
405
461
 
406
- gh repo create $GIT_REPO --gitignore Jekyll -l mit --public
407
- ```
462
+ **✅ Success Indicators:**
463
+ - HTTP 200 OK response from `http://localhost:4000`
464
+ - Jekyll logs show "Server running... press ctrl-c to stop"
465
+ - Site content includes zer0-mistakes theme elements
466
+ - Live reload header present (`X-Rack-Livereload: 1`)
467
+ - Build time under 5 seconds
408
468
 
409
- ```shell
410
- # If new repo, initialize it
469
+ **⚠️ Common Issues:**
470
+ - **Port conflicts:** Use `docker-compose run -p 4001:4000 jekyll`
471
+ - **Volume mounting:** Use home directory instead of `/tmp`
472
+ - **Bundle install slow:** Normal for first run (60-90 seconds)
473
+ - **Repository errors:** Check `PAGES_REPO_NWO` environment variable
411
474
 
412
- cd $ZREPO
413
- git init
414
- git remote add origin https://github.com/${GHUSER}/${GIT_REPO}.git
415
- git pull origin main
416
- curl https://raw.githubusercontent.com/bamr87/it-journey/master/zer0.md > README.md
417
- git add README.md
418
- git commit -m "Init $GIT_REPO"
419
- git branch -M main
420
- git push -u origin main
475
+ **❌ Failure Indicators:**
476
+ - Gemfile contains `gemspec` (should be site-configured)
477
+ - Docker container exits immediately
478
+ - `_config.yml` syntax errors
479
+ - Missing theme files or directories
480
+
481
+ ### 🎉 Validated Test Results
482
+
483
+ **Latest Test Results (September 21, 2025):**
484
+ ```
485
+ ✅ Docker Deployment Test: 5/5 tests PASSED (100% success rate)
486
+ ✅ Installation Process: All files and directories created correctly
487
+ ✅ Gemfile Configuration: Properly configured for Jekyll sites
488
+ ✅ Docker Volume Mounting: Working correctly in home directory
489
+ ✅ Environment Variables: PAGES_REPO_NWO properly configured
490
+ ✅ Jekyll Build & Serve: Site accessible at http://localhost:4000
491
+ ✅ Performance: Bundle install ~60s, Jekyll build ~2.3s
421
492
  ```
422
493
 
423
- ### Checkpoint - Github Repo Initialized
494
+ **Test Environment:**
495
+ - **OS:** macOS (Apple Silicon)
496
+ - **Docker:** Available and functional
497
+ - **Ruby:** 2.6.10 (system)
498
+ - **Jekyll:** 3.9.5 (via GitHub Pages gem)
499
+ - **Build Time:** 2.315 seconds
500
+ - **Bundle Install:** 98 gems installed successfully
424
501
 
425
- Go to your new github repository.
502
+ The theme installation and deployment process has been **thoroughly tested and validated** across multiple scenarios.
426
503
 
427
- ```shell
428
- # Open your new github repository in the browser
504
+ ## 🛠️ Troubleshooting
429
505
 
430
- open https://github.com/${GHUSER}/${GIT_REPO}
506
+ ### Quick Fixes
431
507
 
508
+ **🐳 Docker Issues:**
509
+ ```bash
510
+ # Restart Docker Desktop
511
+ # Then rebuild containers
512
+ docker-compose down && docker-compose up --build
432
513
  ```
433
514
 
434
- <a id="repo-link"></a>
515
+ **⚡ Port Conflicts:**
516
+ ```bash
517
+ # Use different port
518
+ docker-compose run -p 4001:4000 jekyll
519
+ ```
435
520
 
436
- ![Checkpoint 1](/assets/images/zer0-checkpoint-1.png)
521
+ **🍎 Apple Silicon Issues:**
522
+ ```bash
523
+ # Force platform if needed
524
+ docker-compose up --build
525
+ # The linux/amd64 platform is already configured
526
+ ```
437
527
 
438
- ## Initialize Jekyll
528
+ ### Common Issues
439
529
 
440
- ### Create Gemfile
530
+ #### Docker Container Won't Start
441
531
 
442
- ```shell
443
- # Create a new Gemfile
444
- cd $ZREPO
445
- touch Gemfile
532
+ ```bash
533
+ # Check Docker is running
534
+ docker ps
446
535
 
447
- # Write the non-commented lines to the Gemfile
448
- echo 'source "https://rubygems.org"' >> Gemfile
449
- echo "gem 'github-pages' , '231'" >> Gemfile
450
- echo "gem 'jekyll' , '3.9.5'" >> Gemfile
451
- echo "gem 'jekyll-theme-zer0' , '0.1.2'" >> Gemfile
452
- echo "group :jekyll_plugins do" >> Gemfile
453
- echo " gem 'jekyll-feed', \"~> 0.17\"" >> Gemfile
454
- echo " gem 'jekyll-sitemap' , \"~> 1.4.0\"" >> Gemfile
455
- echo " gem 'jekyll-seo-tag', \"~> 2.8.0\"" >> Gemfile
456
- echo " gem 'jekyll-paginate', '~> 1.1'" >> Gemfile
457
- echo "end" >> Gemfile
536
+ # Rebuild container
537
+ docker-compose down
538
+ docker-compose up --build
458
539
  ```
459
540
 
460
- ### Configure Jekyll
541
+ #### Theme Not Loading
542
+
543
+ ```bash
544
+ # Verify remote_theme setting in _config.yml
545
+ remote_theme: "bamr87/zer0-mistakes"
461
546
 
462
- ```shell
463
- code _config.yml
547
+ # Check Gemfile includes jekyll-remote-theme
548
+ gem "jekyll-remote-theme"
464
549
  ```
465
550
 
466
- ```yaml
467
- theme: jekyll-theme-zer0
551
+ #### Port Already in Use
468
552
 
469
- title: zer0-mistakes
470
- email: bamr87@zer0-mistakes.com
471
- description: >- # this means to ignore newlines until "baseurl:"
472
- Write an awesome description for your new site here. You can edit this
473
- line in _config.yml. It will appear in your document head meta (for
474
- Google search results) and in your feed.xml site description.
475
- baseurl: null # the subpath of your site, e.g. /blog
476
- url: null # the base hostname & protocol for your site, e.g. http://example.com
477
- twitter_username: bamr87
478
- github_username: bamr87
479
- ```
553
+ ```bash
554
+ # Find process using port 4000
555
+ lsof -i :4000
480
556
 
481
- ### Create Dockerfile
482
-
483
- ```shell
484
- # Create a new Dockerfile
485
- cd $ZREPO
486
- touch Dockerfile
487
-
488
- # Write the content to the Dockerfile
489
- echo "# Use an official Ruby runtime as a parent image" >> Dockerfile
490
- echo "FROM ruby:2.7.4" >> Dockerfile
491
- echo "# escape=\\" >> Dockerfile
492
- echo "ENV GITHUB_GEM_VERSION 231" >> Dockerfile
493
- echo "ENV JSON_GEM_VERSION 1.8.6" >> Dockerfile
494
- echo "ENV GIT_REPO ${GIT_REPO}" >> Dockerfile
495
- echo "WORKDIR /app" >> Dockerfile
496
- echo "ADD . /app" >> Dockerfile
497
- echo "RUN gem update --system 3.3.22" >> Dockerfile
498
- echo "RUN bundle update" >> Dockerfile
499
- echo "RUN bundle install" >> Dockerfile
500
- echo "RUN bundle clean --force" >> Dockerfile
501
- echo "EXPOSE 4000" >> Dockerfile
502
- echo 'CMD ["bundle", "exec", "jekyll", "serve", "--host", "0.0.0.0"]' >> Dockerfile
557
+ # Or use different port
558
+ docker-compose run -p 4001:4000 jekyll
503
559
  ```
504
560
 
505
- ```shell
506
- # build the docker image based on the Dockerfile
507
- docker build -t ${GIT_REPO} .
508
- ```
561
+ #### GitHub Pages Build Fails
509
562
 
510
- ```shell
511
- # Run the container in detached mode
512
- docker run -d -p 4000:4000 -v ${ZREPO}:/app --name zer0_container ${GIT_REPO}
563
+ - Ensure `jekyll-remote-theme` plugin is in `_config.yml`
564
+ - Check that all plugins are GitHub Pages compatible
565
+ - Verify `_config.yml` syntax is valid YAML
513
566
 
514
- # Start the container and run the CMD line from the Dockerfile
515
- docker start zer0_container
567
+ ### Development Tips
516
568
 
517
- # Attach to the running container
518
- docker exec -it zer0_container /bin/bash
519
- ```
569
+ ```bash
570
+ # View container logs
571
+ docker-compose logs -f jekyll
520
572
 
521
- ## Checkpoint - Jekyll Initialized
573
+ # Clean Jekyll cache
574
+ docker-compose run --rm jekyll jekyll clean
522
575
 
523
- ```shell
524
- open http://localhost:4000/
576
+ # Bundle install in container
577
+ docker-compose run --rm jekyll bundle install
578
+
579
+ # Access container shell
580
+ docker-compose exec jekyll bash
525
581
  ```
526
582
 
527
- ![](/assets/images/zer0-checkpoint-2.png)
583
+ ## 🤝 Contributing
528
584
 
529
- ```shell
530
- code _config.yml
531
- ```
585
+ We welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details.
532
586
 
533
- ```yaml
534
- title: zer0-mistakes
535
- email: bamr87@zer0-mistakes.com
536
- description: >- # this means to ignore newlines until "baseurl:"
537
- Write an awesome description for your new site here. You can edit this
538
- line in _config.yml. It will appear in your document head meta (for
539
- Google search results) and in your feed.xml site description.
540
- baseurl: null # the subpath of your site, e.g. /blog
541
- url: null # the base hostname & protocol for your site, e.g. http://example.com
542
- twitter_username: bamr87
543
- github_username: bamr87
544
- ```
587
+ ### Development Setup
588
+
589
+ ```bash
590
+ # Fork and clone the repository
591
+ git clone https://github.com/YOUR-USERNAME/zer0-mistakes.git
592
+ cd zer0-mistakes
545
593
 
546
- ## Convert zer0.md to zer0.sh using Python
547
-
548
- ```python
549
- def convert_md_to_files(md_file_path):
550
- language_files = {}
551
- language_mode = None
552
- language_extensions = {'python': '.py', 'shell': '.sh'}
553
- shebang_lines = {'python': '#!/usr/bin/env python3\n', 'shell': '#!/bin/bash\n'}
554
-
555
- with open(md_file_path, 'r') as md_file:
556
- for line in md_file:
557
- if line.startswith('```'):
558
- if language_mode:
559
- # End of a language block, switch back to markdown mode
560
- language_mode = None
561
- else:
562
- # Start of a language block, open a new file for this language if not already open
563
- language = line.strip('`\n')
564
- if language in language_extensions:
565
- language_mode = language
566
- if language not in language_files:
567
- language_file = open(md_file_path.replace('.md', language_extensions[language]), 'w')
568
- if language in shebang_lines:
569
- language_file.write(shebang_lines[language])
570
- language_files[language] = language_file
571
- continue
572
-
573
- if language_mode:
574
- language_files[language_mode].write(line)
575
-
576
- # Close all open language files
577
- for language_file in language_files.values():
578
- language_file.close()
579
-
580
- convert_md_to_files('zer0.md')
594
+ # Create feature branch
595
+ git checkout -b feature/amazing-feature
596
+
597
+ # Make changes and test
598
+ docker-compose up
599
+
600
+ # Commit and push
601
+ git commit -m "Add amazing feature"
602
+ git push origin feature/amazing-feature
581
603
  ```
582
604
 
583
- ## Config file
605
+ ## 📄 License
584
606
 
585
- ```yaml
586
- {% include_relative _config.yml %}
587
- ```
607
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
608
+
609
+ ## 🙏 Acknowledgments
610
+
611
+ - Built with [Jekyll](https://jekyllrb.com/) static site generator
612
+ - Styled with [Bootstrap 5](https://getbootstrap.com/) framework
613
+ - Containerized with [Docker](https://docker.com/) for consistent development
614
+ - Inspired by IT-Journey principles of reliable, self-healing software
615
+
616
+ ## 📞 Support
617
+
618
+ - **Documentation**: [Theme Documentation](https://bamr87.github.io/zer0-mistakes/)
619
+ - **Issues**: [GitHub Issues](https://github.com/bamr87/zer0-mistakes/issues)
620
+ - **Discussions**: [GitHub Discussions](https://github.com/bamr87/zer0-mistakes/discussions)
621
+ - **Email**: [support@zer0-mistakes.com](mailto:support@zer0-mistakes.com)
622
+
623
+ ---
624
+
625
+ Built with ❤️ for the Jekyll community