alchemy-usermanual 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +13 -0
  3. data/.travis.yml +10 -0
  4. data/Gemfile +9 -0
  5. data/LICENSE.txt +27 -0
  6. data/README.md +65 -0
  7. data/Rakefile +39 -0
  8. data/alchemy-usermanual.gemspec +26 -0
  9. data/app/assets/images/alchemy/icon_user_manual.png +0 -0
  10. data/app/assets/javascripts/alchemy/user_manual.js.coffee +8 -0
  11. data/app/assets/stylesheets/alchemy/user_manual.scss +577 -0
  12. data/app/controllers/alchemy/admin/user_manual_controller.rb +11 -0
  13. data/app/views/alchemy/admin/user_manual/show.html.erb +9 -0
  14. data/config/authorization_rules.rb +5 -0
  15. data/config/initializers/alchemy_module.rb +15 -0
  16. data/config/locales/de.yml +25 -0
  17. data/config/locales/en.yml +25 -0
  18. data/config/routes.rb +5 -0
  19. data/lib/alchemy/user_manual/creator.rb +43 -0
  20. data/lib/alchemy/user_manual/engine.rb +21 -0
  21. data/lib/alchemy/user_manual/helpers/template_helper.rb +51 -0
  22. data/lib/alchemy/user_manual/templates/elements.md.erb +13 -0
  23. data/lib/alchemy/user_manual/templates/introduction.md.erb +3 -0
  24. data/lib/alchemy/user_manual/templates/page_layouts.md.erb +13 -0
  25. data/lib/alchemy/user_manual/version.rb +5 -0
  26. data/lib/alchemy/usermanual.rb +9 -0
  27. data/spec/controllers/admin/user_manual_controller_spec.rb +14 -0
  28. data/spec/dummy/README.rdoc +28 -0
  29. data/spec/dummy/Rakefile +6 -0
  30. data/spec/dummy/app/assets/images/.keep +0 -0
  31. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  32. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  33. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  34. data/spec/dummy/app/controllers/concerns/.keep +0 -0
  35. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  36. data/spec/dummy/app/mailers/.keep +0 -0
  37. data/spec/dummy/app/models/.keep +0 -0
  38. data/spec/dummy/app/models/concerns/.keep +0 -0
  39. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  40. data/spec/dummy/bin/bundle +3 -0
  41. data/spec/dummy/bin/rails +4 -0
  42. data/spec/dummy/bin/rake +4 -0
  43. data/spec/dummy/config.ru +4 -0
  44. data/spec/dummy/config/alchemy/elements.yml +6 -0
  45. data/spec/dummy/config/alchemy/page_layouts.yml +2 -0
  46. data/spec/dummy/config/application.rb +28 -0
  47. data/spec/dummy/config/boot.rb +5 -0
  48. data/spec/dummy/config/database.yml +25 -0
  49. data/spec/dummy/config/environment.rb +5 -0
  50. data/spec/dummy/config/environments/development.rb +29 -0
  51. data/spec/dummy/config/environments/production.rb +80 -0
  52. data/spec/dummy/config/environments/test.rb +36 -0
  53. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  54. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  55. data/spec/dummy/config/initializers/inflections.rb +16 -0
  56. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  57. data/spec/dummy/config/initializers/secret_token.rb +12 -0
  58. data/spec/dummy/config/initializers/session_store.rb +3 -0
  59. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  60. data/spec/dummy/config/locales/en.yml +23 -0
  61. data/spec/dummy/config/routes.rb +3 -0
  62. data/spec/dummy/db/migrate/20131214164341_alchemy_two_point_six.alchemy.rb +337 -0
  63. data/spec/dummy/db/schema.rb +338 -0
  64. data/spec/dummy/lib/assets/.keep +0 -0
  65. data/spec/dummy/log/.keep +0 -0
  66. data/spec/dummy/public/404.html +58 -0
  67. data/spec/dummy/public/422.html +58 -0
  68. data/spec/dummy/public/500.html +57 -0
  69. data/spec/dummy/public/favicon.ico +0 -0
  70. data/spec/libraries/creator_spec.rb +29 -0
  71. data/spec/libraries/template_helper_spec.rb +7 -0
  72. data/spec/spec_helper.rb +21 -0
  73. metadata +231 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 4a63300d0871805fe28355e205b443efeaccc15e
4
+ data.tar.gz: 062b5b47a887748e06cb5c941a37da1a0cac8719
5
+ SHA512:
6
+ metadata.gz: a08b62140781d8b20147693e29f40db3cde20418f9d33bf6190424a200d1bf07ff3555bf96008da5719b99e9cd12c84d610bc9dbbd7f7d142f1862409d1b4b56
7
+ data.tar.gz: d8ef0aed3655454b2fde0039b402dedbbf94b0ffa39c5c30733c694e721f021b92921c7b0836b19ba7e55b61c0ec237ab4e742ab99e65ad51092e261996d1177
@@ -0,0 +1,13 @@
1
+ .bundle
2
+ .rspec
3
+ .ruby-version
4
+ log/*.log
5
+ pkg/
6
+ spec/dummy/db/*.sqlite3
7
+ spec/dummy/db/*.sqlite3-journal
8
+ spec/dummy/log/*.log
9
+ spec/dummy/tmp/
10
+ spec/dummy/index/
11
+ spec/dummy/.sass-cache
12
+ Gemfile.lock
13
+ /coverage
@@ -0,0 +1,10 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 2.0.0
5
+ branches:
6
+ only:
7
+ - master
8
+ script: rake
9
+ env:
10
+ - DB=mysql
data/Gemfile ADDED
@@ -0,0 +1,9 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gemspec
4
+
5
+ group :test do
6
+ gem 'sqlite3'
7
+ end
8
+
9
+ gem 'coveralls', require: false
@@ -0,0 +1,27 @@
1
+ Copyright (c) 2010-2013, magic labs GmbH, Hamburg Germany
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without modification,
5
+ are permitted provided that the following conditions are met:
6
+
7
+ Redistributions of source code must retain the above copyright notice, this
8
+ list of conditions and the following disclaimer.
9
+
10
+ Redistributions in binary form must reproduce the above copyright notice, this
11
+ list of conditions and the following disclaimer in the documentation and/or
12
+ other materials provided with the distribution.
13
+
14
+ Neither the name of the magic labs GmbH nor the names of its
15
+ contributors may be used to endorse or promote products derived from
16
+ this software without specific prior written permission.
17
+
18
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
19
+ ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
20
+ WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
22
+ ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
+ (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
24
+ LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
25
+ ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26
+ (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27
+ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,65 @@
1
+ ## On-site user manual for Alchemy CMS
2
+
3
+ [![Build Status](https://secure.travis-ci.org/magiclabs/alchemy-usermanual.png)](http://travis-ci.org/magiclabs/alchemy-usermanual) [![Coverage Status](https://coveralls.io/repos/magiclabs/alchemy-usermanual/badge.png)](https://coveralls.io/r/magiclabs/alchemy-usermanual) [![Code Climate](https://codeclimate.com/github/magiclabs/alchemy-usermanual.png)](https://codeclimate.com/github/magiclabs/alchemy-usermanual)
4
+
5
+ The version 0.9.x is used to work with [Alchemy CMS 2.7-stable](https://github.com/magiclabs/alchemy_cms/tree/2.7-stable)
6
+
7
+ The alchemy-usermanual gem reads your `page_layouts.yml` and `elements.yml` and wraps all the interesting stuff into a module rendered in the admin-frontend of your Alchemy CMS driven application.
8
+
9
+ Users that are logged in to Alchemy can read through the self-explaining website configuration.
10
+
11
+ ## Installation
12
+
13
+ Add this line to your application's `Gemfile`:
14
+
15
+ ~~~
16
+ gem 'alchemy-usermanual', '~> 0.9'
17
+ ~~~
18
+
19
+ And then run `bundle install` on your terminal.
20
+
21
+
22
+ ## Usage
23
+
24
+ You just need to bundle the gem with your application. Then the user manual will be available in the Alchemy admin-frontend.
25
+
26
+ By default translated informations of your page_layouts and elements are presented to the user.
27
+ If you like to extend these informations with individual descriptions, you can store these translatable informations as *hints* in your `page_layouts.yml` and `elements.yml` files.
28
+
29
+ *Example 1 (hint for a page_layout)*
30
+
31
+ ~~~
32
+ # /config/alchemy/page_layouts.yml
33
+ - name: product_detail
34
+ hint: true
35
+ elements: [...]
36
+
37
+ # /config/locales/en.yml
38
+ en:
39
+ alchemy:
40
+ page_layout_hints:
41
+ product_detail: "This page template is used for presenting all the details of one certain product... You can write a full description of what the page template is used to and what the user should consider when using it."
42
+ ~~~
43
+
44
+ *Example 2 (hint for an element)*
45
+
46
+ ~~~
47
+ # /config/alchemy/elements.yml
48
+ - name: product_detail
49
+ hint: true
50
+ elements: [...]
51
+
52
+ # /config/locales/en.yml
53
+ en:
54
+ alchemy:
55
+ element_hints:
56
+ product_video: "This element is used to play the youtube video of your product... You can write a full description of what the element is used to and what the user should consider when using it."
57
+ ~~~
58
+
59
+ ## Contributing
60
+
61
+ 1. Fork it
62
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
63
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
64
+ 4. Push to the branch (`git push origin my-new-feature`)
65
+ 5. Create new Pull Request
@@ -0,0 +1,39 @@
1
+ begin
2
+ require 'bundler/setup'
3
+ rescue LoadError
4
+ puts 'You must `gem install bundler` and `bundle install` to run rake tasks'
5
+ end
6
+
7
+ require 'rdoc/task'
8
+
9
+ RDoc::Task.new(:rdoc) do |rdoc|
10
+ rdoc.rdoc_dir = 'rdoc'
11
+ rdoc.title = 'AlchemyUserManual'
12
+ rdoc.options << '--line-numbers'
13
+ rdoc.rdoc_files.include('README.md')
14
+ rdoc.rdoc_files.include('lib/**/*.rb')
15
+ rdoc.rdoc_files.include('app/**/*.rb')
16
+ end
17
+
18
+ APP_RAKEFILE = File.expand_path("../spec/dummy/Rakefile", __FILE__)
19
+ load 'rails/tasks/engine.rake'
20
+
21
+ require 'rspec/core'
22
+ require 'rspec/core/rake_task'
23
+
24
+ RSpec::Core::RakeTask.new(:spec)
25
+
26
+ task :default => ['alchemy:spec:prepare', :spec]
27
+
28
+ Bundler::GemHelper.install_tasks
29
+
30
+ namespace :alchemy do
31
+ namespace :spec do
32
+
33
+ desc "Prepares database for testing Alchemy"
34
+ task :prepare do
35
+ system 'cd spec/dummy && RAILS_ENV=test bundle exec rake db:drop db:create alchemy:prepare && cd -'
36
+ end
37
+
38
+ end
39
+ end
@@ -0,0 +1,26 @@
1
+ # coding: utf-8
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+
4
+ require "alchemy/user_manual/version"
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "alchemy-usermanual"
8
+ spec.version = Alchemy::UserManual::VERSION
9
+ spec.authors = ["Robin Böning"]
10
+ spec.email = ["rb@magiclabs.de"]
11
+ spec.description = "This gem adds a user manual module to your alchemy cms driven application."
12
+ spec.summary = "This gem adds a user manual module to your alchemy cms driven application."
13
+ spec.homepage = "http://magiclabs.de"
14
+ spec.license = "BSD New"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+
20
+ spec.add_dependency "alchemy_cms", ['~> 2.7.0']
21
+ spec.add_dependency "redcarpet"
22
+ spec.add_dependency "github-markdown", "~> 0.6.3"
23
+
24
+ spec.add_development_dependency "bundler", "~> 1.3"
25
+ spec.add_development_dependency "rspec-rails"
26
+ end
@@ -0,0 +1,8 @@
1
+ $ ->
2
+ # Because of the toolbar at the top, all anchor links scroll to their targets with an offset
3
+ $('.user_manual a[href^="#"]').on 'click', (e) ->
4
+ e.preventDefault()
5
+ $target = $("a[name=#{$(@).attr('href').split('#')[1]}]")
6
+ $("html, body").animate
7
+ scrollTop: $target.offset().top - '85'
8
+ , 200
@@ -0,0 +1,577 @@
1
+ .alchemy_user_manual {
2
+ padding: 0 16px 16px;
3
+ line-height: 1.6;
4
+
5
+ a { text-decoration: underline }
6
+
7
+ h1,h2,h3,h4,h5,h6 {
8
+ margin: 20px 0 10px;
9
+ padding: 0;
10
+ font-weight: bold;
11
+ -webkit-font-smoothing: subpixel-antialiased;
12
+ cursor: text;
13
+ }
14
+
15
+ h1 {
16
+ font-size: 28px;
17
+ color: #000;
18
+ }
19
+
20
+ h2 {
21
+ font-size: 24px;
22
+ border-bottom: 1px solid #ccc;
23
+ color: #000;
24
+ }
25
+
26
+ h3 {
27
+ font-size: 18px;
28
+ color: #333;
29
+ }
30
+
31
+ h4 {
32
+ font-size: 16px;
33
+ color: #333;
34
+ }
35
+
36
+ h5 {
37
+ font-size: 14px;
38
+ color: #333;
39
+ }
40
+
41
+ h6 {
42
+ color: #777;
43
+ font-size: 14px;
44
+ }
45
+
46
+ p,blockquote,table,pre {
47
+ margin: 15px 0;
48
+ }
49
+
50
+ ul {
51
+ padding-left: 30px;
52
+ }
53
+
54
+ ol {
55
+ padding-left: 30px;
56
+ }
57
+
58
+ ol li ul:first-of-type {
59
+ margin-top: 0;
60
+ }
61
+
62
+ hr {
63
+ background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAECAYAAACtBE5DAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyJpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNSBNYWNpbnRvc2giIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6OENDRjNBN0E2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6OENDRjNBN0I2NTZBMTFFMEI3QjRBODM4NzJDMjlGNDgiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDo4Q0NGM0E3ODY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDo4Q0NGM0E3OTY1NkExMUUwQjdCNEE4Mzg3MkMyOUY0OCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PqqezsUAAAAfSURBVHjaYmRABcYwBiM2QSA4y4hNEKYDQxAEAAIMAHNGAzhkPOlYAAAAAElFTkSuQmCC) repeat-x 0 0;
64
+ border: 0 none;
65
+ color: #ccc;
66
+ height: 4px;
67
+ padding: 0;
68
+ }
69
+
70
+ #wrapper>h2:first-child {
71
+ margin-top: 0;
72
+ padding-top: 0;
73
+ }
74
+
75
+ #wrapper>h1:first-child {
76
+ margin-top: 0;
77
+ padding-top: 0;
78
+ }
79
+
80
+ #wrapper>h1:first-child+h2 {
81
+ margin-top: 0;
82
+ padding-top: 0;
83
+ }
84
+
85
+ #wrapper>h3:first-child,#wrapper>h4:first-child,#wrapper>h5:first-child,#wrapper>h6:first-child {
86
+ margin-top: 0;
87
+ padding-top: 0;
88
+ }
89
+
90
+ a:first-child h1,a:first-child h2,a:first-child h3,a:first-child h4,a:first-child h5,a:first-child h6 {
91
+ margin-top: 0;
92
+ padding-top: 0;
93
+ }
94
+
95
+ h1+p,h2+p,h3+p,h4+p,h5+p,h6+p,ul li>:first-child,ol li>:first-child {
96
+ margin-top: 0;
97
+ }
98
+
99
+ dl {
100
+ padding: 0;
101
+ }
102
+
103
+ dl dt {
104
+ font-size: 14px;
105
+ font-weight: bold;
106
+ font-style: italic;
107
+ padding: 0;
108
+ margin: 15px 0 5px;
109
+ }
110
+
111
+ dl dt:first-child {
112
+ padding: 0;
113
+ }
114
+
115
+ dl dt>:first-child {
116
+ margin-top: 0;
117
+ }
118
+
119
+ dl dt>:last-child {
120
+ margin-bottom: 0;
121
+ }
122
+
123
+ dl dd {
124
+ margin: 0 0 15px;
125
+ padding: 0 15px;
126
+ }
127
+
128
+ dl dd>:first-child {
129
+ margin-top: 0;
130
+ }
131
+
132
+ dl dd>:last-child {
133
+ margin-bottom: 0;
134
+ }
135
+
136
+ blockquote {
137
+ border-left: 4px solid #DDD;
138
+ padding: 0 15px;
139
+ color: #777;
140
+ }
141
+
142
+ blockquote>:first-child {
143
+ margin-top: 0;
144
+ }
145
+
146
+ blockquote>:last-child {
147
+ margin-bottom: 0;
148
+ }
149
+
150
+ table {
151
+ border-collapse: collapse;
152
+ border-spacing: 0;
153
+ font-size: 100%;
154
+ font: inherit;
155
+ }
156
+
157
+ table th {
158
+ font-weight: bold;
159
+ border: 1px solid #ccc;
160
+ padding: 6px 13px;
161
+ }
162
+
163
+ table td {
164
+ border: 1px solid #ccc;
165
+ padding: 6px 13px;
166
+ }
167
+
168
+ table tr {
169
+ border-top: 1px solid #ccc;
170
+ background-color: #fff;
171
+ }
172
+
173
+ table tr:nth-child(2n) {
174
+ background-color: #f8f8f8;
175
+ }
176
+
177
+ img {
178
+ max-width: 100%;
179
+ }
180
+
181
+ code,tt {
182
+ margin: 0 2px;
183
+ padding: 0 5px;
184
+ white-space: nowrap;
185
+ border: 1px solid #eaeaea;
186
+ background-color: #f8f8f8;
187
+ border-radius: 3px;
188
+ font-family: Consolas,'Liberation Mono',Courier,monospace;
189
+ font-size: 12px;
190
+ color: #333;
191
+ }
192
+
193
+ pre>code {
194
+ margin: 0;
195
+ padding: 0;
196
+ white-space: pre;
197
+ border: 0;
198
+ background: transparent;
199
+ }
200
+
201
+ .highlight pre {
202
+ background-color: #f8f8f8;
203
+ border: 1px solid #ccc;
204
+ font-size: 13px;
205
+ line-height: 19px;
206
+ overflow: auto;
207
+ padding: 6px 10px;
208
+ border-radius: 3px;
209
+ }
210
+
211
+ pre {
212
+ background-color: #f8f8f8;
213
+ border: 1px solid #ccc;
214
+ font-size: 13px;
215
+ line-height: 19px;
216
+ overflow: auto;
217
+ padding: 6px 10px;
218
+ border-radius: 3px;
219
+ }
220
+
221
+ pre code,pre tt {
222
+ background-color: transparent;
223
+ border: 0;
224
+ }
225
+
226
+ .poetry pre {
227
+ font-family: Georgia,Garamond,serif!important;
228
+ font-style: italic;
229
+ font-size: 110%!important;
230
+ line-height: 1.6em;
231
+ display: block;
232
+ margin-left: 1em;
233
+ }
234
+
235
+ .poetry pre code {
236
+ font-family: Georgia,Garamond,serif!important;
237
+ word-break: break-all;
238
+ word-break: break-word;
239
+ -webkit-hyphens: auto;
240
+ -moz-hyphens: auto;
241
+ hyphens: auto;
242
+ white-space: pre-wrap;
243
+ }
244
+
245
+ sup,sub,a.footnote {
246
+ font-size: 1.4ex;
247
+ height: 0;
248
+ line-height: 1;
249
+ vertical-align: super;
250
+ position: relative;
251
+ }
252
+
253
+ sub {
254
+ vertical-align: sub;
255
+ top: -1px;
256
+ }
257
+
258
+ @media print {
259
+ body {
260
+ background: #fff;
261
+ }
262
+
263
+ img,pre,blockquote,table,figure {
264
+ page-break-inside: avoid;
265
+ }
266
+
267
+ #wrapper {
268
+ background: #fff;
269
+ border: 0;
270
+ }
271
+
272
+ code {
273
+ background-color: #fff;
274
+ color: #333!important;
275
+ padding: 0 .2em;
276
+ border: 1px solid #dedede;
277
+ }
278
+
279
+ pre {
280
+ background: #fff;
281
+ }
282
+
283
+ pre code {
284
+ background-color: white!important;
285
+ overflow: visible;
286
+ }
287
+ }
288
+
289
+ @media screen {
290
+ body.inverted {
291
+ color: #eee!important;
292
+ border-color: #555;
293
+ box-shadow: none;
294
+ }
295
+
296
+ .inverted #wrapper,.inverted hr .inverted p,.inverted td,.inverted li,.inverted h1,.inverted h2,.inverted h3,.inverted h4,.inverted h5,.inverted h6,.inverted th,.inverted .math,.inverted caption,.inverted dd,.inverted dt,.inverted blockquote {
297
+ color: #eee!important;
298
+ border-color: #555;
299
+ box-shadow: none;
300
+ }
301
+
302
+ .inverted td,.inverted th {
303
+ background: #333;
304
+ }
305
+
306
+ .inverted h2 {
307
+ border-color: #555;
308
+ }
309
+
310
+ .inverted hr {
311
+ border-color: #777;
312
+ border-width: 1px!important;
313
+ }
314
+
315
+ ::selection {
316
+ background: rgba(157,193,200,0.5);
317
+ }
318
+
319
+ h1::selection {
320
+ background-color: rgba(45,156,208,0.3);
321
+ }
322
+
323
+ h2::selection {
324
+ background-color: rgba(90,182,224,0.3);
325
+ }
326
+
327
+ h3::selection,h4::selection,h5::selection,h6::selection,li::selection,ol::selection {
328
+ background-color: rgba(133,201,232,0.3);
329
+ }
330
+
331
+ code::selection {
332
+ background-color: rgba(0,0,0,0.7);
333
+ color: #eee;
334
+ }
335
+
336
+ code span::selection {
337
+ background-color: rgba(0,0,0,0.7)!important;
338
+ color: #eee!important;
339
+ }
340
+
341
+ a::selection {
342
+ background-color: rgba(255,230,102,0.2);
343
+ }
344
+
345
+ .inverted a::selection {
346
+ background-color: rgba(255,230,102,0.6);
347
+ }
348
+
349
+ td::selection,th::selection,caption::selection {
350
+ background-color: rgba(180,237,95,0.5);
351
+ }
352
+
353
+ .inverted {
354
+ background: #0b2531;
355
+ background: #252a2a;
356
+ }
357
+
358
+ .inverted #wrapper {
359
+ background: #252a2a;
360
+ }
361
+
362
+ .inverted a {
363
+ color: #acd1d5;
364
+ }
365
+ }
366
+
367
+ .highlight .c {
368
+ color: #998;
369
+ font-style: italic;
370
+ }
371
+
372
+ .highlight .err {
373
+ color: #a61717;
374
+ background-color: #e3d2d2;
375
+ }
376
+
377
+ .highlight .k,.highlight .o {
378
+ font-weight: bold;
379
+ }
380
+
381
+ .highlight .cm {
382
+ color: #998;
383
+ font-style: italic;
384
+ }
385
+
386
+ .highlight .cp {
387
+ color: #999;
388
+ font-weight: bold;
389
+ }
390
+
391
+ .highlight .c1 {
392
+ color: #998;
393
+ font-style: italic;
394
+ }
395
+
396
+ .highlight .cs {
397
+ color: #999;
398
+ font-weight: bold;
399
+ font-style: italic;
400
+ }
401
+
402
+ .highlight .gd {
403
+ color: #000;
404
+ background-color: #fdd;
405
+ }
406
+
407
+ .highlight .gd .x {
408
+ color: #000;
409
+ background-color: #faa;
410
+ }
411
+
412
+ .highlight .ge {
413
+ font-style: italic;
414
+ }
415
+
416
+ .highlight .gr {
417
+ color: #a00;
418
+ }
419
+
420
+ .highlight .gh {
421
+ color: #999;
422
+ }
423
+
424
+ .highlight .gi {
425
+ color: #000;
426
+ background-color: #dfd;
427
+ }
428
+
429
+ .highlight .gi .x {
430
+ color: #000;
431
+ background-color: #afa;
432
+ }
433
+
434
+ .highlight .go {
435
+ color: #888;
436
+ }
437
+
438
+ .highlight .gp {
439
+ color: #555;
440
+ }
441
+
442
+ .highlight .gs {
443
+ font-weight: bold;
444
+ }
445
+
446
+ .highlight .gu {
447
+ color: #800080;
448
+ font-weight: bold;
449
+ }
450
+
451
+ .highlight .gt {
452
+ color: #a00;
453
+ }
454
+
455
+ .highlight .kc,.highlight .kd,.highlight .kn,.highlight .kp,.highlight .kr {
456
+ font-weight: bold;
457
+ }
458
+
459
+ .highlight .kt {
460
+ color: #458;
461
+ font-weight: bold;
462
+ }
463
+
464
+ .highlight .m {
465
+ color: #099;
466
+ }
467
+
468
+ .highlight .s {
469
+ color: #d14;
470
+ }
471
+
472
+ .highlight .na {
473
+ color: #008080;
474
+ }
475
+
476
+ .highlight .nb {
477
+ color: #0086b3;
478
+ }
479
+
480
+ .highlight .nc {
481
+ color: #458;
482
+ font-weight: bold;
483
+ }
484
+
485
+ .highlight .no {
486
+ color: #008080;
487
+ }
488
+
489
+ .highlight .ni {
490
+ color: #800080;
491
+ }
492
+
493
+ .highlight .ne,.highlight .nf {
494
+ color: #900;
495
+ font-weight: bold;
496
+ }
497
+
498
+ .highlight .nn {
499
+ color: #555;
500
+ }
501
+
502
+ .highlight .nt {
503
+ color: #000080;
504
+ }
505
+
506
+ .highlight .nv {
507
+ color: #008080;
508
+ }
509
+
510
+ .highlight .ow {
511
+ font-weight: bold;
512
+ }
513
+
514
+ .highlight .w {
515
+ color: #bbb;
516
+ }
517
+
518
+ .highlight .mf,.highlight .mh,.highlight .mi,.highlight .mo {
519
+ color: #099;
520
+ }
521
+
522
+ .highlight .sb,.highlight .sc,.highlight .sd,.highlight .s2,.highlight .se,.highlight .sh,.highlight .si,.highlight .sx {
523
+ color: #d14;
524
+ }
525
+
526
+ .highlight .sr {
527
+ color: #009926;
528
+ }
529
+
530
+ .highlight .s1 {
531
+ color: #d14;
532
+ }
533
+
534
+ .highlight .ss {
535
+ color: #990073;
536
+ }
537
+
538
+ .highlight .bp {
539
+ color: #999;
540
+ }
541
+
542
+ .highlight .vc,.highlight .vg,.highlight .vi {
543
+ color: #008080;
544
+ }
545
+
546
+ .highlight .il {
547
+ color: #099;
548
+ }
549
+
550
+ .highlight .gc {
551
+ color: #999;
552
+ background-color: #eaf2f5;
553
+ }
554
+
555
+ .type-csharp .highlight .k,.type-csharp .highlight .kt {
556
+ color: #00F;
557
+ }
558
+
559
+ .type-csharp .highlight .nf {
560
+ color: #000;
561
+ font-weight: normal;
562
+ }
563
+
564
+ .type-csharp .highlight .nc {
565
+ color: #2b91af;
566
+ }
567
+
568
+ .type-csharp .highlight .nn {
569
+ color: #000;
570
+ }
571
+
572
+ .type-csharp .highlight .s,.type-csharp .highlight .sc {
573
+ color: #a31515;
574
+ }
575
+
576
+
577
+ }