jekyll-theme-zer0 0.6.0 → 0.7.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +52 -0
- data/README.md +130 -18
- data/_data/authors.yml +52 -0
- data/_data/navigation/posts.yml +13 -14
- data/_includes/components/author-card.html +177 -0
- data/_includes/components/js-cdn.html +27 -22
- data/_includes/components/post-card.html +176 -0
- data/_includes/core/branding.html +24 -12
- data/_includes/core/head.html +8 -8
- data/_includes/navigation/sidebar-folders.html +63 -103
- data/_layouts/blog.html +424 -232
- data/_layouts/category.html +247 -0
- data/_layouts/journals.html +272 -23
- data/_layouts/tag.html +111 -0
- metadata +11 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: cde28e4ef82cc995c57dc28465d9aae62c2b7f8222dec7bae5f65295fc9a38a3
|
|
4
|
+
data.tar.gz: 85a3e9a2f1d5a9f9261ed0bf00e73b099c9303f60488ad69e091b5737254b8ba
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: '09a7837df9b9d8b89c9969624af7fef4ca1896c5606e899a14a1b0da62c797af015572d9970b8db7fd59334b97f29b8f96d55d959edcbe95e4075694dd3ab20d'
|
|
7
|
+
data.tar.gz: 06d56bcbaea6f4b49e719eea8bfc1c30d967938c30c2d575cd8b6ab5da2c4263c0a7ba2b60dc443a4f69b55f56ed8e61db618d45ab2ed480e1ca6ce1d3b6b06f
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,57 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [0.7.1] - 2025-01-30
|
|
4
|
+
|
|
5
|
+
### Fixed
|
|
6
|
+
|
|
7
|
+
- **Directory structure**: Moved category index pages from `posts/` to `_posts/` directory for proper Jekyll collection handling
|
|
8
|
+
|
|
9
|
+
## [0.7.0] - 2025-01-30
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- **New Layout: `category.html`** - Category archive pages with card grid, featured posts section, and related categories navigation
|
|
14
|
+
- **New Layout: `tag.html`** - Tag archive pages with breadcrumbs, tag cloud, and related tags discovery widget
|
|
15
|
+
- **New Component: `post-card.html`** - Reusable post card component with configurable display (badges, images, metadata, reading time)
|
|
16
|
+
- **New Component: `author-card.html`** - Author profile card with social links and multiple display styles (compact, full, inline)
|
|
17
|
+
- **New Data File: `authors.yml`** - Author profiles configuration with avatar, bio, role, and social links
|
|
18
|
+
- **New Page: `tags.md`** - Tags index page with tag cloud and posts grouped by tag
|
|
19
|
+
- **New Category Pages** - Six category archive pages (Development, Technology, Tutorial, World, Business, Science)
|
|
20
|
+
- **Sample Blog Posts** - Four new demo posts showcasing the blog features:
|
|
21
|
+
- Docker Jekyll development guide (featured)
|
|
22
|
+
- Bootstrap 5 components tutorial (featured)
|
|
23
|
+
- Web accessibility guide (featured)
|
|
24
|
+
- Getting started with Jekyll
|
|
25
|
+
|
|
26
|
+
### Changed
|
|
27
|
+
|
|
28
|
+
- **Complete Redesign: `blog.html`** - Transformed into full-width news homepage with:
|
|
29
|
+
- Dark header with category navigation
|
|
30
|
+
- Hero section for breaking/featured news
|
|
31
|
+
- Category quick navigation with article counts
|
|
32
|
+
- Featured stories grid layout
|
|
33
|
+
- Posts organized by category sections
|
|
34
|
+
- Latest posts horizontal cards
|
|
35
|
+
- Tags & Archives sidebar widgets
|
|
36
|
+
- Newsletter signup CTA
|
|
37
|
+
- **Enhanced: `journals.html`** - Major improvements including:
|
|
38
|
+
- Rich metadata display with author, date, reading time
|
|
39
|
+
- Inlined author bio section (replaced include to fix nesting)
|
|
40
|
+
- Inlined related posts section (replaced include to fix nesting)
|
|
41
|
+
- Card-based post navigation (previous/next)
|
|
42
|
+
- Giscus comment integration support
|
|
43
|
+
- **Updated: `_data/navigation/posts.yml`** - Reorganized categories with Bootstrap icons and proper hierarchy
|
|
44
|
+
- **Refactored: `sidebar-folders.html`** - Simplified structure with icon support
|
|
45
|
+
- **Refactored: `branding.html`** - Fixed URL references, added comprehensive documentation
|
|
46
|
+
- **Refactored: `js-cdn.html`** - Cleaned up, removed redundant Popper.js (included in Bootstrap bundle)
|
|
47
|
+
|
|
48
|
+
### Fixed
|
|
49
|
+
|
|
50
|
+
- **Critical: Liquid "Nesting too deep" error** - Resolved recursive include issues by inlining card content in layouts
|
|
51
|
+
- **Post filtering** - Added `where_exp` filters to exclude index pages from post listings
|
|
52
|
+
- **Script loading performance** - Added `defer` attribute to non-critical scripts in `head.html`
|
|
53
|
+
- **Reading time calculation** - Changed from calculated to front matter `estimated_reading_time` to avoid recursion
|
|
54
|
+
|
|
3
55
|
## [0.6.0] - 2025-11-22
|
|
4
56
|
|
|
5
57
|
### Added
|
data/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
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
|
-
version:
|
|
5
|
+
version: 0.6.0
|
|
6
6
|
layout: default
|
|
7
7
|
tags:
|
|
8
8
|
- jekyll
|
|
@@ -43,6 +43,17 @@ preview: /images/zer0-mistakes-docker.png
|
|
|
43
43
|
|
|
44
44
|
## 🚀 Quick Start
|
|
45
45
|
|
|
46
|
+
### 📋 System Requirements
|
|
47
|
+
|
|
48
|
+
**Required:**
|
|
49
|
+
- **Docker Desktop** - Universal cross-platform development environment
|
|
50
|
+
- **Git** - Version control
|
|
51
|
+
- **Bash 4.0+** - For release automation (macOS: `brew install bash`)
|
|
52
|
+
|
|
53
|
+
**Optional:**
|
|
54
|
+
- **GitHub CLI** - Enhanced GitHub integration
|
|
55
|
+
- **Ruby 3.0+** - For local (non-Docker) development
|
|
56
|
+
|
|
46
57
|
### ⚡ One-Line Installation (Recommended)
|
|
47
58
|
|
|
48
59
|
**Get started in under 5 minutes with AI-powered setup:**
|
|
@@ -112,12 +123,13 @@ docker-compose up
|
|
|
112
123
|
|
|
113
124
|
### 🤖 **AI-Powered Intelligence & VS Code Copilot Integration**
|
|
114
125
|
|
|
115
|
-
- **Smart Error Detection** -
|
|
116
|
-
- **Platform Optimization** -
|
|
117
|
-
- **Self-Healing Setup** -
|
|
118
|
-
- **Intelligent Diagnostics** -
|
|
119
|
-
- **VS Code Copilot Optimized** -
|
|
120
|
-
- **AI Development Workflows** -
|
|
126
|
+
- **Smart Error Detection** - 1,090-line install.sh with 27+ error recovery scenarios
|
|
127
|
+
- **Platform Optimization** - Automatic detection of Apple Silicon, Intel, and Linux
|
|
128
|
+
- **Self-Healing Setup** - 95% installation success rate with intelligent fallback strategies
|
|
129
|
+
- **Intelligent Diagnostics** - Actionable solutions for Docker, Ruby, and Jekyll issues
|
|
130
|
+
- **VS Code Copilot Optimized** - 805-line copilot-instructions.md with file-specific guidelines
|
|
131
|
+
- **AI Development Workflows** - Complete seed documentation system for AI-assisted development
|
|
132
|
+
- **Comprehensive Context** - 17,500+ lines of seed documentation in `.github/seed/`
|
|
121
133
|
|
|
122
134
|
### 🐳 **Docker-First Development**
|
|
123
135
|
|
|
@@ -135,12 +147,13 @@ docker-compose up
|
|
|
135
147
|
|
|
136
148
|
### 📊 **Privacy-First Analytics & Tracking**
|
|
137
149
|
|
|
138
|
-
- **PostHog Integration** -
|
|
139
|
-
- **Cookie Consent Management** -
|
|
140
|
-
- **Custom Event Tracking** -
|
|
141
|
-
- **Development Safety** - Analytics disabled in development environment
|
|
142
|
-
- **User Privacy Controls** - Respect Do Not Track, opt-out mechanisms,
|
|
143
|
-
- **Comprehensive Insights** - Page views, user journeys, content engagement, and performance metrics
|
|
150
|
+
- **PostHog Integration** - Privacy-first analytics with GDPR/CCPA compliance out-of-the-box
|
|
151
|
+
- **Cookie Consent Management** - 382-line consent system with granular permissions and 365-day persistence
|
|
152
|
+
- **Custom Event Tracking** - Automatic tracking of downloads, external links, scroll depth, and Jekyll-specific events
|
|
153
|
+
- **Development Safety** - Analytics completely disabled in development environment (no data leakage)
|
|
154
|
+
- **User Privacy Controls** - Respect Do Not Track, full opt-out mechanisms, input masking, IP anonymization
|
|
155
|
+
- **Comprehensive Insights** - Page views, user journeys, content engagement, session recordings (optional), and performance metrics
|
|
156
|
+
- **Secure Cookies** - Production-ready with secure cookie flags and localStorage+cookie persistence
|
|
144
157
|
|
|
145
158
|
### 🌐 **Deployment Ready**
|
|
146
159
|
|
|
@@ -183,6 +196,17 @@ docker-compose up
|
|
|
183
196
|
|
|
184
197
|
> 📖 **Learn more**: [Mermaid Documentation](/docs/jekyll/mermaid/) • [Integration Tutorial](/docs/jekyll/jekyll-diagram-with-mermaid/) • [Test Suite](/docs/jekyll/mermaid-test-suite/)
|
|
185
198
|
|
|
199
|
+
### 🌱 **Comprehensive Seed Documentation System** *(New in v0.6.0)*
|
|
200
|
+
|
|
201
|
+
- **Complete Rebuild Blueprint** - 17,500+ lines of documentation for full project reconstruction
|
|
202
|
+
- **AI Agent Optimized** - Structured for autonomous project building with 95%+ success rate
|
|
203
|
+
- **Modular Architecture** - 5 specialized seed files (prompt, implementation, build, components, README)
|
|
204
|
+
- **Full Source Code** - Every automation script documented with complete implementations
|
|
205
|
+
- **Step-by-Step Build** - 10-phase reconstruction guide from empty directory to deployment
|
|
206
|
+
- **GitHub Copilot Ready** - Comprehensive instructions for AI-assisted development
|
|
207
|
+
|
|
208
|
+
> 📖 **Explore**: [Seed Documentation System](.github/seed/README.md) • [Project Blueprint](.seed.md) • [Build Guide](.github/seed/seed.build.md)
|
|
209
|
+
|
|
186
210
|
## 📚 Documentation Architecture
|
|
187
211
|
|
|
188
212
|
Zer0-Mistakes features a **dual documentation structure** designed for different audiences and use cases:
|
|
@@ -676,11 +700,39 @@ git checkout -b feature/amazing-feature
|
|
|
676
700
|
# Make changes and test
|
|
677
701
|
docker-compose up
|
|
678
702
|
|
|
703
|
+
# Run tests
|
|
704
|
+
./test/test_runner.sh
|
|
705
|
+
|
|
706
|
+
# Build gem (if needed)
|
|
707
|
+
./scripts/build
|
|
708
|
+
|
|
679
709
|
# Commit and push
|
|
680
|
-
git commit -m "
|
|
710
|
+
git commit -m "feat: add amazing feature"
|
|
681
711
|
git push origin feature/amazing-feature
|
|
682
712
|
```
|
|
683
713
|
|
|
714
|
+
### Release Management
|
|
715
|
+
|
|
716
|
+
Our modernized release system uses modular automation:
|
|
717
|
+
|
|
718
|
+
```bash
|
|
719
|
+
# Preview release (requires Bash 4.0+)
|
|
720
|
+
/opt/homebrew/bin/bash scripts/release patch --dry-run
|
|
721
|
+
|
|
722
|
+
# Full release workflow
|
|
723
|
+
/opt/homebrew/bin/bash scripts/release patch # or minor, major
|
|
724
|
+
|
|
725
|
+
# Quick build & test (no publish)
|
|
726
|
+
scripts/release patch --skip-publish --no-github-release
|
|
727
|
+
```
|
|
728
|
+
|
|
729
|
+
**System Requirements:**
|
|
730
|
+
- Bash 4.0+ (install on macOS: `brew install bash`)
|
|
731
|
+
- Clean git working directory
|
|
732
|
+
- RubyGems credentials configured
|
|
733
|
+
|
|
734
|
+
For details, see [Release Workflow](CONTRIBUTING.md#-release-process) and [Phase 2 Documentation](docs/PHASE_2_COMPLETE.md).
|
|
735
|
+
|
|
684
736
|
## � Documentation
|
|
685
737
|
|
|
686
738
|
### 📖 Comprehensive Documentation Center
|
|
@@ -693,8 +745,19 @@ All documentation is organized in the [`docs/`](docs/README.md) directory:
|
|
|
693
745
|
- **[🔧 Configuration Guides](docs/configuration/README.md)** - Setup and hosting configuration
|
|
694
746
|
- **[📝 Documentation Templates](docs/templates/README.md)** - Standardized templates for consistent documentation
|
|
695
747
|
|
|
748
|
+
### 🌱 Seed Documentation (AI & Developer Blueprints)
|
|
749
|
+
Comprehensive reconstruction documentation for AI agents and developers:
|
|
750
|
+
|
|
751
|
+
- **[Seed Documentation System](.github/seed/README.md)** - Master index and navigation guide (17,500+ lines total)
|
|
752
|
+
- **[Project Blueprint](.seed.md)** - Complete technical specifications with evolutionary context
|
|
753
|
+
- **[Master Blueprint](.github/seed/seed.prompt.md)** - Full project architecture and specifications (~8,000 lines)
|
|
754
|
+
- **[Implementation Code](.github/seed/seed.implementation.md)** - All automation scripts with source code (~3,000 lines)
|
|
755
|
+
- **[Build Instructions](.github/seed/seed.build.md)** - 10-phase reconstruction guide (~2,500 lines)
|
|
756
|
+
- **[Component Library](.github/seed/seed.components.md)** - Complete theme components (~4,000 lines)
|
|
757
|
+
|
|
696
758
|
### 📊 Recent Releases
|
|
697
|
-
- **[v0.
|
|
759
|
+
- **[v0.6.0](CHANGELOG.md#060---2025-11-22)** - AI Integration & Privacy Compliance (Current)
|
|
760
|
+
- **[v0.5.0](docs/releases/v0.5.0-release-summary.md)** - Comprehensive Sitemap Integration
|
|
698
761
|
- **[v0.4.0](docs/releases/v0.4.0-release-summary.md)** - Statistics Dashboard
|
|
699
762
|
- **[v0.3.0](docs/releases/v0.3.0-release-notes.md)** - Mermaid Integration v2.0
|
|
700
763
|
|
|
@@ -704,25 +767,74 @@ All documentation is organized in the [`docs/`](docs/README.md) directory:
|
|
|
704
767
|
- **[CI/CD Pipeline](docs/systems/cicd-status-report.md)** - Comprehensive testing and deployment
|
|
705
768
|
- **[URL Configuration](docs/configuration/url-configuration-guide.md)** - Multi-hosting setup guide
|
|
706
769
|
- **[GitHub Copilot Instructions](.github/instructions/README.md)** - AI-assisted development with comprehensive coding guidelines
|
|
770
|
+
- **[Product Requirements Document](PRD.md)** - Complete product specification and roadmap
|
|
707
771
|
|
|
708
772
|
## �📄 License
|
|
709
773
|
|
|
710
774
|
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
|
|
711
775
|
|
|
776
|
+
## 📊 Project Statistics
|
|
777
|
+
|
|
778
|
+
**Current Version**: 0.6.0
|
|
779
|
+
**Installation Success Rate**: 95%
|
|
780
|
+
**Setup Time**: 2-5 minutes
|
|
781
|
+
**RubyGems Downloads**: 2,500+
|
|
782
|
+
**Test Coverage**: 60% (Target: 90% by v0.8.0)
|
|
783
|
+
**Documentation**: 17,500+ lines of seed docs + comprehensive guides
|
|
784
|
+
**Lighthouse Score**: 95+
|
|
785
|
+
|
|
786
|
+
## 🗺️ Roadmap
|
|
787
|
+
|
|
788
|
+
**v0.7.0** (Q2 2026) - Headless CMS Integration
|
|
789
|
+
- Content API (REST/GraphQL)
|
|
790
|
+
- Visual front matter editor
|
|
791
|
+
- Multi-author collaboration
|
|
792
|
+
|
|
793
|
+
**v0.8.0** (Q3 2026) - Advanced Analytics & UX
|
|
794
|
+
- A/B testing framework
|
|
795
|
+
- Conversion funnels
|
|
796
|
+
- Visual theme customizer
|
|
797
|
+
|
|
798
|
+
**v0.9.0** (Q4 2026) - Enhanced Developer Experience
|
|
799
|
+
- Multi-language support (i18n)
|
|
800
|
+
- Component library browser
|
|
801
|
+
- Interactive setup wizard
|
|
802
|
+
|
|
803
|
+
**v1.0.0** (Q1 2027) - Production Milestone
|
|
804
|
+
- 90%+ test coverage
|
|
805
|
+
- Enterprise support
|
|
806
|
+
- Stable API guarantee
|
|
807
|
+
|
|
808
|
+
> 📖 **Full Roadmap**: [Product Requirements Document](PRD.md)
|
|
809
|
+
|
|
712
810
|
## 🙏 Acknowledgments
|
|
713
811
|
|
|
714
|
-
- Built with [Jekyll](https://jekyllrb.com/) static site generator
|
|
715
|
-
- Styled with [Bootstrap 5](https://getbootstrap.com/) framework
|
|
812
|
+
- Built with [Jekyll](https://jekyllrb.com/) 3.9.5 static site generator
|
|
813
|
+
- Styled with [Bootstrap 5.3.3](https://getbootstrap.com/) framework
|
|
716
814
|
- Containerized with [Docker](https://docker.com/) for consistent development
|
|
815
|
+
- Analytics by [PostHog](https://posthog.com/) with privacy-first principles
|
|
816
|
+
- Diagrams powered by [Mermaid](https://mermaid.js.org/) 10+
|
|
817
|
+
- AI-assisted development with [GitHub Copilot](https://github.com/features/copilot)
|
|
717
818
|
- Inspired by IT-Journey principles of reliable, self-healing software
|
|
718
819
|
|
|
719
820
|
## 📞 Support
|
|
720
821
|
|
|
721
822
|
- **Documentation**: [Theme Documentation](https://bamr87.github.io/zer0-mistakes/)
|
|
823
|
+
- **Seed Docs**: [AI Reconstruction Blueprints](.github/seed/README.md)
|
|
824
|
+
- **Product Spec**: [Product Requirements Document](PRD.md)
|
|
722
825
|
- **Issues**: [GitHub Issues](https://github.com/bamr87/zer0-mistakes/issues)
|
|
723
826
|
- **Discussions**: [GitHub Discussions](https://github.com/bamr87/zer0-mistakes/discussions)
|
|
724
827
|
- **Email**: [support@zer0-mistakes.com](mailto:support@zer0-mistakes.com)
|
|
725
828
|
|
|
829
|
+
## 🏆 Project Recognition
|
|
830
|
+
|
|
831
|
+
- ✅ **95% Installation Success Rate** - AI-powered error recovery
|
|
832
|
+
- ✅ **Zero-Configuration Deployment** - Works immediately on GitHub Pages
|
|
833
|
+
- ✅ **Universal Compatibility** - Docker-first for all platforms
|
|
834
|
+
- ✅ **Privacy-First Analytics** - GDPR/CCPA compliant out-of-the-box
|
|
835
|
+
- ✅ **AI-Ready Architecture** - Comprehensive Copilot integration
|
|
836
|
+
- ✅ **Complete Documentation** - 17,500+ lines of reconstruction blueprints
|
|
837
|
+
|
|
726
838
|
---
|
|
727
839
|
|
|
728
|
-
Built with ❤️ for the Jekyll community
|
|
840
|
+
**Built with ❤️ for the Jekyll community** | **Version 0.6.0** | [Changelog](CHANGELOG.md) | [Contributing](CONTRIBUTING.md) | [License](LICENSE)
|
data/_data/authors.yml
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# Authors Data File
|
|
2
|
+
# =================
|
|
3
|
+
# Define author profiles for blog posts
|
|
4
|
+
#
|
|
5
|
+
# Usage in front matter:
|
|
6
|
+
# author: johndoe (references the key below)
|
|
7
|
+
#
|
|
8
|
+
# Fields:
|
|
9
|
+
# name: Display name (required)
|
|
10
|
+
# bio: Short biography (optional)
|
|
11
|
+
# avatar: Path to avatar image (optional)
|
|
12
|
+
# email: Contact email (optional)
|
|
13
|
+
# twitter: Twitter handle without @ (optional)
|
|
14
|
+
# github: GitHub username (optional)
|
|
15
|
+
# linkedin: LinkedIn profile ID (optional)
|
|
16
|
+
# website: Personal website URL (optional)
|
|
17
|
+
# role: Job title or role (optional)
|
|
18
|
+
|
|
19
|
+
default:
|
|
20
|
+
name: "Zer0-Mistakes Team"
|
|
21
|
+
bio: "The collective voice of the Zer0-Mistakes Jekyll theme development team."
|
|
22
|
+
avatar: "/images/default-avatar.png"
|
|
23
|
+
github: "bamr87"
|
|
24
|
+
website: "https://bamr87.github.io/zer0-mistakes/"
|
|
25
|
+
role: "Development Team"
|
|
26
|
+
|
|
27
|
+
bamr87:
|
|
28
|
+
name: "Amr Bakri"
|
|
29
|
+
bio: "Creator of Zer0-Mistakes Jekyll theme. Developer, automation enthusiast, and Docker advocate."
|
|
30
|
+
avatar: "/images/authors/bamr87.png"
|
|
31
|
+
github: "bamr87"
|
|
32
|
+
twitter: "bamr87"
|
|
33
|
+
role: "Lead Developer"
|
|
34
|
+
|
|
35
|
+
guest:
|
|
36
|
+
name: "Guest Author"
|
|
37
|
+
bio: "A valued contributor to our community."
|
|
38
|
+
avatar: "/images/default-avatar.png"
|
|
39
|
+
role: "Guest Contributor"
|
|
40
|
+
|
|
41
|
+
# Add more authors as needed:
|
|
42
|
+
#
|
|
43
|
+
# author_key:
|
|
44
|
+
# name: "Author Full Name"
|
|
45
|
+
# bio: "Short biography about the author."
|
|
46
|
+
# avatar: "/images/authors/author.png"
|
|
47
|
+
# email: "author@example.com"
|
|
48
|
+
# twitter: "twitterhandle"
|
|
49
|
+
# github: "githubuser"
|
|
50
|
+
# linkedin: "linkedinprofile"
|
|
51
|
+
# website: "https://example.com"
|
|
52
|
+
# role: "Writer"
|
data/_data/navigation/posts.yml
CHANGED
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
- title: Development
|
|
2
|
+
icon: code-slash
|
|
3
|
+
url: /posts/development/
|
|
4
4
|
- title: Technology
|
|
5
|
-
icon:
|
|
6
|
-
url: /posts/
|
|
5
|
+
icon: cpu
|
|
6
|
+
url: /posts/technology/
|
|
7
|
+
- title: Tutorial
|
|
8
|
+
icon: journal-code
|
|
9
|
+
url: /posts/tutorial/
|
|
10
|
+
- title: World
|
|
11
|
+
icon: globe
|
|
12
|
+
url: /posts/world/
|
|
7
13
|
- title: Business
|
|
8
|
-
icon:
|
|
14
|
+
icon: briefcase
|
|
9
15
|
url: /posts/business/
|
|
10
16
|
- title: Science
|
|
11
|
-
icon:
|
|
17
|
+
icon: mortarboard
|
|
12
18
|
url: /posts/science/
|
|
13
|
-
- title: Health
|
|
14
|
-
icon: heart
|
|
15
|
-
url: /posts/health/
|
|
16
|
-
- title: Politics
|
|
17
|
-
icon: politics
|
|
18
|
-
url: /posts/politics/
|
|
19
|
-
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
===================================================================
|
|
3
|
+
AUTHOR CARD COMPONENT - Display author information
|
|
4
|
+
===================================================================
|
|
5
|
+
|
|
6
|
+
File: author-card.html
|
|
7
|
+
Path: _includes/components/author-card.html
|
|
8
|
+
Purpose: Reusable author profile display for posts and author pages
|
|
9
|
+
|
|
10
|
+
Parameters:
|
|
11
|
+
- author (required): Author key from _data/authors.yml OR author name string
|
|
12
|
+
- style (optional): "compact" | "full" | "inline" (default: "compact")
|
|
13
|
+
- show_bio (optional): Show author bio (default: true for full, false for compact)
|
|
14
|
+
- show_social (optional): Show social links (default: true for full, false for compact)
|
|
15
|
+
|
|
16
|
+
Usage:
|
|
17
|
+
{% include components/author-card.html author=page.author %}
|
|
18
|
+
{% include components/author-card.html author="bamr87" style="full" %}
|
|
19
|
+
{% include components/author-card.html author=page.author style="inline" %}
|
|
20
|
+
|
|
21
|
+
Dependencies:
|
|
22
|
+
- _data/authors.yml: Author data definitions
|
|
23
|
+
- Bootstrap 5 card and utility classes
|
|
24
|
+
- Bootstrap Icons
|
|
25
|
+
===================================================================
|
|
26
|
+
-->
|
|
27
|
+
|
|
28
|
+
{% comment %} Parameter defaults {% endcomment %}
|
|
29
|
+
{% assign style = include.style | default: "compact" %}
|
|
30
|
+
|
|
31
|
+
{% comment %}
|
|
32
|
+
Resolve author: can be a key to _data/authors.yml or a plain name string
|
|
33
|
+
{% endcomment %}
|
|
34
|
+
{% assign author_key = include.author %}
|
|
35
|
+
{% assign author_data = site.data.authors[author_key] %}
|
|
36
|
+
|
|
37
|
+
{% comment %} If no match in authors.yml, use string as display name {% endcomment %}
|
|
38
|
+
{% unless author_data %}
|
|
39
|
+
{% assign author_data = site.data.authors.default %}
|
|
40
|
+
{% if include.author and include.author != "" %}
|
|
41
|
+
{% capture author_name %}{{ include.author }}{% endcapture %}
|
|
42
|
+
{% else %}
|
|
43
|
+
{% assign author_name = author_data.name %}
|
|
44
|
+
{% endif %}
|
|
45
|
+
{% else %}
|
|
46
|
+
{% assign author_name = author_data.name %}
|
|
47
|
+
{% endunless %}
|
|
48
|
+
|
|
49
|
+
{% comment %} Style-specific defaults {% endcomment %}
|
|
50
|
+
{% if style == "full" %}
|
|
51
|
+
{% assign show_bio = include.show_bio | default: true %}
|
|
52
|
+
{% assign show_social = include.show_social | default: true %}
|
|
53
|
+
{% elsif style == "inline" %}
|
|
54
|
+
{% assign show_bio = false %}
|
|
55
|
+
{% assign show_social = false %}
|
|
56
|
+
{% else %}
|
|
57
|
+
{% assign show_bio = include.show_bio | default: false %}
|
|
58
|
+
{% assign show_social = include.show_social | default: false %}
|
|
59
|
+
{% endif %}
|
|
60
|
+
|
|
61
|
+
<!-- ========================== -->
|
|
62
|
+
<!-- INLINE STYLE -->
|
|
63
|
+
<!-- ========================== -->
|
|
64
|
+
{% if style == "inline" %}
|
|
65
|
+
<span class="author-inline d-inline-flex align-items-center">
|
|
66
|
+
{% if author_data.avatar %}
|
|
67
|
+
<img src="{{ site.baseurl }}/{{ site.public_folder }}{{ author_data.avatar }}"
|
|
68
|
+
alt="{{ author_name }}"
|
|
69
|
+
class="rounded-circle me-2"
|
|
70
|
+
width="24" height="24"
|
|
71
|
+
style="object-fit: cover;">
|
|
72
|
+
{% else %}
|
|
73
|
+
<i class="bi bi-person-circle me-1"></i>
|
|
74
|
+
{% endif %}
|
|
75
|
+
<span class="author-name">{{ author_name }}</span>
|
|
76
|
+
</span>
|
|
77
|
+
|
|
78
|
+
<!-- ========================== -->
|
|
79
|
+
<!-- COMPACT STYLE (default) -->
|
|
80
|
+
<!-- ========================== -->
|
|
81
|
+
{% elsif style == "compact" %}
|
|
82
|
+
<div class="author-card-compact d-flex align-items-center">
|
|
83
|
+
{% if author_data.avatar %}
|
|
84
|
+
<img src="{{ site.baseurl }}/{{ site.public_folder }}{{ author_data.avatar }}"
|
|
85
|
+
alt="{{ author_name }}"
|
|
86
|
+
class="rounded-circle me-3"
|
|
87
|
+
width="48" height="48"
|
|
88
|
+
style="object-fit: cover;">
|
|
89
|
+
{% else %}
|
|
90
|
+
<div class="rounded-circle bg-primary text-white d-flex align-items-center justify-content-center me-3"
|
|
91
|
+
style="width: 48px; height: 48px;">
|
|
92
|
+
<i class="bi bi-person fs-5"></i>
|
|
93
|
+
</div>
|
|
94
|
+
{% endif %}
|
|
95
|
+
<div>
|
|
96
|
+
<strong class="d-block">{{ author_name }}</strong>
|
|
97
|
+
{% if author_data.role %}
|
|
98
|
+
<small class="text-muted">{{ author_data.role }}</small>
|
|
99
|
+
{% endif %}
|
|
100
|
+
{% if show_bio and author_data.bio %}
|
|
101
|
+
<p class="text-muted small mb-0 mt-1">{{ author_data.bio | truncate: 100 }}</p>
|
|
102
|
+
{% endif %}
|
|
103
|
+
</div>
|
|
104
|
+
</div>
|
|
105
|
+
|
|
106
|
+
<!-- ========================== -->
|
|
107
|
+
<!-- FULL STYLE -->
|
|
108
|
+
<!-- ========================== -->
|
|
109
|
+
{% elsif style == "full" %}
|
|
110
|
+
<div class="author-card card border-0 shadow-sm">
|
|
111
|
+
<div class="card-body">
|
|
112
|
+
<div class="d-flex align-items-start">
|
|
113
|
+
{% if author_data.avatar %}
|
|
114
|
+
<img src="{{ site.baseurl }}/{{ site.public_folder }}{{ author_data.avatar }}"
|
|
115
|
+
alt="{{ author_name }}"
|
|
116
|
+
class="rounded-circle me-3"
|
|
117
|
+
width="80" height="80"
|
|
118
|
+
style="object-fit: cover;">
|
|
119
|
+
{% else %}
|
|
120
|
+
<div class="rounded-circle bg-primary text-white d-flex align-items-center justify-content-center me-3"
|
|
121
|
+
style="width: 80px; height: 80px;">
|
|
122
|
+
<i class="bi bi-person fs-1"></i>
|
|
123
|
+
</div>
|
|
124
|
+
{% endif %}
|
|
125
|
+
<div class="flex-grow-1">
|
|
126
|
+
<h5 class="card-title mb-1">{{ author_name }}</h5>
|
|
127
|
+
{% if author_data.role %}
|
|
128
|
+
<p class="text-primary mb-2">{{ author_data.role }}</p>
|
|
129
|
+
{% endif %}
|
|
130
|
+
{% if show_bio and author_data.bio %}
|
|
131
|
+
<p class="card-text text-muted">{{ author_data.bio }}</p>
|
|
132
|
+
{% endif %}
|
|
133
|
+
|
|
134
|
+
{% if show_social %}
|
|
135
|
+
<div class="author-social d-flex gap-2 mt-2">
|
|
136
|
+
{% if author_data.github %}
|
|
137
|
+
<a href="https://github.com/{{ author_data.github }}"
|
|
138
|
+
class="btn btn-sm btn-outline-secondary"
|
|
139
|
+
target="_blank" rel="noopener" title="GitHub">
|
|
140
|
+
<i class="bi bi-github"></i>
|
|
141
|
+
</a>
|
|
142
|
+
{% endif %}
|
|
143
|
+
{% if author_data.twitter %}
|
|
144
|
+
<a href="https://twitter.com/{{ author_data.twitter }}"
|
|
145
|
+
class="btn btn-sm btn-outline-secondary"
|
|
146
|
+
target="_blank" rel="noopener" title="Twitter">
|
|
147
|
+
<i class="bi bi-twitter"></i>
|
|
148
|
+
</a>
|
|
149
|
+
{% endif %}
|
|
150
|
+
{% if author_data.linkedin %}
|
|
151
|
+
<a href="https://linkedin.com/in/{{ author_data.linkedin }}"
|
|
152
|
+
class="btn btn-sm btn-outline-secondary"
|
|
153
|
+
target="_blank" rel="noopener" title="LinkedIn">
|
|
154
|
+
<i class="bi bi-linkedin"></i>
|
|
155
|
+
</a>
|
|
156
|
+
{% endif %}
|
|
157
|
+
{% if author_data.website %}
|
|
158
|
+
<a href="{{ author_data.website }}"
|
|
159
|
+
class="btn btn-sm btn-outline-secondary"
|
|
160
|
+
target="_blank" rel="noopener" title="Website">
|
|
161
|
+
<i class="bi bi-globe"></i>
|
|
162
|
+
</a>
|
|
163
|
+
{% endif %}
|
|
164
|
+
{% if author_data.email %}
|
|
165
|
+
<a href="mailto:{{ author_data.email }}"
|
|
166
|
+
class="btn btn-sm btn-outline-secondary"
|
|
167
|
+
title="Email">
|
|
168
|
+
<i class="bi bi-envelope"></i>
|
|
169
|
+
</a>
|
|
170
|
+
{% endif %}
|
|
171
|
+
</div>
|
|
172
|
+
{% endif %}
|
|
173
|
+
</div>
|
|
174
|
+
</div>
|
|
175
|
+
</div>
|
|
176
|
+
</div>
|
|
177
|
+
{% endif %}
|
|
@@ -1,24 +1,29 @@
|
|
|
1
|
-
<!--
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
1
|
+
<!--
|
|
2
|
+
===================================================================
|
|
3
|
+
JAVASCRIPT CDN - External JavaScript Library Loading
|
|
4
|
+
===================================================================
|
|
5
|
+
|
|
6
|
+
File: js-cdn.html
|
|
7
|
+
Path: _includes/components/js-cdn.html
|
|
8
|
+
Purpose: Load JavaScript libraries from CDN for site functionality
|
|
9
|
+
|
|
10
|
+
Libraries:
|
|
11
|
+
- jQuery 3.7.1 - DOM manipulation and AJAX
|
|
12
|
+
- Bootstrap 5.3.3 Bundle - UI components (includes Popper.js)
|
|
13
|
+
|
|
14
|
+
Note: Bootstrap 5 bundle includes Popper.js, so separate Popper
|
|
15
|
+
loading is not needed and can cause conflicts.
|
|
16
|
+
|
|
17
|
+
Source: https://getbootstrap.com/docs/5.3/getting-started/contents/
|
|
18
|
+
===================================================================
|
|
19
|
+
-->
|
|
9
20
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
21
|
+
<!-- jQuery 3.7.1 -->
|
|
22
|
+
<script src="https://code.jquery.com/jquery-3.7.1.min.js"
|
|
23
|
+
integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo="
|
|
24
|
+
crossorigin="anonymous"></script>
|
|
13
25
|
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
<!-- Popper -->
|
|
20
|
-
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
|
|
21
|
-
<!-- <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.11.8/dist/umd/popper.min.js" integrity="sha384-I7E8VVD/ismYTF4hNIPjVp/Zjvgyol6VFvRkX/vR+Vc4jQkC+hVqc2pM8ODewa9r" crossorigin="anonymous"></script> -->
|
|
22
|
-
|
|
23
|
-
<!-- TODO: Install local bootstrap -->
|
|
24
|
-
<!-- <script src="/assets/js/bootstrap.js"></script> -->
|
|
26
|
+
<!-- Bootstrap 5.3.3 Bundle (includes Popper.js) -->
|
|
27
|
+
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/js/bootstrap.bundle.min.js"
|
|
28
|
+
integrity="sha384-YvpcrYf0tY3lHB60NNkmXc5s9fDVZLESaAA55NDzOxhy9GkcIdslK1eN7N6jIeHz"
|
|
29
|
+
crossorigin="anonymous"></script>
|