simple_form_markdown_editor 0.0.10 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/Gemfile.lock +70 -58
  4. data/app/controllers/simple_form_markdown_editor/previews_controller.rb +19 -7
  5. data/lib/assets/javascripts/simple_form_markdown_editor.js +1 -3
  6. data/lib/assets/javascripts/simple_form_markdown_editor/__buttons.coffee.erb +48 -0
  7. data/lib/assets/javascripts/simple_form_markdown_editor/__editor.coffee.erb +81 -0
  8. data/lib/assets/javascripts/simple_form_markdown_editor/__help.coffee.erb +86 -0
  9. data/lib/assets/javascripts/simple_form_markdown_editor/__preview.coffee.erb +42 -0
  10. data/lib/assets/javascripts/simple_form_markdown_editor/__tabs.coffee.erb +59 -0
  11. data/lib/assets/javascripts/simple_form_markdown_editor/simple_form_markdown_editor.coffee.erb +98 -0
  12. data/lib/assets/stylesheets/simple_form_markdown_editor.css +2 -2
  13. data/lib/assets/stylesheets/simple_form_markdown_editor/_partials.scss +5 -0
  14. data/lib/assets/stylesheets/simple_form_markdown_editor/buttons/__button.scss.erb +4 -0
  15. data/lib/assets/stylesheets/simple_form_markdown_editor/buttons/__button_group.scss.erb +5 -0
  16. data/lib/assets/stylesheets/simple_form_markdown_editor/buttons/__button_wrapper.scss.erb +5 -0
  17. data/lib/assets/stylesheets/simple_form_markdown_editor/buttons/__buttons.scss.erb +9 -0
  18. data/lib/assets/stylesheets/simple_form_markdown_editor/editor/__editor.scss.erb +4 -0
  19. data/lib/assets/stylesheets/simple_form_markdown_editor/header/__header.scss.erb +4 -0
  20. data/lib/assets/stylesheets/simple_form_markdown_editor/help/__help.scss.erb +12 -0
  21. data/lib/assets/stylesheets/simple_form_markdown_editor/help/__help__section.scss.erb +3 -0
  22. data/lib/assets/stylesheets/simple_form_markdown_editor/help/__help__sections.scss.erb +5 -0
  23. data/lib/assets/stylesheets/simple_form_markdown_editor/help/__help__sub_section.scss.erb +9 -0
  24. data/lib/assets/stylesheets/simple_form_markdown_editor/help/__help__sub_section__item.scss.erb +7 -0
  25. data/lib/assets/stylesheets/simple_form_markdown_editor/help/__help__sub_section__items.scss.erb +5 -0
  26. data/lib/assets/stylesheets/simple_form_markdown_editor/help/__help__sub_sections.scss.erb +5 -0
  27. data/lib/assets/stylesheets/simple_form_markdown_editor/help/__help__text.scss.erb +9 -0
  28. data/lib/assets/stylesheets/simple_form_markdown_editor/help/__help__texts.scss.erb +5 -0
  29. data/lib/assets/stylesheets/simple_form_markdown_editor/preview/__preview.scss.erb +4 -0
  30. data/lib/assets/stylesheets/simple_form_markdown_editor/simple_form_markdown_editor.scss.erb +23 -0
  31. data/lib/assets/stylesheets/simple_form_markdown_editor/tabs/__tab.scss.erb +8 -0
  32. data/lib/assets/stylesheets/simple_form_markdown_editor/tabs/__tabs.scss.erb +9 -0
  33. data/lib/simple_form_markdown_editor.rb +11 -3
  34. data/lib/simple_form_markdown_editor/markdown_editor_input.rb +41 -53
  35. data/lib/simple_form_markdown_editor/version.rb +1 -1
  36. data/simple_form_markdown_editor.gemspec +4 -1
  37. metadata +72 -7
  38. data/lib/assets/javascripts/simple_form_markdown_editor/simple_form_markdown_editor_buttons.coffee.erb +0 -114
  39. data/lib/assets/javascripts/simple_form_markdown_editor/simple_form_markdown_editor_help.coffee +0 -92
  40. data/lib/assets/javascripts/simple_form_markdown_editor/simple_form_markdown_editor_tabs.coffee +0 -82
  41. data/lib/assets/stylesheets/simple_form_markdown_editor/simple_form_markdown_editor.css.scss +0 -274
