Versions Jekyll screenshot

Versions Jekyll

Author Avatar Theme by Justwriteclick
Updated: 2 Sep 2018
21 Stars

An example site and repo for controlling versions of content in a web site.

Categories

Overview

Understanding versioning in web projects is crucial for maintaining and delivering content effectively. This approach leverages tools like GitHub and Jekyll to manage source files and generate static output, which can be distinctly versioned. By employing collections and configuration management through Jekyll, you can create a website that accurately represents multiple versions of your project, ensuring users can easily navigate to the content they need based on the version.

The setup described allows for dynamic URL structures that reflect the version number, providing clarity for users who seek specific iterations of your content. This capability is particularly useful in scenarios where certain pages may not exist for every version, raising the question of how to handle user experience when they encounter such cases.

Features

  • Version Control with Git: Utilizes Git for managing source files, ensuring stable branches or tags are used for effective versioning.
  • Dynamic Output Versions: Generates output files with versions that are incrementally meaningful but can also have whimsical names if desired.
  • Customizable Collection Settings: The _config.yml file allows for custom destination folders based on versioning, enhancing organization.
  • URL Structure Reflection: Outputs are organized into separate folders per release on GitHub Pages, giving users clear version indications in URLs.
  • Current Version Identification: The master branch consistently reflects the latest version, making it easy for users to access the most relevant content.
  • Theme Support: Utilizes the Minimal Mistakes Jekyll theme, which is designed for collections and enhances the overall functionality.
  • Error Handling Flexibility: Provides options for managing nonexistent pages across different versions, improving the navigation experience.
  • Efficient Build Process: The ability to create custom _config.x.y.yml files for stable branches automates the build process and allows easy deployment of specific version releases.