This repository contains a draft website created with Jekyll for evaluating the feasibility and process of migrating the CivicTech.ca website from WordPress to GitHub Pages.
The goal of this project is to explore the advantages and limitations of using Jekyll with GitHub Pages as a potential alternative to WordPress. The objective is to create a static, secure, and low-maintenance website that is easy to update and contributes to open, accessible web content.
This site uses the Minima theme as a base. Minima is the default theme and provides a clean, simple design and is highly customizable. It offers a flexible starting point for adapting the brand and visual style to a GitHub Pages-friendly Jekyll format.
Migrating to GitHub Pages offers multiple advantages:
- Free Hosting - GitHub Pages provides free hosting for public repositories, reducing hosting costs.
- Version Control - Using Git and GitHub enhances content version control, transparency, and collaboration.
- Security - Static websites are generally more secure than dynamic sites with databases, reducing some risks.
- Open Source Collaboration - GitHub fosters open-source collaboration, enabling contributors to submit pull requests.
- No Dynamic Content - As a static site, GitHub Pages cannot handle server-side processing, so we rely on third-party services for dynamic features.
- Markdown Formatting - Content editing requires familiarity with Markdown and Git workflows, which might increase the learning curve for non-technical contributors.
- Limited Plugin Support - Jekyll has fewer plugins compared to WordPress, so certain functionalities may need custom solutions.
Before you start, consider taking a look at the GitHub Pages documentation
-
Clone the Repository
git clone https://github.com/CivicTechTO/civictechto.github.io.git
-
Install Jekyll and Bundler
Follow the Jekyll installation guide to set up Jekyll and Bundler. -
Install Dependencies
bundle install
-
Run the Local Server
Start a local development server:bundle exec jekyll serve
-
Visit Local Site
Open your browser and go tohttp://localhost:4000
to see the site.
_config.yml
- Site configuration settings_layouts/
- Layout files for different page types_includes/
- Reusable page snippets (e.g., headers, footers)assets/
- CSS, JS, and image files_posts/
- Blog post content in Markdown, currently used for historical hacknight posts_data/
- data files retrieved bysite.data.FILENAME
, contains supporters and projects list for simplified updates.
Using Jekyll with GitHub Pages offers simplicity but comes with certain setup considerations:
-
Ruby Version Management
If you encounter Ruby version conflicts, consider using a Ruby version manager like RVM or rbenv. For example, install RVM by following these instructions and use the required Ruby version specified in.ruby-version
. -
Bundle Install Errors
If you encounter issues withbundle install
, ensure that your Ruby environment matches the requirements inGemfile
. Older versions of certain gems may not be compatible with newer Ruby versions, so adjust as needed. -
Jekyll-GitHub Pages Compatibility
GitHub Pages restricts Jekyll plugins for security reasons. Refer to the GitHub Pages documentation for supported plugins and dependencies. Unsupported plugins will not work on the live site, which may require alternative solutions.
This repository is currently under review, pending decision on next steps.