jekyll-theme-zer0 0.2.0 → 0.2.1

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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +16 -0
  3. data/README.md +443 -417
  4. data/_data/navigation/main.yml +15 -11
  5. data/_data/navigation/quickstart.yml +12 -0
  6. data/_includes/README.md +97 -0
  7. data/_includes/{info-section.html → components/info-section.html} +4 -4
  8. data/_includes/content/giscus.html +60 -0
  9. data/_includes/content/intro.html +66 -0
  10. data/_includes/{sitemap.html → content/sitemap.html} +1 -1
  11. data/_includes/{toc.html → content/toc.html} +1 -1
  12. data/_includes/{branding.html → core/branding.html} +2 -2
  13. data/_includes/core/footer.html +167 -0
  14. data/_includes/core/head.html +158 -0
  15. data/_includes/core/header.html +125 -0
  16. data/_includes/landing/landing-install-cards.html +52 -0
  17. data/_includes/landing/landing-quick-links.html +28 -0
  18. data/_includes/navigation/navbar.html +96 -0
  19. data/_includes/navigation/sidebar-left.html +83 -0
  20. data/_includes/{sidebar-right.html → navigation/sidebar-right.html} +3 -10
  21. data/_layouts/blog.html +2 -2
  22. data/_layouts/default.html +3 -3
  23. data/_layouts/journals.html +9 -80
  24. data/_layouts/landing.html +122 -45
  25. data/_layouts/root.html +6 -8
  26. data/assets/js/back-to-top.js +16 -19
  27. metadata +40 -66
  28. data/_includes/footer.html +0 -57
  29. data/_includes/giscus.html +0 -16
  30. data/_includes/head.html +0 -95
  31. data/_includes/header.html +0 -79
  32. data/_includes/intro.html +0 -68
  33. data/_includes/navbar.html +0 -34
  34. data/_includes/sidebar-left.html +0 -41
  35. data/_includes/toc +0 -7
  36. data/_layouts/javascript.html +0 -63
  37. /data/_includes/{google-analytics.html → analytics/google-analytics.html} +0 -0
  38. /data/_includes/{google-tag-manager-body.html → analytics/google-tag-manager-body.html} +0 -0
  39. /data/_includes/{google-tag-manager-head.html → analytics/google-tag-manager-head.html} +0 -0
  40. /data/_includes/{dev-shortcuts.html → components/dev-shortcuts.html} +0 -0
  41. /data/_includes/{halfmoon.html → components/halfmoon.html} +0 -0
  42. /data/_includes/{js-cdn.html → components/js-cdn.html} +0 -0
  43. /data/_includes/{powered-by.html → components/powered-by.html} +0 -0
  44. /data/_includes/{quick-index.html → components/quick-index.html} +0 -0
  45. /data/_includes/{searchbar.html → components/searchbar.html} +0 -0
  46. /data/_includes/{svg.html → components/svg.html} +0 -0
  47. /data/_includes/{zer0-env-var.html → components/zer0-env-var.html} +0 -0
  48. /data/_includes/{seo.html → content/seo.html} +0 -0
  49. /data/_includes/{style.html → docs/bootstrap-docs.html} +0 -0
  50. /data/_includes/{breadcrumbs.html → navigation/breadcrumbs.html} +0 -0
  51. /data/_includes/{nav_list.html → navigation/nav_list.html} +0 -0
  52. /data/_includes/{sidebar-categories.html → navigation/sidebar-categories.html} +0 -0
  53. /data/_includes/{sidebar-folders.html → navigation/sidebar-folders.html} +0 -0
data/README.md CHANGED
@@ -3,585 +3,611 @@ 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"
78
+
79
+ # Add to your Gemfile
80
+ gem "jekyll-remote-theme"
81
+ ```
73
82
 
74
- ### 🧬 **AI-Enhanced Error Handling**
83
+ #### Method 2: Fork & Customize
84
+ For extensive theme development:
75
85
 
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
86
+ ```bash
87
+ # Fork on GitHub, then clone
88
+ gh repo fork bamr87/zer0-mistakes --clone
89
+ cd zer0-mistakes
80
90
 
81
- ## 🚀 Core Features
91
+ # Start development
92
+ docker-compose up
93
+ ```
82
94
 
83
- ### Installation Automation
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
+ ## 📋 Prerequisites
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
+ Before you begin, ensure you have:
225
155
 
226
- ### Quick Installation
156
+ - **Docker Desktop** - [Download here](https://www.docker.com/products/docker-desktop) (recommended)
157
+ - **Git** - For version control and repository management
158
+ - **Text Editor** - VS Code, Sublime Text, or your preferred editor
227
159
 
228
- ```bash
229
- # Clone this repository
230
- git clone https://github.com/bamr87/zer0-mistakes.git
231
- cd zer0-mistakes
160
+ **Optional but helpful:**
161
+ - **GitHub CLI** - For easier repository management
162
+ - **Ruby 3.0+** - If you prefer local development over Docker
232
163
 
233
- # Install the theme in a new directory
234
- ./install.sh my-new-site
164
+ ## 🎯 Remote Theme Setup
235
165
 
236
- # Or install in current directory
237
- ./install.sh .
166
+ ### Step 1: Create Your Site Repository
167
+
168
+ ```bash
169
+ # Create new repository
170
+ mkdir my-awesome-site
171
+ cd my-awesome-site
172
+ git init
238
173
  ```
239
174
 
240
- ### What Gets Installed
175
+ ### Step 2: Add Remote Theme Configuration
241
176
 
242
- The installation script copies the following essential files:
177
+ Create `_config.yml`:
243
178
 
244
- **Configuration Files:**
179
+ ```yaml
180
+ # Remote theme configuration
181
+ remote_theme: "bamr87/zer0-mistakes"
182
+
183
+ # Site settings
184
+ title: Your Site Title
185
+ email: your-email@example.com
186
+ description: >-
187
+ Your site description here. This will appear in search engines
188
+ and social media previews.
189
+
190
+ # GitHub Pages configuration
191
+ plugins:
192
+ - jekyll-remote-theme
193
+ - jekyll-feed
194
+ - jekyll-sitemap
195
+ - jekyll-seo-tag
196
+ - jekyll-paginate
197
+
198
+ # Build settings
199
+ markdown: kramdown
200
+ highlighter: rouge
201
+ permalink: /:categories/:year/:month/:day/:title/
202
+ paginate: 10
203
+ paginate_path: "/blog/page:num/"
204
+ ```
245
205
 
246
- - `_config.yml` - Main Jekyll configuration
247
- - `_config_dev.yml` - Development configuration
248
- - `frontmatter.json` - VS Code frontmatter configuration
206
+ ### Step 3: Add Development Configuration
249
207
 
250
- **Build & Dependency Files:**
208
+ Create `_config_dev.yml` for local development:
251
209
 
252
- - `Gemfile` - Ruby dependencies
253
- - `Rakefile` - Build tasks
254
- - `package.json` - Node.js dependencies
210
+ ```yaml
211
+ # Development overrides
212
+ url: "http://localhost:4000"
213
+ baseurl: ""
214
+
215
+ # Development plugins
216
+ plugins:
217
+ - jekyll-remote-theme
218
+ - jekyll-feed
219
+ - jekyll-sitemap
220
+ - jekyll-seo-tag
221
+ - jekyll-paginate
222
+ - jekyll-livereload
223
+
224
+ # Development settings
225
+ incremental: true
226
+ livereload: true
227
+ open_url: true
228
+ ```
255
229
 
256
- **Docker Files:**
230
+ ### Step 4: Create Docker Environment
257
231
 
258
- - `docker-compose.yml` - Multi-container setup
259
- - `Dockerfile` - Container configuration
232
+ Create `docker-compose.yml`:
260
233
 
261
- **Theme Directories:**
234
+ ```yaml
235
+ services:
236
+ jekyll:
237
+ image: jekyll/jekyll:latest
238
+ platform: linux/amd64
239
+ command: jekyll serve --watch --force_polling --config "_config.yml,_config_dev.yml" --host 0.0.0.0 --port 4000
240
+ volumes:
241
+ - ./:/app
242
+ ports:
243
+ - "4000:4000"
244
+ working_dir: /app
245
+ environment:
246
+ JEKYLL_ENV: development
247
+ ```
262
248
 
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)
249
+ ### Step 5: Add Essential Files
268
250
 
269
- **Static Files:**
251
+ Create `Gemfile`:
270
252
 
