olelo 0.9.8 → 0.9.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. data/.gitignore +1 -0
  2. data/Rakefile +44 -10
  3. data/config.ru +4 -1
  4. data/lib/olelo/application.rb +1 -54
  5. data/lib/olelo/helper.rb +12 -7
  6. data/lib/olelo/initializer.rb +10 -13
  7. data/lib/olelo/locale.rb +7 -12
  8. data/lib/olelo/locale.yml +1 -36
  9. data/lib/olelo/plugin.rb +0 -12
  10. data/lib/olelo/routing.rb +1 -1
  11. data/lib/olelo/templates.rb +2 -3
  12. data/lib/olelo/util.rb +1 -1
  13. data/lib/olelo/version.rb +1 -1
  14. data/{views → lib/olelo/views}/delete.slim +0 -0
  15. data/{views → lib/olelo/views}/deleted.slim +0 -0
  16. data/{views → lib/olelo/views}/edit.slim +3 -3
  17. data/{views → lib/olelo/views}/error.slim +0 -0
  18. data/{views → lib/olelo/views}/layout.slim +1 -1
  19. data/{views → lib/olelo/views}/login.slim +1 -1
  20. data/{views → lib/olelo/views}/move.slim +0 -0
  21. data/{views → lib/olelo/views}/not_found.slim +0 -0
  22. data/{views → lib/olelo/views}/profile.slim +0 -0
  23. data/lib/olelo/views/show.slim +8 -0
  24. data/lib/olelo/virtualfs.rb +5 -29
  25. data/plugins/aspects/changelog.rb +3 -5
  26. data/plugins/aspects/documentbrowser.rb +24 -2
  27. data/plugins/aspects/download.rb +12 -0
  28. data/plugins/aspects/gallery/main.rb +9 -0
  29. data/plugins/aspects/highlight.rb +11 -0
  30. data/plugins/aspects/image.rb +12 -0
  31. data/plugins/aspects/imageinfo.rb +36 -2
  32. data/plugins/aspects/main.rb +16 -1
  33. data/plugins/aspects/pageinfo.rb +20 -2
  34. data/plugins/aspects/source.rb +12 -0
  35. data/plugins/aspects/subpages.rb +17 -1
  36. data/plugins/aspects/text.rb +12 -0
  37. data/plugins/blog/main.rb +4 -4
  38. data/plugins/editor/preview.rb +16 -0
  39. data/plugins/editor/recaptcha.rb +19 -0
  40. data/plugins/filters/editsection.rb +19 -0
  41. data/plugins/filters/locale.yml +11 -16
  42. data/plugins/filters/toc.rb +12 -0
  43. data/{views → plugins/history}/changes.slim +0 -0
  44. data/{views → plugins/history}/compare.slim +2 -2
  45. data/{views → plugins/history}/history.slim +1 -1
  46. data/plugins/history/locale.yml +40 -0
  47. data/plugins/history/main.rb +67 -0
  48. data/plugins/history/script.js +2 -0
  49. data/{static/script/12-olelo.historytable.js → plugins/history/script/00-historytable.js} +0 -0
  50. data/plugins/history/script/init.js +7 -0
  51. data/plugins/login/persistent.rb +11 -0
  52. data/plugins/repositories/git_grep.rb +19 -2
  53. data/plugins/repositories/gitrb_repository.rb +8 -0
  54. data/plugins/repositories/rugged_repository.rb +10 -0
  55. data/plugins/security/acl.rb +23 -0
  56. data/plugins/security/private_wiki.rb +11 -0
  57. data/plugins/utils/assets.rb +15 -21
  58. data/plugins/utils/store.rb +40 -19
  59. data/static/{images/favicon.png → favicon.png} +0 -0
  60. data/static/script.js +3 -5
  61. data/static/script/init.js +0 -1
  62. data/static/themes/atlantis/screen.scss +3 -3
  63. data/static/themes/atlantis/style.css +1 -1
  64. data/test/templates_test.rb +3 -11
  65. metadata +47 -49
  66. data/plugins/aspects/locale.yml +0 -87
  67. data/plugins/editor/locale.yml +0 -20
  68. data/plugins/login/locale.yml +0 -8
  69. data/plugins/repositories/locale.yml +0 -16
  70. data/plugins/security/locale.yml +0 -24
  71. data/views/show.slim +0 -8
@@ -227,6 +227,7 @@ class RuggedRepository < Repository
227
227
  end
228
228
 
229
229
  def delete(path)
230
+ check_path(path)
230
231
  work_tree.delete(path)
231
232
  work_tree.delete(path + CONTENT_EXT) if work_tree[path + CONTENT_EXT]
232
233
  work_tree.delete(path + ATTRIBUTE_EXT) if work_tree[path + ATTRIBUTE_EXT]
@@ -239,6 +240,7 @@ class RuggedRepository < Repository
239
240
  end
240
241
 
241
242
  def path_etag(path, version)
243
+ check_path(path)
242
244
  commit = @git.lookup(version.to_s)
243
245
  raise 'Not a commit' unless Rugged::Commit === commit
244
246
  if oid = oid_by_path(commit, path)
@@ -258,6 +260,8 @@ class RuggedRepository < Repository
258
260
  end
259
261
 
260
262
  def get_history(path, skip, limit)
263
+ check_path(path)
264
+
261
265
  commits = []
262
266
  walker = Rugged::Walker.new(@git)
263
267
  walker.sorting(Rugged::SORT_TOPO)
@@ -276,6 +280,8 @@ class RuggedRepository < Repository
276
280
  end
277
281
 
278
282
  def get_path_version(path, version)
283
+ check_path(path)
284
+
279
285
  version ||= @git.head.target
280
286
  version = version.to_s
281
287
 
@@ -313,6 +319,7 @@ class RuggedRepository < Repository
313
319
  end
314
320
 
315
321
  def get_children(path, version)
322
+ check_path(path)
316
323
  commit = @git.lookup(version.to_s)
317
324
  raise 'Not a commit' unless Rugged::Commit === commit
318
325
  object = object_by_path(commit, path)
@@ -322,6 +329,7 @@ class RuggedRepository < Repository
322
329
  end
323
330
 
324
331
  def get_content(path, version)
332
+ check_path(path)
325
333
  commit = @git.lookup(version.to_s)
326
334
  raise 'Not a commit' unless Rugged::Commit === commit
327
335
  object = object_by_path(commit, path)
@@ -330,6 +338,7 @@ class RuggedRepository < Repository
330
338
  end
331
339
 
332
340
  def get_attributes(path, version)
341
+ check_path(path)
333
342
  commit = @git.lookup(version.to_s)
334
343
  raise 'Not a commit' unless Rugged::Commit === commit
335
344
  path += ATTRIBUTE_EXT
@@ -338,6 +347,7 @@ class RuggedRepository < Repository
338
347
  end
339
348
 
340
349
  def diff(path, from, to)
350
+ check_path(path)
341
351
  commit_from = from && @git.rev_parse(from.to_s)
342
352
  commit_to = @git.rev_parse(to.to_s)
343
353
  raise 'Not a commit' unless (!commit_from || Rugged::Commit === commit_from) && Rugged::Commit === commit_to
@@ -55,3 +55,26 @@ class ::Olelo::Application
55
55
  end
56
56
  end
57
57
  end
58
+
59
+ __END__
60
+ @@ locale.yml
61
+ cs_CZ:
62
+ attribute_acl_create: 'Vytvářet podstránky'
63
+ attribute_acl_delete: 'Mazat podstránky'
64
+ attribute_acl_write: 'Právo zápisu'
65
+ group_acl: 'Řízení přístupů (ACL)'
66
+ de:
67
+ attribute_acl_create: 'Unterseiten anlegen'
68
+ attribute_acl_delete: 'Unterseiten löschen'
69
+ attribute_acl_write: 'Schreibzugriff'
70
+ group_acl: 'Zugriffslisten'
71
+ en:
72
+ attribute_acl_create: 'Create subpages'
73
+ attribute_acl_delete: 'Delete subpages'
74
+ attribute_acl_write: 'Write access'
75
+ group_acl: 'Access control lists'
76
+ fr:
77
+ attribute_acl_create: "Créer sous-pages"
78
+ attribute_acl_delete: "Supprimer sous-pages"
79
+ attribute_acl_write: "Accès en écriture"
80
+ group_acl: "Liste de contrôle des accès"
@@ -22,3 +22,14 @@ class ::Olelo::Application
22
22
  end
23
23
  end
24
24
  end
25
+
26
+ __END__
27
+ @@ locale.yml
28
+ cs_CZ:
29
+ login_first: 'Musíte se nejprve přihlásit'
30
+ de:
31
+ login_first: 'Sie müssen sich zuerst anmelden'
32
+ en:
33
+ login_first: 'You have to login first'
34
+ fr:
35
+ login_first: "Vous devez d'abord vous connecter"
@@ -16,11 +16,11 @@ class ::Olelo::Application
16
16
  css = Application.scripts['css']
17
17
  result = ''
18
18
  if css
19
- path = build_path "_/assets/assets.css?#{css.first.to_i}"
19
+ path = build_path "_/assets/assets.css?#{css.first}"
20
20
  result << %{<link rel="stylesheet" href="#{escape_html path}" type="text/css"/>}
21
21
  end
22
22
  if js
23
- path = build_path "_/assets/assets.js?#{js.first.to_i}"
23
+ path = build_path "_/assets/assets.js?#{js.first}"
24
24
  result << %{<script src="#{escape_html path}" type="text/javascript"></script>}
25
25
  end
26
26
  result
@@ -28,7 +28,7 @@ class ::Olelo::Application
28
28
 
29
29
  get "/_/assets/assets.:type", type: 'js|css' do
30
30
  if script = Application.scripts[params[:type]]
31
- cache_control last_modified: script.first, max_age: :static
31
+ cache_control max_age: :static, must_revalidate: false
32
32
  response['Content-Type'] = MimeMagic.by_extension(params[:type]).to_s
33
33
  response['Content-Length'] = script.last.bytesize.to_s
34
34
  script.last
@@ -39,15 +39,16 @@ class ::Olelo::Application
39
39
 
