groupdocs 1.5.3 → 1.5.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. data/.travis.yml +0 -1
  2. data/README.md +2 -0
  3. data/examples/api-samples/public/docs/annotation-sample.html +167 -57
  4. data/examples/api-samples/public/docs/docco.css +459 -151
  5. data/examples/api-samples/public/docs/envelope-sample.html +373 -131
  6. data/examples/api-samples/public/docs/sample1.html +126 -26
  7. data/examples/api-samples/public/docs/sample10.html +213 -50
  8. data/examples/api-samples/public/docs/sample11.html +319 -87
  9. data/examples/api-samples/public/docs/sample12.html +165 -40
  10. data/examples/api-samples/public/docs/sample13.html +166 -41
  11. data/examples/api-samples/public/docs/sample14.html +142 -30
  12. data/examples/api-samples/public/docs/sample15.html +127 -27
  13. data/examples/api-samples/public/docs/sample16.html +125 -25
  14. data/examples/api-samples/public/docs/sample17.html +188 -37
  15. data/examples/api-samples/public/docs/sample18.html +614 -157
  16. data/examples/api-samples/public/docs/sample19.html +221 -59
  17. data/examples/api-samples/public/docs/sample2.html +142 -30
  18. data/examples/api-samples/public/docs/sample20.html +176 -51
  19. data/examples/api-samples/public/docs/sample21.html +287 -66
  20. data/examples/api-samples/public/docs/sample22.html +224 -53
  21. data/examples/api-samples/public/docs/sample23.html +256 -0
  22. data/examples/api-samples/public/docs/sample24.html +143 -0
  23. data/examples/api-samples/public/docs/sample25.html +429 -0
  24. data/examples/api-samples/public/docs/sample26.html +113 -0
  25. data/examples/api-samples/public/docs/sample27.html +433 -0
  26. data/examples/api-samples/public/docs/sample28.html +185 -0
  27. data/examples/api-samples/public/docs/sample29.html +175 -0
  28. data/examples/api-samples/public/docs/sample3.html +172 -34
  29. data/examples/api-samples/public/docs/sample30.html +144 -0
  30. data/examples/api-samples/public/docs/sample31.html +734 -0
  31. data/examples/api-samples/public/docs/sample4.html +204 -52
  32. data/examples/api-samples/public/docs/sample5.html +241 -63
  33. data/examples/api-samples/public/docs/sample6.html +209 -48
  34. data/examples/api-samples/public/docs/sample7.html +155 -43
  35. data/examples/api-samples/public/docs/sample8.html +235 -62
  36. data/examples/api-samples/public/docs/sample9.html +200 -49
  37. data/examples/api-samples/public/templates/merge_field1_doc.docx +0 -0
  38. data/examples/api-samples/public/templates/merge_field2_doc.docx +0 -0
  39. data/examples/api-samples/samples/sample23.rb +54 -0
  40. data/examples/api-samples/samples/sample24.rb +30 -0
  41. data/examples/api-samples/samples/sample25.rb +4 -4
  42. data/examples/api-samples/samples/sample26.rb +25 -0
  43. data/examples/api-samples/samples/sample27.rb +100 -0
  44. data/examples/api-samples/samples/sample28.rb +47 -0
  45. data/examples/api-samples/samples/sample29.rb +52 -0
  46. data/examples/api-samples/samples/sample30.rb +39 -0
  47. data/examples/api-samples/samples/sample31.rb +204 -0
  48. data/examples/api-samples/samples/sample5.rb +5 -3
  49. data/examples/api-samples/samples/sample6.rb +2 -0
  50. data/examples/api-samples/views/_others_samples.haml +12 -0
  51. data/examples/api-samples/views/index.haml +12 -0
  52. data/examples/api-samples/views/layout.haml +1 -0
  53. data/examples/api-samples/views/sample1.haml +3 -2
  54. data/examples/api-samples/views/sample10.haml +3 -2
  55. data/examples/api-samples/views/sample11.haml +4 -0
  56. data/examples/api-samples/views/sample12.haml +4 -0
  57. data/examples/api-samples/views/sample13.haml +4 -0
  58. data/examples/api-samples/views/sample14.haml +4 -0
  59. data/examples/api-samples/views/sample15.haml +4 -0
  60. data/examples/api-samples/views/sample16.haml +4 -0
  61. data/examples/api-samples/views/sample17.haml +4 -0
  62. data/examples/api-samples/views/sample19.haml +4 -0
  63. data/examples/api-samples/views/sample2.haml +3 -2
  64. data/examples/api-samples/views/sample20.haml +4 -0
  65. data/examples/api-samples/views/sample21.haml +4 -0
  66. data/examples/api-samples/views/sample22.haml +4 -0
  67. data/examples/api-samples/views/sample23.haml +87 -0
  68. data/examples/api-samples/views/sample24.haml +44 -0
  69. data/examples/api-samples/views/sample26.haml +54 -0
  70. data/examples/api-samples/views/sample27.haml +122 -0
  71. data/examples/api-samples/views/sample28.haml +47 -0
  72. data/examples/api-samples/views/sample29.haml +70 -0
  73. data/examples/api-samples/views/sample3.haml +3 -2
  74. data/examples/api-samples/views/sample30.haml +46 -0
  75. data/examples/api-samples/views/sample31.haml +114 -0
  76. data/examples/api-samples/views/sample4.haml +3 -2
  77. data/examples/api-samples/views/sample5.haml +3 -2
  78. data/examples/api-samples/views/sample6.haml +3 -2
  79. data/examples/api-samples/views/sample7.haml +3 -2
  80. data/examples/api-samples/views/sample8.haml +3 -2
  81. data/examples/api-samples/views/sample9.haml +3 -2
  82. data/examples/viewer/Gemfile +1 -1
  83. data/groupdocs.gemspec +3 -3
  84. data/lib/groupdocs/datasource.rb +22 -0
  85. data/lib/groupdocs/document.rb +493 -43
  86. data/lib/groupdocs/document/annotation.rb +73 -0
  87. data/lib/groupdocs/job.rb +82 -1
  88. data/lib/groupdocs/post.rb +83 -0
  89. data/lib/groupdocs/questionnaire.rb +41 -0
  90. data/lib/groupdocs/signature.rb +342 -0
  91. data/lib/groupdocs/signature/envelope.rb +56 -0
  92. data/lib/groupdocs/signature/form.rb +47 -5
  93. data/lib/groupdocs/signature/shared/field_methods.rb +37 -0
  94. data/lib/groupdocs/storage/file.rb +83 -0
  95. data/lib/groupdocs/subscription.rb +218 -0
  96. data/lib/groupdocs/user.rb +422 -1
  97. data/lib/groupdocs/version.rb +1 -1
  98. data/spec/groupdocs/job_spec.rb +4 -5
  99. data/spec/groupdocs/user_spec.rb +157 -0
  100. data/spec/support/json/annotation_resize.json +11 -0
  101. data/spec/support/json/annotation_text_color.json +10 -0
  102. data/spec/support/json/annotation_text_info.json +11 -0
  103. data/spec/support/json/document_content_get.json +8 -0
  104. data/spec/support/json/document_edit_lock_get.json +10 -0
  105. data/spec/support/json/document_editlock_remove.json +8 -0
  106. data/spec/support/json/document_page_html_urls_get.json +14 -0
  107. data/spec/support/json/document_password_set.json +19 -0
  108. data/spec/support/json/document_representations.json +25 -0
  109. data/spec/support/json/document_shared_documents_get.json +32 -0
  110. data/spec/support/json/document_tags_get.json +9 -0
  111. data/spec/support/json/document_tags_remove.json +8 -0
  112. data/spec/support/json/document_tags_set.json +8 -0
  113. data/spec/support/json/document_user_status_set.json +12 -0
  114. data/spec/support/json/job_documents.json +103 -35
  115. data/spec/support/json/job_xml_get.json +30 -0
  116. data/spec/support/json/jobs_documents.json +40 -0
  117. data/spec/support/json/user_get_profile.json +73 -0
  118. metadata +49 -177
