middleman-versions

Compile different middleman site versions with custom data injected in each one

Dependencies

  • Middleman <= 4.0.0

This Extension use app.proxy to inject values in templates, in Middleman v4 options hash was removed from proxy, https://github.com/middleman/middleman/blob/7c968b9572923fd0f7fb176ca8e52a91727adf84/CHANGELOG.md

How to use it

  • Add gem to your Gemfile
  gem 'middleman-versions'
  • Install gems
   bundle install
  • Edit config.rb and add:
  activate :versions do |foo|
    #extension configuration params
  end

Extension params:

Param name Description Type Default value Mandatory
versions_path Directory where we have our data files String versions/ Not
versions List of files that will be treated as versions files Array of: => "name of file", :decorated_name => "name to be showed in interface" Empty Yes
origin_template Template where will be injected the data readed from files String index.html Not
destination_template Name of final compiled file String index.html Not

Injected variables on Template

Variable name Description Type Example
versions_paths List of all versions final paths Array[String] ["v1/index.html", "v2/index.html"]
versions_list List of all version decorated names Array[String] ["v1","v2"]
version_data Data readed from version file Hash 2.0", "url"=>"http://www.apache.org/licenses/LICENSE-2.0.html"}
current_version Current version of page itself String v1
current_path Current final path of page itself String v1/index.html

Compile to static site

When you execute `middleman build you will get a structure like this

build
└─── v1
│    │     index.html
│
└─── v2
|    │    index.html
│
└─── resources
          └─── fonts
          └─── images
          └─── javascripts
          └─── stylesheets

TODO:

  • [ ] Example Middleman project using this gem
  • [ ] Load all files in versions_path and use file name as decorated_name instead of set versions hash
  • [ ] Load subdirectories in versions_path as versions and merge all files inside subdirectory as the same version