Skip to content

Latest commit

 

History

History
175 lines (130 loc) · 6.52 KB

File metadata and controls

175 lines (130 loc) · 6.52 KB

PatrickJr's Virtual Photography Portfolio

Website Status GitHub Pages Status License: MIT GitHub last commit GitHub commit activity
GitHub code size in bytes GitHub top language GitHub language count Made with Jekyll Images Hosted with LensDump

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

About

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.

✨ Features

  • 🎨 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

🚀 Prerequisites

  • 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

Installation

  1. Clone the repository:

    git clone https://github.com/PatrickJnr/vp.git
    cd vp
  2. Install Ruby dependencies:

    bundle install
  3. Install Node.js dependencies:

    npm install
  4. Install Python dependencies (for image processing scripts):

    pip install -r requirements.txt

🛠️ Local Development

  1. Start the development server:

    # Using the provided script (recommended)
    ./run.bat
    
    # Or manually
    bundle exec jekyll serve --livereload
  2. The site will be available at http://localhost:4000

  3. For production build:

    JEKYLL_ENV=production bundle exec jekyll build

🖼️ Image Processing

The repository includes a Python script for processing and uploading images:

generate_albumv3.py

This script handles image processing and gallery generation:

  1. Run the script with a directory containing images:
    python generate_albumv3.py path/to/image/directory

Features:

  • Automatic thumbnail generation
  • Batch image processing
  • Metadata handling
  • JSON data generation for galleries
  • Local image organization and optimization

⚙️ Configuration

Key Files

  • _config.yml - Main Jekyll configuration
  • package.json - Node.js dependencies and scripts
  • Gemfile - Ruby dependencies

Data Files

  • _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

📁 Directory Structure

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

Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

📄 License

Code

This project is open source and available under the MIT License.

Content

All virtual photography and screenshots are © PatrickJr and are licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.

Third-Party

📬 Contact

For inquiries, collaborations, or feedback:


Made with ❤️ by PatrickJr | MIT License | View Changelog