Skip to content


Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Ruby gem for compressing html
branch: master
Failed to load latest commit information.
lib Fix bug #6
profile speed-up
spec Fix #5
.gitignore add profile script
.travis.yml replace rainpress with css_press
Gemfile use ruby-prof only for mri
LICENSE.txt v0.0.8 multi_css, add license
Rakefile replace rainpress with css_press update readme
html_press.gemspec Fix bug #6

HtmlPress Gem Version Build Status Dependency Status Code Climate

How it works

Remove all whitespace junk. Leave only HTML

1.               ┌――――――――――――――――――╖        2.         ┌――――――――――――――――――╖
  ●――――――――――――――├―╢ <html> ws junk ║          ●――――――――├―――――――――╢ <html> ║
                 └――――――――――――――――――╜                   └――――――――――――――――――╜



require 'html_press'
compressed_html = html


see jekyll_press


TODO :exclamation:


TODO :exclamation:

Command line

TODO :exclamation:


  • use parser () instead of regexp's
    • add option to convert relative urls to absolute urls (for SEO)
  • ambigious ampersands for compression?
  • Support other js/css minifiers (Closure, YUI compressor)
  • htmlTydi
  • Rack plugin
  • add script to benchmark real projects like amazon or stackoverflow
  • support html5 tags
  • add more options
  • Optimization: make substring replace based on substring length and its position in initial string


Additional tools

  • jeanny - rename css classes and ids in css and html files
    • make shorter pathes for images in css
  • deadweight - remove unused css rules from css files
  • csscss will parse any CSS files you give it and let you know which rulesets have duplicated declarations.
  • css-spriter, sprite-factory - combine images in sprites
  • resize images by size defined in html and vice versa embed size of images in html
  • #1, #2 - inline small images in css
  • smusher, jpegtran, optipng - losslessly minify images
  • sprockets, jammit - asset bundlers
  • w3c_validators
  • reduce


Minimize HTML

Front-end optimization

Something went wrong with that request. Please try again.