data/.travis.yml CHANGED
@@ -1,7 +1,6 @@
1
1
  language: ruby
2
2
  rvm:
3
3
  - 1.8.7
4
- - 1.9.2
5
4
  - 1.9.3
6
5
  - 2.0.0
7
6
  matrix:
data/README.md CHANGED
@@ -53,6 +53,8 @@ GroupDocs::Storage::Folder.create!('/folder', client_id: 'your_client_id', priva
53
53
 
54
54
  Reference to [this page](http://rubydoc.info/gems/groupdocs) for docs and examples.
55
55
 
56
+ There is rather exhaustive documentation about internal SDK structure at [wiki page](https://github.com/groupdocs/groupdocs-ruby/wiki/Documentation-&-Guide).
57
+
56
58
  There are also some examples in [repository](https://github.com/groupdocs/groupdocs-ruby/tree/master/examples) and on [wiki](https://github.com/groupdocs/groupdocs-ruby/wiki)
57
59
 
58
60
  ### Entities
@@ -1,57 +1,167 @@
1
- <!DOCTYPE html> <html> <head> <title>annotation-sample.rb</title> <meta http-equiv="content-type" content="text/html; charset=UTF-8"> <link rel="stylesheet" media="all" href="docco.css" /> </head> <body> <div id="container"> <div id="background"></div> <div id="jump_to"> Jump To &hellip; <div id="jump_wrapper"> <div id="jump_page"> <a class="source" href="annotation-sample.html"> annotation-sample.rb </a> <a class="source" href="envelope-sample.html"> envelope-sample.rb </a> <a class="source" href="sample1.html"> sample1.rb </a> <a class="source" href="sample10.html"> sample10.rb </a> <a class="source" href="sample11.html"> sample11.rb </a> <a class="source" href="sample12.html"> sample12.rb </a> <a class="source" href="sample13.html"> sample13.rb </a> <a class="source" href="sample14.html"> sample14.rb </a> <a class="source" href="sample15.html"> sample15.rb </a> <a class="source" href="sample16.html"> sample16.rb </a> <a class="source" href="sample17.html"> sample17.rb </a> <a class="source" href="sample18.html"> sample18.rb </a> <a class="source" href="sample19.html"> sample19.rb </a> <a class="source" href="sample2.html"> sample2.rb </a> <a class="source" href="sample20.html"> sample20.rb </a> <a class="source" href="sample21.html"> sample21.rb </a> <a class="source" href="sample22.html"> sample22.rb </a> <a class="source" href="sample3.html"> sample3.rb </a> <a class="source" href="sample4.html"> sample4.rb </a> <a class="source" href="sample5.html"> sample5.rb </a> <a class="source" href="sample6.html"> sample6.rb </a> <a class="source" href="sample7.html"> sample7.rb </a> <a class="source" href="sample8.html"> sample8.rb </a> <a class="source" href="sample9.html"> sample9.rb </a> </div> </div> </div> <table cellpadding="0" cellspacing="0"> <thead> <tr> <th class="docs"> <h1> annotation-sample.rb </h1> </th> <th class="code"> </th> </tr> </thead> <tbody> <tr id="section-1"> <td class="docs"> <div class="pilwrap"> <a class="pilcrow" href="#section-1">&#182;</a> </div> <p>GET request</p> </td> <td class="code"> <div class="highlight"><pre><span class="n">get</span> <span class="s1">&#39;/annotation-sample&#39;</span> <span class="k">do</span>
2
- <span class="n">haml</span> <span class="ss">:annotation_sample</span>
3
- <span class="k">end</span>
4
-
5
-
6
- <span class="n">post</span> <span class="s1">&#39;/annotation-sample&#39;</span> <span class="k">do</span>
7
- <span class="n">set</span> <span class="ss">:client_id</span><span class="p">,</span> <span class="n">params</span><span class="o">[</span><span class="ss">:client_id</span><span class="o">]</span>
8
- <span class="n">set</span> <span class="ss">:private_key</span><span class="p">,</span> <span class="n">params</span><span class="o">[</span><span class="ss">:private_key</span><span class="o">]</span>
9
-
10
- <span class="n">set</span> <span class="ss">:email</span><span class="p">,</span> <span class="n">params</span><span class="o">[</span><span class="ss">:email</span><span class="o">]</span>
11
- <span class="n">set</span> <span class="ss">:first_name</span><span class="p">,</span> <span class="n">params</span><span class="o">[</span><span class="ss">:first_name</span><span class="o">]</span>
12
- <span class="n">set</span> <span class="ss">:last_name</span><span class="p">,</span> <span class="n">params</span><span class="o">[</span><span class="ss">:last_name</span><span class="o">]</span>
13
- <span class="n">set</span> <span class="ss">:file_name</span><span class="p">,</span> <span class="n">params</span><span class="o">[</span><span class="ss">:file_name</span><span class="o">]</span>
14
-
15
- <span class="k">begin</span>
16
- <span class="k">raise</span> <span class="s1">&#39;Please enter all required parameters&#39;</span> <span class="k">if</span> <span class="n">settings</span><span class="o">.</span><span class="n">client_id</span><span class="o">.</span><span class="n">empty?</span> <span class="ow">or</span> <span class="n">settings</span><span class="o">.</span><span class="n">private_key</span><span class="o">.</span><span class="n">empty?</span> <span class="ow">or</span> <span class="n">settings</span><span class="o">.</span><span class="n">file_name</span><span class="o">.</span><span class="n">empty?</span>
17
-
18
- <span class="no">GroupDocs</span><span class="o">.</span><span class="n">configure</span> <span class="k">do</span> <span class="o">|</span><span class="n">groupdocs</span><span class="o">|</span>
19
- <span class="n">groupdocs</span><span class="o">.</span><span class="n">client_id</span> <span class="o">=</span> <span class="n">params</span><span class="o">[</span><span class="ss">:client_id</span><span class="o">]</span>
20
- <span class="n">groupdocs</span><span class="o">.</span><span class="n">private_key</span> <span class="o">=</span> <span class="n">params</span><span class="o">[</span><span class="ss">:private_key</span><span class="o">]</span>
21
- <span class="n">groupdocs</span><span class="o">.</span><span class="n">api_server</span> <span class="o">=</span> <span class="s1">&#39;https://api.groupdocs.com&#39;</span>
22
- <span class="k">end</span>
23
-
24
- <span class="n">metadata</span> <span class="o">=</span> <span class="ss">GroupDocs</span><span class="p">:</span><span class="ss">:Document</span><span class="o">.</span><span class="n">metadata!</span><span class="p">(</span><span class="n">settings</span><span class="o">.</span><span class="n">file_name</span><span class="p">)</span>
25
- <span class="n">document</span> <span class="o">=</span> <span class="ss">GroupDocs</span><span class="p">:</span><span class="ss">:Storage</span><span class="o">::</span><span class="no">File</span><span class="o">.</span><span class="n">new</span><span class="p">(</span><span class="nb">id</span><span class="p">:</span> <span class="n">metadata</span><span class="o">.</span><span class="n">id</span><span class="p">,</span> <span class="ss">guid</span><span class="p">:</span> <span class="n">metadata</span><span class="o">.</span><span class="n">guid</span><span class="p">)</span><span class="o">.</span><span class="n">to_document</span>
26
-
27
-
28
- <span class="n">user</span> <span class="o">=</span> <span class="ss">GroupDocs</span><span class="p">:</span><span class="ss">:User</span><span class="o">.</span><span class="n">new</span>
29
- <span class="n">user</span><span class="o">.</span><span class="n">nickname</span> <span class="o">=</span> <span class="n">settings</span><span class="o">.</span><span class="n">email</span>
30
- <span class="n">user</span><span class="o">.</span><span class="n">primary_email</span> <span class="o">=</span> <span class="n">settings</span><span class="o">.</span><span class="n">email</span>
31
- <span class="n">user</span><span class="o">.</span><span class="n">first_name</span> <span class="o">=</span> <span class="n">settings</span><span class="o">.</span><span class="n">first_name</span>
32
- <span class="n">user</span><span class="o">.</span><span class="n">last_name</span> <span class="o">=</span> <span class="n">settings</span><span class="o">.</span><span class="n">last_name</span>
33
- <span class="n">user</span> <span class="o">=</span> <span class="ss">GroupDocs</span><span class="p">:</span><span class="ss">:User</span><span class="o">.</span><span class="n">update_account!</span><span class="p">(</span><span class="n">user</span><span class="p">)</span>
34
-
35
-
36
- <span class="n">document</span><span class="o">.</span><span class="n">add_collaborator!</span> <span class="n">user</span> <span class="k">unless</span> <span class="n">document</span><span class="o">.</span><span class="n">collaborators!</span><span class="o">.</span><span class="n">any?</span> <span class="p">{</span> <span class="o">|</span><span class="n">c</span><span class="o">|</span> <span class="n">c</span><span class="o">.</span><span class="n">guid</span> <span class="o">==</span> <span class="n">user</span><span class="o">.</span><span class="n">guid</span> <span class="p">}</span>
37
-
38
-
39
- <span class="n">annotation</span> <span class="o">=</span> <span class="kp">true</span> <span class="c1"># looks like &quot;IsAnnotation&quot; is some helper method so I stub it here</span>
40
- <span class="n">url</span> <span class="o">=</span> <span class="k">if</span> <span class="n">annotation</span>
41
- <span class="s2">&quot;/document-annotation2/embed?quality=50&amp;guid=</span><span class="si">#{</span><span class="n">document</span><span class="o">.</span><span class="n">file</span><span class="o">.</span><span class="n">guid</span><span class="si">}</span><span class="s2">&amp;uid=</span><span class="si">#{</span><span class="n">user</span><span class="o">.</span><span class="n">guid</span><span class="si">}</span><span class="s2">&amp;download=True&quot;</span>
42
- <span class="k">else</span>
43
- <span class="s2">&quot;/document-viewer/embed?quality=50&amp;guid=</span><span class="si">#{</span><span class="n">document</span><span class="o">.</span><span class="n">file</span><span class="o">.</span><span class="n">guid</span><span class="si">}</span><span class="s2">&amp;uid=</span><span class="si">#{</span><span class="n">user</span><span class="o">.</span><span class="n">guid</span><span class="si">}</span><span class="s2">&amp;download=True&quot;</span>
44
- <span class="k">end</span>
45
-
46
-
47
- url = GroupDocs::Api::Request.new(path: url).prepare<em>and</em>sign_url</p> </td> <td class="code"> <div class="highlight"><pre>
48
-
49
- <span class="n">iframe</span> <span class="o">=</span> <span class="s2">&quot;&lt;iframe src=&#39;https://apps.groupdocs.com</span><span class="si">#{</span><span class="n">url</span><span class="si">}</span><span class="s2">&#39; frameborder=&#39;0&#39; width=&#39;720&#39; height=&#39;600&#39;&gt;&lt;/iframe&gt;&quot;</span>
50
- <span class="k">rescue</span> <span class="no">Exception</span> <span class="o">=&gt;</span> <span class="n">e</span>
51
- <span class="n">err</span> <span class="o">=</span> <span class="n">e</span><span class="o">.</span><span class="n">message</span>
52
- <span class="k">end</span>
53
-
54
- <span class="n">haml</span> <span class="ss">:annotation_sample</span><span class="p">,</span> <span class="ss">:locals</span> <span class="o">=&gt;</span> <span class="p">{</span><span class="ss">:client_id</span> <span class="o">=&gt;</span> <span class="n">settings</span><span class="o">.</span><span class="n">client_id</span><span class="p">,</span> <span class="ss">:private_key</span> <span class="o">=&gt;</span> <span class="n">settings</span><span class="o">.</span><span class="n">private_key</span><span class="p">,</span> <span class="ss">:err</span> <span class="o">=&gt;</span> <span class="n">err</span><span class="p">,</span> <span class="ss">:file_name</span> <span class="o">=&gt;</span> <span class="n">settings</span><span class="o">.</span><span class="n">file_name</span><span class="p">,</span> <span class="ss">:email</span> <span class="o">=&gt;</span> <span class="n">settings</span><span class="o">.</span><span class="n">email</span><span class="p">,</span> <span class="ss">:first_name</span> <span class="o">=&gt;</span> <span class="n">settings</span><span class="o">.</span><span class="n">first_name</span><span class="p">,</span> <span class="ss">:last_name</span> <span class="o">=&gt;</span> <span class="n">settings</span><span class="o">.</span><span class="n">last_name</span><span class="p">,</span> <span class="ss">:iframe</span> <span class="o">=&gt;</span> <span class="n">iframe</span><span class="p">}</span>
55
- <span class="k">end</span>
56
-
57
- </pre></div> </td> </tr> </tbody> </table> </div> </body> </html>
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <title>annotation-sample.rb</title>
6
+ <meta http-equiv="content-type" content="text/html; charset=UTF-8">
7
+ <meta name="viewport" content="width=device-width, target-densitydpi=160dpi, initial-scale=1.0; maximum-scale=1.0; user-scalable=0;">
8
+ <link rel="stylesheet" media="all" href="docco.css" />
9
+ </head>
10
+ <body>
11
+ <div id="container">
12
+ <div id="background"></div>
13
+
14
+ <ul class="sections">
15
+
16
+ <li id="title">
17
+ <div class="annotation">
18
+ <h1>annotation-sample.rb</h1>
19
+ </div>
20
+ </li>
21
+
22
+
23
+
24
+ <li id="section-1">
25
+ <div class="annotation">
26
+
27
+ <div class="pilwrap ">
28
+ <a class="pilcrow" href="#section-1">&#182;</a>
29
+ </div>
30
+ <p>GET request</p>
31
+
32
+ </div>
33
+
34
+ <div class="content"><div class='highlight'><pre>get <span class="string">'/annotation-sample'</span> <span class="keyword">do</span>
35
+ haml <span class="symbol">:annotation_sample</span>
36
+ <span class="keyword">end</span></pre></div></div>
37
+
38
+ </li>
39
+
40
+
41
+ <li id="section-2">
42
+ <div class="annotation">
43
+
44
+ <div class="pilwrap ">
45
+ <a class="pilcrow" href="#section-2">&#182;</a>
46
+ </div>
47
+ <p>POST request</p>
48
+
49
+ </div>
50
+
51
+ <div class="content"><div class='highlight'><pre>post <span class="string">'/annotation-sample'</span> <span class="keyword">do</span>
52
+ set <span class="symbol">:client_id</span>, params[<span class="symbol">:client_id</span>]
53
+ set <span class="symbol">:private_key</span>, params[<span class="symbol">:private_key</span>]
54
+
55
+ set <span class="symbol">:email</span>, params[<span class="symbol">:email</span>]
56
+ set <span class="symbol">:first_name</span>, params[<span class="symbol">:first_name</span>]
57
+ set <span class="symbol">:last_name</span>, params[<span class="symbol">:last_name</span>]
58
+ set <span class="symbol">:file_name</span>, params[<span class="symbol">:file_name</span>]
59
+
60
+ <span class="keyword">begin</span>
61
+ raise <span class="string">'Please enter all required parameters'</span> <span class="keyword">if</span> settings.client_id.empty? <span class="keyword">or</span> settings.private_key.empty? <span class="keyword">or</span> settings.file_name.empty?
62
+
63
+ <span class="constant">GroupDocs</span>.configure <span class="keyword">do</span> |groupdocs|
64
+ groupdocs.client_id = params[<span class="symbol">:client_id</span>]
65
+ groupdocs.private_key = params[<span class="symbol">:private_key</span>]
66
+ groupdocs.api_server = <span class="string">'https://api.groupdocs.com'</span>
67
+ <span class="keyword">end</span></pre></div></div>
68
+
69
+ </li>
70
+
71
+
72
+ <li id="section-3">
73
+ <div class="annotation">
74
+
75
+ <div class="pilwrap ">
76
+ <a class="pilcrow" href="#section-3">&#182;</a>
77
+ </div>
78
+ <p>get document metadata</p>
79
+
80
+ </div>
81
+
82
+ <div class="content"><div class='highlight'><pre> metadata = <span class="constant">GroupDocs::Document</span>.metadata!(settings.file_name)
83
+ document = <span class="constant">GroupDocs::Storage::File</span>.new(<span class="symbol">id:</span> metadata.id, <span class="symbol">guid:</span> metadata.guid).to_document</pre></div></div>
84
+
85
+ </li>
86
+
87
+
88
+ <li id="section-4">
89
+ <div class="annotation">
90
+
91
+ <div class="pilwrap ">
92
+ <a class="pilcrow" href="#section-4">&#182;</a>
93
+ </div>
94
+ <p>create new user</p>
95
+
96
+ </div>
97
+
98
+ <div class="content"><div class='highlight'><pre> user = <span class="constant">GroupDocs::User</span>.new
99
+ user.nickname = settings.email
100
+ user.primary_email = settings.email
101
+ user.first_name = settings.first_name
102
+ user.last_name = settings.last_name
103
+ user = <span class="constant">GroupDocs::User</span>.update_account!(user)</pre></div></div>
104
+
105
+ </li>
106
+
107
+
108
+ <li id="section-5">
109
+ <div class="annotation">
110
+
111
+ <div class="pilwrap ">
112
+ <a class="pilcrow" href="#section-5">&#182;</a>
113
+ </div>
114
+ <p>add collaborator</p>
115
+
116
+ </div>
117
+
118
+ <div class="content"><div class='highlight'><pre> document.add_collaborator! user <span class="keyword">unless</span> document.collaborators!.any? { |c| c.guid == user.guid }</pre></div></div>
119
+
120
+ </li>
121
+
122
+
123
+ <li id="section-6">
124
+ <div class="annotation">
125
+
126
+ <div class="pilwrap ">
127
+ <a class="pilcrow" href="#section-6">&#182;</a>
128
+ </div>
129
+ <p>build url</p>
130
+
131
+ </div>
132
+
133
+ <div class="content"><div class='highlight'><pre> annotation = <span class="keyword">true</span> <span class="comment"># looks like "IsAnnotation" is some helper method so I stub it here</span>
134
+ url = <span class="keyword">if</span> annotation
135
+ <span class="string">"/document-annotation2/embed?quality=50&amp;guid=<span class="subst">#{document.file.guid}</span>&amp;uid=<span class="subst">#{user.guid}</span>&amp;download=True"</span>
136
+ <span class="keyword">else</span>
137
+ <span class="string">"/document-viewer/embed?quality=50&amp;guid=<span class="subst">#{document.file.guid}</span>&amp;uid=<span class="subst">#{user.guid}</span>&amp;download=True"</span>
138
+ <span class="keyword">end</span></pre></div></div>
139
+
140
+ </li>
141
+
142
+
143
+ <li id="section-7">
144
+ <div class="annotation">
145
+
146
+ <div class="pilwrap ">
147
+ <a class="pilcrow" href="#section-7">&#182;</a>
148
+ </div>
149
+ <p>you can sign document
150
+ url = GroupDocs::Api::Request.new(path: url).prepare_and_sign_url</p>
151
+
152
+ </div>
153
+
154
+ <div class="content"><div class='highlight'><pre> iframe = <span class="string">"&lt;iframe src='https://apps.groupdocs.com<span class="subst">#{url}</span>' frameborder='0' width='720' height='600'&gt;&lt;/iframe&gt;"</span>
155
+ <span class="keyword">rescue</span> <span class="constant">Exception</span> =&gt; e
156
+ err = e.message
157
+ <span class="keyword">end</span>
158
+
159
+ haml <span class="symbol">:annotation_sample</span>, <span class="symbol">:locals</span> =&gt; {<span class="symbol">:client_id</span> =&gt; settings.client_id, <span class="symbol">:private_key</span> =&gt; settings.private_key, <span class="symbol">:err</span> =&gt; err, <span class="symbol">:file_name</span> =&gt; settings.file_name, <span class="symbol">:email</span> =&gt; settings.email, <span class="symbol">:first_name</span> =&gt; settings.first_name, <span class="symbol">:last_name</span> =&gt; settings.last_name, <span class="symbol">:iframe</span> =&gt; iframe}
160
+ <span class="keyword">end</span></pre></div></div>
161
+
162
+ </li>
163
+
164
+ </ul>
165
+ </div>
166
+ </body>
167
+ </html>
@@ -1,192 +1,500 @@
1
- /*--------------------- Layout and Typography ----------------------------*/
1
+ /*--------------------- Typography ----------------------------*/
2
+
3
+ @font-face {
4
+ font-family: 'aller-light';
5
+ src: url('public/fonts/aller-light.eot');
6
+ src: url('public/fonts/aller-light.eot?#iefix') format('embedded-opentype'),
7
+ url('public/fonts/aller-light.woff') format('woff'),
8
+ url('public/fonts/aller-light.ttf') format('truetype');
9
+ font-weight: normal;
10
+ font-style: normal;
11
+ }
12
+
13
+ @font-face {
14
+ font-family: 'aller-bold';
15
+ src: url('public/fonts/aller-bold.eot');
16
+ src: url('public/fonts/aller-bold.eot?#iefix') format('embedded-opentype'),
17
+ url('public/fonts/aller-bold.woff') format('woff'),
18
+ url('public/fonts/aller-bold.ttf') format('truetype');
19
+ font-weight: normal;
20
+ font-style: normal;
21
+ }
22
+
23
+ @font-face {
24
+ font-family: 'novecento-bold';
25
+ src: url('public/fonts/novecento-bold.eot');
26
+ src: url('public/fonts/novecento-bold.eot?#iefix') format('embedded-opentype'),
27
+ url('public/fonts/novecento-bold.woff') format('woff'),
28
+ url('public/fonts/novecento-bold.ttf') format('truetype');
29
+ font-weight: normal;
30
+ font-style: normal;
31
+ }
32
+
33
+ /*--------------------- Layout ----------------------------*/
34
+ html { height: 100%; }
2
35
  body {
3
- font-family: 'Palatino Linotype', 'Book Antiqua', Palatino, FreeSerif, serif;
4
- font-size: 15px;
5
- line-height: 22px;
6
- color: #252519;
36
+ font-family: "aller-light";
37
+ font-size: 14px;
38
+ line-height: 18px;
39
+ color: #30404f;
7
40
  margin: 0; padding: 0;
41
+ height:100%;
8
42
  }
43
+ #container { min-height: 100%; }
44
+
9
45
  a {
10
- color: #261a3b;
46
+ color: #000;
11
47
  }
12
- a:visited {
13
- color: #261a3b;
14
- }
15
- p {
16
- margin: 0 0 15px 0;
48
+
49
+ b, strong {
50
+ font-weight: normal;
51
+ font-family: "aller-bold";
17
52
  }
53
+
54
+ p, ul, ol {
55
+ margin: 15px 0 0px;
56
+ }
57
+
18
58
  h1, h2, h3, h4, h5, h6 {
19
- margin: 0px 0 15px 0;
59
+ color: #112233;
60
+ line-height: 1em;
61
+ font-weight: normal;
62
+ font-family: "novecento-bold";
63
+ text-transform: uppercase;
64
+ margin: 30px 0 15px 0;
20
65
  }
21
- h1 {
22
- margin-top: 40px;
23
- }
66
+
67
+ h1 {
68
+ margin-top: 40px;
69
+ }
70
+
24
71
  hr {
25
- border: 0 none;
26
- border-top: 1px solid #e5e5ee;
27
- height: 1px;
28
- margin: 20px 0;
72
+ border: 0;
73
+ background: 1px solid #ddd;
74
+ height: 1px;
75
+ margin: 20px 0;
29
76
  }
30
- #container {
31
- position: relative;
77
+
78
+ pre, tt, code {
79
+ font-size: 12px; line-height: 16px;
80
+ font-family: Menlo, Monaco, Consolas, "Lucida Console", monospace;
81
+ margin: 0; padding: 0;
32
82
  }
33
- #background {
34
- position: fixed;
35
- top: 0; left: 525px; right: 0; bottom: 0;
36
- background: #f5f5ff;
37
- border-left: 1px solid #e5e5ee;
38
- z-index: -1;
83
+ .annotation pre {
84
+ display: block;
85
+ margin: 0;
86
+ padding: 7px 10px;
87
+ background: #fcfcfc;
88
+ -moz-box-shadow: inset 0 0 10px rgba(0,0,0,0.1);
89
+ -webkit-box-shadow: inset 0 0 10px rgba(0,0,0,0.1);
90
+ box-shadow: inset 0 0 10px rgba(0,0,0,0.1);
91
+ overflow-x: auto;
92
+ }
93
+ .annotation pre code {
94
+ border: 0;
95
+ padding: 0;
96
+ background: transparent;
97
+ }
98
+
99
+
100
+ blockquote {
101
+ border-left: 5px solid #ccc;
102
+ margin: 0;
103
+ padding: 1px 0 1px 1em;
104
+ }
105
+ .sections blockquote p {
106
+ font-family: Menlo, Consolas, Monaco, monospace;
107
+ font-size: 12px; line-height: 16px;
108
+ color: #999;
109
+ margin: 10px 0 0;
110
+ white-space: pre-wrap;
111
+ }
112
+
113
+ ul.sections {
114
+ list-style: none;
115
+ padding:0 0 5px 0;;
116
+ margin:0;
117
+ }
118
+
119
+ /*
120
+ Force border-box so that % widths fit the parent
121
+ container without overlap because of margin/padding.
122
+
123
+ More Info : http://www.quirksmode.org/css/box.html
124
+ */
125
+ ul.sections > li > div {
126
+ -moz-box-sizing: border-box; /* firefox */
127
+ -ms-box-sizing: border-box; /* ie */
128
+ -webkit-box-sizing: border-box; /* webkit */
129
+ -khtml-box-sizing: border-box; /* konqueror */
130
+ box-sizing: border-box; /* css3 */
39
131
  }
132
+
133
+
134
+ /*---------------------- Jump Page -----------------------------*/
40
135
  #jump_to, #jump_page {
136
+ margin: 0;
41
137
  background: white;
42
138
  -webkit-box-shadow: 0 0 25px #777; -moz-box-shadow: 0 0 25px #777;
43
139
  -webkit-border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px;
44
- font: 10px Arial;
45
- text-transform: uppercase;
140
+ font: 16px Arial;
46
141
  cursor: pointer;
47
142
  text-align: right;
143
+ list-style: none;
144
+ }
145
+
146
+ #jump_to a {
147
+ text-decoration: none;
148
+ }
149
+
150
+ #jump_to a.large {
151
+ display: none;
152
+ }
153
+ #jump_to a.small {
154
+ font-size: 22px;
155
+ font-weight: bold;
156
+ color: #676767;
48
157
  }
158
+
49
159
  #jump_to, #jump_wrapper {
50
160
  position: fixed;
51
161
  right: 0; top: 0;
52
- padding: 5px 10px;
162
+ padding: 10px 15px;
163
+ margin:0;
164
+ }
165
+
166
+ #jump_wrapper {
167
+ display: none;
168
+ padding:0;
169
+ }
170
+
171
+ #jump_to:hover #jump_wrapper {
172
+ display: block;
173
+ }
174
+
175
+ #jump_page {
176
+ padding: 5px 0 3px;
177
+ margin: 0 0 25px 25px;
178
+ }
179
+
180
+ #jump_page .source {
181
+ display: block;
182
+ padding: 15px;
183
+ text-decoration: none;
184
+ border-top: 1px solid #eee;
185
+ }
186
+
187
+ #jump_page .source:hover {
188
+ background: #f5f5ff;
189
+ }
190
+
191
+ #jump_page .source:first-child {
192
+ }
193
+
194
+ /*---------------------- Low resolutions (> 320px) ---------------------*/
195
+ @media only screen and (min-width: 320px) {
196
+ .pilwrap { display: none; }
197
+
198
+ ul.sections > li > div {
199
+ display: block;
200
+ padding:5px 10px 0 10px;
201
+ }
202
+
203
+ ul.sections > li > div.annotation ul, ul.sections > li > div.annotation ol {
204
+ padding-left: 30px;
205
+ }
206
+
207
+ ul.sections > li > div.content {
208
+ background: #f5f5ff;
209
+ overflow-x:auto;
210
+ -webkit-box-shadow: inset 0 0 5px #e5e5ee;
211
+ box-shadow: inset 0 0 5px #e5e5ee;
212
+ border: 1px solid #dedede;
213
+ margin:5px 10px 5px 10px;
214
+ padding-bottom: 5px;
215
+ }
216
+
217
+ ul.sections > li > div.annotation pre {
218
+ margin: 7px 0 7px;
219
+ padding-left: 15px;
220
+ }
221
+
222
+ ul.sections > li > div.annotation p tt, .annotation code {
223
+ background: #f8f8ff;
224
+ border: 1px solid #dedede;
225
+ font-size: 12px;
226
+ padding: 0 0.2em;
227
+ }
53
228
  }