40
40
  get "/_/assets/:name", name: '.*' do
41
41
  if asset = Application.assets[params[:name]]
42
- if path = asset.real_path
42
+ fs, name = asset
43
+ if path = fs.real_path(name)
43
44
  file = Rack::File.new(nil)
44
45
  file.path = path
45
46
  file.serving(env)
46
47
  else
47
- cache_control last_modified: asset.mtime, max_age: :static
48
- response['Content-Type'] = (MimeMagic.by_path(asset.name) || 'application/octet-stream').to_s
49
- response['Content-Length'] = asset.size.to_s
50
- asset.read
48
+ cache_control last_modified: fs.mtime(name), max_age: :static
49
+ response['Content-Type'] = (MimeMagic.by_path(name) || 'application/octet-stream').to_s
50
+ response['Content-Length'] = fs.size(name).to_s
51
+ fs.read(name)
51
52
  end
52
53
  else
53
54
  :not_found
@@ -57,24 +58,17 @@ end
57
58
 
58
59
  class ::Olelo::Plugin
59
60
  def export_assets(*files)
60
- virtual_fs.glob(*files) do |file|
61
- Application.assets[plugin_dir/file.name] = file
61
+ virtual_fs.glob(*files) do |fs, name|
62
+ Application.assets[path/name] = [fs, name]
62
63
  end
63
64
  end
64
65
 
65
66
  def export_scripts(*files)
66
- virtual_fs.glob(*files) do |file|
67
- raise 'Invalid script type' if file.name !~ /\.(css|js)$/
67
+ virtual_fs.glob(*files) do |fs, name|
68
+ raise 'Invalid script type' if name !~ /\.(css|js)$/
68
69
  scripts = Application.scripts[$1].to_a
69
- Application.scripts[$1] = [[scripts[0], file.mtime].compact.max, "#{scripts[1]}/* #{plugin_dir/file.name} */\n#{file.read}\n"]
70
- end
71
- end
72
-
73
- def plugin_dir
74
- if File.basename(file) == 'main.rb'
75
- path
76
- else
77
- File.dirname(path)
70
+ code = "#{scripts[1]}/* #{path/name} */\n#{fs.read(name)}\n"
71
+ Application.scripts[$1] = [md5(code), code]
78
72
  end
79
73
  end
80
74
  end
@@ -94,22 +94,6 @@ class Store
94
94
  # Delegated store
95
95
  Delegated = DelegateClass(Store)
96
96
 
97
- # Synchronized store
98
- def self.Synchronized(type)
99
- klass = Class.new
100
- klass.class_eval %{
101
- def initialize(config)
102
- @store = #{type.name}.new(config)
103
- @lock = Mutex.new
104
- end
105
-
106
- def method_missing(*args)
107
- @lock.synchronize { @store.send(*args) }
108
- end
109
- }
110
- klass
111
- end
112
-
113
97
  # Memory based store (uses hash)
114
98
  class Memory < Delegated
115
99
  def initialize(config)
@@ -122,7 +106,7 @@ class Store
122
106
  # Memcached client
123
107
  class Memcached < Delegated
124
108
  def initialize(config)
125
- super(Store::Synchronized(Native).new(config))
109
+ super(Native.new(config))
126
110
  rescue LoadError
127
111
  super(Ruby.new(config))
128
112
  end
@@ -218,7 +202,8 @@ class Store
218
202
  def initialize(config)
219
203
  require 'pstore'
220
204
  FileUtils.mkpath(::File.dirname(config[:file]))
221
- @store = ::PStore.new(config[:file])
205
+ # Create a thread-safe pstore
206
+ @store = ::PStore.new(config[:file], true)
222
207
  end
223
208
 
224
209
  # @override
@@ -251,7 +236,43 @@ class Store
251
236
  end
252
237
  end
253
238
 
254
- register :pstore, Synchronized(PStore)
239
+ register :pstore, PStore
240
+
241
+ # GDBM based store
242
+ class GDBM < Store
243
+ def initialize(config)
244
+ require 'gdbm'
245
+ FileUtils.mkpath(::File.dirname(config[:db]))
246
+ @db = ::GDBM.new(config[:db])
247
+ end
248
+
249
+ # @override
250
+ def key?(key)
251
+ @db.has_key?(key)
252
+ end
253
+
254
+ # @override
255
+ def [](key)
256
+ deserialize(@db[key])
257
+ end
258
+
259
+ # @override
260
+ def []=(key, value)
261
+ @db[key] = serialize(value)
262
+ end
263
+
264
+ # @override
265
+ def delete(key)
266
+ @db.delete(key)
267
+ end
268
+
269
+ # @override
270
+ def clear
271
+ @db.clear
272
+ end
273
+ end
274
+
275
+ register :gdbm, GDBM
255
276
 
256
277
  # File based store
257
278
  class File < Store
