olelo 0.9.4 → 0.9.5
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.
- data/.gitignore +0 -1
- data/.travis.yml +8 -0
- data/README.creole +31 -11
- data/Rakefile +46 -21
- data/config/aspects.rb +19 -15
- data/lib/olelo/application.rb +2 -3
- data/lib/olelo/extensions.rb +3 -0
- data/lib/olelo/helper.rb +7 -5
- data/lib/olelo/locale.rb +1 -1
- data/lib/olelo/locale.yml +298 -204
- data/lib/olelo/page.rb +9 -1
- data/lib/olelo/plugin.rb +1 -1
- data/lib/olelo/repository.rb +1 -1
- data/lib/olelo/util.rb +3 -0
- data/lib/olelo/version.rb +1 -1
- data/olelo.gemspec +1 -1
- data/plugins/aspects/changelog.rb +7 -4
- data/plugins/aspects/locale.yml +69 -47
- data/plugins/blog/locale.yml +13 -9
- data/plugins/editor/locale.yml +16 -11
- data/plugins/filters/creole.rb +3 -6
- data/plugins/filters/fix_image_links.rb +20 -0
- data/plugins/filters/locale.yml +18 -13
- data/plugins/filters/s5/main.rb +2 -0
- data/plugins/login/locale.yml +6 -4
- data/plugins/repositories/gitrb_repository.rb +1 -1
- data/plugins/repositories/locale.yml +14 -10
- data/plugins/repositories/rugged_repository.rb +2 -3
- data/plugins/security/locale.yml +19 -13
- data/plugins/tags/math.rb +2 -1
- data/plugins/treeview/script.js +2 -2
- data/plugins/treeview/script/init.js +4 -0
- data/plugins/utils/xml.rb +14 -0
- data/static/script.js +296 -256
- data/static/script/02-history.js +1943 -0
- data/static/script/03-history.adapter.jquery.js +77 -0
- data/static/script/{03-jquery.ui.core.js → 04-jquery.ui.core.js} +0 -0
- data/static/script/{04-jquery.ui.widget.js → 05-jquery.ui.widget.js} +0 -0
- data/static/script/{05-jquery.ui.position.js → 06-jquery.ui.position.js} +0 -0
- data/static/script/{06-jquery.ui.menu.js → 07-jquery.ui.menu.js} +0 -0
- data/static/script/{07-jquery.ui.autocomplete.js → 08-jquery.ui.autocomplete.js} +0 -0
- data/static/script/{02-olelo.storage.js → 09-olelo.storage.js} +0 -0
- data/static/script/{08-olelo.i18n.js → 10-olelo.i18n.js} +0 -0
- data/static/script/{09-olelo.unsaved.js → 11-olelo.unsaved.js} +6 -2
- data/static/script/{10-olelo.historytable.js → 12-olelo.historytable.js} +0 -0
- data/static/script/13-olelo.pagination.js +30 -0
- data/static/script/{13-olelo.tabwidget.js → 14-olelo.tabwidget.js} +0 -0
- data/static/script/{14-olelo.timeago.js → 15-olelo.timeago.js} +14 -1
- data/static/script/{15-olelo.underliner.js → 16-olelo.underliner.js} +0 -0
- data/static/script/{16-olelo.ui.combobox.js → 17-olelo.ui.combobox.js} +0 -0
- data/static/script/init.js +10 -10
- data/static/themes/atlantis/screen.scss +11 -10
- data/static/themes/atlantis/style.css +1 -1
- data/test/config_test.rb +9 -0
- data/test/factory_test.rb +1 -1
- data/test/hash_extensions_test.rb +1 -1
- data/test/helper.rb +0 -1
- data/test/hooks_test.rb +1 -2
- data/test/object_extensions_test.rb +1 -2
- data/test/run.rb +12 -0
- data/test/string_extensions_test.rb +1 -1
- data/test/templates_test.rb +1 -3
- data/test/util_test.rb +1 -6
- data/views/compare.slim +4 -5
- data/views/edit.slim +2 -2
- data/views/history.slim +1 -1
- data/views/layout.slim +1 -2
- data/views/not_found.slim +2 -2
- data/views/show.slim +3 -4
- metadata +47 -44
- data/plugins/filters/fix_img_tag.rb +0 -16
- data/static/script/11-olelo.pagination.js +0 -18
data/lib/olelo/page.rb
CHANGED
@@ -23,15 +23,19 @@ module Olelo
|
|
23
23
|
# Pattern for valid paths
|
24
24
|
# @api public
|
25
25
|
PATH_PATTERN = '[^\s](?:.*[^\s]+)?'.freeze
|
26
|
+
|
26
27
|
PATH_REGEXP = /^#{PATH_PATTERN}$/
|
28
|
+
private_constant :PATH_REGEXP
|
27
29
|
|
28
30
|
# Mime type for empty page
|
29
31
|
# @api public
|
30
32
|
EMPTY_MIME = MimeMagic.new('inode/x-empty')
|
33
|
+
private_constant :EMPTY_MIME
|
31
34
|
|
32
35
|
# Mime type for directory
|
33
36
|
# @api public
|
34
37
|
DIRECTORY_MIME = MimeMagic.new('inode/directory')
|
38
|
+
private_constant :DIRECTORY_MIME
|
35
39
|
|
36
40
|
attr_reader :path, :tree_version
|
37
41
|
|
@@ -80,6 +84,10 @@ module Olelo
|
|
80
84
|
path.empty?
|
81
85
|
end
|
82
86
|
|
87
|
+
def editable?
|
88
|
+
mime.text? || mime == EMPTY_MIME || mime == DIRECTORY_MIME
|
89
|
+
end
|
90
|
+
|
83
91
|
def next_version
|
84
92
|
init_versions
|
85
93
|
@next_version
|
@@ -95,7 +103,7 @@ module Olelo
|
|
95
103
|
@version
|
96
104
|
end
|
97
105
|
|
98
|
-
def history(skip
|
106
|
+
def history(skip, limit)
|
99
107
|
raise 'Page is new' if new?
|
100
108
|
repository.get_history(path, skip, limit)
|
101
109
|
end
|
data/lib/olelo/plugin.rb
CHANGED
@@ -66,7 +66,7 @@ module Olelo
|
|
66
66
|
Olelo.logger.warn "Plugin #{path} could not be loaded due to: #{ex.message} (Missing gem?)"
|
67
67
|
else
|
68
68
|
Olelo.logger.error "Plugin #{path} could not be loaded due to: #{ex.message}"
|
69
|
-
Olelo.logger.
|
69
|
+
Olelo.logger.debug ex
|
70
70
|
end
|
71
71
|
@loaded.delete(path)
|
72
72
|
false
|
data/lib/olelo/repository.rb
CHANGED
data/lib/olelo/util.rb
CHANGED
@@ -93,6 +93,7 @@ module Olelo
|
|
93
93
|
# Hash used by {#escape_javascript}
|
94
94
|
# @api private
|
95
95
|
JAVASCRIPT_ESCAPE = { '&' => '\u0026', '>' => '\u003E', '<' => '\u003C' }
|
96
|
+
private_constant :JAVASCRIPT_ESCAPE
|
96
97
|
|
97
98
|
# Escape javascript code for embedding in html
|
98
99
|
#
|
@@ -200,6 +201,8 @@ module Olelo
|
|
200
201
|
(0x10000..0x10FFFF)
|
201
202
|
]
|
202
203
|
|
204
|
+
private_constant :VALID_XML_CHARS
|
205
|
+
|
203
206
|
# Check if string contains only characters which are valid in XML
|
204
207
|
#
|
205
208
|
# @see http://www.w3.org/TR/REC-xml/#charsets XML charset
|
data/lib/olelo/version.rb
CHANGED
data/olelo.gemspec
CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |s|
|
|
21
21
|
|
22
22
|
s.add_runtime_dependency('multi_json', ['~> 1.3.6'])
|
23
23
|
s.add_runtime_dependency('slim', ['~> 1.3.3'])
|
24
|
-
s.add_runtime_dependency('creole', ['~> 0.
|
24
|
+
s.add_runtime_dependency('creole', ['~> 0.5.0'])
|
25
25
|
s.add_runtime_dependency('nokogiri', ['~> 1.5.5'])
|
26
26
|
s.add_runtime_dependency('mimemagic', ['~> 0.2.0'])
|
27
27
|
s.add_runtime_dependency('rack', ['~> 1.4.1'])
|
@@ -9,19 +9,22 @@ Aspect.create(:changelog, cacheable: true, hidden: true) do
|
|
9
9
|
url = context.request.base_url
|
10
10
|
context.header['Content-Type'] = "application/#{format == 'rss' ? 'rss' : 'atom'}+xml; charset=utf-8"
|
11
11
|
|
12
|
+
per_page = 30
|
13
|
+
page_nr = [context.params[:page].to_i, 1].max
|
14
|
+
history = page.history((page_nr - 1) * per_page, per_page)
|
15
|
+
|
12
16
|
content = RSS::Maker.make(format == 'rss' ? '2.0' : 'atom') do |feed|
|
13
17
|
feed.channel.generator = 'Ōlelo'
|
14
18
|
feed.channel.title = Config['title']
|
15
|
-
feed.channel.link = url + '/' + page.path
|
19
|
+
feed.channel.id = feed.channel.link = url + '/' + page.path
|
16
20
|
feed.channel.description = Config['title'] + ' Changelog'
|
17
|
-
feed.channel.id = url + page.path
|
18
21
|
feed.channel.updated = Time.now
|
19
22
|
feed.channel.author = Config['title']
|
20
23
|
feed.items.do_sort = true
|
21
|
-
|
24
|
+
history.each do |version|
|
22
25
|
i = feed.items.new_item
|
23
26
|
i.title = version.comment
|
24
|
-
i.link = url
|
27
|
+
i.link = "#{url}/changes/#{version}"
|
25
28
|
i.date = version.date
|
26
29
|
i.dc_creator = version.author.name
|
27
30
|
end
|
data/plugins/aspects/locale.yml
CHANGED
@@ -1,65 +1,87 @@
|
|
1
|
-
|
2
|
-
attribute_aspect: 'Default Aspect'
|
3
|
-
download: 'Download'
|
1
|
+
cs_CZ:
|
4
2
|
aspect_documentbrowser: 'Document Browser'
|
5
|
-
aspect_download: '
|
6
|
-
|
7
|
-
aspect_highlight: '
|
8
|
-
|
9
|
-
|
10
|
-
aspect_source: 'Page Source'
|
11
|
-
aspect_subpages: 'Subpages'
|
12
|
-
aspect_text: 'Text Download'
|
13
|
-
aspect_gallery: 'Image Gallery'
|
14
|
-
aspect_s5: 'S5 Presentation'
|
3
|
+
aspect_download: 'Stažení (neupraveno)'
|
4
|
+
aspect_gallery: 'Galerie'
|
5
|
+
aspect_highlight: 'Zvýrazněný zdroj'
|
6
|
+
aspect_image: 'Stažení obrázku'
|
7
|
+
aspect_imageinfo: 'Informace o obrázku'
|
15
8
|
aspect_latex: 'LaTeX'
|
16
|
-
aspect_not_available: '
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
9
|
+
aspect_not_available: 'Vzhled %{aspect} není k dispozici pro stránku %{page} s typem %{type}.'
|
10
|
+
aspect_pageinfo: 'Informace o stránce'
|
11
|
+
aspect_source: 'Zdroj stránky'
|
12
|
+
aspect_subpages: 'Podstránky'
|
13
|
+
aspect_text: 'Stažení textu'
|
14
|
+
attribute_aspect: 'Přednastavený vzhled'
|
15
|
+
download: 'Stáhnout'
|
16
|
+
entry: 'Položka'
|
17
|
+
exif: 'Informace EXIF'
|
18
|
+
geometry: 'Geometrie'
|
19
|
+
information: 'Informace'
|
20
|
+
type: 'Typ'
|
21
|
+
value: 'Hodnota'
|
23
22
|
de:
|
24
|
-
attribute_aspect: 'Standard-Ansicht'
|
25
|
-
download: 'Herunterladen'
|
26
23
|
aspect_documentbrowser: 'Dokumentenbrowser'
|
27
24
|
aspect_download: 'Herunterladen'
|
28
|
-
|
25
|
+
aspect_gallery: 'Bildergalerie'
|
29
26
|
aspect_highlight: 'Quellcode mit Syntaxhighlighting'
|
30
|
-
aspect_imageinfo: 'Bild-Information'
|
31
27
|
aspect_image: 'Bild'
|
28
|
+
aspect_imageinfo: 'Bild-Information'
|
29
|
+
aspect_latex: 'LaTeX'
|
30
|
+
aspect_not_available: 'Aspekt %{aspect} für die Seite %{page} mit dem Typ %{type} ist nicht verfügbar.'
|
31
|
+
aspect_pageinfo: 'Seiten-Information'
|
32
|
+
aspect_s5: 'S5 Präsentation'
|
32
33
|
aspect_source: 'Quellcode'
|
33
34
|
aspect_subpages: 'Unterseiten'
|
34
35
|
aspect_text: 'Quellcode herunterladen'
|
35
|
-
|
36
|
-
|
37
|
-
aspect_latex: 'LaTeX'
|
38
|
-
aspect_not_available: 'Aspekt #{aspect} für die Seite #{page} mit dem Typ #{type} ist nicht verfügbar.'
|
36
|
+
attribute_aspect: 'Standard-Ansicht'
|
37
|
+
download: 'Herunterladen'
|
39
38
|
entry: 'Eintrag'
|
40
39
|
exif: 'EXIF-Information'
|
41
40
|
geometry: 'Geometrie'
|
42
41
|
information: 'Information'
|
43
42
|
type: 'Typ'
|
44
43
|
value: 'Wert'
|
45
|
-
|
46
|
-
attribute_aspect: 'Přednastavený vzhled'
|
47
|
-
download: 'Stáhnout'
|
44
|
+
en:
|
48
45
|
aspect_documentbrowser: 'Document Browser'
|
49
|
-
aspect_download: '
|
50
|
-
|
51
|
-
aspect_highlight: '
|
52
|
-
|
53
|
-
|
54
|
-
aspect_source: 'Zdroj stránky'
|
55
|
-
aspect_subpages: 'Podstránky'
|
56
|
-
aspect_text: 'Stažení textu'
|
57
|
-
aspect_gallery: 'Galerie'
|
46
|
+
aspect_download: 'Raw Download'
|
47
|
+
aspect_gallery: 'Image Gallery'
|
48
|
+
aspect_highlight: 'Highlighted Source'
|
49
|
+
aspect_image: 'Raw Image'
|
50
|
+
aspect_imageinfo: 'Image Information'
|
58
51
|
aspect_latex: 'LaTeX'
|
59
|
-
aspect_not_available: '
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
52
|
+
aspect_not_available: 'Aspect %{aspect} is not available for page %{page} with type %{type}.'
|
53
|
+
aspect_pageinfo: 'Page Information'
|
54
|
+
aspect_s5: 'S5 Presentation'
|
55
|
+
aspect_source: 'Page Source'
|
56
|
+
aspect_subpages: 'Subpages'
|
57
|
+
aspect_text: 'Text Download'
|
58
|
+
attribute_aspect: 'Default Aspect'
|
59
|
+
download: 'Download'
|
60
|
+
entry: 'Entry'
|
61
|
+
exif: 'EXIF Information'
|
62
|
+
geometry: 'Geometry'
|
63
|
+
information: 'Information'
|
64
|
+
type: 'Type'
|
65
|
+
value: 'Value'
|
66
|
+
fr:
|
67
|
+
aspect_documentbrowser: "Explorateur de fichier"
|
68
|
+
aspect_download: "Téléchargement brut"
|
69
|
+
aspect_gallery: "Galerie d'images"
|
70
|
+
aspect_highlight: "Source mise en valeur"
|
71
|
+
aspect_image: "Image brute"
|
72
|
+
aspect_imageinfo: "Information sur l'image"
|
73
|
+
aspect_latex: "LaTeX"
|
74
|
+
aspect_not_available: "L'aspect %{aspect} n'est pas disponible pour la page %{page} avec le type %{type}."
|
75
|
+
aspect_pageinfo: "Page d'information"
|
76
|
+
aspect_s5: "Presentation S5 "
|
77
|
+
aspect_source: "Source de la page"
|
78
|
+
aspect_subpages: "Sous-pages"
|
79
|
+
aspect_text: "Téléchargement en texte"
|
80
|
+
attribute_aspect: "Aspect par défaut"
|
81
|
+
download: "Télécharger"
|
82
|
+
entry: "Entrée"
|
83
|
+
exif: "Information EXIF"
|
84
|
+
geometry: "Geometrie"
|
85
|
+
information: "Information"
|
86
|
+
type: "Type"
|
87
|
+
value: "Valeur"
|
data/plugins/blog/locale.yml
CHANGED
@@ -1,12 +1,16 @@
|
|
1
|
-
en:
|
2
|
-
full_article: 'Full Article'
|
3
|
-
written_by: 'written by #{author}'
|
4
|
-
no_articles: 'No articles found'
|
5
|
-
de:
|
6
|
-
full_article: 'Ganzer Artikel'
|
7
|
-
written_by: 'verfasst von #{author}'
|
8
|
-
no_articles: 'Keine Artikel gefunden'
|
9
1
|
cs_CZ:
|
10
2
|
full_article: 'Plný článek'
|
11
|
-
written_by: 'Napsal: #{author}'
|
12
3
|
no_articles: 'Žádné články nenalezeny'
|
4
|
+
written_by: 'Napsal: %{author}'
|
5
|
+
de:
|
6
|
+
full_article: 'Ganzer Artikel'
|
7
|
+
no_articles: 'Keine Artikel gefunden'
|
8
|
+
written_by: 'verfasst von %{author}'
|
9
|
+
en:
|
10
|
+
full_article: 'Full Article'
|
11
|
+
no_articles: 'No articles found'
|
12
|
+
written_by: 'written by %{author}'
|
13
|
+
fr:
|
14
|
+
full_article: "Article complet"
|
15
|
+
no_articles: "Aucun article trouvé"
|
16
|
+
written_by: "écrit par %{author}"
|
data/plugins/editor/locale.yml
CHANGED
@@ -1,15 +1,20 @@
|
|
1
|
-
en:
|
2
|
-
enter_captcha: 'Please enter the captcha.'
|
3
|
-
captcha_invalid: Invalid captcha
|
4
|
-
captcha_valid: Valid captcha
|
5
|
-
preview: Preview
|
6
|
-
de:
|
7
|
-
enter_captcha: 'Bitte geben Sie ein Captcha ein.'
|
8
|
-
captcha_invalid: 'Ungültiges Captcha'
|
9
|
-
captcha_valid: 'Gültiges Captcha'
|
10
|
-
preview: Vorschau
|
11
1
|
cs_CZ:
|
12
|
-
enter_captcha: 'Vložte laskavě captcha kód.'
|
13
2
|
captcha_invalid: 'Neplatný captcha kód'
|
14
3
|
captcha_valid: 'Platný captcha kód'
|
4
|
+
enter_captcha: 'Vložte laskavě captcha kód.'
|
15
5
|
preview: 'Náhled'
|
6
|
+
de:
|
7
|
+
captcha_invalid: 'Ungültiges Captcha'
|
8
|
+
captcha_valid: 'Gültiges Captcha'
|
9
|
+
enter_captcha: 'Bitte geben Sie ein Captcha ein.'
|
10
|
+
preview: Vorschau
|
11
|
+
en:
|
12
|
+
captcha_invalid: Invalid captcha
|
13
|
+
captcha_valid: Valid captcha
|
14
|
+
enter_captcha: 'Please enter the captcha.'
|
15
|
+
preview: Preview
|
16
|
+
fr:
|
17
|
+
captcha_invalid: "Captcha invalide"
|
18
|
+
captcha_valid: "Captcha valide"
|
19
|
+
enter_captcha: "Veuillez entrer le captcha."
|
20
|
+
preview: "Prévisualisez"
|
data/plugins/filters/creole.rb
CHANGED
@@ -18,16 +18,13 @@ class OleloCreole < ::Creole::Parser
|
|
18
18
|
end
|
19
19
|
image_path = escape_html(image_path)
|
20
20
|
path = escape_html(path)
|
21
|
-
nolink = args.delete('nolink')
|
22
21
|
box = args.delete('box')
|
23
22
|
alt = escape_html(args[0] ? args[0] : path)
|
24
|
-
if
|
25
|
-
%{<img src="#{image_path}" alt="#{alt}"/>}
|
26
|
-
elsif box
|
23
|
+
if box
|
27
24
|
caption = args[0] ? %{<span class="caption">#{escape_html args[0]}</span>} : ''
|
28
|
-
%{<span class="img"><
|
25
|
+
%{<span class="img"><img src="#{image_path}" alt="#{alt}"/>#{caption}</span>}
|
29
26
|
else
|
30
|
-
%{<
|
27
|
+
%{<img src="#{image_path}" alt="#{alt}"/>}
|
31
28
|
end
|
32
29
|
end
|
33
30
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
description 'Add query parameter "aspect" to images'
|
2
|
+
dependencies 'utils/xml'
|
3
|
+
|
4
|
+
Filter.create :fix_image_links do |context, content|
|
5
|
+
doc = XML::Fragment(content)
|
6
|
+
linked_images = doc.css('a img')
|
7
|
+
doc.css('img').each do |image|
|
8
|
+
path = image['src']
|
9
|
+
unless path =~ %r{^w+://} || path.starts_with?(build_path('_')) ||
|
10
|
+
(path.starts_with?('/') && !path.starts_with?(build_path('')))
|
11
|
+
unless path.include?('aspect=')
|
12
|
+
image['src'] = path + (path.include?('?') ? '&' : '?') + 'aspect=image'
|
13
|
+
end
|
14
|
+
unless linked_images.include?(image)
|
15
|
+
image.swap("<a href=\"#{escape_html path.sub(/\?.*/, '')}\">#{image.to_xhtml}</a>")
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
doc.to_xhtml
|
20
|
+
end
|
data/plugins/filters/locale.yml
CHANGED
@@ -1,15 +1,20 @@
|
|
1
|
-
en:
|
2
|
-
attribute_toc: 'Generate Table of Contents'
|
3
|
-
attribute_no_editsection: 'Disable Section Editing'
|
4
|
-
edit_section: 'Edit section "#{section}"'
|
5
|
-
section_edited: 'Section "#{section}" edited'
|
6
|
-
de:
|
7
|
-
attribute_toc: 'Inhaltsverzeichnis erzeugen'
|
8
|
-
attribute_no_editsection: 'Bearbeiten von Bereichen deaktivieren'
|
9
|
-
edit_section: 'Bearbeite Bereich "#{section}"'
|
10
|
-
section_edited: 'Bereich "#{section}" bearbeitet'
|
11
1
|
cs_CZ:
|
12
|
-
attribute_toc: 'Vytvořit obsah'
|
13
2
|
attribute_no_editsection: 'Zablokovat editaci sekcí'
|
14
|
-
|
15
|
-
|
3
|
+
attribute_toc: 'Vytvořit obsah'
|
4
|
+
edit_section: 'Edituj sekci "%{section}"'
|
5
|
+
section_edited: 'Sekce "%{section}" editována'
|
6
|
+
de:
|
7
|
+
attribute_no_editsection: 'Bearbeiten von Bereichen deaktivieren'
|
8
|
+
attribute_toc: 'Inhaltsverzeichnis erzeugen'
|
9
|
+
edit_section: 'Bearbeite Bereich "%{section}"'
|
10
|
+
section_edited: 'Bereich "%{section}" bearbeitet'
|
11
|
+
en:
|
12
|
+
attribute_no_editsection: 'Disable Section Editing'
|
13
|
+
attribute_toc: 'Generate Table of Contents'
|
14
|
+
edit_section: 'Edit section "%{section}"'
|
15
|
+
section_edited: 'Section "%{section}" edited'
|
16
|
+
fr:
|
17
|
+
attribute_no_editsection: "Désactiver l'édition"
|
18
|
+
attribute_toc: "Générer Table des Matières"
|
19
|
+
edit_section: "Éditer la section \"%{section}\""
|
20
|
+
section_edited: "Section \"%{section}\" éditée"
|
data/plugins/filters/s5/main.rb
CHANGED
@@ -2,6 +2,8 @@ description 'XSLT filter which transforms a html page to a S5 presentation'
|
|
2
2
|
dependencies 'filters/xslt', 'utils/assets'
|
3
3
|
export_assets 'ui/**/*', 'ui/default/*'
|
4
4
|
|
5
|
+
raise 'Diascope not found' unless File.exists?(File.join(File.dirname(__FILE__), 'ui'))
|
6
|
+
|
5
7
|
Page.attributes do
|
6
8
|
group :s5 do
|
7
9
|
string :presdate
|
data/plugins/login/locale.yml
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
-
en:
|
2
|
-
persistent_login: 'Persistent login'
|
3
|
-
de:
|
4
|
-
persistent_login: 'Dauerhaft anmelden'
|
5
1
|
cs_CZ:
|
6
2
|
persistent_login: 'Trvalé přihlášení'
|
3
|
+
de:
|
4
|
+
persistent_login: 'Dauerhaft anmelden'
|
5
|
+
en:
|
6
|
+
persistent_login: 'Persistent login'
|
7
|
+
fr:
|
8
|
+
persistent_login: 'Connexion persistente'
|
@@ -37,7 +37,7 @@ class GitrbRepository < Repository
|
|
37
37
|
# @override
|
38
38
|
def get_history(path, skip, limit)
|
39
39
|
@git.log(max_count: limit, skip: skip,
|
40
|
-
|
40
|
+
path: [path, path + ATTRIBUTE_EXT, path + CONTENT_EXT]).map do |c|
|
41
41
|
commit_to_version(c)
|
42
42
|
end
|
43
43
|
end
|
@@ -1,12 +1,16 @@
|
|
1
|
-
en:
|
2
|
-
search_results: 'Search results for #{pattern}'
|
3
|
-
match: 'One match'
|
4
|
-
match_plural: '#{count} matches'
|
5
|
-
de:
|
6
|
-
search_results: 'Suchergebnisse für #{pattern}'
|
7
|
-
match: 'Ein Treffer'
|
8
|
-
match_plural: '#{count} Treffer'
|
9
1
|
cs_CZ:
|
10
|
-
search_results: 'Výsledky hledání pro #{pattern}'
|
11
2
|
match: 'Jeden výsledek'
|
12
|
-
match_plural: '
|
3
|
+
match_plural: '%{count} výsledků'
|
4
|
+
search_results: 'Výsledky hledání pro %{pattern}'
|
5
|
+
de:
|
6
|
+
match: 'Ein Treffer'
|
7
|
+
match_plural: '%{count} Treffer'
|
8
|
+
search_results: 'Suchergebnisse für %{pattern}'
|
9
|
+
en:
|
10
|
+
match: 'One match'
|
11
|
+
match_plural: '%{count} matches'
|
12
|
+
search_results: 'Search results for %{pattern}'
|
13
|
+
fr:
|
14
|
+
match: "Une correspondance"
|
15
|
+
match_plural: "%{count} correspondaces"
|
16
|
+
search_results: "Chercher les résultats pour %{pattern}"
|