271
- - `404.html` - Custom error page
272
- - `favicon.ico` - Site icon
273
- - `index.md` - Homepage (only if not exists)
253
+ ```ruby
254
+ source "https://rubygems.org"
274
255
 
275
- **Additional Files:**
256
+ gem "github-pages", group: :jekyll_plugins
257
+ gem "jekyll-remote-theme"
276
258
 
277
- - `.gitignore` - Git ignore rules (only if not exists)
278
- - `INSTALLATION.md` - Setup instructions
259
+ group :jekyll_plugins do
260
+ gem "jekyll-feed"
261
+ gem "jekyll-sitemap"
262
+ gem "jekyll-seo-tag"
263
+ gem "jekyll-paginate"
264
+ end
265
+ ```
279
266
 
280
- ### Installation Options
267
+ Create `index.md`:
281
268
 
282
- ```bash
283
- # Show help and usage information
284
- ./install.sh --help
269
+ ```markdown
270
+ ---
271
+ layout: home
272
+ title: Home
273
+ ---
274
+
275
+ # Welcome to Your Site
285
276
 
286
- # Install in current directory
287
- ./install.sh
277
+ Your content goes here. This theme provides a solid foundation
278
+ for your Jekyll site with Bootstrap 5 styling and Docker development.
279
+ ```
288
280
 
289
- # Install in a specific directory
290
- ./install.sh /path/to/my-site
281
+ ### Step 6: Start Development
291
282
 
292
- # Install in a relative directory
293
- ./install.sh ../my-new-site
283
+ ```bash
284
+ # Start the development server
285
+ docker-compose up
286
+
287
+ # Your site will be available at http://localhost:4000
294
288
  ```
295
289
 
296
- ### After Installation
290
+ ## 🚢 Deployment Options
297
291
 
298
- Once installed, navigate to your new site directory and start developing:
292
+ ### GitHub Pages (Automatic)
299
293
 
300
- ```bash
301
- cd my-new-site
294
+ 1. Push your repository to GitHub
295
+ 2. Go to repository Settings → Pages
296
+ 3. Select source branch (usually `main`)
297
+ 4. Your site will be automatically built and deployed
302
298
 
303
- # Using Docker (recommended)
304
- docker-compose up
299
+ ### Manual Deployment
305
300
 
306
- # Or using local Ruby environment
307
- bundle install
308
- bundle exec jekyll serve --config _config_dev.yml
301
+ ```bash
302
+ # Build production site
303
+ docker-compose run --rm jekyll jekyll build --config "_config.yml"
309
304
 
310
- # Your site will be available at http://localhost:4000
305
+ # Deploy the _site directory to your hosting provider
311
306
  ```
312
307
 
313
- ### Customization
308
+ ## 📦 Installation Script Features
314
309
 
315
- After installation:
310
+ The automated installation script provides:
316
311
 
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
312
+ - **Smart Detection** - Identifies existing Jekyll sites vs. new setups
313
+ - **Dependency Resolution** - Installs required gems and configurations
314
+ - **Error Recovery** - Fixes common issues automatically
315
+ - **Docker Setup** - Creates optimized Docker Compose environment
316
+ - **GitHub Pages Prep** - Configures for seamless GitHub Pages deployment
321
317
 
322
- For detailed setup instructions, see the `INSTALLATION.md` file created during installation.
318
+ ## 🔧 Prerequisites
323
319
 
324
- ## Environment
320
+ ### Required Software
325
321
 
326
- ### Set your own environment variables
322
+ - **Docker** - For containerized development
323
+ - **Git** - For version control
324
+ - **Text Editor** - VS Code recommended
327
325
 
328
- {% if site.level == 'her0' %}
329
- {% include zer0-env-var.html %}
330
- {% endif %}
326
+ ### Installation Commands
331
327
 
332
- ### Set the default environment variables
328
+ ```bash
329
+ # Install Docker (macOS with Homebrew)
330
+ brew install --cask docker
333
331
 
334
- ```shell
335
- # Or use the following to set the environment variables
332
+ # Install Git (if not already installed)
333
+ brew install git
336
334
 
