alula 0.4.13 → 0.4.14
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/lib/alula/content.rb +8 -0
- data/lib/alula/contents/item.rb +16 -0
- data/lib/alula/contents/post.rb +0 -18
- data/lib/alula/generator.rb +13 -0
- data/lib/alula/generators/archive.rb +24 -23
- data/lib/alula/generators/paginate.rb +24 -23
- data/lib/alula/version.rb +1 -1
- metadata +3 -2
data/lib/alula/content.rb
CHANGED
@@ -4,6 +4,9 @@ require 'alula/contents/attachment'
|
|
4
4
|
|
5
5
|
module Alula
|
6
6
|
class Content
|
7
|
+
attr_reader :site
|
8
|
+
attr_reader :config
|
9
|
+
|
7
10
|
attr_reader :pages
|
8
11
|
attr_reader :posts
|
9
12
|
attr_reader :attachments
|
@@ -11,6 +14,7 @@ module Alula
|
|
11
14
|
|
12
15
|
def initialize(opts = {})
|
13
16
|
@site = opts.delete(:site)
|
17
|
+
@config = @site.config
|
14
18
|
|
15
19
|
@pages = []
|
16
20
|
@posts = []
|
@@ -25,6 +29,10 @@ module Alula
|
|
25
29
|
|
26
30
|
# Generate our dynamic content (pages, categories, archives, etc. etc.)
|
27
31
|
generate_content
|
32
|
+
|
33
|
+
# Write slugs to config
|
34
|
+
self.config.slugs = (@posts + @pages).collect{|c| c.metadata.slug}
|
35
|
+
self.config.slugs.count
|
28
36
|
end
|
29
37
|
|
30
38
|
def method_missing(meth, *args, &blk)
|
data/lib/alula/contents/item.rb
CHANGED
@@ -289,9 +289,25 @@ module Alula
|
|
289
289
|
end
|
290
290
|
|
291
291
|
def previous(locale = nil)
|
292
|
+
if self.navigation
|
293
|
+
pos = self.navigation(locale).index(self)
|
294
|
+
if pos and pos < (self.navigation(locale).count - 1)
|
295
|
+
self.navigation(locale)[pos + 1]
|
296
|
+
else
|
297
|
+
nil
|
298
|
+
end
|
299
|
+
end
|
292
300
|
end
|
293
301
|
|
294
302
|
def next(locale = nil)
|
303
|
+
if self.navigation
|
304
|
+
pos = self.navigation(locale).index(self)
|
305
|
+
if pos and pos > 0
|
306
|
+
self.navigation(locale)[pos - 1]
|
307
|
+
else
|
308
|
+
nil
|
309
|
+
end
|
310
|
+
end
|
295
311
|
end
|
296
312
|
|
297
313
|
def navigation(locale = nil)
|
data/lib/alula/contents/post.rb
CHANGED
@@ -5,24 +5,6 @@ module Alula
|
|
5
5
|
class Post < Item
|
6
6
|
has_payload
|
7
7
|
|
8
|
-
def previous(locale = nil)
|
9
|
-
pos = self.navigation(locale).index(self)
|
10
|
-
if pos and pos < (self.navigation(locale).count - 1)
|
11
|
-
self.navigation(locale)[pos + 1]
|
12
|
-
else
|
13
|
-
nil
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
def next(locale = nil)
|
18
|
-
pos = self.navigation(locale).index(self)
|
19
|
-
if pos and pos > 0
|
20
|
-
self.navigation(locale)[pos - 1]
|
21
|
-
else
|
22
|
-
nil
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
8
|
def navigation(locale = nil)
|
27
9
|
locale ||= self.current_locale || self.site.config.locale
|
28
10
|
@navigation[locale] ||= self.site.content.posts.select { |item| item.languages.include?(locale) }
|
data/lib/alula/generator.rb
CHANGED
@@ -38,6 +38,19 @@ module Alula
|
|
38
38
|
def allow_compressing?
|
39
39
|
:high
|
40
40
|
end
|
41
|
+
|
42
|
+
protected
|
43
|
+
def fetch_languages
|
44
|
+
languages = {}
|
45
|
+
self.site.content.posts.each do |post|
|
46
|
+
post.languages.each do |lang|
|
47
|
+
languages[lang] ||= []
|
48
|
+
languages[lang] << post
|
49
|
+
end
|
50
|
+
end
|
51
|
+
languages
|
52
|
+
end
|
53
|
+
|
41
54
|
end
|
42
55
|
end
|
43
56
|
|
@@ -2,13 +2,14 @@ module Alula
|
|
2
2
|
class Archive < Generator
|
3
3
|
def generate
|
4
4
|
# Loop all languages and count posts per language
|
5
|
-
@languages =
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
end
|
5
|
+
@languages = fetch_languages
|
6
|
+
# @languages = {}
|
7
|
+
# self.site.content.posts.each do |post|
|
8
|
+
# post.languages.each do |lang|
|
9
|
+
# @languages[lang] ||= []
|
10
|
+
# @languages[lang] << post
|
11
|
+
# end
|
12
|
+
# end
|
12
13
|
|
13
14
|
titles = Hash[@languages.collect {|lang, x| [lang, I18n.t("archive.title", locale: lang)]}]
|
14
15
|
|
@@ -40,22 +41,22 @@ module Alula
|
|
40
41
|
view: "archive",
|
41
42
|
key: archive[:key],
|
42
43
|
},
|
43
|
-
:previous => ->(hook, locale = nil) {
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
},
|
51
|
-
:next => ->(hook, locale = nil) {
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
},
|
44
|
+
# :previous => ->(hook, locale = nil) {
|
45
|
+
# pos = self.navigation(locale).index(self)
|
46
|
+
# if pos and pos < (self.navigation(locale).count - 1)
|
47
|
+
# self.navigation(locale)[pos + 1]
|
48
|
+
# else
|
49
|
+
# nil
|
50
|
+
# end
|
51
|
+
# },
|
52
|
+
# :next => ->(hook, locale = nil) {
|
53
|
+
# pos = self.navigation(locale).index(self)
|
54
|
+
# if pos and pos > 0
|
55
|
+
# self.navigation(locale)[pos - 1]
|
56
|
+
# else
|
57
|
+
# nil
|
58
|
+
# end
|
59
|
+
# },
|
59
60
|
:navigation => ->(hook, locale = nil) {
|
60
61
|
locale ||= self.current_locale || self.site.config.locale
|
61
62
|
@navigation[locale] ||= self.site.content.pages.select { |item|
|
@@ -2,13 +2,14 @@ module Alula
|
|
2
2
|
class Paginate < Generator
|
3
3
|
def generate
|
4
4
|
# Loop all languages and count posts per language
|
5
|
-
@languages =
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
end
|
5
|
+
@languages = fetch_languages
|
6
|
+
# @languages = {}
|
7
|
+
# self.site.content.posts.each do |post|
|
8
|
+
# post.languages.each do |lang|
|
9
|
+
# @languages[lang] ||= []
|
10
|
+
# @languages[lang] << post
|
11
|
+
# end
|
12
|
+
# end
|
12
13
|
|
13
14
|
# Maximum amount of posts
|
14
15
|
num_posts = self.site.content.posts.count
|
@@ -39,22 +40,22 @@ module Alula
|
|
39
40
|
site: self.site,
|
40
41
|
view: self.options.view || "paginate",
|
41
42
|
},
|
42
|
-
:previous => ->(hook, locale = nil) {
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
},
|
50
|
-
:next => ->(hook, locale = nil) {
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
},
|
43
|
+
# :previous => ->(hook, locale = nil) {
|
44
|
+
# pos = self.navigation(locale).index(self)
|
45
|
+
# if pos and pos < (self.navigation(locale).count - 1)
|
46
|
+
# self.navigation(locale)[pos + 1]
|
47
|
+
# else
|
48
|
+
# nil
|
49
|
+
# end
|
50
|
+
# },
|
51
|
+
# :next => ->(hook, locale = nil) {
|
52
|
+
# pos = self.navigation(locale).index(self)
|
53
|
+
# if pos and pos > 0
|
54
|
+
# self.navigation(locale)[pos - 1]
|
55
|
+
# else
|
56
|
+
# nil
|
57
|
+
# end
|
58
|
+
# },
|
58
59
|
:navigation => ->(hook, locale = nil) {
|
59
60
|
locale ||= self.current_locale || self.site.config.locale
|
60
61
|
@navigation[locale] ||= self.site.content.pages.select { |item| item.metadata.generator == self.generator and item.languages.include?(locale) }
|
data/lib/alula/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: alula
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.14
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-08-
|
12
|
+
date: 2012-08-18 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: hashie
|
@@ -502,3 +502,4 @@ signing_key:
|
|
502
502
|
specification_version: 3
|
503
503
|
summary: Alula is simple, static blog generator.
|
504
504
|
test_files: []
|
505
|
+
has_rdoc:
|