volt-wysiwyg 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (48) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/Gemfile +4 -0
  4. data/README.md +41 -0
  5. data/Rakefile +1 -0
  6. data/VERSION +1 -0
  7. data/app/wysiwyg/assets/css/quill.base.css +186 -0
  8. data/app/wysiwyg/assets/css/quill.snow.css +909 -0
  9. data/app/wysiwyg/assets/js/lodash.js +6785 -0
  10. data/app/wysiwyg/assets/js/quill.js +9956 -0
  11. data/app/wysiwyg/config/dependencies.rb +1 -0
  12. data/app/wysiwyg/config/routes.rb +1 -0
  13. data/app/wysiwyg/controllers/main_controller.rb +49 -0
  14. data/app/wysiwyg/views/main/editor.html +2 -0
  15. data/app/wysiwyg/views/main/fonts.html +9 -0
  16. data/app/wysiwyg/views/main/index.html +3 -0
  17. data/app/wysiwyg/views/main/toolbar.html +96 -0
  18. data/example/.gitignore +9 -0
  19. data/example/Gemfile +21 -0
  20. data/example/README.md +4 -0
  21. data/example/app/main/assets/css/app.css.scss +1 -0
  22. data/example/app/main/config/dependencies.rb +5 -0
  23. data/example/app/main/config/routes.rb +11 -0
  24. data/example/app/main/controllers/main_controller.rb +38 -0
  25. data/example/app/main/models/user.rb +4 -0
  26. data/example/app/main/views/main/about.html +8 -0
  27. data/example/app/main/views/main/index.html +9 -0
  28. data/example/app/main/views/main/main.html +29 -0
  29. data/example/app/wysiwyg/views/main/fonts.html +8 -0
  30. data/example/config.ru +4 -0
  31. data/example/config/app.rb +41 -0
  32. data/example/config/base/index.html +16 -0
  33. data/example/quill_examples/examples/advanced.html +138 -0
  34. data/example/quill_examples/examples/index.html +78 -0
  35. data/example/quill_examples/examples/scripts/advanced.js +75 -0
  36. data/example/quill_examples/examples/styles/advanced.css +28 -0
  37. data/example/quill_examples/examples/styles/style.css +26 -0
  38. data/example/quill_examples/quill.base.css +186 -0
  39. data/example/quill_examples/quill.js +9956 -0
  40. data/example/quill_examples/quill.snow.css +909 -0
  41. data/example/spec/app/main/controllers/server/sample_http_controller_spec.rb +5 -0
  42. data/example/spec/app/main/integration/sample_integration_spec.rb +11 -0
  43. data/example/spec/app/main/models/sample_model_spec.rb +5 -0
  44. data/example/spec/app/main/tasks/sample_task_spec.rb +5 -0
  45. data/example/spec/spec_helper.rb +14 -0
  46. data/lib/volt/wysiwyg.rb +5 -0
  47. data/volt-wysiwyg.gemspec +25 -0
  48. metadata +120 -0
