README.md in mark_it_zero-0.0.0 vs README.md in mark_it_zero-0.1.0
- old
+ new
@@ -1,6 +1,124 @@
-MarkItZero
+Mark It Zero!
==========
-In progress ...
-
![Mark it zero!](http://i296.photobucket.com/albums/mm163/pacersfan33/biglebowski-markitzero-1.jpg)
+
+Mark It Zero! adds a markdown editor (with syntax highlighting) to your Rails'
+forms, and can automatically convert markdown to HTML on save.
+
+The editor we're using is almost entirely [this fantastic javascript
+editor](https://github.com/lepture/editor) by Hsiaoming Yang. The converter
+uses [Redcarpet](https://github.com/vmg/redcarpet) and
+[Pygments.rb](https://github.com/tmm1/pygments.rb).
+
+Installation
+----------
+
+This gem is meant to work with Ruby on Rails projects. I recommend you add it
+to your project's Gemfile:
+
+```ruby
+gem 'mark_it_zero'
+```
+
+Then install your bundle:
+
+```text
+$ bundle
+```
+
+Usage
+----------
+
+There are two main pieces to this gem:
+
+* markdown editor
+* markdown-to-html converter
+
+They are not dependent on one another, and can be used separately.
+
+### Markdown Editor
+
+The markdown editor is simple. There's a `markdown` method added onto your form
+object. So, all you have to do is this:
+
+```text
+<%= [form_object].markdown :[markdown_column] %>
+```
+
+So, if your markdown column is, for example, `body_markdown`, and your form
+object is `f`, then this would look like:
+
+```html
+<%= f.markdown :body_markdown %>
+```
+
+Easy, right?
+
+### Converting to HTML
+
+Mark It Zero! adds some instance methods to your model if you want to store
+both the markdown and HTML.
+
+> *I prefer to store both markdown and HTML because then the markdown is only
+> parsed on save (which can be time-consuming), as opposed to every read.*
+
+All you have to do is add the `converts_markdown` method to your model.
+
+```ruby
+converts_markdown :[markdown_column], :[html_column]
+```
+
+For example, if I have a `Post` model that has a `body_markdown` and a
+`body_html` column for storing markdown and html, my model might look like
+this:
+
+```ruby
+class Post < ActiveRecord::Base
+ converts_markdown :body_markdown, :body_html
+end
+```
+
+Whenever you use this method, you get a set of methods (dynamically named)
+available to you. Using this example, you would get the following methods:
+
+* `convert_body_markdown_to_body_html`: Will update the `body_markdown` column
+ with the converted html from the `body_markdown` column.
+* `clean_body_markdown`: The `markdown_body` value, after being cleaned.
+
+Notice the pattern. If the columns were simple `md` and `html`, then the
+methods would be `convert_md_to_html` and `clean_md`.
+
+The converter is run using the `after_save` callback.
+
+#### Features
+
+**YouTube Videos**
+
+Having a YouTube URL as a paragraph in markdown will convert the URL to an
+embedded video.
+
+**Syntax Highlighting**
+
+We use Pygments.rb to add classes for syntax highlighting to code blocks. Most
+of what I'm doing is contained within [this
+Railscast](http://railscasts.com/episodes/207-syntax-highlighting-revised).
+
+Special Thanks!
+----------
+
+The bulk of this gem is piecing together fantastic work by the individuals who
+built [the editor](https://github.com/lepture/editor),
+[Redcarpet](https://github.com/vmg/redcarpet), and
+[Pygments.rb](https://github.com/tmm1/pygments.rb).
+
+Thanks for all your hard work! It makes my job easier.
+
+Contributing
+----------
+
+1. Fork it ( https://github.com/[my-github-username]/cambium/fork )
+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 a new Pull Request