@@ -1,3 +1,3 @@
1
1
  module SimpleFormMarkdownEditor
2
- VERSION = '0.0.10'.freeze
2
+ VERSION = '1.0.0'.freeze
3
3
  end
@@ -20,9 +20,12 @@ Gem::Specification.new do |spec|
20
20
 
21
21
  spec.add_dependency 'rails', '>= 4.2'
22
22
  spec.add_dependency 'simple_form', '>= 3.0.2'
23
+ spec.add_dependency 'slim'
23
24
  spec.add_dependency 'redcarpet'
24
25
  spec.add_dependency 'responders'
25
26
 
26
27
  spec.add_development_dependency 'bundler', '~> 1.6'
27
- spec.add_development_dependency 'rake'
28
+ spec.add_development_dependency 'minitest', '~> 5.0'
29
+ spec.add_development_dependency 'minitest-rails'
30
+ spec.add_development_dependency 'rake', '~> 10.0'
28
31
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simple_form_markdown_editor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.10
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tomas Celizna
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-04-15 00:00:00.000000000 Z
12
+ date: 2017-06-08 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -39,6 +39,20 @@ dependencies:
39
39
  - - ">="
40
40
  - !ruby/object:Gem::Version
41
41
  version: 3.0.2
42
+ - !ruby/object:Gem::Dependency
43
+ name: slim
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
42
56
  - !ruby/object:Gem::Dependency
43
57
  name: redcarpet
44
58
  requirement: !ruby/object:Gem::Requirement
@@ -82,7 +96,21 @@ dependencies:
82
96
  - !ruby/object:Gem::Version
83
97
  version: '1.6'
84
98
  - !ruby/object:Gem::Dependency
85
- name: rake
99
+ name: minitest
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: '5.0'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: '5.0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: minitest-rails
86
114
  requirement: !ruby/object:Gem::Requirement
87
115
  requirements:
88
116
  - - ">="
@@ -95,6 +123,20 @@ dependencies:
95
123
  - - ">="
96
124
  - !ruby/object:Gem::Version
97
125
  version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: rake
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: '10.0'
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: '10.0'
98
140
  description: Simple Markdown editor (inspired by GitHub editor).
99
141
  email:
100
142
  - mail@tomascelizna.com
@@ -104,6 +146,7 @@ extensions: []
104
146
  extra_rdoc_files: []
105
147
  files:
106
148
  - ".gitignore"
149
+ - CHANGELOG.md
107
150
  - Gemfile
108
151
  - Gemfile.lock
109
152
  - README.md
@@ -111,11 +154,33 @@ files:
111
154
  - app/controllers/simple_form_markdown_editor/previews_controller.rb
112
155
  - config/routes.rb
113
156
  - lib/assets/javascripts/simple_form_markdown_editor.js
114
- - lib/assets/javascripts/simple_form_markdown_editor/simple_form_markdown_editor_buttons.coffee.erb
115
- - lib/assets/javascripts/simple_form_markdown_editor/simple_form_markdown_editor_help.coffee
116
- - lib/assets/javascripts/simple_form_markdown_editor/simple_form_markdown_editor_tabs.coffee
157
+ - lib/assets/javascripts/simple_form_markdown_editor/__buttons.coffee.erb
158
+ - lib/assets/javascripts/simple_form_markdown_editor/__editor.coffee.erb
159
+ - lib/assets/javascripts/simple_form_markdown_editor/__help.coffee.erb
160
+ - lib/assets/javascripts/simple_form_markdown_editor/__preview.coffee.erb
161
+ - lib/assets/javascripts/simple_form_markdown_editor/__tabs.coffee.erb
162
+ - lib/assets/javascripts/simple_form_markdown_editor/simple_form_markdown_editor.coffee.erb
117
163
  - lib/assets/stylesheets/simple_form_markdown_editor.css
