A modern, responsive portfolio website showcasing virtual photography captured in various video games by PatrickJr. The site is built with Jekyll and enhanced with modern web technologies.
🌐 Live Website: https://vp.grimtech.co.uk/
🔄 GitHub Pages Mirror: https://patrickjnr.github.io/vp
The site is built using Jekyll, a static site generator, and hosted on GitHub Pages. Images are hosted on LensDump. New content and updates are tracked on the changelog page.
- 🎨 Responsive design optimized for all devices
- 📸 Automatic image gallery generation with thumbnails
- 🔍 SEO optimization with Jekyll SEO Tag
- 📡 RSS feed support
- 📊 Google Analytics 4 integration
- 💬 Social media mentions support
- 😊 Emoji support via Jemoji
- 🚀 Modern build process with Node.js
- 🖼️ Automated image processing
- 🗺️ Automatic sitemap generation
- 🔗 Social media integration
- 📱 Mobile-first design
- Ruby >= 3.0.0
- Bundler >= 2.3.0
- Node.js >= 16.0.0 (for frontend assets)
- Python 3.x (for image processing scripts)
- Jekyll >= 4.3.0
-
Clone the repository:
git clone https://github.com/PatrickJnr/vp.git cd vp -
Install Ruby dependencies:
bundle install
-
Install Node.js dependencies:
npm install
-
Install Python dependencies (for image processing scripts):
pip install -r requirements.txt
-
Start the development server:
# Using the provided script (recommended) ./run.bat # Or manually bundle exec jekyll serve --livereload
-
The site will be available at
http://localhost:4000 -
For production build:
JEKYLL_ENV=production bundle exec jekyll build
The repository includes a Python script for processing and uploading images:
This script handles image processing and gallery generation:
- Run the script with a directory containing images:
python generate_albumv3.py path/to/image/directory
- Automatic thumbnail generation
- Batch image processing
- Metadata handling
- JSON data generation for galleries
- Local image organization and optimization
_config.yml- Main Jekyll configurationpackage.json- Node.js dependencies and scriptsGemfile- Ruby dependencies
_data/settings.yml- Site settings_data/navigation.yml- Navigation structure_data/ui-text.yml- UI text strings_data/*.json- Various data files for galleries and content
vp/
├── .github/ # GitHub workflows and templates
├── _data/ # Site data files
│ ├── virtual-photography/ # Gallery data (JSON files)
│ ├── settings/ # Configuration files
│ └── *.yml # YAML data files
├── _includes/ # Reusable components
├── _layouts/ # Page templates
├── _plugins/ # Jekyll plugins
├── _posts/ # Blog posts
├── _site/ # Generated site (not in version control)
├── assets/ # Static assets
│ ├── css/ # Compiled CSS (includes abstracts/ and base/ subdirectories)
│ ├── img/ # Images and icons
│ └── js/ # Source JavaScript
├── js/ # Frontend JavaScript
├── node_modules/ # Node.js dependencies
├── pages/ # Static pages
├── .gitignore # Git ignore rules
├── .env.example # Example environment variables
├── Gemfile # Ruby dependencies
├── package.json # Node.js dependencies
└── generate_albumv3.py # Image processing script
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open source and available under the MIT License.
All virtual photography and screenshots are © PatrickJr and are licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.
For inquiries, collaborations, or feedback:
- ✉️ Email: admin@grimtech.co.uk
- 🌐 Website: https://vp.grimtech.co.uk
- 💻 GitHub: PatrickJnr/vp
Made with ❤️ by PatrickJr | MIT License | View Changelog