229
+
230
+ /*---------------------- (> 481px) ---------------------*/
231
+ @media only screen and (min-width: 481px) {
232
+ #container {
233
+ position: relative;
234
+ }
235
+ body {
236
+ background-color: #F5F5FF;
237
+ font-size: 15px;
238
+ line-height: 21px;
239
+ }
240
+ pre, tt, code {
241
+ line-height: 18px;
242
+ }
243
+ p, ul, ol {
244
+ margin: 0 0 15px;
245
+ }
246
+
247
+
248
+ #jump_to {
249
+ padding: 5px 10px;
250
+ }
54
251
  #jump_wrapper {
55
252
  padding: 0;
253
+ }
254
+ #jump_to, #jump_page {
255
+ font: 10px Arial;
256
+ text-transform: uppercase;
257
+ }
258
+ #jump_page .source {
259
+ padding: 5px 10px;
260
+ }
261
+ #jump_to a.large {
262
+ display: inline-block;
263
+ }
264
+ #jump_to a.small {
56
265
  display: none;
57
266
  }
58
- #jump_to:hover #jump_wrapper {
59
- display: block;
60
- }
61
- #jump_page {
62
- padding: 5px 0 3px;
63
- margin: 0 0 25px 25px;
64
- }
65
- #jump_page .source {
66
- display: block;
67
- padding: 5px 10px;
68
- text-decoration: none;
69
- border-top: 1px solid #eee;
70
- }
71
- #jump_page .source:hover {
72
- background: #f5f5ff;
73
- }
74
- #jump_page .source:first-child {
75
- }
76
- table td {
77
- border: 0;
78
- outline: 0;
79
- }
80
- td.docs, th.docs {
81
- max-width: 450px;
82
- min-width: 450px;
267
+
268
+
269
+
270
+ #background {
271
+ position: absolute;
272
+ top: 0; bottom: 0;
273
+ width: 350px;
274
+ background: #fff;
275
+ border-right: 1px solid #e5e5ee;
276
+ z-index: -1;
277
+ }
278
+
279
+ ul.sections > li > div.annotation ul, ul.sections > li > div.annotation ol {
280
+ padding-left: 40px;
281
+ }
282
+
283
+ ul.sections > li {
284
+ white-space: nowrap;
285
+ }
286
+
287
+ ul.sections > li > div {
288
+ display: inline-block;
289
+ }
290
+
291
+ ul.sections > li > div.annotation {
292
+ max-width: 350px;
293
+ min-width: 350px;
83
294
  min-height: 5px;
84
- padding: 10px 25px 1px 50px;
295
+ padding: 13px;
85
296
  overflow-x: hidden;
297
+ white-space: normal;
86
298
  vertical-align: top;
87
299
  text-align: left;
88
300
  }
