diff --git a/Gemfile b/Gemfile index 41c25080..83a19f9a 100644 --- a/Gemfile +++ b/Gemfile @@ -28,7 +28,7 @@ gem 'rubytree' gem 'sass-rails', '~> 4.0.3' gem 'sdoc', '~> 0.4.0', group: :doc gem 'slim' -gem "bootstrap_pagedown" +gem 'bootstrap_pagedown' gem 'sorcery' gem 'thread_safe' gem 'turbolinks' diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 175fa4da..98e16d51 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -13,6 +13,7 @@ //= require jquery // //= require ace/ace +//= require bootstrap_pagedown //= require chosen.jquery.min //= require d3 //= require jquery.turbolinks @@ -21,5 +22,5 @@ //= require turbolinks //= require_tree ../../../lib //= require_tree . -//= require bootstrap_pagedown + diff --git a/app/assets/javascripts/markdown_editor.js b/app/assets/javascripts/markdown_editor.js index 702450d5..8923a6ca 100644 --- a/app/assets/javascripts/markdown_editor.js +++ b/app/assets/javascripts/markdown_editor.js @@ -1,8 +1,22 @@ -$(document).ready(function () { - var converter = Markdown.getSanitizingConverter(); - var editor = new Markdown.Editor( converter ); +(function() { + var ACE_FILES_PATH = '/assets/ace/'; - Markdown.Extra.init( converter ); + converter = Markdown.getSanitizingConverter() + editor = new Markdown.Editor converter editor.run(); -}); \ No newline at end of file + editor.refreshPreview() + + window.MarkdownEditor = function(selector) { + ace.config.set('modePath', ACE_FILES_PATH); + var editor = ace.edit($(selector).next()[0]); + editor.on('change', function() { + $(selector).val(editor.getValue()); + }); + editor.setShowPrintMargin(false); + var session = editor.getSession(); + session.setMode('markdown'); + session.setUseWrapMode(true); + session.setValue($(selector).val()); + }; +})(); \ No newline at end of file diff --git a/app/views/exercises/_form.html.slim b/app/views/exercises/_form.html.slim index b160c5d5..718dec83 100644 --- a/app/views/exercises/_form.html.slim +++ b/app/views/exercises/_form.html.slim @@ -9,9 +9,18 @@ .form-group = f.label(:description) = f.hidden_field(:description) - = f.pagedown_editor :description /.form-control.markdown .wmd-panel + #wmd-button-bar + textarea#wmd-input + #wmd-preview + = f.pagedown_editor :description, {skip_preview: false, panel_class: 'wmd-panel', button_bar_id: 'wmd-button-bar', button_bar_class: '', editor_id: 'wmd-input', editor_class: 'wmd-input', preview_id: 'wmd-preview', preview_class: '', } + /.form-group + = f.label(:description) + = f.hidden_field(:description) + + .form-control.markdown + /.wmd-panel .wmd-button-bar textarea.wmd-input .wmd-preview diff --git a/app/views/exercises/edit.html.slim b/app/views/exercises/edit.html.slim index 43550759..d12ee9a6 100644 --- a/app/views/exercises/edit.html.slim +++ b/app/views/exercises/edit.html.slim @@ -1,3 +1,3 @@ h1 = @exercise -= render('form') += render('test')