337
- export GITHOME=~/github
338
- export GHUSER=$(gh api user --jq '.login')
339
- export GIT_REPO=zer0-mistakes
340
- export ZREPO=$GITHOME/$GIT_REPO
335
+ # Verify installations
336
+ docker --version
337
+ git --version
341
338
  ```
342
339
 
343
- ### Add the environment variables to your shell profile (optional)
340
+ ## 🎨 Customization
341
+
342
+ ### Theme Structure
343
+
344
+ ```text
345
+ your-site/
346
+ ├── _config.yml # Main configuration
347
+ ├── _config_dev.yml # Development overrides
348
+ ├── docker-compose.yml # Docker environment
349
+ ├── Gemfile # Ruby dependencies
350
+ ├── index.md # Homepage
351
+ ├── _data/ # Site data files
352
+ ├── _posts/ # Blog posts
353
+ ├── _pages/ # Additional pages
354
+ └── assets/ # Images, CSS, JS
355
+ ```
344
356
 
345
- ```shell
346
- #open Code to edit your shell profile and copy the environment variables
357
+ ### Custom Styling
347
358
 
348
- code ~/.zprofile
349
- ```
359
+ Create `assets/css/custom.css`:
350
360
 
351
- ```shell
352
- # Confirm the environment variables by echoing them
361
+ ```css
362
+ /* Your custom styles here */
363
+ :root {
364
+ --primary-color: #your-color;
365
+ --secondary-color: #your-secondary;
366
+ }
353
367
 
354
- echo $GITHOME # /Users/bamr87/github
355
- echo $GHUSER # bamr87
356
- echo $GIT_REPO # zer0-mistakes
357
- echo $ZREPO # /Users/bamr87/github/zer0-mistakes
368
+ /* Override theme styles */
369
+ .navbar-brand {
370
+ color: var(--primary-color) !important;
371
+ }
358
372
  ```
359
373
 
360
- ### Set your Git email and name
374
+ ### Navigation Setup
361
375
 
362
- ```shell
363
- # Set your Git email and name to tag your commits
376
+ Edit `_data/navigation.yml`:
364
377
 
365
- git config --global user.email "$GHUSER@users.noreply.github.com"
366
- git config --global user.name "$GHUSER"
378
+ ```yaml
379
+ main:
380
+ - title: "Home"
381
+ url: /
382
+ - title: "About"
383
+ url: /about/
384
+ - title: "Blog"
385
+ url: /blog/
386
+ - title: "Contact"
387
+ url: /contact/
367
388
  ```
368
389
 
369
- ### Set your GitHub email using ID (optional)
390
+ ## 🧪 Testing & Validation
370
391
 
371
- See [here](https://github.com/settings/emails) for details.
392
+ ### Quick Health Check
372
393
 
373
- ```shell
374
- # If you didnt already set it in the previous step
375
- # FIXME: quotes in comments dont work
394
+ After installation, verify everything is working:
376
395
 
377
- echo "What is your Github ID?"
378
- read GIT_ID
396
+ ```bash
397
+ # 1. Check installation files
398
+ ls -la _config.yml docker-compose.yml INSTALLATION.md
399
+
400
+ # 2. Validate configuration
401
+ docker-compose config # Should show no errors
402
+ ruby -e "require 'yaml'; YAML.load_file('_config.yml')" # Should load without errors
403
+
404
+ # 3. Test Docker environment
405
+ docker-compose up -d # Start in background
406
+ sleep 30 # Wait for Jekyll to start
407
+ curl -I http://localhost:4000 # Should return HTTP 200 OK
408
+ docker-compose down # Stop services
379
409
  ```
380
410
 
381
- ```shell
382
- # Set your email using ID
411
+ ### 🔬 Comprehensive Test Suite
412
+
413
+ Our testing framework validates the entire installation and deployment process:
383
414
 
384
- git config --global user.email "$GIT_ID+$GHUSER@users.noreply.github.com"
415
+ #### Quick Validation (30 seconds)
416
+ ```bash
417
+ # Fast validation without Docker
418
+ ./test/validate_installation.sh
385
419
  ```
386
420
 
387
- ```shell
388
- # confirm your email
421
+ #### Docker Deployment Test (2-3 minutes)
422
+ ```bash
423
+ # Test Docker-specific functionality
424
+ ./test/test_docker_deployment.sh --verbose
389
425
 
390
- git config -l
426
+ # Keep test site for inspection
427
+ ./test/test_docker_deployment.sh --no-cleanup
391
428
  ```
392
429
 
393
- ## Initialize your new github repository
430
+ #### Complete Installation Test (3-5 minutes)
431
+ ```bash
432
+ # Test all installation methods
433
+ ./test/test_installation_complete.sh
394
434
 
395
- [gh cli docs](https://cli.github.com/manual/)
435
+ # Skip remote tests for faster execution
436
+ ./test/test_installation_complete.sh --skip-remote --verbose
437
+ ```
396
438
 