89
- .docs pre {
90
- margin: 15px 0 15px;
91
- padding-left: 15px;
92
- }
93
- .docs p tt, .docs p code {
94
- background: #f8f8ff;
95
- border: 1px solid #dedede;
96
- font-size: 12px;
97
- padding: 0 0.2em;
98
- }
99
- .pilwrap {
100
- position: relative;
101
- }
102
- .pilcrow {
103
- font: 12px Arial;
104
- text-decoration: none;
105
- color: #454545;
106
- position: absolute;
107
- top: 3px; left: -20px;
108
- padding: 1px 2px;
109
- opacity: 0;
110
- -webkit-transition: opacity 0.2s linear;
111
- }
112
- td.docs:hover .pilcrow {
113
- opacity: 1;
114
- }
115
- td.code, th.code {
116
- padding: 14px 15px 16px 25px;
117
- width: 100%;
301
+ ul.sections > li > div.annotation pre {
302
+ margin: 15px 0 15px;
303
+ padding-left: 15px;
304
+ }
305
+
306
+ ul.sections > li > div.content {
307
+ padding: 13px;
118
308
  vertical-align: top;
119
309
  background: #f5f5ff;
120
- border-left: 1px solid #e5e5ee;
310
+ border: none;
311
+ -webkit-box-shadow: none;
312
+ box-shadow: none;
121
313
  }
122
- pre, tt, code {
123
- font-size: 12px; line-height: 18px;
124
- font-family: Menlo, Monaco, Consolas, "Lucida Console", monospace;
125
- margin: 0; padding: 0;
314
+
315
+ .pilwrap {
316
+ position: relative;
317
+ display: inline;
318
+ }
319
+
320
+ .pilcrow {
321
+ font: 12px Arial;
322
+ text-decoration: none;
323
+ color: #454545;
324
+ position: absolute;
325
+ top: 3px; left: -20px;
326
+ padding: 1px 2px;
327
+ opacity: 0;
328
+ -webkit-transition: opacity 0.2s linear;
329
+ }
330
+ .for-h1 .pilcrow {
331
+ top: 47px;
332
+ }
333
+ .for-h2 .pilcrow, .for-h3 .pilcrow, .for-h4 .pilcrow {
334
+ top: 35px;
126
335
  }
127
336
 
337
+ ul.sections > li > div.annotation:hover .pilcrow {
338
+ opacity: 1;
339
+ }
340
+ }
341
+
342
+ /*---------------------- (> 1025px) ---------------------*/
343
+ @media only screen and (min-width: 1025px) {
344
+
345
+ body {
346
+ font-size: 16px;
347
+ line-height: 24px;
348
+ }
349
+
350
+ #background {
351
+ width: 525px;
352
+ }
353
+ ul.sections > li > div.annotation {
354
+ max-width: 525px;
355
+ min-width: 525px;
356
+ padding: 10px 25px 1px 50px;
357
+ }
358
+ ul.sections > li > div.content {
359
+ padding: 9px 15px 16px 25px;
360
+ }
361
+ }
128
362
 
