Markdown editor for DraftVersion body

This commit is contained in:
Amaia Castro
2016-12-12 11:10:10 +01:00
parent 9279f66fd6
commit 715d9e5b88
5 changed files with 35 additions and 2 deletions

View File

@@ -65,6 +65,8 @@ gem 'browser'
gem 'turnout', '~> 2.4.0' gem 'turnout', '~> 2.4.0'
gem 'redcarpet' gem 'redcarpet'
gem 'rails-assets-markdown-it', source: 'https://rails-assets.org'
group :development, :test do group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console # Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug' gem 'byebug'

View File

@@ -1,5 +1,6 @@
GEM GEM
remote: https://rubygems.org/ remote: https://rubygems.org/
remote: https://rails-assets.org/
specs: specs:
actionmailer (4.2.7.1) actionmailer (4.2.7.1)
actionpack (= 4.2.7.1) actionpack (= 4.2.7.1)
@@ -303,6 +304,7 @@ GEM
bundler (>= 1.3.0, < 2.0) bundler (>= 1.3.0, < 2.0)
railties (= 4.2.7.1) railties (= 4.2.7.1)
sprockets-rails sprockets-rails
rails-assets-markdown-it (8.2.1)
rails-deprecated_sanitizer (1.0.3) rails-deprecated_sanitizer (1.0.3)
activesupport (>= 4.2.0.alpha) activesupport (>= 4.2.0.alpha)
rails-dom-testing (1.0.7) rails-dom-testing (1.0.7)
@@ -504,6 +506,7 @@ DEPENDENCIES
poltergeist poltergeist
quiet_assets quiet_assets
rails (= 4.2.7.1) rails (= 4.2.7.1)
rails-assets-markdown-it!
redcarpet redcarpet
responders (~> 2.3.0) responders (~> 2.3.0)
rinku (~> 2.0.2) rinku (~> 2.0.2)

View File

@@ -46,6 +46,8 @@
//= require embed_video //= require embed_video
//= require banners //= require banners
//= require social_share //= require social_share
//= require markdown-it
//= require markdown_editor
//= require custom //= require custom
var initialize_modules = function() { var initialize_modules = function() {
@@ -68,6 +70,7 @@ var initialize_modules = function() {
App.EmbedVideo.initialize(); App.EmbedVideo.initialize();
App.Banners.initialize(); App.Banners.initialize();
App.SocialShare.initialize(); App.SocialShare.initialize();
App.MarkdownEditor.initialize();
}; };
$(function(){ $(function(){

View File

@@ -0,0 +1,20 @@
App.MarkdownEditor =
refresh_preview: (element, md) ->
textarea_content = element.find('textarea').val()
result = md.render(textarea_content)
element.find('#markdown-preview').html(result)
initialize: ->
$('.markdown-editor').each ->
md = window.markdownit({
html: true,
breaks: true,
typographer: true,
})
App.MarkdownEditor.refresh_preview($(this), md)
$(this).on 'change input paste keyup', ->
App.MarkdownEditor.refresh_preview($(this), md)
return

View File

@@ -59,8 +59,13 @@
<div class="small-12 medium-4 column"> <div class="small-12 medium-4 column">
<%= f.label :body %> <%= f.label :body %>
</div> </div>
<div class="small-12 medium-8 column"> <br/>
<%= f.text_area :body, label: false, rows: 15 %> <div class="markdown-editor">
<div class="small-12 medium-6 column">
<%= f.text_area :body, label: false, rows: 25 %>
</div>
<div id="markdown-preview" class="small-12 medium-6 column">
</div>
</div> </div>
</div> </div>