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