129
363
  /*---------------------- Syntax Highlighting -----------------------------*/
364
+
130
365
  td.linenos { background-color: #f0f0f0; padding-right: 10px; }
131
366
  span.lineno { background-color: #f0f0f0; padding: 0 5px 0 5px; }
132
- body .hll { background-color: #ffffcc }
133
- body .c { color: #408080; font-style: italic } /* Comment */
134
- body .err { border: 1px solid #FF0000 } /* Error */
135
- body .k { color: #954121 } /* Keyword */
136
- body .o { color: #666666 } /* Operator */
137
- body .cm { color: #408080; font-style: italic } /* Comment.Multiline */
138
- body .cp { color: #BC7A00 } /* Comment.Preproc */
139
- body .c1 { color: #408080; font-style: italic } /* Comment.Single */
140
- body .cs { color: #408080; font-style: italic } /* Comment.Special */
141
- body .gd { color: #A00000 } /* Generic.Deleted */
142
- body .ge { font-style: italic } /* Generic.Emph */
143
- body .gr { color: #FF0000 } /* Generic.Error */
144
- body .gh { color: #000080; font-weight: bold } /* Generic.Heading */
145
- body .gi { color: #00A000 } /* Generic.Inserted */
146
- body .go { color: #808080 } /* Generic.Output */
147
- body .gp { color: #000080; font-weight: bold } /* Generic.Prompt */
148
- body .gs { font-weight: bold } /* Generic.Strong */
149
- body .gu { color: #800080; font-weight: bold } /* Generic.Subheading */
150
- body .gt { color: #0040D0 } /* Generic.Traceback */
151
- body .kc { color: #954121 } /* Keyword.Constant */
152
- body .kd { color: #954121; font-weight: bold } /* Keyword.Declaration */
153
- body .kn { color: #954121; font-weight: bold } /* Keyword.Namespace */
154
- body .kp { color: #954121 } /* Keyword.Pseudo */
155
- body .kr { color: #954121; font-weight: bold } /* Keyword.Reserved */
156
- body .kt { color: #B00040 } /* Keyword.Type */
157
- body .m { color: #666666 } /* Literal.Number */
158
- body .s { color: #219161 } /* Literal.String */
159
- body .na { color: #7D9029 } /* Name.Attribute */
160
- body .nb { color: #954121 } /* Name.Builtin */
161
- body .nc { color: #0000FF; font-weight: bold } /* Name.Class */
162
- body .no { color: #880000 } /* Name.Constant */
163
- body .nd { color: #AA22FF } /* Name.Decorator */
164
- body .ni { color: #999999; font-weight: bold } /* Name.Entity */
165
- body .ne { color: #D2413A; font-weight: bold } /* Name.Exception */
166
- body .nf { color: #0000FF } /* Name.Function */
167
- body .nl { color: #A0A000 } /* Name.Label */
168
- body .nn { color: #0000FF; font-weight: bold } /* Name.Namespace */
169
- body .nt { color: #954121; font-weight: bold } /* Name.Tag */
170
- body .nv { color: #19469D } /* Name.Variable */
171
- body .ow { color: #AA22FF; font-weight: bold } /* Operator.Word */
172
- body .w { color: #bbbbbb } /* Text.Whitespace */
173
- body .mf { color: #666666 } /* Literal.Number.Float */
174
- body .mh { color: #666666 } /* Literal.Number.Hex */
175
- body .mi { color: #666666 } /* Literal.Number.Integer */
176
- body .mo { color: #666666 } /* Literal.Number.Oct */
177
- body .sb { color: #219161 } /* Literal.String.Backtick */
178
- body .sc { color: #219161 } /* Literal.String.Char */
179
- body .sd { color: #219161; font-style: italic } /* Literal.String.Doc */
180
- body .s2 { color: #219161 } /* Literal.String.Double */
181
- body .se { color: #BB6622; font-weight: bold } /* Literal.String.Escape */
182
- body .sh { color: #219161 } /* Literal.String.Heredoc */
183
- body .si { color: #BB6688; font-weight: bold } /* Literal.String.Interpol */
184
- body .sx { color: #954121 } /* Literal.String.Other */
185
- body .sr { color: #BB6688 } /* Literal.String.Regex */
186
- body .s1 { color: #219161 } /* Literal.String.Single */
187
- body .ss { color: #19469D } /* Literal.String.Symbol */
188
- body .bp { color: #954121 } /* Name.Builtin.Pseudo */
189
- body .vc { color: #19469D } /* Name.Variable.Class */
190
- body .vg { color: #19469D } /* Name.Variable.Global */
191
- body .vi { color: #19469D } /* Name.Variable.Instance */
192
- body .il { color: #666666 } /* Literal.Number.Integer.Long */
367
+ /*
368
+
369
+ github.com style (c) Vasily Polovnyov <vast@whiteants.net>
370
+
371
+ */
372
+
373
+ pre code {
374
+ display: block; padding: 0.5em;
375
+ color: #000;
376
+ background: #f8f8ff
377
+ }
378
+
379
+ pre .comment,
380
+ pre .template_comment,
381
+ pre .diff .header,
382
+ pre .javadoc {
383
+ color: #408080;
384
+ font-style: italic
385
+ }
386
+
387
+ pre .keyword,
388
+ pre .assignment,
389
+ pre .literal,
390
+ pre .css .rule .keyword,
391
+ pre .winutils,
392
+ pre .javascript .title,
393
+ pre .lisp .title,
394
+ pre .subst {
395
+ color: #954121;
396
+ /*font-weight: bold*/
397
+ }
398
+
399
+ pre .number,
400
+ pre .hexcolor {
401
+ color: #40a070
402
+ }
403
+
404
+ pre .string,
405
+ pre .tag .value,
406
+ pre .phpdoc,
407
+ pre .tex .formula {
408
+ color: #219161;
409
+ }
410
+
411
+ pre .title,
412
+ pre .id {
413
+ color: #19469D;
414
+ }
415
+ pre .params {
416
+ color: #00F;
417
+ }
418
+
419
+ pre .javascript .title,
420
+ pre .lisp .title,
421
+ pre .subst {
422
+ font-weight: normal
423
+ }
424
+
425
+ pre .class .title,
426
+ pre .haskell .label,
427
+ pre .tex .command {
428
+ color: #458;
429
+ font-weight: bold
430
+ }
431
+
432
+ pre .tag,
433
+ pre .tag .title,
434
+ pre .rules .property,
435
+ pre .django .tag .keyword {
436
+ color: #000080;
437
+ font-weight: normal
438
+ }
439
+
440
+ pre .attribute,
441
+ pre .variable,
442
+ pre .instancevar,
443
+ pre .lisp .body {
444
+ color: #008080
445
+ }
446
+
447
+ pre .regexp {
448
+ color: #B68
449
+ }
450
+
451
+ pre .class {
452
+ color: #458;
453
+ font-weight: bold
454
+ }
455
+
456
+ pre .symbol,
457
+ pre .ruby .symbol .string,
458
+ pre .ruby .symbol .keyword,
459
+ pre .ruby .symbol .keymethods,
460
+ pre .lisp .keyword,
461
+ pre .tex .special,
462
+ pre .input_number {
463
+ color: #990073
464
+ }
465
+
466
+ pre .builtin,
467
+ pre .constructor,
468
+ pre .built_in,
469
+ pre .lisp .title {
470
+ color: #0086b3
471
+ }
472
+
473
+ pre .preprocessor,
474
+ pre .pi,
475
+ pre .doctype,
476
+ pre .shebang,
477
+ pre .cdata {
478
+ color: #999;
479
+ font-weight: bold
480
+ }
481
+
482
+ pre .deletion {
483
+ background: #fdd
484
+ }
485
+
486
+ pre .addition {
487
+ background: #dfd
488
+ }
489
+
490
+ pre .diff .change {
491
+ background: #0086b3
492
+ }
493
+
494
+ pre .chunk {
495
+ color: #aaa
496
+ }
497
+
498
+ pre .tex .formula {
499
+ opacity: 0.5;
500
+ }