397
- ```shell
398
- # Create your github home directory and repo
439
+ #### End-to-End Deployment Test (5-10 minutes)
440
+ ```bash
441
+ # Full deployment workflow validation
442
+ ./test/test_deployment_complete.sh
399
443
 
400
- mkdir -p $ZREPO
444
+ # Skip Docker if unavailable
445
+ ./test/test_deployment_complete.sh --skip-docker
401
446
  ```
402
447
 
403
- ```shell
404
- # Initialize your github repository
448
+ ### 🎯 Test Results Interpretation
405
449
 
406
- gh repo create $GIT_REPO --gitignore Jekyll -l mit --public
407
- ```
450
+ **✅ Success Indicators:**
451
+ - HTTP 200 OK response from `http://localhost:4000`
452
+ - Jekyll logs show "Server running... press ctrl-c to stop"
453
+ - Site content includes zer0-mistakes theme elements
454
+ - Live reload header present (`X-Rack-Livereload: 1`)
455
+ - Build time under 5 seconds
408
456
 
409
- ```shell
410
- # If new repo, initialize it
457
+ **⚠️ Common Issues:**
458
+ - **Port conflicts:** Use `docker-compose run -p 4001:4000 jekyll`
459
+ - **Volume mounting:** Use home directory instead of `/tmp`
460
+ - **Bundle install slow:** Normal for first run (60-90 seconds)
461
+ - **Repository errors:** Check `PAGES_REPO_NWO` environment variable
411
462
 
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
463
+ **❌ Failure Indicators:**
464
+ - Gemfile contains `gemspec` (should be site-configured)
465
+ - Docker container exits immediately
466
+ - `_config.yml` syntax errors
467
+ - Missing theme files or directories
468
+
469
+ ### 🎉 Validated Test Results
470
+
471
+ **Latest Test Results (September 21, 2025):**
472
+ ```
473
+ ✅ Docker Deployment Test: 5/5 tests PASSED (100% success rate)
474
+ ✅ Installation Process: All files and directories created correctly
475
+ ✅ Gemfile Configuration: Properly configured for Jekyll sites
476
+ ✅ Docker Volume Mounting: Working correctly in home directory
477
+ ✅ Environment Variables: PAGES_REPO_NWO properly configured
478
+ ✅ Jekyll Build & Serve: Site accessible at http://localhost:4000
479
+ ✅ Performance: Bundle install ~60s, Jekyll build ~2.3s
421
480
  ```
422
481
 
423
- ### Checkpoint - Github Repo Initialized
482
+ **Test Environment:**
483
+ - **OS:** macOS (Apple Silicon)
484
+ - **Docker:** Available and functional
485
+ - **Ruby:** 2.6.10 (system)
486
+ - **Jekyll:** 3.9.5 (via GitHub Pages gem)
487
+ - **Build Time:** 2.315 seconds
488
+ - **Bundle Install:** 98 gems installed successfully
424
489
 
425
- Go to your new github repository.
490
+ The theme installation and deployment process has been **thoroughly tested and validated** across multiple scenarios.
426
491
 
427
- ```shell
428
- # Open your new github repository in the browser
492
+ ## 🛠️ Troubleshooting
429
493
 
430
- open https://github.com/${GHUSER}/${GIT_REPO}
494
+ ### Quick Fixes
431
495
 
496
+ **🐳 Docker Issues:**
497
+ ```bash
498
+ # Restart Docker Desktop
499
+ # Then rebuild containers
500
+ docker-compose down && docker-compose up --build
432
501
  ```
433
502
 
434
- <a id="repo-link"></a>
503
+ **⚡ Port Conflicts:**
504
+ ```bash
505
+ # Use different port
506
+ docker-compose run -p 4001:4000 jekyll
507
+ ```
435
508
 
436
- ![Checkpoint 1](/assets/images/zer0-checkpoint-1.png)
509
+ **🍎 Apple Silicon Issues:**
510
+ ```bash
511
+ # Force platform if needed
512
+ docker-compose up --build
513
+ # The linux/amd64 platform is already configured
514
+ ```
437
515
 
438
- ## Initialize Jekyll
516
+ ### Common Issues
439
517
 
440
- ### Create Gemfile
518
+ #### Docker Container Won't Start
441
519
 