@@ -294,12 +294,10 @@ o)})},_renderItemData:function(n,s){return this._renderItem(n,s).data("ui-autoco
294
294
  arguments)},_keyEvent:function(n,s){if(!this.isMultiLine||this.menu.element.is(":visible")){this._move(n,s);s.preventDefault()}}});i.extend(i.ui.autocomplete,{escapeRegex:function(n){return n.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(n,s){var z=RegExp(i.ui.autocomplete.escapeRegex(s),"i");return i.grep(n,function(r){return z.test(r.label||r.value||r)})}});i.widget("ui.autocomplete",i.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(n){return n+
295
295
  (n>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(n){this._superApply(arguments);this.options.disabled||this.cancelSearch||this.liveRegion.text(n&&n.length?this.options.messages.results(n.length):this.options.messages.noResults)}})})(jQuery);(function(i){function v(o){if(typeof o!="string"&&typeof o!="number")throw new TypeError("Key name must be string or numeric");}function n(){try{s.oleloStorage=JSON.stringify(z)}catch(o){}}var s={},z={};try{if(window.localStorage)s=window.localStorage;if(s.oleloStorage)z=JSON.parse(s.oleloStorage)}catch(r){}i.storage={set:function(o,x){v(o);z[o]=x;n();return x},get:function(o,x){v(o);if(o in z)return z[o];return typeof x=="undefined"?null:x},remove:function(o){v(o);if(o in z){delete z[o];n();return true}return false}}})(jQuery);(function(i){function v(z,r){var o=s[z];return o&&o[r]}var n=null,s={};i.translations=function(z){for(var r in z)if(s[r])for(var o in z[r])s[r][o]=z[r][o];else s[r]=z[r]};i.t=function(z,r){if(!n){var o=i("html");n=o.attr("lang")||o.attr("xml:lang")||"en"}var x;o=v(n,z);if(!o&&(x=n.indexOf("-")))o=v(n.substr(0,x),z);if(o){for(var E in r)o=o.replace(RegExp("#{"+E+"}","g"),r[E]);return o}return"#"+z}})(jQuery);(function(i){function v(){var z=false;switch(this.type){case "checkbox":case "radio":z=this.checked!=this.defaultChecked;break;case "hidden":case "password":case "text":case "textarea":case "file":z=this.value!=this.defaultValue;break;case "select-one":case "select-multiple":for(var r=0;r<this.options.length&&!z;++r)z=this.options[r].selected!=this.options[r].defaultSelected;break}i("label[for="+this.id+"]").toggleClass("unsaved",z);i(this).toggleClass("unsaved",z)}function n(z){i("input.observe, textarea.observe, select.observe").each(function(){v.call(this)});
296
296
  return i(".unsaved",z).size()!==0}i.translations({en:{confirmUnsaved:"The page was not saved. Continue?",pageUnsaved:"The page was not saved."},de:{confirmUnsaved:"Die Seite wurde nicht gespeichert. Fortsetzen?",pageUnsaved:"Die Seite wurde nicht gespeichert."},cs:{confirmUnsaved:"Str\u00e1nka nebyla ulo\u017eena. Pokra\u010dovat?",pageUnsaved:"Str\u00e1nka nebyla ulo\u017eena."},fr:{confirmUnsaved:"La page n'a pas \u00e9t\u00e9 enregistr\u00e9e. Voulez vous continuer ?",pageUnsaved:"La page n'a pas \u00e9t\u00e9 enregistr\u00e9e."}});
297
- i.fn.confirmUnsaved=function(){return!n(this)||confirm(i.t("confirmUnsaved"))};i(document).on("change autocompletechange","input.observe, textarea.observe, select.observe",v);var s=false;i(document).on("submit","form",function(){s=true}).bind("reset",function(){i(".unsaved",this).removeClass("unsaved")});i(window).bind("beforeunload",function(){if(!s&&n(document))return i.t("pageUnsaved")})})(jQuery);(function(i){i.fn.historyTable=function(){function v(){var o=[];z.each(function(){this.checked&&o.push(this.name)});return o}i("thead tr",this).prepend('<th class="compare"><button>&#177;</button></th>');i("tbody tr",this).each(function(){var o=i(this).attr("id").substr(8);i(this).prepend('<td class="compare"><input type="checkbox" name="'+o+'"/></td>')});var n=i.storage.get("historyTable");if(n)for(var s=0;s<n.length;++s)i("input[name="+n[s]+"]").attr("checked","checked");var z=i("tbody input",this),
298
- r=i("th button",this);r.click(function(){var o=v();i.storage.set("historyTable",o);location.href=location.pathname.replace("/history","/compare/"+o[o.length-1]+"..."+o[0])});i("td input",this).change(function(){v().length>1?r.removeAttr("disabled"):r.attr("disabled","disabled")}).change()}})(jQuery);(function(i){i.fn.pagination=function(v){function n(z){s.load(z+(z.indexOf("?")<0?"?":"&")+"no_layout=1",function(){s.trigger("pageLoaded",[z])})}var s=this;i(document).on("click",v,function(){i(this).addClass("loading");History.enabled?History.pushState(null,document.title,this.href):n(this.href);return false});i(window).bind("statechange",function(){var z=History.getState();n(z.url)})}})(jQuery);(function(i){i.fn.tabWidget=function(v){var n=v&&v.store,s=null;i("> a[href^='#']",this).click(function(){if(s.data("tab")==i(this).data("tab"))return false;if(!s.data("tab").confirmUnsaved())return false;s.data("tab").hide();s.parent().removeClass("selected");s=i(this);s.data("tab").show();s.parent().addClass("selected");n&&i.storage.set(n,s.data("tab").attr("id"));return false}).each(function(){var z=i(this.href.match(/(#.*)$/)[1]);z.hide();i(this).data("tab",z)});if(n)if(v=i.storage.get(n))s=i("> a[href='#"+
297
+ i.fn.confirmUnsaved=function(){return!n(this)||confirm(i.t("confirmUnsaved"))};i(document).on("change autocompletechange","input.observe, textarea.observe, select.observe",v);var s=false;i(document).on("submit","form",function(){s=true}).bind("reset",function(){i(".unsaved",this).removeClass("unsaved")});i(window).bind("beforeunload",function(){if(!s&&n(document))return i.t("pageUnsaved")})})(jQuery);(function(i){i.fn.pagination=function(v){function n(z){s.load(z+(z.indexOf("?")<0?"?":"&")+"no_layout=1",function(){s.trigger("pageLoaded",[z])})}var s=this;i(document).on("click",v,function(){i(this).addClass("loading");History.enabled?History.pushState(null,document.title,this.href):n(this.href);return false});i(window).bind("statechange",function(){var z=History.getState();n(z.url)})}})(jQuery);(function(i){i.fn.tabWidget=function(v){var n=v&&v.store,s=null;i("> a[href^='#']",this).click(function(){if(s.data("tab")==i(this).data("tab"))return false;if(!s.data("tab").confirmUnsaved())return false;s.data("tab").hide();s.parent().removeClass("selected");s=i(this);s.data("tab").show();s.parent().addClass("selected");n&&i.storage.set(n,s.data("tab").attr("id"));return false}).each(function(){var z=i(this.href.match(/(#.*)$/)[1]);z.hide();i(this).data("tab",z)});if(n)if(v=i.storage.get(n))s=i("> a[href='#"+
299
298
  v+"']",this);if(!s||s.size()===0)s=i(this).filter(".selected").find("> a[href^='#']");if(!s||s.size()===0)s=i(this).filter(":first").find("> a[href^='#']");if(s&&s.data("tab")){s.parent().addClass("selected");s.data("tab").show()}}})(jQuery);(function(i){function v(n){n=Math.floor(((new Date).getTime()-new Date(n*1E3))/6E4);if(n<=0)return i.t("less_than_a_minute_ago");if(n==1)return i.t("a_minute_ago");if(n<45)return i.t("n_minutes_ago",{n:n});if(n<90)return i.t("one_hour_ago");if(n<1440)return i.t("n_hours_ago",{n:Math.round(n/60)});if(n<2880)return i.t("one_day_ago");if(n<43200)return i.t("n_days_ago",{n:Math.round(n/1440)});if(n<86400)return i.t("one_month_ago");if(n<525960)return i.t("n_months_ago",{n:Math.round(n/43200)});if(n<1051920)return i.t("one_year_ago");
300
299
  return i.t("over_n_years_ago",{n:Math.round(n/525960)})}i.translations({en:{less_than_a_minute_ago:"less than a minute ago",a_minute_ago:"a minute ago",n_minutes_ago:"#{n} minutes ago",one_hour_ago:"1 hour ago",n_hours_ago:"#{n} hours ago",one_day_ago:"1 day ago",n_days_ago:"#{n} days ago",one_month_ago:"1 month ago",n_months_ago:"#{n} months ago",one_year_ago:"1 year ago",over_n_years_ago:"over #{n} years ago"},de:{less_than_a_minute_ago:"vor weniger als einer Minute",a_minute_ago:"vor einer Minute",
301
300
  n_minutes_ago:"vor #{n} Minuten",one_hour_ago:"vor einer Stunde",n_hours_ago:"vor #{n} Stunden",one_day_ago:"vor einem Tag",n_days_ago:"vor #{n} Tagen",one_month_ago:"vor einem Monat",n_months_ago:"vor #{n} Monaten",one_year_ago:"vor einem Jahr",over_n_years_ago:"vor \u00fcber #{n} Jahren"},cs:{less_than_a_minute_ago:"m\u00e9n\u011b ne\u017e 1 minuta",a_minute_ago:"p\u0159ed minutou",n_minutes_ago:"p\u0159ed #{n} minutami",one_hour_ago:"p\u0159ed hodinou",n_hours_ago:"p\u0159ed #{n} hodinami",one_day_ago:"jeden den",
302
301
  n_days_ago:"p\u0159ed #{n} dny",one_month_ago:"jeden m\u011bs\u00edc",n_months_ago:"p\u0159ed #{n} m\u011bs\u00edci",one_year_ago:"1 rok",over_n_years_ago:"p\u0159ed #{n} lety"},fr:{less_than_a_minute_ago:"il y a moins d'une minute",a_minute_ago:"il y a une minute",n_minutes_ago:"il y a #{n} minutes",one_hour_ago:"il y a 1 heure",n_hours_ago:"il y a #{n} heures",one_day_ago:"il y a 1 jour",n_days_ago:"il y a #{n} jours",one_month_ago:"il y a 1 mois",n_months_ago:"il y a #{n} mois",one_year_ago:"il y a 1 an",
303
- over_n_years_ago:"il y a plus de #{n} ans"}});i.fn.timeAgo=function(){this.each(function(){var n=i(this),s=n.data("epoch");s&&n.attr("title",n.text()).html(v(s))})}})(jQuery);(function(i){i.extend(i.fn,{underlineText:function(v){this.each(function(){var n=i(this),s,z;if(n.children().size()===0){s=n.text();z=s.toLowerCase().indexOf(v.toLowerCase());z>=0&&n.html(s.substr(0,z)+'<span style="text-decoration: underline">'+s.substr(z,v.length)+"</span>"+s.substr(z+v.length))}else n.children().underlineText(v)})},underlineAccessKey:function(){this.each(function(){var v=i(this).attr("accesskey");v&&i(this).underlineText(v)})}})})(jQuery);(function(i){i.widget("ui.combobox",{_create:function(){var v=this.element;v.autocomplete({delay:0,minLength:0,source:this.options.source}).click(function(){v.autocomplete("widget").is(":visible")?v.autocomplete("close"):v.autocomplete("search",this.value)});i('<button class="ui-combo-button"/>').attr("tabIndex",-1).insertAfter(v).click(function(n){n.preventDefault();if(v.autocomplete("widget").is(":visible"))v.autocomplete("close");else{v.autocomplete("search","");v.focus()}})}})})(jQuery);$(function(){function i(){$("#upload-path",this).each(function(){var v=this,n=v.value,s=v.value;if(s.length===0||s.match(/\/$/))$("#upload-file").change(function(){if(v.value==n){v.value=s+this.value;n=v.value}})});$("label, #menu, .tabhead, .pagination, .button-bar",this).disableSelection();$("#history-table",this).historyTable();$(".date",this).timeAgo();$(".tabs",this).each(function(){$("> li",this).tabWidget()});$("*[accesskey]",this).underlineAccessKey()}$("html").removeClass("no-js").addClass("js");
304
- $("#content").pagination(".pagination a");$("#content").bind("pageLoaded",i);i.apply($(document));$("button[data-target]").live("click",function(){var v=$(this),n=$(this.form);v.addClass("loading");$.ajax({type:n.attr("method")||"get",url:n.attr("action")||window.location.href,data:n.serialize()+"&"+v.attr("name")+"="+v.attr("value")+"&no_layout=1",success:function(s){$("#"+v.data("target")).html(s);v.removeClass("loading");window.MathJax&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,v.data("target")])}});
305
- return false})});
302
+ over_n_years_ago:"il y a plus de #{n} ans"}});i.fn.timeAgo=function(){this.each(function(){var n=i(this),s=n.data("epoch");s&&n.attr("title",n.text()).html(v(s))})}})(jQuery);(function(i){i.extend(i.fn,{underlineText:function(v){this.each(function(){var n=i(this),s,z;if(n.children().size()===0){s=n.text();z=s.toLowerCase().indexOf(v.toLowerCase());z>=0&&n.html(s.substr(0,z)+'<span style="text-decoration: underline">'+s.substr(z,v.length)+"</span>"+s.substr(z+v.length))}else n.children().underlineText(v)})},underlineAccessKey:function(){this.each(function(){var v=i(this).attr("accesskey");v&&i(this).underlineText(v)})}})})(jQuery);(function(i){i.widget("ui.combobox",{_create:function(){var v=this.element;v.autocomplete({delay:0,minLength:0,source:this.options.source}).click(function(){v.autocomplete("widget").is(":visible")?v.autocomplete("close"):v.autocomplete("search",this.value)});i('<button class="ui-combo-button"/>').attr("tabIndex",-1).insertAfter(v).click(function(n){n.preventDefault();if(v.autocomplete("widget").is(":visible"))v.autocomplete("close");else{v.autocomplete("search","");v.focus()}})}})})(jQuery);$(function(){function i(){$("#upload-path",this).each(function(){var v=this,n=v.value,s=v.value;if(s.length===0||s.match(/\/$/))$("#upload-file").change(function(){if(v.value==n){v.value=s+this.value;n=v.value}})});$("label, #menu, .tabhead, .pagination, .button-bar",this).disableSelection();$(".date",this).timeAgo();$(".tabs",this).each(function(){$("> li",this).tabWidget()});$("*[accesskey]",this).underlineAccessKey()}$("html").removeClass("no-js").addClass("js");$("#content").pagination(".pagination a");
303
+ $("#content").bind("pageLoaded",i);i.apply($(document));$("button[data-target]").live("click",function(){var v=$(this),n=$(this.form);v.addClass("loading");$.ajax({type:n.attr("method")||"get",url:n.attr("action")||window.location.href,data:n.serialize()+"&"+v.attr("name")+"="+v.attr("value")+"&no_layout=1",success:function(s){$("#"+v.data("target")).html(s);v.removeClass("loading");window.MathJax&&MathJax.Hub.Queue(["Typeset",MathJax.Hub,v.data("target")])}});return false})});
@@ -19,7 +19,6 @@ $(function() {
19
19
  }
20
20
  });
21
21
  $('label, #menu, .tabhead, .pagination, .button-bar', this).disableSelection();
22
- $('#history-table', this).historyTable();
23
22
  $('.date', this).timeAgo();
24
23
  $('.tabs', this).each(function() {
25
24
  $('> li', this).tabWidget();
@@ -220,7 +220,7 @@ pre {
220
220
  display: block;
221
221
  }
222
222
 
223
- #history-table .compare {
223
+ #history .compare {
224
224
  padding: 0;
225
225
  width: 1em;
226
226
  button {
@@ -234,7 +234,7 @@ pre {
234
234
  }
235
235
  }
236
236
 
237
- table.full, #history-table, #subpages-table {
237
+ table.full, #history, #subpages {
238
238
  width: 100%;
239
239
  td, th {
240
240
  white-space: nowrap;
@@ -258,7 +258,7 @@ table.full, #history-table, #subpages-table {
258
258
  }
259
259
  }
260
260
 
261
- #subpages-table {
261
+ #subpages {
262
262
  .actions {
263
263
  width: 80px;
264
264
  padding: 0px;
@@ -1,3 +1,3 @@
1
- @media screen{.patch{width:100%;border:1px solid #BBB;border-collapse:collapse;border-spacing:0}.patch tr td{padding:0.5em;border-top:1px solid #BBB;font-family:"Bitstream Vera Sans Mono", monospace}.patch tr td pre{border:0px none;margin:0;padding:0}.patch tr td ins{background:#d4ffd4;text-decoration:none}.patch tr td del{color:#555555;text-decoration:line-through}.patch tr th{font-variant:normal;padding:0.2em 0.5em;border:1px solid #BBB}.patch tr.new th{background:url(images/actions/new.png) 2px 2px no-repeat;padding-left:20px}.patch tr.delete th{background:url(images/actions/delete.png) 2px 2px no-repeat;padding-left:20px}.patch tr.move th{background:url(images/actions/move.png) 2px 2px no-repeat;padding-left:20px}.patch tr.edit th{background:url(images/actions/edit.png) 2px 2px no-repeat;padding-left:20px}.patch-summary{width:100%}.patch-summary .ins,.patch-summary .del{width:1em}.patch-summary .ins{color:#5A5}.patch-summary .del{color:#A55}.patch-summary .new{background:#d4ffd4}.patch-summary .new .name{background:url(images/actions/new.png) 2px 2px no-repeat;padding-left:20px}.patch-summary .delete{background:#ffd4d4}.patch-summary .delete .name{background:url(images/actions/delete.png) 2px 2px no-repeat;padding-left:20px}.patch-summary .move{background:#ffc}.patch-summary .move .name{background:url(images/actions/move.png) 2px 2px no-repeat;padding-left:20px}.patch-summary .edit{background:#fff}.patch-summary .edit .name{background:url(images/actions/edit.png) 2px 2px no-repeat;padding-left:20px}.ui-autocomplete{position:absolute;cursor:default;list-style:none;padding:2px;margin:0;display:block;float:left;background:#FFF;border:1px solid #BBB}.ui-autocomplete a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.2em;color:#333}.ui-autocomplete .ui-state-hover{background:#DDD}.ui-autocomplete-input{margin-right:0}.ui-combo-button{-webkit-border-top-left-radius:0;border-top-left-radius:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;border-left:0px none;margin-left:0;padding:0}.ui-combo-button:before{content:'\25BE'}.ui-helper-hidden-accessible{display:none}#header{background:url(images/bg/header.jpg) #153b7a;padding-left:0.5em;clear:both;height:3em}#header h1{margin:0;padding:0;border:0;outline:0;font-size:200%;font-weight:bold;float:left}#header h1 a,#header h1 a:visited,#header h1 a:active,#header h1 a:hover{color:#eeeeee}#info{float:right;background:#fff;padding:0.3em;margin:0.65em 0.5em 0 0;opacity:0.8}#search{opacity:0.8;float:right;border:none}#search input{margin:0.65em 0.5em 0 0;width:10em;padding:0.2em;padding-left:20px;background:#fff url(images/search.png) no-repeat 0.2em 0.2em}html,body{height:100%}#container{min-height:520px;position:relative;display:block;overflow:hidden;padding-right:7em;padding-left:156px;background:url(images/bg/container.png) top left repeat-y;z-index:10}#content{position:relative;float:left;width:100%;padding:2.5em 3.5em;background:url(images/bg/content.png) top left repeat-x}#sidebar{background:#e5efff;position:relative;width:156px;float:left;padding-bottom:3.5em;margin-left:-156px}#sidebar h1,#sidebar h2,#sidebar h3,#sidebar h4,#sidebar h5,#sidebar h6{font-size:140%;background:white;font-weight:normal;line-height:1.2em;margin:1em 0 0 0;padding:0 0.2em;border-top:1px solid #95bbff;border-bottom:1px solid #95bbff;display:block}#sidebar ul{margin:0;padding:0;border:0;outline:0;list-style:none}#sidebar ul li{margin:0}#sidebar ul li a{padding:0 5px;display:block}#sidebar ul ul a{padding:0 20px}#sidebar ul ul ul a{padding:0 35px}#footer{clear:both;position:relative;color:#555;font-size:90%;background:url(images/bg/footer.png) top left repeat-x;margin-top:-10px;padding:2em;text-align:right;z-index:1 !important}#footer .powered_by{margin-top:1em;color:#aaaaaa;font-size:90%}#item-actions-edit>a:before{content:url(images/actions/edit.png) "\00a0"}#item-actions-history>a:before{content:url(images/actions/history.png) "\00a0"}#item-actions-edit-new>a:before{content:url(images/actions/new.png) "\00a0"}#item-actions-edit-delete>a:before{content:url(images/actions/delete.png) "\00a0"}#item-actions-edit-move>a:before{content:url(images/actions/move.png) "\00a0"}#menu{background:#fff;height:1.6em;line-height:1.6em;border-top:1px solid #bbb;border-bottom:1px solid #bbb}#menu ul{margin:0;padding:0;border:0;outline:0;list-style-type:none;margin-left:0px;display:block;float:left;height:1.6em}#menu ul li{float:left}#menu ul#menu-actions{float:right}#menu ul#menu-actions li{border-left:1px solid #bbb;border-right:none}#menu ul#menu-actions .selected a:before{content:"\2022\00a0"}#menu ul#menu-actions .download{background:#e5efff}#menu ul li{margin:0;padding:0;border:0;outline:0;display:block;float:left;height:1.6em;line-height:1.6em;border-right:1px solid #bbb;color:#333}#menu ul li a{display:block;text-decoration:none;white-space:nowrap;padding:0 1em;height:1.6em;color:#333;cursor:pointer}#menu ul li a:hover,#menu ul li a:focus,#menu ul li a:active{text-shadow:#333333 1px 1px 2px}#menu ul li ul{display:none;z-index:99;position:absolute;border-top:1px solid #bbb;margin-left:-1px}#menu ul li ul li{background:#fff;clear:both;border:1px solid #bbb !important;border-top:none !important;width:100%}#menu ul li:hover>ul{display:block}#menu .breadcrumbs{margin-right:1em}#menu .breadcrumbs>li{border:none}#menu .breadcrumbs>li a{padding:0 0.3em}#menu .breadcrumbs>li:first-child a{padding-left:1em;text-indent:-999px;display:block;width:16px;background:url(images/actions/home.png) no-repeat 1em 0.1em}#menu .breadcrumbs>li:last-child{border-right:1px solid #bbb}#menu .breadcrumbs>li:last-child a{padding-right:1em}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline}*:focus{outline:0}body{line-height:1em;color:black;background:white}ol,ul{list-style:none}table{border-collapse:separate;border-spacing:0;vertical-align:middle}caption,th,td{text-align:left;font-weight:normal;vertical-align:middle}q,blockquote{quotes:"" ""}q:before,q:after,blockquote:before,blockquote:after{content:""}img a{border:none}body{color:#111111;background:white;font-family:"URW Gothic L","DejaVu Sans",Verdana,sans-serif;font-size:10pt;line-height:1.2em}h1{font-size:185%}h2{font-size:170%}h3{font-size:155%}h4{font-size:140%}h5{font-size:125%}h6{font-size:110%}h1,h2,h3,h4,h5,h6{font-family:"Book Antiqua",Palatino,FreeSerif,serif;color:#153b7a;margin:1em 0 0.5em 0;line-height:1.2em}h1{margin-top:0}strong{font-weight:bold}em{font-style:italic}ul,ol,p{margin:0.8em 0 0.8em 0}ul,ol ul,ol{margin:0}ul{list-style-type:disc}ol{list-style-type:decimal}ul,ol{list-style-position:outside;padding-left:1.5em}ul.pagination{height:3em}ul.button-bar,ul.pagination{list-style-type:none;margin:0;display:block;padding:0;width:100%}ul.button-bar li,ul.pagination li{float:left;padding:0;margin:0}ul.button-bar li a,ul.button-bar li span,ul.pagination li a,ul.pagination li span{display:block;background:url(images/bg/button.png) repeat-x left bottom transparent;border:1px solid #bbb;border-left:0px none;color:#333;padding:0em 0.5em;line-height:1.5em}ul.button-bar li a:active,ul.button-bar li a.current,ul.button-bar li a.loading,ul.button-bar li span:active,ul.button-bar li span.current,ul.button-bar li span.loading,ul.pagination li a:active,ul.pagination li a.current,ul.pagination li a.loading,ul.pagination li span:active,ul.pagination li span.current,ul.pagination li span.loading{background:url(images/bg/button.png) repeat-x left bottom #d4e4ff}ul.button-bar li a.loading,ul.button-bar li span.loading,ul.pagination li a.loading,ul.pagination li span.loading{background:#d4e4ff url(images/loading.gif) repeat}ul.button-bar li a.ellipsis:before,ul.button-bar li span.ellipsis:before,ul.pagination li a.ellipsis:before,ul.pagination li span.ellipsis:before{content:'\22EF'}ul.button-bar li a.disabled,ul.button-bar li span.disabled,ul.pagination li a.disabled,ul.pagination li span.disabled{color:#bbb}ul.button-bar li:first-child a,ul.button-bar li:first-child span,ul.pagination li:first-child a,ul.pagination li:first-child span{border-left:1px solid #bbb;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px}ul.button-bar li:last-child a,ul.button-bar li:last-child span,ul.pagination li:last-child a,ul.pagination li:last-child span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px}dt{font-weight:bold;text-decoration:underline}dd{margin:0;padding:0 0 0.5em 0}table{border-collapse:separate;border-spacing:0px;background:#bbb;padding:1px;margin:0 0 2em 0}table td,table th{border-top:1px solid #E5E5E5;padding:0.2em 0.5em}table td.link,table th.link{padding:0}table td.link a,table th.link a{margin:0;padding:0.2em 0.5em;display:block}table tr{background:#fff}table tr:first-child td{border-top:0px none}table thead tr{background:url(images/bg/button.png) repeat-x left bottom #d4e4ff}table thead tr th{border-bottom:1px solid #bbb;border-top:0px none}a,a:visited{color:#153b7a;text-decoration:none}a.img{background:transparent}span.img{border:1px solid #bbb;float:right;text-align:center;color:black;background:#fff;padding:0.2em}span.img img{display:block}.editsection{border-radius:4px;-webkit-border-radius:4px;border:1px solid #bbb;display:block;background:url(images/bg/button.png) repeat-x left bottom #fff;font-family:"URW Gothic L","DejaVu Sans",Verdana,sans-serif;font-size:9pt;line-height:9pt;margin-top:2px;padding:2px;color:#333;float:right;font-variant:normal}.editsection:visited{color:#333}sub{vertical-align:text-bottom;font-size:75%}sup{vertical-align:text-top;font-size:75%}img{vertical-align:middle}hr{background:#bbb;border:none;height:1px}.version,tt,pre,code,kbd{font-family:"Andale Mono","Bitstream Vera Sans Mono",monospace}pre{border:1px solid #bbb;padding:0.2em;min-width:60%;white-space:pre-wrap;display:block}#history-table .compare{padding:0;width:1em}#history-table .compare button{margin:1px;display:inline;font-size:small}#history-table .compare input{display:inline;margin:0 3px}table.full,#history-table,#subpages-table{width:100%}table.full td,table.full th,#history-table td,#history-table th,#subpages-table td,#subpages-table th{white-space:nowrap}#subpages-table .actions{width:80px;padding:0px}#subpages-table .action-edit{text-indent:-999px;background:url(images/actions/edit.png) no-repeat top left;float:left;width:16px;height:16px;overflow:hidden}#subpages-table .action-history{text-indent:-999px;background:url(images/actions/history.png) no-repeat top left;float:left;width:16px;height:16px;overflow:hidden}#subpages-table .action-delete{text-indent:-999px;background:url(images/actions/delete.png) no-repeat top left;float:left;width:16px;height:16px;overflow:hidden}#subpages-table .action-move{text-indent:-999px;background:url(images/actions/move.png) no-repeat top left;float:left;width:16px;height:16px;overflow:hidden}#subpages-table .page:before{content:url(images/page.png) "\00a0"}#subpages-table .folder:before{content:url(images/folder.png) "\00a0"}#subpages-table .file-type-7z:before{content:url(images/filetypes/7z.png) "\00a0"}#subpages-table .file-type-bz2:before{content:url(images/filetypes/bz2.png) "\00a0"}#subpages-table .file-type-doc:before{content:url(images/filetypes/doc.png) "\00a0"}#subpages-table .file-type-flac:before{content:url(images/filetypes/flac.png) "\00a0"}#subpages-table .file-type-gz:before{content:url(images/filetypes/gz.png) "\00a0"}#subpages-table .file-type-html:before{content:url(images/filetypes/html.png) "\00a0"}#subpages-table .file-type-java:before{content:url(images/filetypes/java.png) "\00a0"}#subpages-table .file-type-jpg:before{content:url(images/filetypes/jpg.png) "\00a0"}#subpages-table .file-type-midi:before{content:url(images/filetypes/midi.png) "\00a0"}#subpages-table .file-type-mp3:before{content:url(images/filetypes/mp3.png) "\00a0"}#subpages-table .file-type-ogg:before{content:url(images/filetypes/ogg.png) "\00a0"}#subpages-table .file-type-pdf:before{content:url(images/filetypes/pdf.png) "\00a0"}#subpages-table .file-type-php:before{content:url(images/filetypes/php.png) "\00a0"}#subpages-table .file-type-png:before{content:url(images/filetypes/png.png) "\00a0"}#subpages-table .file-type-ppt:before{content:url(images/filetypes/ppt.png) "\00a0"}#subpages-table .file-type-psd:before{content:url(images/filetypes/psd.png) "\00a0"}#subpages-table .file-type-rar:before{content:url(images/filetypes/rar.png) "\00a0"}#subpages-table .file-type-rb:before{content:url(images/filetypes/rb.png) "\00a0"}#subpages-table .file-type-sh:before{content:url(images/filetypes/sh.png) "\00a0"}#subpages-table .file-type-tar:before{content:url(images/filetypes/tar.png) "\00a0"}#subpages-table .file-type-txt:before{content:url(images/filetypes/txt.png) "\00a0"}#subpages-table .file-type-wma:before{content:url(images/filetypes/wma.png) "\00a0"}#subpages-table .file-type-xls:before{content:url(images/filetypes/xls.png) "\00a0"}#subpages-table .file-type-zip:before{content:url(images/filetypes/zip.png) "\00a0"}.info{color:#333}.warn{color:#a50}.error{color:#a00}.ref{vertical-align:super;font-size:80%}button{border-radius:4px;-webkit-border-radius:4px;background:url(images/bg/button.png) repeat-x left bottom #fff;float:left;margin:0.3em 0.5em 0.3em 0;padding:2px;border:1px solid #bbb;color:#333;white-space:nowrap}button:active:not([disabled]),button.loading{background:url(images/bg/button.png) repeat-x left bottom #d4e4ff}button.loading{background:url(images/loading.gif) repeat #d4e4ff}button[disabled]{color:#999}form{display:inline}form select,form textarea,form input{float:left;margin:0.3em 0.5em 0.3em 0;padding:2px;border:1px solid #bbb;background:#fff;color:#333}form select:focus,form textarea:focus,form input:focus{border-style:dotted}form label{float:left;margin:0;padding:0.4em 0.5em 0.4em 0;border:none;background:none;color:#333}form label.unsaved{font-style:italic}form .fieldset label{width:12em;text-align:right}form .indent{margin-left:12.5em}form .indent label{width:auto}form input[type=text],form input[type=password]{font-family:"Andale Mono","Bitstream Vera Sans Mono",monospace;width:20em}form select{width:20em}form textarea{width:100%;font-family:"Andale Mono","Bitstream Vera Sans Mono",monospace;font-size:100%}form input[type=image],form input[type=image]:focus,form input[type=checkbox]{border:none;background:none}form input[type=hidden]{display:none}form br{clear:left}.flash{margin:0.5em 0;border:1px solid #d33;list-style-type:none;padding:0.5em;background:#fdd}table input{margin:0}.box,.fieldset,.tab{border-radius:4px;-webkit-border-radius:4px;box-shadow:2px 2px 8px #bbb;-webkit-box-shadow:2px 2px 8px #bbb;clear:both;display:block;border:1px solid #bbb;padding:0.5em 1em;margin:1em 0;overflow:auto}.box h1,.box h2,.box h3,.box h4,.box h5,.box h6,.fieldset h1,.fieldset h2,.fieldset h3,.fieldset h4,.fieldset h5,.fieldset h6,.tab h1,.tab h2,.tab h3,.tab h4,.tab h5,.tab h6{margin:0.2em 0}.js .tabs{margin:0;padding:0;border:0;outline:0;list-style-type:none;margin-left:0px;display:block;float:left;margin:0 0 1px 0;height:1.5em;width:100%;z-index:100;position:relative}.js .tabs li{float:left}.js .tabs>li{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;background:url(images/bg/button.png) repeat-x left bottom #d4e4ff;float:left;padding:0;margin:0 4px 0 0;height:1.5em;line-height:1.5em;border:1px solid #bbb}.js .tabs>li.selected>a{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;background:#fff;border-bottom:1px solid white}.js .tabs>li>a{display:block;text-decoration:none;white-space:nowrap;padding:0 0.8em;color:#333}.js .tabs>li>a:hover,.js .tabs>li>a:active,.js .tabs>li>a:focus{text-shadow:#333333 1px 1px 2px}.js .tab{-webkit-border-top-left-radius:0px;border-top-left-radius:0px}.no-js .tabs{display:none}.hidden{display:none !important}.toc .toc1{font-weight:bold}.toc .toc1>ol{margin-bottom:1em}.toc .toc1 .toc2{font-weight:normal}a.absent{color:#A55}.archive #header{background:url(images/bg/header_gray.jpg) #333}.error_page{padding-left:120px;min-height:400px;background:url(images/bug.png) top left no-repeat}.not_found_page{padding-left:120px;min-height:400px;background:url(images/not_found.png) top left no-repeat}* html #container{width:100%;padding:0;background:transparent;border-bottom:1px solid #bbb}* html #sidebar{margin:0;border-right:1px solid #bbb;border-bottom:1px solid #bbb}* html #content{width:70%;background:transparent}* html #footer{background:transparent;margin-top:0;padding-top:0}*:first-child+html #container{padding-right:7.1em}*:first-child+html #menu ul li li{width:8em}
1
+ @media screen{.patch{width:100%;border:1px solid #BBB;border-collapse:collapse;border-spacing:0}.patch tr td{padding:0.5em;border-top:1px solid #BBB;font-family:"Bitstream Vera Sans Mono", monospace}.patch tr td pre{border:0px none;margin:0;padding:0}.patch tr td ins{background:#d4ffd4;text-decoration:none}.patch tr td del{color:#555555;text-decoration:line-through}.patch tr th{font-variant:normal;padding:0.2em 0.5em;border:1px solid #BBB}.patch tr.new th{background:url(images/actions/new.png) 2px 2px no-repeat;padding-left:20px}.patch tr.delete th{background:url(images/actions/delete.png) 2px 2px no-repeat;padding-left:20px}.patch tr.move th{background:url(images/actions/move.png) 2px 2px no-repeat;padding-left:20px}.patch tr.edit th{background:url(images/actions/edit.png) 2px 2px no-repeat;padding-left:20px}.patch-summary{width:100%}.patch-summary .ins,.patch-summary .del{width:1em}.patch-summary .ins{color:#5A5}.patch-summary .del{color:#A55}.patch-summary .new{background:#d4ffd4}.patch-summary .new .name{background:url(images/actions/new.png) 2px 2px no-repeat;padding-left:20px}.patch-summary .delete{background:#ffd4d4}.patch-summary .delete .name{background:url(images/actions/delete.png) 2px 2px no-repeat;padding-left:20px}.patch-summary .move{background:#ffc}.patch-summary .move .name{background:url(images/actions/move.png) 2px 2px no-repeat;padding-left:20px}.patch-summary .edit{background:#fff}.patch-summary .edit .name{background:url(images/actions/edit.png) 2px 2px no-repeat;padding-left:20px}.ui-autocomplete{position:absolute;cursor:default;list-style:none;padding:2px;margin:0;display:block;float:left;background:#FFF;border:1px solid #BBB}.ui-autocomplete a{text-decoration:none;display:block;padding:.2em .4em;line-height:1.2em;color:#333}.ui-autocomplete .ui-state-hover{background:#DDD}.ui-autocomplete-input{margin-right:0}.ui-combo-button{-webkit-border-top-left-radius:0;border-top-left-radius:0;-webkit-border-bottom-left-radius:0;border-bottom-left-radius:0;border-left:0px none;margin-left:0;padding:0}.ui-combo-button:before{content:'\25BE'}.ui-helper-hidden-accessible{display:none}#header{background:url(images/bg/header.jpg) #153b7a;padding-left:0.5em;clear:both;height:3em}#header h1{margin:0;padding:0;border:0;outline:0;font-size:200%;font-weight:bold;float:left}#header h1 a,#header h1 a:visited,#header h1 a:active,#header h1 a:hover{color:#eeeeee}#info{float:right;background:#fff;padding:0.3em;margin:0.65em 0.5em 0 0;opacity:0.8}#search{opacity:0.8;float:right;border:none}#search input{margin:0.65em 0.5em 0 0;width:10em;padding:0.2em;padding-left:20px;background:#fff url(images/search.png) no-repeat 0.2em 0.2em}html,body{height:100%}#container{min-height:520px;position:relative;display:block;overflow:hidden;padding-right:7em;padding-left:156px;background:url(images/bg/container.png) top left repeat-y;z-index:10}#content{position:relative;float:left;width:100%;padding:2.5em 3.5em;background:url(images/bg/content.png) top left repeat-x}#sidebar{background:#e5efff;position:relative;width:156px;float:left;padding-bottom:3.5em;margin-left:-156px}#sidebar h1,#sidebar h2,#sidebar h3,#sidebar h4,#sidebar h5,#sidebar h6{font-size:140%;background:white;font-weight:normal;line-height:1.2em;margin:1em 0 0 0;padding:0 0.2em;border-top:1px solid #95bbff;border-bottom:1px solid #95bbff;display:block}#sidebar ul{margin:0;padding:0;border:0;outline:0;list-style:none}#sidebar ul li{margin:0}#sidebar ul li a{padding:0 5px;display:block}#sidebar ul ul a{padding:0 20px}#sidebar ul ul ul a{padding:0 35px}#footer{clear:both;position:relative;color:#555;font-size:90%;background:url(images/bg/footer.png) top left repeat-x;margin-top:-10px;padding:2em;text-align:right;z-index:1 !important}#footer .powered_by{margin-top:1em;color:#aaaaaa;font-size:90%}#item-actions-edit>a:before{content:url(images/actions/edit.png) "\00a0"}#item-actions-history>a:before{content:url(images/actions/history.png) "\00a0"}#item-actions-edit-new>a:before{content:url(images/actions/new.png) "\00a0"}#item-actions-edit-delete>a:before{content:url(images/actions/delete.png) "\00a0"}#item-actions-edit-move>a:before{content:url(images/actions/move.png) "\00a0"}#menu{background:#fff;height:1.6em;line-height:1.6em;border-top:1px solid #bbb;border-bottom:1px solid #bbb}#menu ul{margin:0;padding:0;border:0;outline:0;list-style-type:none;margin-left:0px;display:block;float:left;height:1.6em}#menu ul li{float:left}#menu ul#menu-actions{float:right}#menu ul#menu-actions li{border-left:1px solid #bbb;border-right:none}#menu ul#menu-actions .selected a:before{content:"\2022\00a0"}#menu ul#menu-actions .download{background:#e5efff}#menu ul li{margin:0;padding:0;border:0;outline:0;display:block;float:left;height:1.6em;line-height:1.6em;border-right:1px solid #bbb;color:#333}#menu ul li a{display:block;text-decoration:none;white-space:nowrap;padding:0 1em;height:1.6em;color:#333;cursor:pointer}#menu ul li a:hover,#menu ul li a:focus,#menu ul li a:active{text-shadow:#333333 1px 1px 2px}#menu ul li ul{display:none;z-index:99;position:absolute;border-top:1px solid #bbb;margin-left:-1px}#menu ul li ul li{background:#fff;clear:both;border:1px solid #bbb !important;border-top:none !important;width:100%}#menu ul li:hover>ul{display:block}#menu .breadcrumbs{margin-right:1em}#menu .breadcrumbs>li{border:none}#menu .breadcrumbs>li a{padding:0 0.3em}#menu .breadcrumbs>li:first-child a{padding-left:1em;text-indent:-999px;display:block;width:16px;background:url(images/actions/home.png) no-repeat 1em 0.1em}#menu .breadcrumbs>li:last-child{border-right:1px solid #bbb}#menu .breadcrumbs>li:last-child a{padding-right:1em}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,font,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td{margin:0;padding:0;border:0;outline:0;font-weight:inherit;font-style:inherit;font-size:100%;font-family:inherit;vertical-align:baseline}*:focus{outline:0}body{line-height:1em;color:black;background:white}ol,ul{list-style:none}table{border-collapse:separate;border-spacing:0;vertical-align:middle}caption,th,td{text-align:left;font-weight:normal;vertical-align:middle}q,blockquote{quotes:"" ""}q:before,q:after,blockquote:before,blockquote:after{content:""}img a{border:none}body{color:#111111;background:white;font-family:"URW Gothic L","DejaVu Sans",Verdana,sans-serif;font-size:10pt;line-height:1.2em}h1{font-size:185%}h2{font-size:170%}h3{font-size:155%}h4{font-size:140%}h5{font-size:125%}h6{font-size:110%}h1,h2,h3,h4,h5,h6{font-family:"Book Antiqua",Palatino,FreeSerif,serif;color:#153b7a;margin:1em 0 0.5em 0;line-height:1.2em}h1{margin-top:0}strong{font-weight:bold}em{font-style:italic}ul,ol,p{margin:0.8em 0 0.8em 0}ul,ol ul,ol{margin:0}ul{list-style-type:disc}ol{list-style-type:decimal}ul,ol{list-style-position:outside;padding-left:1.5em}ul.pagination{height:3em}ul.button-bar,ul.pagination{list-style-type:none;margin:0;display:block;padding:0;width:100%}ul.button-bar li,ul.pagination li{float:left;padding:0;margin:0}ul.button-bar li a,ul.button-bar li span,ul.pagination li a,ul.pagination li span{display:block;background:url(images/bg/button.png) repeat-x left bottom transparent;border:1px solid #bbb;border-left:0px none;color:#333;padding:0em 0.5em;line-height:1.5em}ul.button-bar li a:active,ul.button-bar li a.current,ul.button-bar li a.loading,ul.button-bar li span:active,ul.button-bar li span.current,ul.button-bar li span.loading,ul.pagination li a:active,ul.pagination li a.current,ul.pagination li a.loading,ul.pagination li span:active,ul.pagination li span.current,ul.pagination li span.loading{background:url(images/bg/button.png) repeat-x left bottom #d4e4ff}ul.button-bar li a.loading,ul.button-bar li span.loading,ul.pagination li a.loading,ul.pagination li span.loading{background:#d4e4ff url(images/loading.gif) repeat}ul.button-bar li a.ellipsis:before,ul.button-bar li span.ellipsis:before,ul.pagination li a.ellipsis:before,ul.pagination li span.ellipsis:before{content:'\22EF'}ul.button-bar li a.disabled,ul.button-bar li span.disabled,ul.pagination li a.disabled,ul.pagination li span.disabled{color:#bbb}ul.button-bar li:first-child a,ul.button-bar li:first-child span,ul.pagination li:first-child a,ul.pagination li:first-child span{border-left:1px solid #bbb;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-webkit-border-bottom-left-radius:4px;border-bottom-left-radius:4px}ul.button-bar li:last-child a,ul.button-bar li:last-child span,ul.pagination li:last-child a,ul.pagination li:last-child span{-webkit-border-top-right-radius:4px;border-top-right-radius:4px;-webkit-border-bottom-right-radius:4px;border-bottom-right-radius:4px}dt{font-weight:bold;text-decoration:underline}dd{margin:0;padding:0 0 0.5em 0}table{border-collapse:separate;border-spacing:0px;background:#bbb;padding:1px;margin:0 0 2em 0}table td,table th{border-top:1px solid #E5E5E5;padding:0.2em 0.5em}table td.link,table th.link{padding:0}table td.link a,table th.link a{margin:0;padding:0.2em 0.5em;display:block}table tr{background:#fff}table tr:first-child td{border-top:0px none}table thead tr{background:url(images/bg/button.png) repeat-x left bottom #d4e4ff}table thead tr th{border-bottom:1px solid #bbb;border-top:0px none}a,a:visited{color:#153b7a;text-decoration:none}a.img{background:transparent}span.img{border:1px solid #bbb;float:right;text-align:center;color:black;background:#fff;padding:0.2em}span.img img{display:block}.editsection{border-radius:4px;-webkit-border-radius:4px;border:1px solid #bbb;display:block;background:url(images/bg/button.png) repeat-x left bottom #fff;font-family:"URW Gothic L","DejaVu Sans",Verdana,sans-serif;font-size:9pt;line-height:9pt;margin-top:2px;padding:2px;color:#333;float:right;font-variant:normal}.editsection:visited{color:#333}sub{vertical-align:text-bottom;font-size:75%}sup{vertical-align:text-top;font-size:75%}img{vertical-align:middle}hr{background:#bbb;border:none;height:1px}.version,tt,pre,code,kbd{font-family:"Andale Mono","Bitstream Vera Sans Mono",monospace}pre{border:1px solid #bbb;padding:0.2em;min-width:60%;white-space:pre-wrap;display:block}#history .compare{padding:0;width:1em}#history .compare button{margin:1px;display:inline;font-size:small}#history .compare input{display:inline;margin:0 3px}table.full,#history,#subpages{width:100%}table.full td,table.full th,#history td,#history th,#subpages td,#subpages th{white-space:nowrap}#subpages .actions{width:80px;padding:0px}#subpages .action-edit{text-indent:-999px;background:url(images/actions/edit.png) no-repeat top left;float:left;width:16px;height:16px;overflow:hidden}#subpages .action-history{text-indent:-999px;background:url(images/actions/history.png) no-repeat top left;float:left;width:16px;height:16px;overflow:hidden}#subpages .action-delete{text-indent:-999px;background:url(images/actions/delete.png) no-repeat top left;float:left;width:16px;height:16px;overflow:hidden}#subpages .action-move{text-indent:-999px;background:url(images/actions/move.png) no-repeat top left;float:left;width:16px;height:16px;overflow:hidden}#subpages .page:before{content:url(images/page.png) "\00a0"}#subpages .folder:before{content:url(images/folder.png) "\00a0"}#subpages .file-type-7z:before{content:url(images/filetypes/7z.png) "\00a0"}#subpages .file-type-bz2:before{content:url(images/filetypes/bz2.png) "\00a0"}#subpages .file-type-doc:before{content:url(images/filetypes/doc.png) "\00a0"}#subpages .file-type-flac:before{content:url(images/filetypes/flac.png) "\00a0"}#subpages .file-type-gz:before{content:url(images/filetypes/gz.png) "\00a0"}#subpages .file-type-html:before{content:url(images/filetypes/html.png) "\00a0"}#subpages .file-type-java:before{content:url(images/filetypes/java.png) "\00a0"}#subpages .file-type-jpg:before{content:url(images/filetypes/jpg.png) "\00a0"}#subpages .file-type-midi:before{content:url(images/filetypes/midi.png) "\00a0"}#subpages .file-type-mp3:before{content:url(images/filetypes/mp3.png) "\00a0"}#subpages .file-type-ogg:before{content:url(images/filetypes/ogg.png) "\00a0"}#subpages .file-type-pdf:before{content:url(images/filetypes/pdf.png) "\00a0"}#subpages .file-type-php:before{content:url(images/filetypes/php.png) "\00a0"}#subpages .file-type-png:before{content:url(images/filetypes/png.png) "\00a0"}#subpages .file-type-ppt:before{content:url(images/filetypes/ppt.png) "\00a0"}#subpages .file-type-psd:before{content:url(images/filetypes/psd.png) "\00a0"}#subpages .file-type-rar:before{content:url(images/filetypes/rar.png) "\00a0"}#subpages .file-type-rb:before{content:url(images/filetypes/rb.png) "\00a0"}#subpages .file-type-sh:before{content:url(images/filetypes/sh.png) "\00a0"}#subpages .file-type-tar:before{content:url(images/filetypes/tar.png) "\00a0"}#subpages .file-type-txt:before{content:url(images/filetypes/txt.png) "\00a0"}#subpages .file-type-wma:before{content:url(images/filetypes/wma.png) "\00a0"}#subpages .file-type-xls:before{content:url(images/filetypes/xls.png) "\00a0"}#subpages .file-type-zip:before{content:url(images/filetypes/zip.png) "\00a0"}.info{color:#333}.warn{color:#a50}.error{color:#a00}.ref{vertical-align:super;font-size:80%}button{border-radius:4px;-webkit-border-radius:4px;background:url(images/bg/button.png) repeat-x left bottom #fff;float:left;margin:0.3em 0.5em 0.3em 0;padding:2px;border:1px solid #bbb;color:#333;white-space:nowrap}button:active:not([disabled]),button.loading{background:url(images/bg/button.png) repeat-x left bottom #d4e4ff}button.loading{background:url(images/loading.gif) repeat #d4e4ff}button[disabled]{color:#999}form{display:inline}form select,form textarea,form input{float:left;margin:0.3em 0.5em 0.3em 0;padding:2px;border:1px solid #bbb;background:#fff;color:#333}form select:focus,form textarea:focus,form input:focus{border-style:dotted}form label{float:left;margin:0;padding:0.4em 0.5em 0.4em 0;border:none;background:none;color:#333}form label.unsaved{font-style:italic}form .fieldset label{width:12em;text-align:right}form .indent{margin-left:12.5em}form .indent label{width:auto}form input[type=text],form input[type=password]{font-family:"Andale Mono","Bitstream Vera Sans Mono",monospace;width:20em}form select{width:20em}form textarea{width:100%;font-family:"Andale Mono","Bitstream Vera Sans Mono",monospace;font-size:100%}form input[type=image],form input[type=image]:focus,form input[type=checkbox]{border:none;background:none}form input[type=hidden]{display:none}form br{clear:left}.flash{margin:0.5em 0;border:1px solid #d33;list-style-type:none;padding:0.5em;background:#fdd}table input{margin:0}.box,.fieldset,.tab{border-radius:4px;-webkit-border-radius:4px;box-shadow:2px 2px 8px #bbb;-webkit-box-shadow:2px 2px 8px #bbb;clear:both;display:block;border:1px solid #bbb;padding:0.5em 1em;margin:1em 0;overflow:auto}.box h1,.box h2,.box h3,.box h4,.box h5,.box h6,.fieldset h1,.fieldset h2,.fieldset h3,.fieldset h4,.fieldset h5,.fieldset h6,.tab h1,.tab h2,.tab h3,.tab h4,.tab h5,.tab h6{margin:0.2em 0}.js .tabs{margin:0;padding:0;border:0;outline:0;list-style-type:none;margin-left:0px;display:block;float:left;margin:0 0 1px 0;height:1.5em;width:100%;z-index:100;position:relative}.js .tabs li{float:left}.js .tabs>li{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;background:url(images/bg/button.png) repeat-x left bottom #d4e4ff;float:left;padding:0;margin:0 4px 0 0;height:1.5em;line-height:1.5em;border:1px solid #bbb}.js .tabs>li.selected>a{-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px;background:#fff;border-bottom:1px solid white}.js .tabs>li>a{display:block;text-decoration:none;white-space:nowrap;padding:0 0.8em;color:#333}.js .tabs>li>a:hover,.js .tabs>li>a:active,.js .tabs>li>a:focus{text-shadow:#333333 1px 1px 2px}.js .tab{-webkit-border-top-left-radius:0px;border-top-left-radius:0px}.no-js .tabs{display:none}.hidden{display:none !important}.toc .toc1{font-weight:bold}.toc .toc1>ol{margin-bottom:1em}.toc .toc1 .toc2{font-weight:normal}a.absent{color:#A55}.archive #header{background:url(images/bg/header_gray.jpg) #333}.error_page{padding-left:120px;min-height:400px;background:url(images/bug.png) top left no-repeat}.not_found_page{padding-left:120px;min-height:400px;background:url(images/not_found.png) top left no-repeat}* html #container{width:100%;padding:0;background:transparent;border-bottom:1px solid #bbb}* html #sidebar{margin:0;border-right:1px solid #bbb;border-bottom:1px solid #bbb}* html #content{width:70%;background:transparent}* html #footer{background:transparent;margin-top:0;padding-top:0}*:first-child+html #container{padding-right:7.1em}*:first-child+html #menu ul li li{width:8em}
2
2
  }@media print{.patch{width:100%;border:1px solid #BBB;border-collapse:collapse;border-spacing:0}.patch tr td{padding:0.5em;border-top:1px solid #BBB;font-family:"Bitstream Vera Sans Mono", monospace}.patch tr td pre{border:0px none;margin:0;padding:0}.patch tr td ins{background:#d4ffd4;text-decoration:none}.patch tr td del{color:#555555;text-decoration:line-through}.patch tr th{font-variant:normal;padding:0.2em 0.5em;border:1px solid #BBB}.patch tr.new th{background:url(images/actions/new.png) 2px 2px no-repeat;padding-left:20px}.patch tr.delete th{background:url(images/actions/delete.png) 2px 2px no-repeat;padding-left:20px}.patch tr.move th{background:url(images/actions/move.png) 2px 2px no-repeat;padding-left:20px}.patch tr.edit th{background:url(images/actions/edit.png) 2px 2px no-repeat;padding-left:20px}.patch-summary{width:100%}.patch-summary .ins,.patch-summary .del{width:1em}.patch-summary .ins{color:#5A5}.patch-summary .del{color:#A55}.patch-summary .new{background:#d4ffd4}.patch-summary .new .name{background:url(images/actions/new.png) 2px 2px no-repeat;padding-left:20px}.patch-summary .delete{background:#ffd4d4}.patch-summary .delete .name{background:url(images/actions/delete.png) 2px 2px no-repeat;padding-left:20px}.patch-summary .move{background:#ffc}.patch-summary .move .name{background:url(images/actions/move.png) 2px 2px no-repeat;padding-left:20px}.patch-summary .edit{background:#fff}.patch-summary .edit .name{background:url(images/actions/edit.png) 2px 2px no-repeat;padding-left:20px}body{color:black;background:#fff;font-family:"URW Gothic L","DejaVu Sans",Verdana,sans-serif;font-size:10pt;line-height:1.2em}h1{font-size:185%}h2{font-size:170%}h3{font-size:155%}h4{font-size:140%}h5{font-size:125%}h6{font-size:110%}h1,h2,h3,h4,h5,h6{font-family:"Book Antiqua",Palatino,FreeSerif,serif;color:#153b7a;margin:2em 0 0.5em 0}ul,ol,p{margin:0.8em 0 0.8em 0}ul,ol ul,ol{margin:0}ul{list-style-type:disc}ol{list-style-type:decimal}ul,ol{list-style-position:outside;padding-left:1.5em}table{border-collapse:collapse;border-spacing:0;border:1px solid #bbb}table tr td,table tr th{border:1px solid #bbb;padding:0.2em 0.5em}table tr td.link,table tr th.link{padding:0}table tr td.link a,table tr th.link a{margin:0;padding:0.2em 0.5em;display:block}a,a:visited{color:#153b7a;text-decoration:none}a.img{background:transparent}div.img a{border:1px solid #bbb;float:right;text-align:center;color:black;background:#fff;padding:0.2em}div.img a img{display:block}img{vertical-align:middle}hr{background:#bbb;border:none;height:1px}#header,#sidebar,#menu,.editsection,.backref,.hidden,.noprint{display:none !important}#footer{display:block;margin-top:1em}.ref,.ref:visited,.ref:active,.ref:hover{vertical-align:super;font-size:80%;color:black}.date .ago{display:none !important}.date .full{display:inline !important}.toc{padding:0.5em 2em}.toc ul{margin:0}.toc .toc1{font-weight:bold}.toc .toc1 .toc2{font-weight:normal}
3
3
  }
@@ -4,20 +4,12 @@ class Bacon::Context
4
4
  include Olelo::Templates
5
5
  end
6
6
 
7
- class TestTemplateLoader
8
- def context
9
- nil
10
- end
11
-
12
- def load(path)
13
- Olelo::VirtualFS::Embedded.new(__FILE__).read(path)
14
- end
15
- end
16
-
17
7
  describe 'Olelo::Templates' do
18
8
  before do
19
9
  Olelo::Templates.enable_caching
20
- Olelo::Templates.loader = TestTemplateLoader.new
10
+ Olelo::Templates.loader = proc do |name|
11
+ Olelo::VirtualFS::Embedded.new(__FILE__).read(name)
12
+ end
21
13
  end
22
14
 
23
15
  after do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: olelo
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.8
4
+ version: 0.9.9
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-10 00:00:00.000000000 Z
12
+ date: 2012-11-14 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: multi_json
16
- requirement: &13779700 !ruby/object:Gem::Requirement
16
+ requirement: &7192200 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 1.3.7
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *13779700
24
+ version_requirements: *7192200
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: slim
27
- requirement: &13779020 !ruby/object:Gem::Requirement
27
+ requirement: &7190840 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.3.3
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *13779020
35
+ version_requirements: *7190840
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: creole
38
- requirement: &13778360 !ruby/object:Gem::Requirement
38
+ requirement: &7189440 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 0.5.0
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *13778360
46
+ version_requirements: *7189440
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: nokogiri
49
- requirement: &13777660 !ruby/object:Gem::Requirement
49
+ requirement: &7188340 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.5.5
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *13777660
57
+ version_requirements: *7188340
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: mimemagic
60
- requirement: &13777160 !ruby/object:Gem::Requirement
60
+ requirement: &7187440 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 0.2.0
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *13777160
68
+ version_requirements: *7187440
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rack
71
- requirement: &13776640 !ruby/object:Gem::Requirement
71
+ requirement: &7186620 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ~>
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: 1.4.1
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *13776640
79
+ version_requirements: *7186620
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: redcarpet
82
- requirement: &13776120 !ruby/object:Gem::Requirement
82
+ requirement: &7185720 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ~>
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: 2.2.2
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *13776120
90
+ version_requirements: *7185720
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: rugged
93
- requirement: &13775620 !ruby/object:Gem::Requirement
93
+ requirement: &7184420 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: 0.17.0.b7
99
99
  type: :runtime
100
100
  prerelease: false
101
- version_requirements: *13775620
101
+ version_requirements: *7184420
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: evaluator
104
- requirement: &13210260 !ruby/object:Gem::Requirement
104
+ requirement: &7609460 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ~>
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: 0.1.6
110
110
  type: :runtime
111
111
  prerelease: false
112
- version_requirements: *13210260
112
+ version_requirements: *7609460
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: rake
115
- requirement: &13209540 !ruby/object:Gem::Requirement
115
+ requirement: &7608880 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ! '>='
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: 0.8.7
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *13209540
123
+ version_requirements: *7608880
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: sass
126
- requirement: &13208740 !ruby/object:Gem::Requirement
126
+ requirement: &7608380 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ~>
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: 3.2.3
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *13208740
134
+ version_requirements: *7608380
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: bacon
137
- requirement: &13207120 !ruby/object:Gem::Requirement
137
+ requirement: &7607840 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ~>
@@ -142,10 +142,10 @@ dependencies:
142
142
  version: 1.1.0
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *13207120
145
+ version_requirements: *7607840
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: rack-test
148
- requirement: &13205280 !ruby/object:Gem::Requirement
148
+ requirement: &7607300 !ruby/object:Gem::Requirement
149
149
  none: false
150
150
  requirements:
151
151
  - - ~>
@@ -153,7 +153,7 @@ dependencies:
153
153
  version: 0.6.2
154
154
  type: :development
155
155
  prerelease: false
156
- version_requirements: *13205280
156
+ version_requirements: *7607300
157
157
  description: Olelo is a git-based wiki which supports many markup languages, tags,
158
158
  embedded TeX and much more. It can be extended through plugins.
159
159
  email:
@@ -201,6 +201,16 @@ files:
201
201
  - lib/olelo/user.rb
202
202
  - lib/olelo/util.rb
203
203
  - lib/olelo/version.rb
204
+ - lib/olelo/views/delete.slim
205
+ - lib/olelo/views/deleted.slim
206
+ - lib/olelo/views/edit.slim
207
+ - lib/olelo/views/error.slim
208
+ - lib/olelo/views/layout.slim
209
+ - lib/olelo/views/login.slim
210
+ - lib/olelo/views/move.slim
211
+ - lib/olelo/views/not_found.slim
212
+ - lib/olelo/views/profile.slim
213
+ - lib/olelo/views/show.slim
204
214
  - lib/olelo/virtualfs.rb
205
215
  - lib/rack/relative_redirect.rb
206
216
  - lib/rack/static_cache.rb
@@ -214,7 +224,6 @@ files:
214
224
  - plugins/aspects/highlight.rb
215
225
  - plugins/aspects/image.rb
216
226
  - plugins/aspects/imageinfo.rb
217
- - plugins/aspects/locale.yml
218
227
  - plugins/aspects/main.rb
219
228
  - plugins/aspects/pageinfo.rb
220
229
  - plugins/aspects/source.rb
@@ -229,7 +238,6 @@ files:
229
238
  - plugins/blog/main.rb
230
239
  - plugins/editor/ace/init.js
231
240
  - plugins/editor/ace/main.rb
232
- - plugins/editor/locale.yml
233
241
  - plugins/editor/markup/main.rb
234
242
  - plugins/editor/markup/script.js
235
243
  - plugins/editor/markup/script/00-jquery.textselection.js
@@ -259,8 +267,15 @@ files:
259
267
  - plugins/filters/toc.rb
260
268
  - plugins/filters/xhtml2latex.xsl
261
269
  - plugins/filters/xslt.rb
270
+ - plugins/history/changes.slim
271
+ - plugins/history/compare.slim
272
+ - plugins/history/history.slim
273
+ - plugins/history/locale.yml
274
+ - plugins/history/main.rb
275
+ - plugins/history/script.js
276
+ - plugins/history/script/00-historytable.js
277
+ - plugins/history/script/init.js
262
278
  - plugins/login/basic_auth.rb
263
- - plugins/login/locale.yml
264
279
  - plugins/login/persistent.rb
265
280
  - plugins/misc/fancybox/images/blank.gif
266
281
  - plugins/misc/fancybox/images/fancy_close.png
@@ -296,10 +311,8 @@ files:
296
311
  - plugins/misc/webdav.rb
297
312
  - plugins/repositories/git_grep.rb
298
313
  - plugins/repositories/gitrb_repository.rb
299
- - plugins/repositories/locale.yml
300
314
  - plugins/repositories/rugged_repository.rb
301
315
  - plugins/security/acl.rb
302
- - plugins/security/locale.yml
303
316
  - plugins/security/private_wiki.rb
304
317
  - plugins/security/readonly_wiki.rb
305
318
  - plugins/tags/code.rb
@@ -337,7 +350,7 @@ files:
337
350
  - plugins/utils/store.rb
338
351
  - plugins/utils/worker.rb
339
352
  - plugins/utils/xml.rb
340
- - static/images/favicon.png
353
+ - static/favicon.png
341
354
  - static/script.js
342
355
  - static/script/00-json2.js
343
356
  - static/script/01-jquery.js
@@ -351,7 +364,6 @@ files:
351
364
  - static/script/09-olelo.storage.js
352
365
  - static/script/10-olelo.i18n.js
353
366
  - static/script/11-olelo.unsaved.js
354
- - static/script/12-olelo.historytable.js
355
367
  - static/script/13-olelo.pagination.js
356
368
  - static/script/14-olelo.tabwidget.js
357
369
  - static/script/15-olelo.timeago.js
@@ -436,19 +448,6 @@ files:
436
448
  - test/string_extensions_test.rb
437
449
  - test/templates_test.rb
438
450
  - test/util_test.rb
439
- - views/changes.slim
440
- - views/compare.slim
441
- - views/delete.slim
442
- - views/deleted.slim
443
- - views/edit.slim
444
- - views/error.slim
445
- - views/history.slim
446
- - views/layout.slim
447
- - views/login.slim
448
- - views/move.slim
449
- - views/not_found.slim
450
- - views/profile.slim
451
- - views/show.slim
452
451
  homepage: http://gitwiki.org/
453
452
  licenses: []
454
453
  post_install_message:
@@ -474,4 +473,3 @@ signing_key:
474
473
  specification_version: 3
475
474
  summary: Olelo is a git-based wiki.
476
475
  test_files: []
477
- has_rdoc: