There's a lot of open issues
A long-lived project that still receives updates
The LocomotiveCMS Steam is the rendering stack used by both Wagon and Engine
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 2.3.1
~> 2.18.2

Runtime

~> 3.1.11
~> 0.10.2
~> 2.0.1.1
~> 0.16.0
~> 4.0.4
~> 0.1.2
~> 1.0.0
~> 0.1.1
~> 1.12
>= 1.7, < 2
~> 2.6.0
~> 1.5.1
~> 4.3.2
>= 1.2, < 1.5
~> 2.3.0
~> 3.3.0
~> 1.15.0
~> 1.14.2
~> 2.8.1
~> 6.0.1
 Project Readme

Steam

The rendering stack used by both Wagon and Engine. It includes:

  • the rack stack to pages and already precompiled assets (through webpack, vite or other).
  • the liquid drops/filters/tags libs to parse and render liquid templates.
  • a Filesystem adapter which reads the source of a site written for Wagon.
  • a MongoDB adapter which reads an existing site hosted by the Locomotive Engine.

Note: Steam passes all the specifications of both Wagon and Engine.

Installation [WIP]

gem install puma
gem install locomotivecms_steam

Usage

Command line:

Warning: For now, Steam is not aimed to be run standalone. The following is just a proof of concept.

Display all the options:

steam --help

Render a local Wagon site:

steam --path=<PATH to a Wagon site>

Render a Engine site:

steam --database=<NAME of the MongoDB database used by the Engine> --assets-path=<PATH to the public folder of the Locomotive>

Once launched, open your browser

open localhost:8080

Inside Engine / Wagon:

https://github.com/locomotivecms/engine/blob/master/lib/locomotive/steam_adaptor.rb https://github.com/locomotivecms/engine/blob/master/spec/dummy/config/routes.rb

https://github.com/locomotivecms/wagon/blob/master/lib/locomotive/wagon/commands/serve_command.rb https://github.com/locomotivecms/wagon/blob/master/lib/locomotive/wagon/commands/serve_command.rb

TODO

see the list in the issues section.

Contributing

  1. Fork it ( http://github.com//locomotivecms/steam )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request

Running test with docker

A docker configuration is included in this repository, you can run all the tests with the following procedure

First run a bash shell inside the container

docker-compose run steam gosu ubuntu bash

Now you are inside the container you can

Init the database with demo data

rake mongodb:test:seed

Run all the test with

rake spec

Run specific test with rspec

rspec spec/unit/middlewares/locale_spec.rb

Note: you do not need to prefix with bundle exec as the docky-ruby image already add it automatically

License

Copyright (c) 2010-2024 NoCoffee. MIT Licensed, see MIT-LICENSE for details.