Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/codekitchen/premailer
Preflight for HTML email
https://github.com/codekitchen/premailer
Last synced: 3 months ago
JSON representation
Preflight for HTML email
- Host: GitHub
- URL: https://github.com/codekitchen/premailer
- Owner: codekitchen
- License: other
- Fork: true (regru/premailer)
- Created: 2013-08-14T19:21:20.000Z (about 11 years ago)
- Default Branch: master
- Last Pushed: 2013-09-04T15:59:35.000Z (about 11 years ago)
- Last Synced: 2024-04-14T06:51:13.863Z (7 months ago)
- Language: Ruby
- Homepage: http://premailer.dialect.ca/
- Size: 78.1 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
# Premailer README
## What is this?
For the best HTML e-mail delivery results, CSS should be inline. This is a
huge pain and a simple newsletter becomes un-managable very quickly. This
script is my solution.* CSS styles are converted to inline style attributes
- Checks style and link[rel=stylesheet] tags and preserves existing inline attributes
* Relative paths are converted to absolute paths
- Checks links in href, src and CSS url('')
* CSS properties are checked against e-mail client capabilities
- Based on the Email Standards Project's guides
* A plain text version is created (optional)## Premailer 2.0 is coming
I'm looking for input on a version 2.0 update to Premailer. PLease visit the [Premailer 2.0 Planning Page](https://github.com/alexdunae/premailer/wiki/Premailer-2.0-Planning) and give me your feedback.
## Installation
Download the Premailer gem from RubyGems.
```bash
gem install premailer
```## Example
```ruby
premailer = Premailer.new('http://example.com/myfile.html', :warn_level => Premailer::Warnings::SAFE)# Write the HTML output
fout = File.open("output.html", "w")
fout.puts premailer.to_inline_css
fout.close# Write the plain-text output
fout = File.open("ouput.txt", "w")
fout.puts premailer.to_plain_text
fout.close# Output any CSS warnings
premailer.warnings.each do |w|
puts "#{w[:message]} (#{w[:level]}) may not render properly in #{w[:clients]}"
end
```## Ruby Compatibility
Premailer is tested on Ruby 1.8.7, Ruby 1.9.2 and Ruby 1.9.3 (preview 1). It also works on REE. JRuby support is close; contributors are welcome. Checkout the latest build status on the [Travis CI dashboard](http://travis-ci.org/#!/alexdunae/premailer).
## Premailer-specific CSS
Premailer looks for a few CSS attributes that make working with tables a bit easier.
- -premailer-width
- Available on table, th and td elements
- -premailer-height
- Available on table, tr, th and td elements
- -premailer-cellpadding
- Available on table elements
- -premailer-cellspacing
- Available on table elements
Each of these CSS declarations will be copied to appropriate element's attribute.
For example
```css
table { -premailer-cellspacing: 5; -premailer-width: 500;}
```
will result in
```html
```
## Contributions
Contributions are most welcome. Premailer was rotting away in a private SVN repository for too long and could use some TLC. Fork and patch to your heart's content. Please don't increment the version numbers, though.
A few areas that are particularly in need of love:
* Improved test coverage
* Move un-repeated background images defined in CSS for Outlook
## Credits and code
Thanks to [all the wonderful contributors](https://github.com/alexdunae/premailer/contributors) for their updates.
Thanks to [Greenhood + Company](http://www.greenhood.com/) for sponsoring some of the 1.5.6 updates,
and to [Campaign Monitor](http://www.campaignmonitor.com) for supporting the web interface.
The web interface can be found at [premailer.dialect.ca](http://premailer.dialect.ca).
The source code can be found on [GitHub](https://github.com/alexdunae/premailer).
Copyright by Alex Dunae (dunae.ca, e-mail 'code' at the same domain), 2007-2012. See [LICENSE.md](https://github.com/alexdunae/premailer/blob/master/LICENSE.md) for license details.