442
- ```shell
443
- # Create a new Gemfile
444
- cd $ZREPO
445
- touch Gemfile
520
+ ```bash
521
+ # Check Docker is running
522
+ docker ps
446
523
 
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
524
+ # Rebuild container
525
+ docker-compose down
526
+ docker-compose up --build
458
527
  ```
459
528
 
460
- ### Configure Jekyll
529
+ #### Theme Not Loading
461
530
 
462
- ```shell
463
- code _config.yml
531
+ ```bash
532
+ # Verify remote_theme setting in _config.yml
533
+ remote_theme: "bamr87/zer0-mistakes"
534
+
535
+ # Check Gemfile includes jekyll-remote-theme
536
+ gem "jekyll-remote-theme"
464
537
  ```
465
538
 
466
- ```yaml
467
- theme: jekyll-theme-zer0
539
+ #### Port Already in Use
468
540
 
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
- ```
541
+ ```bash
542
+ # Find process using port 4000
543
+ lsof -i :4000
480
544
 
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
545
+ # Or use different port
546
+ docker-compose run -p 4001:4000 jekyll
503
547
  ```
504
548
 
505
- ```shell
506
- # build the docker image based on the Dockerfile
507
- docker build -t ${GIT_REPO} .
508
- ```
549
+ #### GitHub Pages Build Fails
509
550
 
510
- ```shell
511
- # Run the container in detached mode
512
- docker run -d -p 4000:4000 -v ${ZREPO}:/app --name zer0_container ${GIT_REPO}
551
+ - Ensure `jekyll-remote-theme` plugin is in `_config.yml`
552
+ - Check that all plugins are GitHub Pages compatible
553
+ - Verify `_config.yml` syntax is valid YAML
513
554
 
514
- # Start the container and run the CMD line from the Dockerfile
515
- docker start zer0_container
555
+ ### Development Tips
516
556
 
517
- # Attach to the running container
518
- docker exec -it zer0_container /bin/bash
519
- ```
557
+ ```bash
558
+ # View container logs
559
+ docker-compose logs -f jekyll
560
+
561
+ # Clean Jekyll cache
562
+ docker-compose run --rm jekyll jekyll clean
520
563
 
521
- ## Checkpoint - Jekyll Initialized
564
+ # Bundle install in container
565
+ docker-compose run --rm jekyll bundle install
522
566
 
523
- ```shell
524
- open http://localhost:4000/
567
+ # Access container shell
568
+ docker-compose exec jekyll bash
525
569
  ```
526
570
 
527
- ![](/assets/images/zer0-checkpoint-2.png)
571
+ ## 🤝 Contributing
528
572
 
529
- ```shell
530
- code _config.yml
531
- ```
573
+ We welcome contributions! Please see our [Contributing Guidelines](CONTRIBUTING.md) for details.
532
574
 
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
- ```
575
+ ### Development Setup
545
576
 
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')
577
+ ```bash
578
+ # Fork and clone the repository
579
+ git clone https://github.com/YOUR-USERNAME/zer0-mistakes.git
580
+ cd zer0-mistakes
581
+
582
+ # Create feature branch
583
+ git checkout -b feature/amazing-feature
584
+
585
+ # Make changes and test
586
+ docker-compose up
587
+
588
+ # Commit and push
589
+ git commit -m "Add amazing feature"
590
+ git push origin feature/amazing-feature
581
591
  ```
582
592
 
583
- ## Config file
593
+ ## 📄 License
584
594
 
585
- ```yaml
586
- {% include_relative _config.yml %}
587
- ```
595
+ This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
596
+
597
+ ## 🙏 Acknowledgments
598
+
599
+ - Built with [Jekyll](https://jekyllrb.com/) static site generator
600
+ - Styled with [Bootstrap 5](https://getbootstrap.com/) framework
601
+ - Containerized with [Docker](https://docker.com/) for consistent development
602
+ - Inspired by IT-Journey principles of reliable, self-healing software
603
+
604
+ ## 📞 Support
605
+
606
+ - **Documentation**: [Theme Documentation](https://bamr87.github.io/zer0-mistakes/)
607
+ - **Issues**: [GitHub Issues](https://github.com/bamr87/zer0-mistakes/issues)
608
+ - **Discussions**: [GitHub Discussions](https://github.com/bamr87/zer0-mistakes/discussions)
609
+ - **Email**: [support@zer0-mistakes.com](mailto:support@zer0-mistakes.com)
610
+
611
+ ---
612
+
613
+ Built with ❤️ for the Jekyll community