README.md in govuk_template-0.3.8 vs README.md in govuk_template-0.4.0

- old
+ new

@@ -2,14 +2,23 @@ This provides a template containing the GOV.UK header and footer, and associated assets. This is versioned following [Semantic Versioning](http://semver.org). +## Requirements + +The Ruby language (1.9.3+), the build tool [Rake](http://rake.rubyforge.org/) & the dependancy management tool [Bundler](http://bundler.io/) + ## Packaging -At present this generates 3 output formats, a gem containing a Rails engine, a tarball containing Play Framework templates and a tarball. +At present this generates 4 output formats: +1. a gem containing a Rails engine +2. a tarball containing Play Framework templates +3. a folder containing Mustache templates +4. a tarball + ### Gem version This is available on rubygems.org. To use it, add this line to your application's Gemfile: gem 'govuk_template' @@ -20,42 +29,70 @@ You can then use the `govuk_template` layout in your app. If you need to extend the layout you can use [nested layouts](http://guides.rubyonrails.org/layouts_and_rendering.html#using-nested-layouts). ### Play version -To generate the tarball of Play Framework templates run `build:play` rake task. This will produce a tarball in the `pkg` directory. +To generate the tarball of Play Framework templates run `bundle exec rake build:play`. This will produce a tarball in the `pkg` directory. +### Mustache version + +To generate the folder of Mustache templates run `bundle exec rake build:mustache`. This will produce a folder in the `pkg` directory. + ### Tarball version -To generate the tarball, run the `build:tar` rake task. This will produce a tarball in the `pkg` directory. +To generate the tarball, run the `bundle exec rake build:tar`. This will produce a tarball in the `pkg` directory. +## Publishing + +Accepted contributions (pull requests merged into master) will run builds for the Gem, Play and Mustache versions. These will then update the following: + +* RubyGems.org +* [alphagov/govuk_template_play](https://github.com/alphagov/govuk_template_play) +* [alphagov/govuk_template_mustache](https://github.com/alphagov/govuk_template_mustache) which updates the [npm package](https://npmjs.org/package/govuk_template_mustache) + ## Development The source files are in the `/source` directory. The `compile` rake task builds the `/app` contents from these sources. This process involves the following: -* compiling all stylesheets referenced in `/manifests.yml` to plain css (actually css.erb, so the Rails asset pipeline can work in the gem). -* combining all javascripts referenced in `/manifests.yml` (using Sprockets) +* compiling all stylesheets referenced in `/manifests.yml` to plain CSS (actually css.erb, so the Rails asset pipeline can work in the gem). +* combining all JavaScript files referenced in `/manifests.yml` (using Sprockets) * copying the images across (including any needed images from the toolkit) This resulting app directory is included in the gem and hooked in as a Rails engine ### Extra details for the tarball build The tarball build process takes the compiled template and assets from the `/app` directory, and performs some extra processing: -* it compiles the `*.css.erb` files to plain css, replacing all calls to `asset_path` with the relative path to the asset. +* it compiles the `*.css.erb` files to plain CSS, replacing all calls to `asset_path` with the relative path to the asset. For this reason, all assets referenced in the stylesheets must be stored relative to the stylesheet. * it compiles the erb layout to plain html. * All `asset_path` calls are replaced by the the path to the assets, assuming the assets folder is served from /assets * Any `content_for?` calls are assumed to return false * yields in the template are removed except for the main layout one which is replaced with an HTML comment. See the `TemplateProcessor` class for details of this implementation. +## Usage + +### Propositional title and navigation + +You can get a propositional title and navigation by setting the content for `header_class` to `with-proposition` and `proposition_header` in the form: + + <div class="header-proposition"> + <div class="content"> + <a href="#proposition-links" class="js-header-toggle menu">Menu</a> + <nav id="proposition-menu"> + <a href="/" id="proposition-name">Service Name</a> + <ul id="proposition-links"> + <li><a href="url-to-page-1" class="active">Navigation item #1</a></li> + <li><a href="url-to-page-2">Navigation item #2</a></li> + </ul> + </nav> + </div> + </div> + +This will then create a navigation block which is shown on desktop sized devices but collapsed down on smaller screens. + ## Contributing -1. Fork it -2. Create your feature branch (`git checkout -b my-new-feature`) -3. Commit your changes (`git commit -am 'Add some feature'`) -4. Run the tests (`bundle exec rake`) -5. Push to the branch (`git push origin my-new-feature`) -6. Create new Pull Request +Please follow the [contribution guidelines](https://github.com/alphagov/govuk_template/CONTRIBUTING.md).