Hand-crafted frontend development
Find a file
2012-04-23 01:17:13 -07:00
middleman Load extensions even when only using middleman-core. Also, use Bundler.require when available rather than scanning gems for extensions. 2012-03-13 23:00:02 -07:00
middleman-core Fix the file watcher to correctly use relative paths, to ignore files we don't care about, and have a find_new_files method that works like reload_path, but only touches previously-unknown files. This all ends up speeding up the build by a lot. 2012-04-23 01:17:13 -07:00
middleman-more Add lib/asset to sprocket load path 2012-04-18 13:58:20 -07:00
.gitignore Ignore pidfiles 2012-03-11 22:40:54 -07:00
.travis.yml derp only allow compass 0.12 2012-03-14 20:04:29 -07:00
.yardopts docs complete. closes #187 on a mother fucking cop. 2012-01-14 12:52:19 -08:00
CHANGELOG.md Update changelog with other changes since beta 1 2012-04-16 23:40:41 -07:00
gem_rake_helper.rb Try Fivemat cucumber output 2012-04-12 11:04:23 -07:00
Gemfile Try Fivemat cucumber output 2012-04-12 11:04:23 -07:00
LICENSE fix slickmap, change to config.rb, rename Base to Server 2010-09-05 19:28:38 -07:00
Rakefile allow extensionless files to be previewed and built. fixes #270, but requires alternative layouts be placed in a layouts/ directory now. 2012-02-12 11:45:42 -08:00
README.md Fix test instructions 2012-03-11 23:41:49 -07:00

Middleman

Middleman makes developing stand-alone websites simple. The last few years has seen an explosion in the amount and variety of tools developers can use to build web applications. Ruby on Rails selects a handful of these tools:

  • Sass for DRY stylesheets
  • CoffeeScript for safer and less verbose javascript
  • Sprockets for combining and minifying assets
  • ERb & Haml for dynamic pages and simplified HTML syntax

Middleman gives the stand-alone developer access to all these tool and many, many more. Why would you use a stand-alone framework instead of Ruby on Rails?

These days, many websites are built with an API in mind. Rather than package the frontend and the backend together, both can be built and deployed independently using the public API to pull data from the backend and display it on the frontend. Static websites are incredibly fast and require very little RAM. A front-end built to stand-alone can be deployed directly to the cloud or a CDN. Many designers and developers simply deliver static HTML/JS/CSS to their clients.

Install

Middleman is built on Ruby and uses the RubyGems package manager for installation. These are usually pre-installed on Mac OS X and Linux. Windows users can install both using RubyInstaller.

gem install middleman

Getting Started

Once Middleman is installed, you will have access to the middleman command. First, let's create a new project. From the terminal:

middleman init MY_PROJECT

This will create a new Middleman project located in the "MY_PROJECT" directory. This project contains a config.rb file for configuring Middleman and a source directory for storing your pages, stylesheets, javascripts and images.

Change directories into your new project and start the preview server:

cd MY_PROJECT
middleman server

The preview server allows you to build your site, by modifying the contents of the source directory, and see your changes reflected in the browser at: http://localhost:4567/

To get started, simply develop as you normally would by building HTML, CSS, and Javascript in the source directory. When you're ready to use more complex templates, simply add the templating engine's extension to the file and start writing in that format.

For example, say I am working on a stylesheet at source/stylesheets/site.css and I'd like to start using Compass and Sass. I would rename the file to source/stylesheets/site.css.scss and Middleman will automatically begin processing that file as Sass. The same would apply to CoffeeScript (.js.coffee), Haml (.html.haml) and any other templating engine you might want to use.

Finally, you will want to build your project into a stand-alone site. From the project directory:

middleman build

This will compile your templates and output a stand-alone site which can be easily hosted or delivered to your client. The build step can also compress images, employ Javascript & CSS dependency management, minify Javascript & CSS and run additional code of your choice. Take a look at the config.rb file to see some of the most common extensions which can be activated.

Learn More

A full set of in-depth instructional guides are available on the official website at:

http://middlemanapp.com/

The community maintains its own collection of tips and tricks in the GitHub wiki:

https://github.com/middleman/middleman/wiki

Finally, up-to-date generated code documentation is available on RubyDoc: http://rubydoc.info/github/middleman/middleman

Community

The official community forum is available at:

http://forum.middlemanapp.com/

Bug Reports

GitHub Issues are used for managing bug reports and feature requests. If you run into issues, please search the issues and submit new problems:

https://github.com/middleman/middleman/issues

The best way to get quick responses to your issues and swift fixes to your bugs is to submit detailed bug reports, include test cases and respond to developer questions in a timely manner. Even better, if you know Ruby, you can submit Pull Requests containing Cucumber Features which describe how your feature should work or exploit the bug you are submitting.

Build & Dependency Status

Build Status Dependency Status

How to Run Cucumber Tests

  1. Checkout Repository: git clone https://github.com/middleman/middleman.git
  2. Install Bundler: gem install bundler
  3. Run bundle install inside the project root to install the gem dependencies.
  4. Run test cases: bundle exec rake test

Donate

Click here to lend your support to Middleman

License

Copyright (c) 2010 Thomas Reynolds. MIT Licensed, see LICENSE for details.