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 Imgur. 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 Imgur uploads:
-
Create a
.env
file with your Imgur API credentials:CLIENT_ID=your_client_id CLIENT_SECRET=your_client_secret ACCESS_TOKEN=your_access_token REFRESH_TOKEN=your_refresh_token
-
Run the script with a directory containing images:
python generate_albumv3.py path/to/image/directory
- Automatic thumbnail generation
- Batch image processing
- Imgur upload integration
- Metadata handling
- JSON data generation for galleries
_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
β βββ galleries/ # Gallery data
β βββ 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
β βββ 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: [email protected]
- π Website: https://vp.grimtech.co.uk
- π» GitHub: PatrickJnr/vp
Made with β€οΈ by PatrickJr | MIT License | View Changelog