118
- - lib/assets/stylesheets/simple_form_markdown_editor/simple_form_markdown_editor.css.scss
164
+ - lib/assets/stylesheets/simple_form_markdown_editor/_partials.scss
165
+ - lib/assets/stylesheets/simple_form_markdown_editor/buttons/__button.scss.erb
166
+ - lib/assets/stylesheets/simple_form_markdown_editor/buttons/__button_group.scss.erb
167
+ - lib/assets/stylesheets/simple_form_markdown_editor/buttons/__button_wrapper.scss.erb
168
+ - lib/assets/stylesheets/simple_form_markdown_editor/buttons/__buttons.scss.erb
169
+ - lib/assets/stylesheets/simple_form_markdown_editor/editor/__editor.scss.erb
170
+ - lib/assets/stylesheets/simple_form_markdown_editor/header/__header.scss.erb
171
+ - lib/assets/stylesheets/simple_form_markdown_editor/help/__help.scss.erb
172
+ - lib/assets/stylesheets/simple_form_markdown_editor/help/__help__section.scss.erb
173
+ - lib/assets/stylesheets/simple_form_markdown_editor/help/__help__sections.scss.erb
174
+ - lib/assets/stylesheets/simple_form_markdown_editor/help/__help__sub_section.scss.erb
175
+ - lib/assets/stylesheets/simple_form_markdown_editor/help/__help__sub_section__item.scss.erb
176
+ - lib/assets/stylesheets/simple_form_markdown_editor/help/__help__sub_section__items.scss.erb
177
+ - lib/assets/stylesheets/simple_form_markdown_editor/help/__help__sub_sections.scss.erb
178
+ - lib/assets/stylesheets/simple_form_markdown_editor/help/__help__text.scss.erb
179
+ - lib/assets/stylesheets/simple_form_markdown_editor/help/__help__texts.scss.erb
180
+ - lib/assets/stylesheets/simple_form_markdown_editor/preview/__preview.scss.erb
181
+ - lib/assets/stylesheets/simple_form_markdown_editor/simple_form_markdown_editor.scss.erb
182
+ - lib/assets/stylesheets/simple_form_markdown_editor/tabs/__tab.scss.erb
183
+ - lib/assets/stylesheets/simple_form_markdown_editor/tabs/__tabs.scss.erb
119
184
  - lib/config/locales/simple_form_markdown_editor.en.yml
120
185
  - lib/simple_form_markdown_editor.rb
121
186
  - lib/simple_form_markdown_editor/configuration.rb
@@ -1,114 +0,0 @@
1
- # https://github.com/jquery-boilerplate/jquery-boilerplate/
2
- do ($ = jQuery, window, document) ->
3
-
4
- pluginName = 'simple_form_markdown_editor_buttons'
5
- defaults =
6
- debug: false
7
- definitions: JSON.parse('<%= SimpleFormMarkdownEditor::MarkdownEditorInput.configuration.button_definitions.to_json %>')
8
-
9
- # ---------------------------------------------------------------------
10
-
11
- class Plugin
12
- constructor: (@element, options) ->
13
- @settings = $.extend {}, defaults, options
14
-
15
- @$element = $(@element)
16
-
17
- @_defaults = defaults
18
- @_name = pluginName
19
-
20
- @init()
21
-
22
- init: ->
23
- console.log 'init' if @settings.debug
24
-
25
- @get_help_button().addClass('active') if @help_is_visible()
26
-
27
- @get_help_button().on 'click', (e) =>
28
- $(e.currentTarget).toggleClass('active')
29
- @toggle_help_visibility()
30
-
31
- @get_command_buttons().on 'click', (e) =>
32
- $btn = $(e.currentTarget)
33
- cmd = $btn.attr('value')
34
- @execute_command(cmd)
35
-
36
- # ---------------------------------------------------------------------
37
-
38
- get_textarea: -> @get_editor_div().children('textarea')
39
- get_editor_div: -> @$element.children('div.editor')
40
- get_header_div: -> @$element.children('div.header:first')
41
- get_help_div: -> @$element.children('div.help')
42
- get_button_groups_ul: -> @get_header_div().find('ul.button_groups')
43
- get_button_group_lis: -> @get_button_groups_ul().children('li.button_group')
44
- get_buttons_uls: -> @get_button_group_lis().children('ul.buttons')
45
- get_button_lis: -> @get_buttons_uls().children('li.button')
46
- get_buttons: -> @get_button_lis().children('button')
47
- get_command_buttons: -> @get_buttons().not(@get_help_button())
48
- get_help_button: -> @get_buttons().filter('.help')
49
-
50
- help_is_visible: -> @get_help_div().attr('data-visible') == 'true'
51
-
52
- execute_command: (cmd) ->
53
- $textarea = @get_textarea()
54
- selection = @get_selection($textarea)
55
- definition = @settings.definitions[cmd]
56
- replacement = definition.replace('%{str}', selection.text)
57
- caret_pos = replacement.indexOf('|')
58
- start = selection.start
59
- end = selection.start + replacement.length
60
- if caret_pos > -1
61
- replacement = replacement.replace(/\|/g, '')
62
- start = selection.start + caret_pos
63
- end = selection.start + caret_pos
64
- @replace_selection($textarea, replacement)
65
- @set_selection($textarea, start, end)
66
-
67
- get_selection: ($e) ->
68
- {
69
- start: $e[0].selectionStart
70
- end: $e[0].selectionEnd
71
- length: $e[0].selectionEnd - $e[0].selectionStart
72
- text: $e.val().substring($e[0].selectionStart, $e[0].selectionEnd)
73
- }
74
-
75
- set_selection: ($e, start, end) ->
76
- $e.focus()
77
- $e[0].selectionStart = start
78
- $e[0].selectionEnd = end
79
-
80
- replace_selection: ($e, string) ->
81
- start = $e[0].selectionStart
82
- end = $e[0].selectionEnd
83
- val = $e.val()
84
- $e.val(val.substring(0, start) + string + val.substring(end, val.length))
85
-
86
- toggle_help_visibility: ->
87
- @get_help_div().attr('data-visible', String(!@help_is_visible()))
88
-
89
- # ---------------------------------------------------------------------
90
-
91
- # A really lightweight plugin wrapper around the constructor,
92
- # preventing against multiple instantiations and allowing any
93
- # public function (ie. a function whose name doesn't start
94
- # with an underscore) to be called via the jQuery plugin,
95
- # e.g. $(element).defaultPluginName('functionName', arg1, arg2)
96
-
97
- $.fn[pluginName] = (options) ->
98
- args = arguments
99
- if options is `undefined` or typeof options is "object"
100
- @each ->
101
- $.data this, "plugin_" + pluginName, new Plugin(this, options) unless $.data(this, "plugin_" + pluginName)
102
-
103
- else if typeof options is "string" and options[0] isnt "_" and options isnt "init"
104
- returns = undefined
105
- @each ->
106
- instance = $.data(this, "plugin_" + pluginName)
107
- returns = instance[options].apply(instance, Array::slice.call(args, 1)) if instance instanceof Plugin and typeof instance[options] is "function"
108
- $.data this, "plugin_" + pluginName, null if options is "destroy"
109
-
110
- (if returns isnt `undefined` then returns else this)
111
-
112
- # =====================================================================
113
-
114
- $ -> $('div.simple_form_markdown_editor').simple_form_markdown_editor_buttons()
@@ -1,92 +0,0 @@
1
- # https://github.com/jquery-boilerplate/jquery-boilerplate/
2
- do ($ = jQuery, window, document) ->
3
-
4
- pluginName = 'simple_form_markdown_editor_help'
5
- defaults =
6
- debug: false
7
-
8
- # ---------------------------------------------------------------------
9
-
10
- class Plugin
11
- constructor: (@element, options) ->
12
- @settings = $.extend {}, defaults, options
13
-
14
- @$element = $(@element)
15
-
16
- @_defaults = defaults
17
- @_name = pluginName
18
-
19
- @init()
20
-
21
- init: ->
22
- console.log 'init' if @settings.debug
23
-
24
- @set_section_li @get_section_lis().first()
25
-
26
- @get_section_lis().on 'click', (e) =>
27
- $li = $(e.currentTarget)
28
- @set_section_li($li)
29
-
30
- @get_sub_section_lis().on 'click', (e) =>
31
- $li = $(e.currentTarget)
32
- @set_sub_section_li($li)
33
-
34
- # ---------------------------------------------------------------------
35
-
36
- get_help_div: -> @$element.find('div.help')
37
- get_sections_ul: -> @get_help_div().find('ul.sections')
38
- get_section_lis: -> @get_sections_ul().children('li')
39
- get_sub_section_ul: (section) -> @get_sub_sections_uls().filter(".#{section}")
40
- get_sub_sections_uls: -> @get_help_div().find('ul.sub_sections')
41
- get_sub_section_lis: -> @get_sub_sections_uls().children('li.sub_section')
42
- get_help_text_divs: -> @get_help_div().find('div.help_text')
43
-
44
- set_section_li: ($li) ->
45
- $li.siblings('li').removeClass('active')
46
- $li.addClass('active')
47
- section = $li.data('toggle')
48
- $sub_section_ul = @get_sub_section_ul(section)
49
- @set_sub_section_ul($sub_section_ul)
50
-
51
- set_sub_section_ul: ($ul) ->
52
- $ul.siblings('ul').removeClass('active')
53
- $ul.addClass('active')
54
- $li = $ul.children('li:first')
55
- @set_sub_section_li($li)
56
-
57
- set_sub_section_li: ($li) ->
58
- $li.siblings('li').removeClass('active')
59
- $li.addClass('active')
60
- $help_text_div = @get_help_text_divs().filter(".#{$li.data('toggle')}")
61
- @set_help_text_div($help_text_div)
62
-
63
- set_help_text_div: ($div) ->
64
- $div.siblings('div').removeClass('active')
65
- $div.addClass('active')
66
-
67
- # ---------------------------------------------------------------------
68
-
69
- # A really lightweight plugin wrapper around the constructor,
70
- # preventing against multiple instantiations and allowing any
71
- # public function (ie. a function whose name doesn't start
72
- # with an underscore) to be called via the jQuery plugin,
73
- # e.g. $(element).defaultPluginName('functionName', arg1, arg2)
74
-
75
- $.fn[pluginName] = (options) ->
76
- args = arguments
77
- if options is `undefined` or typeof options is "object"
78
- @each ->
79
- $.data this, "plugin_" + pluginName, new Plugin(this, options) unless $.data(this, "plugin_" + pluginName)
80
-
81
- else if typeof options is "string" and options[0] isnt "_" and options isnt "init"
82
- returns = undefined
83
- @each ->
84
- instance = $.data(this, "plugin_" + pluginName)
85
- returns = instance[options].apply(instance, Array::slice.call(args, 1)) if instance instanceof Plugin and typeof instance[options] is "function"
86
- $.data this, "plugin_" + pluginName, null if options is "destroy"
87
-
88
- (if returns isnt `undefined` then returns else this)
89
-
90
- # =====================================================================
91
-
92
- $ -> $('div.simple_form_markdown_editor').simple_form_markdown_editor_help()
@@ -1,82 +0,0 @@
1
- # https://github.com/jquery-boilerplate/jquery-boilerplate/
2
- do ($ = jQuery, window, document) ->
3
-
4
- pluginName = 'simple_form_markdown_editor_tabs'
5
- defaults =
6
- debug: false
7
-
8
- # ---------------------------------------------------------------------
9
-
10
- class Plugin
11
- constructor: (@element, options) ->
12
- @settings = $.extend {}, defaults, options
13
-
14
- @$element = $(@element)
15
-
16
- @_defaults = defaults
17
- @_name = pluginName
18
-
19
- @init()
20
-
21
- init: ->
22
- console.log 'init' if @settings.debug
23
-
24
- @get_edit_tab().addClass('active')
25
-
26
- @get_tab_lis().on 'click', (e) =>
27
- @get_tab_lis().removeClass('active')
28
- $(e.currentTarget).addClass('active')
29
- @$element.attr('data-show', $(e.currentTarget).data('command'))
30
-
31
- @get_preview_tab().on 'click', (e) =>
32
- $.ajax(
33
- context: @element
34
- type: 'POST'
35
- url: @$element.attr('data-preview-path')
36
- data:
37
- _method: 'PUT'
38
- text: @get_textarea().val() || ''
39
- options: @get_textarea_options()
40
- success: (html) =>
41
- @get_preview_div().html(html) or "<p>#{@get_nothing_to_preview_text()}</p>"
42
- )
43
-
44
- # ---------------------------------------------------------------------
45
-
46
- get_textarea: -> @get_editor_div().find('textarea')
47
- get_preview_div: -> @$element.find('div.preview')
48
- get_editor_div: -> @$element.find('div.editor')
49
- get_header: -> @$element.find('div.header:first')
50
- get_tabs_ul: -> @get_header().find('ul.tabs')
51
- get_tab_lis: -> @get_tabs_ul().children('li')
52
- get_preview_tab: -> @get_tab_lis().filter('.preview')
53
- get_edit_tab: -> @get_tab_lis().filter('.edit')
54
- get_nothing_to_preview_text: -> @get_preview_div().data('nothing-to-preview-text') or "Nothing to preview."
55
- get_textarea_options: -> @$element.data('options')
56
-
57
- # ---------------------------------------------------------------------
58
-
59
- # A really lightweight plugin wrapper around the constructor,
60
- # preventing against multiple instantiations and allowing any
61
- # public function (ie. a function whose name doesn't start
62
- # with an underscore) to be called via the jQuery plugin,
63
- # e.g. $(element).defaultPluginName('functionName', arg1, arg2)
64
-
65
- $.fn[pluginName] = (options) ->
66
- args = arguments
67
- if options is `undefined` or typeof options is "object"
68
- @each ->
69
- $.data this, "plugin_" + pluginName, new Plugin(this, options) unless $.data(this, "plugin_" + pluginName)
70
-
71
- else if typeof options is "string" and options[0] isnt "_" and options isnt "init"
72
- returns = undefined
73
- @each ->
74
- instance = $.data(this, "plugin_" + pluginName)
75
- returns = instance[options].apply(instance, Array::slice.call(args, 1)) if instance instanceof Plugin and typeof instance[options] is "function"
76
- $.data this, "plugin_" + pluginName, null if options is "destroy"
77
-
78
- (if returns isnt `undefined` then returns else this)
79
-
80
- # =====================================================================
81
-
82
- $ -> $('div.simple_form_markdown_editor').simple_form_markdown_editor_tabs()
@@ -1,274 +0,0 @@
1
- @mixin clearfix {
2
- &:after {
3
- content: "";
4
- display: table;
5
- clear: both;
6
- }
7
- }
8
-
9
- @mixin reset-list {
10
- margin: 0;
11
- padding: 0;
12
- list-style: none;
13
- }
14
-
15
- @mixin default-font {
16
- font-family: helvetica, arial, sans-serif;
17
- font-size: 14px;
18
- line-height: 16px;
19
- font-weight: normal;
20
- font-style: normal;
21
- letter-spacing: 0;
22
- color: $black;
23
- }
24
-
25
- $grey-light: rgb(240, 240, 240);
26
- $grey: rgb(220, 220, 220);
27
- $grey-dark: rgb(180, 180, 180);
28
- $white: rgb(255, 255, 255);
29
- $black: rgb(10, 10, 10);
30
-
31
- // ====================================================================
32
-
33
- div.simple_form_markdown_editor {
34
-
35
- label {
36
- display: block;
37
- margin-bottom: 7px;
38
- }
39
-
40
- // --------------------------------------------------------------------
41
-
42
- &[data-show="preview"] {
43
-
44
- div.buttons,
45
- div.help,
46
- div.editor {
47
- display: none;
48
- }
49
-
50
- div.preview {
51
- display: block;
52
- }
53
- }
54
-
55
- div.preview {
56
- display: none;
57
- }
58
-
59
- div.editor {
60
- textarea {
61
- @include default-font;
62
- border: 1px solid $grey;
63
- border-radius: 2px;
64
- width: 100%;
65
- margin: 0;
66
- box-sizing: border-box;
67
- padding: 7px;
68
- box-shadow: inset 0 1px 2px $grey-light;
69
- resize: vertical;
70
- }
71
- }
72
-
73
- // --------------------------------------------------------------------
74
-
75
- div.header {
76
- div.editor_tabs {
77
- background-color: $grey-light;
78
- border: 1px solid $grey;
79
- border-radius: 2px 2px 0 0;
80
- margin-bottom: 16px;
81
-
82
- ul.tabs {
83
- @include reset-list;
84
- padding: 8px 8px 0 8px;
85
- margin-bottom: -1px;
86
-
87
- li.tab {
88
- display: inline-block;
89
- &.active {
90
- span {
91
- background-color: white;
92
- border-color: $grey;
93
- color: $black;
94
- }
95
- }
96
- span {
97
- @include default-font;
98
- color: $grey-dark;
99
- display: inline-block;
100
- border-top: 1px solid transparent;
101
- border-left: 1px solid transparent;
102
- border-right: 1px solid transparent;
103
- border-radius: 2px 2px 0 0;
104
- padding: 8px 14px;
105
- cursor: pointer;
106
- }
107
- }
108
- }
109
- }
110
-
111
-
112
- div.buttons {
113
- ul.button_groups {
114
- @include clearfix;
115
- @include reset-list;
116
- margin-bottom: 16px;
117
-
118
- li.button_group {
119
- color: red;
120
- float: left;
121
- margin-right: 8px;
122
-
123
- &[data-buttons*='help'] {
124
- float: right;
125
- margin: 0;
126
- }
127
-
128
- ul.buttons {
129
- @include clearfix;
130
- @include reset-list;
131
-
132
- li.button {
133
- float: left;
134
-
135
- &:first-child {
136
- button {
137
- border-radius: 2px 0 0 2px;
138
- }
139
- }
140
-
141
- &:last-child {
142
- button {
143
- border-radius: 0 2px 2px 0;
144
- border-right: 1px solid $grey;
145
- }
146
- }
147
-
148
- &:first-child:last-child {
149
- button {
150
- border-radius: 2px;
151
- border-right: 1px solid $grey;
152
- }
153
- }
154
-
155
- button {
156
- @include default-font;
157
- display: inline-block;
158
- background-color: white;
159
- margin: 0;
160
- padding: 0;
161
-
162
- border: 0;
163
- border-left: 1px solid $grey;
164
- border-top: 1px solid $grey;
165
- border-bottom: 1px solid $grey-dark;
166
-
167
- padding: 4px 6px;
168
- cursor: pointer;
169
-
170
- &:active,
171
- &.active {
172
- border-color: $grey;
173
- border-top-color: $grey-dark;
174
- background-color: $grey-light;
175
- }
176
- }
177
- }
178
- }
179
- }
180
- }
181
- }
182
- }
183
-
184
- div.help {
185
- @include clearfix;
186
- @include default-font;
187
- transition: height .2s ease-in-out;
188
- overflow: hidden;
189
- height: 0;
190
- box-sizing: border-box;
191
-
192
- &[data-visible="true"] {
193
- height: 210px;
194
- margin-bottom: 16px;
195
- }
196
-
197
- div.help_wrapper {
198
- height: 210px;
199
- border: 1px solid $grey;
200
- box-sizing: border-box;
201
- > ul {
202
- @include reset-list;
203
- float: left;
204
- width: 200px;
205
- height: 100%;
206
- border-right: 1px solid;
207
- background-color: $grey-light;
208
-
209
- > li {
210
- padding: 8px 16px;
211
- border-bottom: 1px solid $grey;
212
- color: $grey-dark;
213
- cursor: pointer;
214
-
215
- &:hover {
216
- color: $black;
217
- }
218
- }
219
- }
220
-
221
- ul.sections {
222
- border-right-color: $grey-dark;
223
- overflow-y: auto;
224
- li.section {
225
- &.active {
226
- color: $black;
227
- border-bottom: 1px solid $grey-dark;
228
- background-color: $white;
229
- }
230
- }
231
- }
232
-
233
- ul.sub_sections {
234
- border-right-color: $grey;
235
- display: none;
236
- overflow-y: auto;
237
- &.active {
238
- display: block;
239
- }
240
- li.sub_section {
241
- background-color: $white;
242
- &.active {
243
- color: $black;
244
- }
245
- }
246
- }
247
-
248
- div.help_text {
249
- padding: 8px 16px;
250
- height: 100%;
251
- box-sizing: border-box;
252
- overflow-y: auto;
253
- display: none;
254
-
255
- p {
256
- margin-top: 0;
257
- }
258
-
259
- code {
260
- padding: 2px 3px;
261
- font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
262
- font-size: 13px;
263
- background-color: $grey-light;
264
- border-radius: 2px;
265
- white-space: nowrap
266
- }
267
-
268
- &.active {
269
- display: block;
270
- }
271
- }
272
- }
273
- }
274
- }