@@ -0,0 +1 @@
1
+ # Component dependencies
@@ -0,0 +1 @@
1
+ # Component routes
@@ -0,0 +1,49 @@
1
+ module Wysiwyg
2
+ class MainController < Volt::ModelController
3
+ attr_reader :quill
4
+
5
+ def index_ready
6
+ @updating_attribute = false
7
+ %x{
8
+ var quill = new Quill('.quill-editor', {
9
+ modules: {
10
+ 'toolbar': {
11
+ container: '.toolbar-container'
12
+ },
13
+ 'link-tooltip': true,
14
+ 'image-tooltip': true
15
+ },
16
+ styles: false,
17
+ theme: 'snow'
18
+ });
19
+ #{@quill} = quill
20
+
21
+ quill.on('text-change', function(){
22
+ if (!self.updating_editor) {
23
+ #{@updating_attribute = true }
24
+ #{new_text = nil ; puts 'updating'}
25
+ new_text = quill.getHTML();
26
+ #{ attrs.text = new_text }
27
+ setImmediate(function(){ #{ @updating_attribute = false } });
28
+ }
29
+ });
30
+ }
31
+
32
+ @computation = -> { update_text(attrs.text) }.watch!
33
+ end
34
+
35
+ def before_index_remove
36
+ @computation.stop
37
+ end
38
+
39
+ def update_text(new_text)
40
+ unless @updating_attribute
41
+ @updating_editor = true
42
+ puts 'updating text'
43
+ `#{quill}.setHTML(#{new_text || ''})`
44
+ @updating_editor = false
45
+ end
46
+ end
47
+
48
+ end
49
+ end
@@ -0,0 +1,2 @@
1
+ <:Body>
2
+ <div class="quill-editor"><div></div></div>
@@ -0,0 +1,9 @@
1
+ <select title="Font" class="ql-font">
2
+ <option value="Futura" selected>Futura</option>
3
+ <option value="Impact" selected>Impact</option>
4
+ <option value="Georgia, serif">Georgia</option>
5
+ <option value="Copperplate" selected>Copperplate</option>
6
+ <option value="'Brush Script MT', cursive" selected>Brush Script</option>
7
+ <option value="sans-serif" selected>Sans Serif</option>
8
+ <option value="Monaco, 'Courier New', monospace">Courier</option>
9
+ </select>
@@ -0,0 +1,3 @@
1
+ <:Body>
2
+ <:toolbar></:toolbar>
3
+ <:editor/>
@@ -0,0 +1,96 @@
1
+ <:Body>
2
+ <div class="toolbar-container"><span class="ql-format-group">
3
+ <:fonts/>
4
+ <select title="Size" class="ql-size">
5
+ <option value="10px">Small</option>
6
+ <option value="13px" selected>Normal</option>
7
+ <option value="18px">Large</option>
8
+ <option value="32px">Huge</option>
9
+ </select></span><span class="ql-format-group"><span title="Bold" class="ql-format-button ql-bold"></span><span class="ql-format-separator"></span><span title="Italic" class="ql-format-button ql-italic"></span><span class="ql-format-separator"></span><span title="Underline" class="ql-format-button ql-underline"></span></span><span class="ql-format-group">
10
+ <:textcolors/>
11
+ <span class="ql-format-separator"></span>
12
+ <:backgroundcolors/>
13
+ <span class="ql-format-separator"></span>
14
+ <select title="Text Alignment" class="ql-align">
15
+ <option value="left" selected></option>
16
+ <option value="center"></option>
17
+ <option value="right"></option>
18
+ <option value="justify"></option>
19
+ </select></span><span class="ql-format-group"><span title="Link" class="ql-format-button ql-link"></span><span class="ql-format-separator"></span><span title="Image" class="ql-format-button ql-image"></span><span class="ql-format-separator"></span><span title="List" class="ql-format-button ql-list"></span></span></div>
20
+
21
+ <:Textcolors>
22
+ <select title="Text Color" class="ql-color">
23
+ <option value="rgb(0, 0, 0)" selected></option>
24
+ <option value="rgb(230, 0, 0)"></option>
25
+ <option value="rgb(255, 153, 0)"></option>
26
+ <option value="rgb(255, 255, 0)"></option>
27
+ <option value="rgb(0, 138, 0)"></option>
28
+ <option value="rgb(0, 102, 204)"></option>
29
+ <option value="rgb(153, 51, 255)"></option>
30
+ <option value="rgb(255, 255, 255)"></option>
31
+ <option value="rgb(250, 204, 204)"></option>
32
+ <option value="rgb(255, 235, 204)"></option>
33
+ <option value="rgb(255, 255, 204)"></option>
34
+ <option value="rgb(204, 232, 204)"></option>
35
+ <option value="rgb(204, 224, 245)"></option>
36
+ <option value="rgb(235, 214, 255)"></option>
37
+ <option value="rgb(187, 187, 187)"></option>
38
+ <option value="rgb(240, 102, 102)"></option>
39
+ <option value="rgb(255, 194, 102)"></option>
40
+ <option value="rgb(255, 255, 102)"></option>
41
+ <option value="rgb(102, 185, 102)"></option>
42
+ <option value="rgb(102, 163, 224)"></option>
43
+ <option value="rgb(194, 133, 255)"></option>
44
+ <option value="rgb(136, 136, 136)"></option>
45
+ <option value="rgb(161, 0, 0)"></option>
46
+ <option value="rgb(178, 107, 0)"></option>
47
+ <option value="rgb(178, 178, 0)"></option>
48
+ <option value="rgb(0, 97, 0)"></option>
49
+ <option value="rgb(0, 71, 178)"></option>
50
+ <option value="rgb(107, 36, 178)"></option>
51
+ <option value="rgb(68, 68, 68)"></option>
52
+ <option value="rgb(92, 0, 0)"></option>
53
+ <option value="rgb(102, 61, 0)"></option>
54
+ <option value="rgb(102, 102, 0)"></option>
55
+ <option value="rgb(0, 55, 0)"></option>
56
+ <option value="rgb(0, 41, 102)"></option>
57
+ <option value="rgb(61, 20, 102)"></option>
58
+ </select>
59
+ <:Backgroundcolors>
60
+ <select title="Background Color" class="ql-background">
61
+ <option value="rgb(0, 0, 0)"></option>
62
+ <option value="rgb(230, 0, 0)"></option>
63
+ <option value="rgb(255, 153, 0)"></option>
64
+ <option value="rgb(255, 255, 0)"></option>
65
+ <option value="rgb(0, 138, 0)"></option>
66
+ <option value="rgb(0, 102, 204)"></option>
67
+ <option value="rgb(153, 51, 255)"></option>
68
+ <option value="rgb(255, 255, 255)" selected></option>
69
+ <option value="rgb(250, 204, 204)"></option>
70
+ <option value="rgb(255, 235, 204)"></option>
71
+ <option value="rgb(255, 255, 204)"></option>
72
+ <option value="rgb(204, 232, 204)"></option>
73
+ <option value="rgb(204, 224, 245)"></option>
74
+ <option value="rgb(235, 214, 255)"></option>
75
+ <option value="rgb(187, 187, 187)"></option>
76
+ <option value="rgb(240, 102, 102)"></option>
77
+ <option value="rgb(255, 194, 102)"></option>
78
+ <option value="rgb(255, 255, 102)"></option>
79
+ <option value="rgb(102, 185, 102)"></option>
80
+ <option value="rgb(102, 163, 224)"></option>
81
+ <option value="rgb(194, 133, 255)"></option>
82
+ <option value="rgb(136, 136, 136)"></option>
83
+ <option value="rgb(161, 0, 0)"></option>
84
+ <option value="rgb(178, 107, 0)"></option>
85
+ <option value="rgb(178, 178, 0)"></option>
86
+ <option value="rgb(0, 97, 0)"></option>
87
+ <option value="rgb(0, 71, 178)"></option>
88
+ <option value="rgb(107, 36, 178)"></option>
89
+ <option value="rgb(68, 68, 68)"></option>
90
+ <option value="rgb(92, 0, 0)"></option>
91
+ <option value="rgb(102, 61, 0)"></option>
92
+ <option value="rgb(102, 102, 0)"></option>
93
+ <option value="rgb(0, 55, 0)"></option>
94
+ <option value="rgb(0, 41, 102)"></option>
95
+ <option value="rgb(61, 20, 102)"></option>
96
+ </select>
@@ -0,0 +1,9 @@
1
+ .bundle
2
+ .config
3
+ .yardoc
4
+ tmp
5
+ .idea
6
+ .yardoc
7
+ .sass-cache
8
+ .DS_Store
9
+ compiled
@@ -0,0 +1,21 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'volt', '0.9.0'
4
+ gem 'volt-bootstrap', '~> 0.0.10'
5
+ gem 'volt-bootstrap_jumbotron_theme', '~> 0.1.0'
6
+ gem 'volt-user_templates', '~> 0.1.3'
7
+ gem 'volt-wysiwyg', path: '../'
8
+
9
+ group :development, :test do
10
+ gem 'rspec', '~> 3.2.0'
11
+ gem 'opal-rspec', '~> 0.4.2'
12
+ gem 'capybara', '~> 2.4.2'
13
+ gem 'selenium-webdriver', '~> 2.43.0'
14
+ gem 'chromedriver2-helper', '~> 0.0.8'
15
+ gem 'poltergeist', '~> 1.5.0'
16
+ end
17
+
18
+ platform :mri do
19
+ gem 'thin', '~> 1.6.0'
20
+ gem 'bson_ext', '~> 1.9.0'
21
+ end
@@ -0,0 +1,4 @@
1
+ # Place your app's docs here.
2
+
3
+ ## New to Volt?
4
+ Be sure to read the volt docs at http://docs.voltframework.com
@@ -0,0 +1 @@
1
+ // Place your apps css here
@@ -0,0 +1,5 @@
1
+ component 'bootstrap'
2
+ component 'bootstrap_jumbotron_theme'
3
+ component 'user_templates'
4
+ component 'wysiwyg'
5
+
@@ -0,0 +1,11 @@
1
+ # See https://github.com/voltrb/volt#routes for more info on routes
2
+
3
+ client '/about', action: 'about'
4
+
5
+ # Routes for login and signup, provided by user_templates component gem
6
+ client '/signup', component: 'user_templates', controller: 'signup'
7
+ client '/login', component: 'user_templates', controller: 'login'
8
+
9
+ # The main route, this should be last. It will match any params not
10
+ # previously matched.
11
+ client '/', {}
@@ -0,0 +1,38 @@
1
+ # By default Volt generates this controller for your Main component
2
+ module Main
3
+ class MainController < Volt::ModelController
4
+
5
+ def index
6
+ # Add code for when the index view is loaded
7
+ self.model = store._posts.fetch_first do |post|
8
+ if post
9
+ next post
10
+ else
11
+ store._posts.append({text: ''}).then do |post|
12
+ next post
13
+ end
14
+ end
15
+ end
16
+
17
+ end
18
+
19
+ def about
20
+ # Add code for when the about view is loaded
21
+ end
22
+
23
+ private
24
+
25
+ # The main template contains a #template binding that shows another
26
+ # template. This is the path to that template. It may change based
27
+ # on the params._component, params._controller, and params._action values.
28
+ def main_path
29
+ "#{params._component || 'main'}/#{params._controller || 'main'}/#{params._action || 'index'}"
30
+ end
31
+
32
+ # Determine if the current nav component is the active one by looking
33
+ # at the first part of the url against the href attribute.
34
+ def active_tab?
35
+ url.path.split('/')[1] == attrs.href.split('/')[1]
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,4 @@
1
+ # By default Volt generates this User model which inherits from Volt::User,
2
+ # you can rename this if you want.
3
+ class User < Volt::User
4
+ end
@@ -0,0 +1,8 @@
1
+ <:Title>
2
+ About
3
+
4
+ <:Body>
5
+ <h1>About</h1>
6
+
7
+ <p>About page...</p>
8
+ <:wysiwyg text='hi' />
@@ -0,0 +1,9 @@
1
+ <:Title>
2
+ Home
3
+
4
+ <:Body>
5
+ <h1>Home</h1>
6
+ <:wysiwyg text='{{_text}}' />
7
+
8
+ <input value='{{_text}}'/>
9
+
@@ -0,0 +1,29 @@
1
+ <:Title>
2
+ {{ view main_path, "title", {controller_group: 'main'} }}
3
+
4
+ <:Body>
5
+ <div class="container">
6
+ <div class="header">
7
+ <ul class="nav nav-pills pull-right">
8
+ <:nav href="/">Home</:nav>
9
+ <:nav href="/about">About</:nav>
10
+ <:user_templates:menu />
11
+ </ul>
12
+ <h3 class="text-muted">example_app</h3>
13
+ </div>
14
+
15
+ <:volt:notices />
16
+
17
+ {{ view main_path, 'body', {controller_group: 'main'} }}
18
+
19
+ <div class="footer">
20
+ <p>&copy; Company {{ Time.now.year }}</p>
21
+ </div>
22
+
23
+ </div>
24
+
25
+ <:Nav>
26
+ <li class="{{ if active_tab? }}active{{ end }}">
27
+ <a href="{{ attrs.href }}">{{ yield }}</a>
28
+ </li>
29
+
@@ -0,0 +1,8 @@
1
+ <:Body>
2
+ <select title="Font" class="ql-font">
3
+ <option value="Impact" selected>Impact</option>
4
+ <option value="Georgia, serif">Georgia</option>
5
+ <option value="Copperplate" selected>Copperplate</option>
6
+ <option value="Monaco, 'Courier New', monospace">Monaco</option>
7
+ <option value="Futura" selected>Futura</option>
8
+ </select>
@@ -0,0 +1,4 @@
1
+ # Run via rack server
2
+ require 'bundler/setup'
3
+ require 'volt/server'
4
+ run Volt::Server.new.app
@@ -0,0 +1,41 @@
1
+ Volt.configure do |config|
2
+ # Setup your global app config here.
3
+
4
+ # Your app secret is used for signing things like the user cookie so it can't
5
+ # be tampered with. A random value is generated on new projects that will work
6
+ # without the need to customize. Make sure this value doesn't leave your server.
7
+ #
8
+ # For added security we reccomend moving the app secret into an enviromnet. You can
9
+ # setup that like so:
10
+ #
11
+ # config.app_secret = ENV['APP_SECRET']
12
+ #
13
+ config.app_secret = 'EqMyXlQMFmTqx6EeYKkp5E3xzCu8zzAO3wfnVa-Pm0DvEfk2Bymi_bypIWgXGG3D_a0'
14
+
15
+ # Data updates from the client come in via Tasks. The task dispatcher logs all calls to tasks.
16
+ # By default hashes in the arguments can be filtered based on keys. So any hash with a key of
17
+ # password will be filtered. You can add more fields to filter below:
18
+ config.filter_keys = [:password]
19
+
20
+ # Database config all start with db_ and can be set either in the config
21
+ # file or with an environment variable (DB_NAME for example).
22
+
23
+ # config.db_driver = 'mongo'
24
+ # config.db_name = (config.app_name + '_' + Volt.env.to_s)
25
+ # config.db_host = 'localhost'
26
+ # config.db_port = 27017
27
+
28
+ # Compression options
29
+
30
+ # If you are not running behind something like nginx in production, you can
31
+ # have rack deflate all files.
32
+ # config.deflate = true
33
+
34
+ # Public configurations
35
+ # Anything under config.public will be sent to the client as well as the server,
36
+ # so be sure no private data ends up under public
37
+
38
+ # Use username instead of email as the login
39
+ # config.public.auth.use_username = true
40
+
41
+ end
@@ -0,0 +1,16 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <% javascript_files.each do |javascript_file| %>
6
+ <script src="<%= javascript_file %>"></script>
7
+ <% end %>
8
+
9
+ <% css_files.each do |css_file| %>
10
+ <link href="<%= css_file %>" media="all" rel="stylesheet" type="text/css" />
11
+ <% end %>
12
+ </head>
13
+ <body>
14
+
15
+ </body>
16
+ </html>
@@ -0,0 +1,138 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Quill Pretty Editor Demo</title>
5
+ <link rel="stylesheet" type="text/css" href="../quill.snow.css">
6
+ <link rel="stylesheet" type="text/css" href="styles/advanced.css">
7
+ <meta charset="utf-8">
8
+ </head>
9
+ <body>
10
+ <div id="content-container">
11
+ <div class="basic-wrapper">
12
+ <div class="toolbar-container">
13
+ <select title="Font" class="ql-font">
14
+ <option value="sans-serif" selected>Sans Serif</option>
15
+ <option value="Georgia, serif">Serif</option>
16
+ <option value="Monaco, 'Courier New', monospace">Monospace</option>
17
+ </select>
18
+ <select title="Size" class="ql-size">
19
+ <option value="10px">Small</option>
20
+ <option value="13px" selected>Normal</option>
21
+ <option value="18px">Large</option>
22
+ <option value="32px">Huge</option>
23
+ </select>
24
+ <select title="Text Alignment" class="ql-align">
25
+ <option value="left" selected>Left</option>
26
+ <option value="center">Center</option>
27
+ <option value="right">Right</option>
28
+ <option value="justify">Justify</option>
29
+ </select>
30
+ <button title="Bold" class="ql-bold">Bold</button>
31
+ <button title="Italic" class="ql-italic">Italic</button>
32
+ <button title="Underline" class="ql-underline">Under</button>
33
+ <button title="List" class="ql-list">List</button>
34
+ </div>
35
+ <div class="editor-container"></div>
36
+ </div>
37
+ <div class="advanced-wrapper">
38
+ <div class="toolbar-container"><span class="ql-format-group">
39
+ <select title="Font" class="ql-font">
40
+ <option value="sans-serif" selected>Sans Serif</option>
41
+ <option value="Georgia, serif">Serif</option>
42
+ <option value="Monaco, 'Courier New', monospace">Monospace</option>
43
+ </select>
44
+ <select title="Size" class="ql-size">
45
+ <option value="10px">Small</option>
46
+ <option value="13px" selected>Normal</option>
47
+ <option value="18px">Large</option>
48
+ <option value="32px">Huge</option>
49
+ </select></span><span class="ql-format-group"><span title="Bold" class="ql-format-button ql-bold"></span><span class="ql-format-separator"></span><span title="Italic" class="ql-format-button ql-italic"></span><span class="ql-format-separator"></span><span title="Underline" class="ql-format-button ql-underline"></span></span><span class="ql-format-group">
50
+ <select title="Text Color" class="ql-color">
51
+ <option value="rgb(0, 0, 0)" selected></option>
52
+ <option value="rgb(230, 0, 0)"></option>
53
+ <option value="rgb(255, 153, 0)"></option>
54
+ <option value="rgb(255, 255, 0)"></option>
55
+ <option value="rgb(0, 138, 0)"></option>
56
+ <option value="rgb(0, 102, 204)"></option>
57
+ <option value="rgb(153, 51, 255)"></option>
58
+ <option value="rgb(255, 255, 255)"></option>
59
+ <option value="rgb(250, 204, 204)"></option>
60
+ <option value="rgb(255, 235, 204)"></option>
61
+ <option value="rgb(255, 255, 204)"></option>
62
+ <option value="rgb(204, 232, 204)"></option>
63
+ <option value="rgb(204, 224, 245)"></option>
64
+ <option value="rgb(235, 214, 255)"></option>
65
+ <option value="rgb(187, 187, 187)"></option>
66
+ <option value="rgb(240, 102, 102)"></option>
67
+ <option value="rgb(255, 194, 102)"></option>
68
+ <option value="rgb(255, 255, 102)"></option>
69
+ <option value="rgb(102, 185, 102)"></option>
70
+ <option value="rgb(102, 163, 224)"></option>
71
+ <option value="rgb(194, 133, 255)"></option>
72
+ <option value="rgb(136, 136, 136)"></option>
73
+ <option value="rgb(161, 0, 0)"></option>
74
+ <option value="rgb(178, 107, 0)"></option>
75
+ <option value="rgb(178, 178, 0)"></option>
76
+ <option value="rgb(0, 97, 0)"></option>
77
+ <option value="rgb(0, 71, 178)"></option>
78
+ <option value="rgb(107, 36, 178)"></option>
79
+ <option value="rgb(68, 68, 68)"></option>
80
+ <option value="rgb(92, 0, 0)"></option>
81
+ <option value="rgb(102, 61, 0)"></option>
82
+ <option value="rgb(102, 102, 0)"></option>
83
+ <option value="rgb(0, 55, 0)"></option>
84
+ <option value="rgb(0, 41, 102)"></option>
85
+ <option value="rgb(61, 20, 102)"></option>
86
+ </select><span class="ql-format-separator"></span>
87
+ <select title="Background Color" class="ql-background">
88
+ <option value="rgb(0, 0, 0)"></option>
89
+ <option value="rgb(230, 0, 0)"></option>
90
+ <option value="rgb(255, 153, 0)"></option>
91
+ <option value="rgb(255, 255, 0)"></option>
92
+ <option value="rgb(0, 138, 0)"></option>
93
+ <option value="rgb(0, 102, 204)"></option>
94
+ <option value="rgb(153, 51, 255)"></option>
95
+ <option value="rgb(255, 255, 255)" selected></option>
96
+ <option value="rgb(250, 204, 204)"></option>
97
+ <option value="rgb(255, 235, 204)"></option>
98
+ <option value="rgb(255, 255, 204)"></option>
99
+ <option value="rgb(204, 232, 204)"></option>
100
+ <option value="rgb(204, 224, 245)"></option>
101
+ <option value="rgb(235, 214, 255)"></option>
102
+ <option value="rgb(187, 187, 187)"></option>
103
+ <option value="rgb(240, 102, 102)"></option>
104
+ <option value="rgb(255, 194, 102)"></option>
105
+ <option value="rgb(255, 255, 102)"></option>
106
+ <option value="rgb(102, 185, 102)"></option>
107
+ <option value="rgb(102, 163, 224)"></option>
108
+ <option value="rgb(194, 133, 255)"></option>
109
+ <option value="rgb(136, 136, 136)"></option>
110
+ <option value="rgb(161, 0, 0)"></option>
111
+ <option value="rgb(178, 107, 0)"></option>
112
+ <option value="rgb(178, 178, 0)"></option>
113
+ <option value="rgb(0, 97, 0)"></option>
114
+ <option value="rgb(0, 71, 178)"></option>
115
+ <option value="rgb(107, 36, 178)"></option>
116
+ <option value="rgb(68, 68, 68)"></option>
117
+ <option value="rgb(92, 0, 0)"></option>
118
+ <option value="rgb(102, 61, 0)"></option>
119
+ <option value="rgb(102, 102, 0)"></option>
120
+ <option value="rgb(0, 55, 0)"></option>
121
+ <option value="rgb(0, 41, 102)"></option>
122
+ <option value="rgb(61, 20, 102)"></option>
123
+ </select><span class="ql-format-separator"></span>
124
+ <select title="Text Alignment" class="ql-align">
125
+ <option value="left" selected></option>
126
+ <option value="center"></option>
127
+ <option value="right"></option>
128
+ <option value="justify"></option>
129
+ </select></span><span class="ql-format-group"><span title="Link" class="ql-format-button ql-link"></span><span class="ql-format-separator"></span><span title="Image" class="ql-format-button ql-image"></span><span class="ql-format-separator"></span><span title="List" class="ql-format-button ql-list"></span></span></div>
130
+ <div class="editor-container"></div>
131
+ </div>
132
+ </div>
133
+ <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.js"></script>
134
+ <script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/lodash.js/2.4.1/lodash.js"></script>
135
+ <script type="text/javascript" src="../quill.js"></script>
136
+ <script type="text/javascript" src="scripts/advanced.js"></script>
137
+ </body>
138
+ </html>