Skip to content

RiegelGestr/European-Mobility-Symposium

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

11 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

European Mobility Symposium Website

A Python-based static site generator that reproduces the European Mobility Symposium website using Jinja2 templates and Bootstrap 5.

πŸš€ Quick Start

Prerequisites

  • Python 3.8 or higher
  • Git (for deployment)

Installation

  1. Clone this repository:
git clone https://github.com/username/european-mobility-symposium.git
cd european-mobility-symposium
  1. Install dependencies:
pip install -r requirements.txt
  1. Build the website:
python build.py
  1. Open output/index.html in your browser to view the site.

πŸ› οΈ Usage

Basic Build

# Build the site
python build.py

# Build and serve locally
python build.py --serve

# Build and serve on custom port
python build.py --serve --port 8080

Development Workflow

# Build and serve with auto-reload during development
python build.py --serve

Deployment to GitHub Pages

# Deploy to GitHub Pages (requires git setup)
python build.py --deploy

πŸ“ Project Structure

european-mobility-symposium/
β”œβ”€β”€ build.py                 # Main build script
β”œβ”€β”€ config.yaml             # Site configuration
β”œβ”€β”€ requirements.txt        # Python dependencies
β”œβ”€β”€ README.md              # This file
β”œβ”€β”€ content/               # Content files
β”‚   └── symposium.yaml     # Symposium data
β”œβ”€β”€ templates/             # Jinja2 templates
β”‚   └── index.html         # Main template
β”œβ”€β”€ assets/                # Static assets
β”‚   β”œβ”€β”€ css/
β”‚   β”‚   └── style.css      # Custom CSS
β”‚   └── js/
β”‚       └── main.js        # Custom JavaScript
β”œβ”€β”€ output/                # Generated site (created after build)
└── .github/
    └── workflows/
        └── gh-pages.yml   # GitHub Actions workflow

βš™οΈ Configuration

Site Configuration (config.yaml)

Edit config.yaml to customize:

  • Site title and description
  • Bootstrap theme
  • Social media links
  • Navigation menu

Content (content/symposium.yaml)

Edit content/symposium.yaml to update:

  • Event details (dates, venue, location)
  • Participant list
  • Organizer information
  • Program information

🎨 Customization

Templates

The main template is in templates/index.html. It uses Jinja2 templating:

  • {{ variable }} for simple variables
  • {% for item in items %} for loops
  • {% if condition %} for conditionals

Styling

Custom CSS is in assets/css/style.css. The site uses:

  • Bootstrap 5.3.0 from CDN
  • Font Awesome 6.4.0 for icons
  • Custom CSS for additional styling

JavaScript

Custom JavaScript is in assets/js/main.js and includes:

  • Smooth scrolling navigation
  • Active navigation highlighting
  • Card hover effects
  • Mobile menu handling

πŸš€ Deployment

GitHub Pages (Recommended)

  1. Push your code to a GitHub repository
  2. Go to repository Settings > Pages
  3. Set source to "GitHub Actions"
  4. The included workflow will automatically build and deploy

Manual GitHub Pages

# Build the site
python build.py

# Deploy to gh-pages branch
python build.py --deploy

Other Hosting Providers

The generated output/ folder contains a complete static website that can be hosted on:

  • Netlify
  • Vercel
  • AWS S3
  • Any web server

πŸ”§ Advanced Usage

Custom Templates

Create additional templates in the templates/ folder and render them in build.py:

generator.render_page(
    template_name="custom.html",
    output_name="custom.html",
    context={"custom_data": data}
)

Multiple Pages

Add multiple pages by creating new templates and updating the build script:

# In build.py build() method
self.render_page("about.html", "about.html", context)
self.render_page("contact.html", "contact.html", context)

Custom Content Types

Add new content files in content/ directory:

  • JSON files: content/speakers.json
  • YAML files: content/schedule.yaml
  • Markdown files: Process with additional libraries

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature-name
  3. Make your changes
  4. Test the build: python build.py
  5. Commit your changes: git commit -am 'Add feature'
  6. Push to the branch: git push origin feature-name
  7. Submit a pull request

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

πŸ“ž Support

If you encounter any issues:

  1. Check the Issues page
  2. Create a new issue with detailed information
  3. Include your Python version and operating system

πŸ”„ Updates

To update the site content:

  1. Edit content/symposium.yaml
  2. Run python build.py
  3. Commit and push changes (auto-deployment will handle the rest)

Built with ❀️ using Python and Bootstrap

About

European Mobility Symposium website

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors