comfortable_mexican_sofa 1.0.40 → 1.0.41

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. data/VERSION +1 -1
  2. data/app/controllers/cms_admin/layouts_controller.rb +1 -1
  3. data/app/views/cms_admin/layouts/_form.html.erb +3 -3
  4. data/app/views/cms_admin/layouts/_index_branch.html.erb +1 -5
  5. data/app/views/cms_admin/layouts/index.html.erb +1 -1
  6. data/app/views/cms_admin/pages/_form.html.erb +2 -2
  7. data/app/views/cms_admin/pages/form_blocks.js.erb +2 -1
  8. data/app/views/cms_admin/pages/index.html.erb +1 -1
  9. data/app/views/cms_admin/sites/index.html.erb +1 -1
  10. data/app/views/cms_admin/snippets/_form.html.erb +1 -1
  11. data/app/views/cms_admin/snippets/index.html.erb +1 -1
  12. data/app/views/cms_admin/uploads/_index.html.erb +1 -1
  13. data/app/views/layouts/cms_admin.html.erb +2 -2
  14. data/comfortable_mexican_sofa.gemspec +13 -5
  15. data/config/initializers/comfortable_mexican_sofa.rb +1 -1
  16. data/lib/comfortable_mexican_sofa/controller_methods.rb +1 -1
  17. data/lib/comfortable_mexican_sofa/form_builder.rb +15 -15
  18. data/lib/comfortable_mexican_sofa/view_methods.rb +3 -0
  19. data/public/images/comfortable_mexican_sofa/icon_layout.gif +0 -0
  20. data/public/images/comfortable_mexican_sofa/icon_snippet.gif +0 -0
  21. data/public/javascripts/comfortable_mexican_sofa/cms.js +43 -8
  22. data/public/javascripts/comfortable_mexican_sofa/codemirror/codemirror.css +102 -0
  23. data/public/javascripts/comfortable_mexican_sofa/codemirror/codemirror.js +23 -0
  24. data/public/javascripts/comfortable_mexican_sofa/codemirror/codemirror_base.js +88 -0
  25. data/public/javascripts/comfortable_mexican_sofa/codemirror/parse_css.js +4 -0
  26. data/public/javascripts/comfortable_mexican_sofa/codemirror/parse_html_mixed.js +3 -0
  27. data/public/javascripts/comfortable_mexican_sofa/codemirror/parse_js.js +12 -0
  28. data/public/javascripts/comfortable_mexican_sofa/codemirror/parse_xml.js +7 -0
  29. data/public/stylesheets/comfortable_mexican_sofa/content.css +184 -0
  30. data/public/stylesheets/comfortable_mexican_sofa/form.css +93 -0
  31. data/public/stylesheets/comfortable_mexican_sofa/structure.css +27 -294
  32. data/public/stylesheets/comfortable_mexican_sofa/typography.css +1 -1
  33. data/test/functional/cms_admin/layouts_controller_test.rb +1 -1
  34. data/test/functional/cms_content_controller_test.rb +1 -1
  35. data/test/integration/render_cms_test.rb +21 -1
  36. metadata +15 -7
  37. data/app/views/cms_admin/common/desc/_layout_content.html.erb +0 -25
  38. data/app/views/cms_admin/common/desc/_layout_css.html.erb +0 -1
  39. data/app/views/cms_admin/common/desc/_layout_js.html.erb +0 -1
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.40
1
+ 1.0.41
@@ -45,7 +45,7 @@ protected
45
45
  def build_cms_layout
46
46
  @cms_layout = @cms_site.cms_layouts.new(params[:cms_layout])
47
47
  @cms_layout.parent ||= CmsLayout.find_by_id(params[:parent_id])
48
- @cms_layout.content ||= '{{ cms:page:content }}'
48
+ @cms_layout.content ||= '{{ cms:page:content:text }}'
49
49
  end
50
50
 
51
51
  def load_cms_layout
@@ -11,6 +11,6 @@
11
11
  <%= form.select :app_layout, [['---- Select Application Layout ----', nil]] + options %>
12
12
  <% end %>
13
13
 
14
- <%= form.text_area :content, :desc => render(:partial => '/cms_admin/common/desc/layout_content'), :desc_toggle => '[ help ]' %>
15
- <%= form.text_area :css, :desc => render(:partial => '/cms_admin/common/desc/layout_css'), :desc_toggle => '[ help ]' %>
16
- <%= form.text_area :js, :desc => render(:partial => '/cms_admin/common/desc/layout_js'), :desc_toggle => '[ help ]' %>
14
+ <%= form.text_area :content, :class => 'code' %>
15
+ <%= form.text_area :css, :class => 'code_css' %>
16
+ <%= form.text_area :js, :class => 'code_js' %>
@@ -2,11 +2,7 @@
2
2
 
3
3
  <li id='cms_layout_<%= cms_layout.id %>'>
4
4
  <div class='item'>
5
- <div class='icon'>
6
- <% if cms_layout.siblings.size > 0 %>
7
- <div class='dragger'></div>
8
- <% end %>
9
- </div>
5
+ <div class='icon'></div>
10
6
  <div class='action_links'>
11
7
  <%= link_to 'Add Child Layout', new_cms_admin_layout_path(:parent_id => cms_layout.id) %>
12
8
  <%= link_to 'Edit', edit_cms_admin_layout_path(cms_layout) %>
@@ -1,4 +1,4 @@
1
- <%= link_to span_tag('Create New Layout'), new_cms_admin_layout_path, :class => 'big_button' %>
1
+ <%= link_to span_tag('Create New Layout'), new_cms_admin_layout_path, :class => 'big button' %>
2
2
  <h1>Layouts</h1>
3
3
 
4
4
  <ul class='list'>
@@ -4,7 +4,7 @@
4
4
  <input type='checkbox'/>
5
5
  Published
6
6
  </label>
7
- <button></button>
7
+ <a class='big button' href='#'></a>
8
8
  </div>
9
9
  <%= render :partial => 'cms_admin/uploads/index' %>
10
10
  <% end %>
@@ -29,7 +29,7 @@
29
29
 
30
30
  <%= render :partial => 'form_blocks' %>
31
31
 
32
- <%= form.simple_field nil, nil, :class => 'form_save' do %>
32
+ <%= form.simple_field nil, nil, :class => 'submit_element' do %>
33
33
  <%= form.check_box :is_published, :disable_builder => true %>
34
34
  <%= form.label_for :is_published, :label => 'Published' %>
35
35
  <%= form.submit @cms_page.new_record?? 'Create Page' : 'Update Page', :disable_builder => true %>
@@ -1 +1,2 @@
1
- $('#form_blocks').replaceWith('<%= escape_javascript(render(:partial => "form_blocks")) %>');
1
+ $('#form_blocks').replaceWith('<%= escape_javascript(render(:partial => "form_blocks")) %>');
2
+ $.CMS.enable_codemirror();
@@ -1,4 +1,4 @@
1
- <%= link_to span_tag('Create New Page'), new_cms_admin_page_path, :class => 'big_button' %>
1
+ <%= link_to span_tag('Create New Page'), new_cms_admin_page_path, :class => 'big button' %>
2
2
  <h1>Pages</h1>
3
3
 
4
4
  <ul class='list sortable'>
@@ -1,4 +1,4 @@
1
- <%= link_to span_tag('Create New Site'), new_cms_admin_site_path, :class => 'big_button' %>
1
+ <%= link_to span_tag('Create New Site'), new_cms_admin_site_path, :class => 'big button' %>
2
2
  <h1>Sites</h1>
3
3
 
4
4
  <ul class='list'>
@@ -4,4 +4,4 @@
4
4
 
5
5
  <%= form.text_field :label, :id => (@cms_snippet.new_record?? 'slugify' : nil) %>
6
6
  <%= form.text_field :slug, :id => 'slug' %>
7
- <%= form.text_area :content %>
7
+ <%= form.text_area :content, :class => 'code' %>
@@ -1,4 +1,4 @@
1
- <%= link_to span_tag('Create New Snippet'), new_cms_admin_snippet_path, :class => 'big_button' %>
1
+ <%= link_to span_tag('Create New Snippet'), new_cms_admin_snippet_path, :class => 'big button' %>
2
2
  <h1>Snippets</h1>
3
3
 
4
4
  <ul class='list'>
@@ -1,6 +1,6 @@
1
1
  <div id='file_uploads' class='box'>
2
2
  <div class='actions'>
3
- <button id="uploader_button" href="#">Upload Files</button>
3
+ <a id='uploader_button' href='#' class='big button'>Upload Files</a>
4
4
  </div>
5
5
  <div id='uploaded_files'>
6
6
  <% CmsUpload.order('file_file_name').all.each do |file| %>
@@ -4,12 +4,12 @@
4
4
  <meta http-equiv="Content-type" content="text/html; charset=utf-8">
5
5
  <title><%= ComfortableMexicanSofa.config.cms_title %></title>
6
6
  <%= csrf_meta_tag %>
7
- <%= stylesheet_link_tag :cms %>
7
+ <%= stylesheet_link_tag :cms, :cache => '_cms' %>
8
8
  <%= javascript_include_tag :cms %>
9
9
  <%= yield :head %>
10
10
  <%= cms_hook :html_head %>
11
11
  </head>
12
- <body id='cms_admin'>
12
+ <body class='c_<%= params[:controller].idify %> a_<%= params[:action].idify %>'>
13
13
  <div class='body_wrapper'>
14
14
  <div class='left_column'>
15
15
  <div class='left_column_content'>
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{comfortable_mexican_sofa}
8
- s.version = "1.0.40"
8
+ s.version = "1.0.41"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Oleg Khabarov", "The Working Group Inc"]
12
- s.date = %q{2011-01-28}
12
+ s.date = %q{2011-02-01}
13
13
  s.description = %q{}
14
14
  s.email = %q{oleg@theworkinggroup.ca}
15
15
  s.extra_rdoc_files = [
@@ -37,9 +37,6 @@ Gem::Specification.new do |s|
37
37
  "app/models/cms_site.rb",
38
38
  "app/models/cms_snippet.rb",
39
39
  "app/models/cms_upload.rb",
40
- "app/views/cms_admin/common/desc/_layout_content.html.erb",
41
- "app/views/cms_admin/common/desc/_layout_css.html.erb",
42
- "app/views/cms_admin/common/desc/_layout_js.html.erb",
43
40
  "app/views/cms_admin/layouts/_form.html.erb",
44
41
  "app/views/cms_admin/layouts/_index_branch.html.erb",
45
42
  "app/views/cms_admin/layouts/edit.html.erb",
@@ -114,9 +111,18 @@ Gem::Specification.new do |s|
114
111
  "public/favicon.ico",
115
112
  "public/images/comfortable_mexican_sofa/arrow_bottom.gif",
116
113
  "public/images/comfortable_mexican_sofa/arrow_right.gif",
114
+ "public/images/comfortable_mexican_sofa/icon_layout.gif",
117
115
  "public/images/comfortable_mexican_sofa/icon_move.gif",
118
116
  "public/images/comfortable_mexican_sofa/icon_regular.gif",
117
+ "public/images/comfortable_mexican_sofa/icon_snippet.gif",
119
118
  "public/javascripts/comfortable_mexican_sofa/cms.js",
119
+ "public/javascripts/comfortable_mexican_sofa/codemirror/codemirror.css",
120
+ "public/javascripts/comfortable_mexican_sofa/codemirror/codemirror.js",
121
+ "public/javascripts/comfortable_mexican_sofa/codemirror/codemirror_base.js",
122
+ "public/javascripts/comfortable_mexican_sofa/codemirror/parse_css.js",
123
+ "public/javascripts/comfortable_mexican_sofa/codemirror/parse_html_mixed.js",
124
+ "public/javascripts/comfortable_mexican_sofa/codemirror/parse_js.js",
125
+ "public/javascripts/comfortable_mexican_sofa/codemirror/parse_xml.js",
120
126
  "public/javascripts/comfortable_mexican_sofa/jquery-ui/images/ui-bg_flat_0_aaaaaa_40x100.png",
121
127
  "public/javascripts/comfortable_mexican_sofa/jquery-ui/images/ui-bg_flat_75_ffffff_40x100.png",
122
128
  "public/javascripts/comfortable_mexican_sofa/jquery-ui/images/ui-bg_glass_55_fbf9ee_1x400.png",
@@ -170,6 +176,8 @@ Gem::Specification.new do |s|
170
176
  "public/javascripts/comfortable_mexican_sofa/tiny_mce/tiny_mce.js",
171
177
  "public/javascripts/comfortable_mexican_sofa/tiny_mce/tiny_mce_popup.js",
172
178
  "public/robots.txt",
179
+ "public/stylesheets/comfortable_mexican_sofa/content.css",
180
+ "public/stylesheets/comfortable_mexican_sofa/form.css",
173
181
  "public/stylesheets/comfortable_mexican_sofa/reset.css",
174
182
  "public/stylesheets/comfortable_mexican_sofa/structure.css",
175
183
  "public/stylesheets/comfortable_mexican_sofa/typography.css",
@@ -1,6 +1,6 @@
1
1
  ComfortableMexicanSofa.configure do |config|
2
2
  # Title of the admin area
3
- config.cms_title = 'ComfortableMexicanSofa'
3
+ config.cms_title = 'ComfortableMexicanSofa MicroCMS'
4
4
 
5
5
  # Module responsible for authentication. You can replace it with your own.
6
6
  # It simply needs to have #authenticate method. See http_auth.rb for reference.
@@ -21,7 +21,7 @@ module ComfortableMexicanSofa::ControllerMethods
21
21
  # instance variables that can be used in partials (that are included by
22
22
  # by the cms page and/or layout)
23
23
  def render_with_cms(options = {}, locals = {}, &block)
24
- if path = options.delete(:cms_page)
24
+ if options.is_a?(Hash) && path = options.delete(:cms_page)
25
25
  site = CmsSite.find_by_hostname(request.host.downcase)
26
26
  page = CmsPage.load_from_file(site, path) if site && ComfortableMexicanSofa.configuration.seed_data_path
27
27
  page ||= site && site.cms_pages.find_by_full_path(path)
@@ -16,19 +16,18 @@ class ComfortableMexicanSofa::FormBuilder < ActionView::Helpers::FormBuilder
16
16
  end
17
17
 
18
18
  def default_field(type, field, options = {}, &block)
19
+ errors = if object.errors[field].present?
20
+ "<div class='errors'>#{[object.errors[field]].flatten.first}</div>"
21
+ end
19
22
  if desc = options.delete(:desc)
20
- desc_toggle = options.delete(:desc_toggle)
21
- desc_toggle = "<div class='desc_toggle'>#{desc_toggle}</div>" if desc_toggle
22
- desc = %(
23
- <div class='desc #{desc_toggle ? 'with_toggle' : nil}'>
24
- #{desc_toggle} <div class='desc_content'>#{desc}</div>
25
- </div>
26
- )
23
+ desc = "<div class='desc'>#{desc}</div>"
27
24
  end
28
25
  %(
29
- <div class='form_element #{type}_element'>
26
+ <div class='form_element #{type}_element #{'errors' if errors}'>
30
27
  <div class='label'>#{label_for(field, options)}</div>
31
- <div class='value'>#{yield}</div> #{desc}
28
+ <div class='value'>#{yield}</div>
29
+ #{desc}
30
+ #{errors}
32
31
  </div>
33
32
  ).html_safe
34
33
  end
@@ -51,11 +50,7 @@ class ComfortableMexicanSofa::FormBuilder < ActionView::Helpers::FormBuilder
51
50
  def submit(value, options = {}, &block)
52
51
  return super if options.delete(:disable_builder)
53
52
  extra_content = @template.capture(&block) if block_given?
54
- %(
55
- <div class='form_element submit_element'>
56
- #{super(value, options)} #{extra_content}
57
- </div>
58
- ).html_safe
53
+ simple_field(nil, "#{super(value, options)} #{extra_content}", :class => 'submit_element')
59
54
  end
60
55
 
61
56
  # -- Tag Field Fields -----------------------------------------------------
@@ -63,10 +58,15 @@ class ComfortableMexicanSofa::FormBuilder < ActionView::Helpers::FormBuilder
63
58
  label = options[:label] || tag.label.to_s.titleize
64
59
  css_class = options[:css_class] || tag.class.name.underscore.downcase.idify
65
60
 
61
+ field_css_class = case tag
62
+ when CmsTag::PageRichText then 'rich_text'
63
+ when CmsTag::PageText, CmsTag::FieldText then 'code'
64
+ end
65
+
66
66
  options[:content_field_method] ||= :text_field_tag
67
67
  field =
68
68
  options[:field] ||
69
- @template.send(options[:content_field_method], 'cms_page[cms_blocks_attributes][][content]', tag.content, :id => nil)
69
+ @template.send(options[:content_field_method], 'cms_page[cms_blocks_attributes][][content]', tag.content, :id => nil, :class => field_css_class)
70
70
 
71
71
  %(
72
72
  <div class='form_element #{css_class}'>
@@ -48,11 +48,14 @@ ActionView::Helpers::AssetTagHelper.register_javascript_expansion :cms => [
48
48
  'comfortable_mexican_sofa/tiny_mce/jquery.tinymce',
49
49
  'comfortable_mexican_sofa/plupload/plupload.min',
50
50
  'comfortable_mexican_sofa/plupload/plupload.html5.min',
51
+ 'comfortable_mexican_sofa/codemirror/codemirror.js',
51
52
  'comfortable_mexican_sofa/cms'
52
53
  ]
53
54
  ActionView::Helpers::AssetTagHelper.register_stylesheet_expansion :cms => [
54
55
  'comfortable_mexican_sofa/reset',
55
56
  'comfortable_mexican_sofa/structure',
56
57
  'comfortable_mexican_sofa/typography',
58
+ 'comfortable_mexican_sofa/form',
59
+ 'comfortable_mexican_sofa/content',
57
60
  '/javascripts/comfortable_mexican_sofa/jquery-ui/jquery-ui'
58
61
  ]
@@ -2,19 +2,19 @@ $.CMS = function(){
2
2
  var current_path = window.location.pathname;
3
3
  var admin_path_prefix = current_path.split('/')[1]
4
4
 
5
- $(document).ready(function(){
5
+ $(function(){
6
6
 
7
7
  $.CMS.slugify();
8
8
  $.CMS.tree_methods();
9
9
  $.CMS.load_page_blocks();
10
10
  $.CMS.enable_rich_text();
11
+ $.CMS.enable_codemirror();
11
12
  $.CMS.enable_date_picker();
12
13
  $.CMS.enable_desc_toggle();
13
14
  $.CMS.enable_sortable_list();
14
15
  if($('form.new_cms_page, form.edit_cms_page').get(0)) $.CMS.enable_page_save_form();
15
16
  if($('#page_save').get(0)) $.CMS.enable_page_save_widget();
16
17
  if($('#uploader_button').get(0)) $.CMS.enable_uploader();
17
-
18
18
  });
19
19
 
20
20
  return {
@@ -63,7 +63,7 @@ $.CMS = function(){
63
63
  },
64
64
 
65
65
  enable_rich_text: function(){
66
- $('.form_element.cms_tag_page_rich_text textarea, textarea.rich_text').tinymce({
66
+ $('textarea.rich_text').tinymce({
67
67
  theme : "advanced",
68
68
  plugins: "",
69
69
  theme_advanced_buttons1 : "formatselect,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,bullist,numlist,|,link,unlink,anchor,image,|,code",
@@ -75,7 +75,42 @@ $.CMS = function(){
75
75
  theme_advanced_statusbar_location : "bottom",
76
76
  theme_advanced_resizing : true,
77
77
  theme_advanced_resize_horizontal : false
78
- })
78
+ });
79
+ },
80
+
81
+ enable_codemirror: function(){
82
+ $('textarea.code').each(function(i, element){
83
+ CodeMirror.fromTextArea(element, {
84
+ basefiles: [
85
+ "/javascripts/comfortable_mexican_sofa/codemirror/codemirror_base.js",
86
+ "/javascripts/comfortable_mexican_sofa/codemirror/parse_xml.js",
87
+ "/javascripts/comfortable_mexican_sofa/codemirror/parse_css.js",
88
+ "/javascripts/comfortable_mexican_sofa/codemirror/parse_js.js",
89
+ "/javascripts/comfortable_mexican_sofa/codemirror/parse_html_mixed.js"
90
+ ],
91
+ stylesheet: "/javascripts/comfortable_mexican_sofa/codemirror/codemirror.css"
92
+ });
93
+ });
94
+
95
+ $('textarea.code_css').each(function(i, element){
96
+ CodeMirror.fromTextArea(element, {
97
+ basefiles: [
98
+ "/javascripts/comfortable_mexican_sofa/codemirror/codemirror_base.js",
99
+ "/javascripts/comfortable_mexican_sofa/codemirror/parse_css.js"
100
+ ],
101
+ stylesheet: "/javascripts/comfortable_mexican_sofa/codemirror/codemirror.css"
102
+ });
103
+ });
104
+
105
+ $('textarea.code_js').each(function(i, element){
106
+ CodeMirror.fromTextArea(element, {
107
+ basefiles: [
108
+ "/javascripts/comfortable_mexican_sofa/codemirror/codemirror_base.js",
109
+ "/javascripts/comfortable_mexican_sofa/codemirror/parse_js.js"
110
+ ],
111
+ stylesheet: "/javascripts/comfortable_mexican_sofa/codemirror/codemirror.css"
112
+ });
113
+ });
79
114
  },
80
115
 
81
116
  enable_date_picker: function(){
@@ -110,15 +145,15 @@ $.CMS = function(){
110
145
 
111
146
  enable_page_save_widget : function(){
112
147
  $('#page_save input').attr('checked', $('input#cms_page_is_published').is(':checked'));
113
- $('#page_save button').html($('input#cms_page_submit').val());
148
+ $('#page_save a').html($('input#cms_page_submit').val());
114
149
 
115
- $('#page_save input').bind('click', function(){
150
+ $('#page_save a').bind('click', function(){
116
151
  $('input#cms_page_is_published').attr('checked', $(this).is(':checked'));
117
152
  })
118
153
  $('input#cms_page_is_published').bind('click', function(){
119
- $('#page_save input').attr('checked', $(this).is(':checked'));
154
+ $('#page_save a').attr('checked', $(this).is(':checked'));
120
155
  })
121
- $('#page_save button').bind('click', function(){
156
+ $('#page_save a').bind('click', function(){
122
157
  $('input#cms_page_submit').click();
123
158
  })
124
159
  },
@@ -0,0 +1,102 @@
1
+ html {
2
+ cursor: text;
3
+ }
4
+ .editbox {
5
+ margin: .4em;
6
+ padding: 0;
7
+ font: 13px 'Courier New', Courier, monospace;
8
+ color: #000;
9
+ }
10
+ .editbox p {
11
+ margin: 0;
12
+ }
13
+
14
+ span.xml-tagname {
15
+ color: #A0B;
16
+ }
17
+ span.xml-attribute {
18
+ color: #281;
19
+ }
20
+ span.xml-punctuation {
21
+ color: black;
22
+ }
23
+ span.xml-attname {
24
+ color: #00F;
25
+ }
26
+ span.xml-comment {
27
+ color: #A70;
28
+ }
29
+ span.xml-cdata {
30
+ color: #48A;
31
+ }
32
+ span.xml-processing {
33
+ color: #999;
34
+ }
35
+ span.xml-entity {
36
+ color: #A22;
37
+ }
38
+ span.xml-error {
39
+ color: #F00 !important;
40
+ }
41
+ span.xml-text {
42
+ color: black;
43
+ }
44
+
45
+ span.css-at {
46
+ color: #708;
47
+ }
48
+ span.css-unit {
49
+ color: #281;
50
+ }
51
+ span.css-value {
52
+ color: #708;
53
+ }
54
+ span.css-identifier {
55
+ color: black;
56
+ }
57
+ span.css-selector {
58
+ color: #11B;
59
+ }
60
+ span.css-important {
61
+ color: #00F;
62
+ }
63
+ span.css-colorcode {
64
+ color: #299;
65
+ }
66
+ span.css-comment {
67
+ color: #A70;
68
+ }
69
+ span.css-string {
70
+ color: #A22;
71
+ }
72
+
73
+ span.js-punctuation {
74
+ color: #666666;
75
+ }
76
+ span.js-operator {
77
+ color: #666666;
78
+ }
79
+ span.js-keyword {
80
+ color: #770088;
81
+ }
82
+ span.js-atom {
83
+ color: #228811;
84
+ }
85
+ span.js-variable {
86
+ color: black;
87
+ }
88
+ span.js-variabledef {
89
+ color: #0000FF;
90
+ }
91
+ span.js-localvariable {
92
+ color: #004499;
93
+ }
94
+ span.js-property {
95
+ color: black;
96
+ }
97
+ span.js-comment {
98
+ color: #AA7700;
99
+ }
100
+ span.js-string {
101
+ color: #AA2222;
102
+ }