alula 0.4.12 → 0.4.13

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.
@@ -147,11 +147,6 @@ module Alula
147
147
  _old_locale = self.current_locale
148
148
  self.current_locale = locale
149
149
 
150
- # Flush if we have generator
151
- # if @hooks[:render]
152
- # instance_exec(locale, &@hooks[:render])
153
- # end
154
-
155
150
  # Make sure our content is parsed
156
151
  parse_liquid(locale)
157
152
  parse_markdown(locale)
@@ -268,9 +263,6 @@ module Alula
268
263
  else
269
264
  template = @metadata.template || (self.class.to_s == "Alula::Content::Page" ? @site.config.pagelinks : @site.config.permalinks)
270
265
  substitude(template, locale)
271
- # self.substitutes(locale).inject(template) { |result, token|
272
- # result.gsub(/:#{Regexp.escape token.first}/, token.last)
273
- # }.gsub(/\/\//, '/')
274
266
  end
275
267
  # Add .html only if we don't have extension already
276
268
  if ::File.extname(url).empty?
@@ -335,24 +327,29 @@ module Alula
335
327
  end
336
328
  end
337
329
 
338
- # Substitues for URL
330
+ # Substitudes for URL
339
331
  def substitude(template, locale = nil)
340
- self.substitutes(locale).inject(template) { |result, token|
332
+ s = self.substitutes(locale).inject(template) { |result, token|
341
333
  result.gsub(/:#{Regexp.escape token.first}/, token.last)
342
- }.gsub(/\/\//, '/')
334
+ }
335
+ s.gsub(/\/{2,}/, '/')
343
336
  end
344
337
 
345
338
  def substitutes(locale = nil)
346
339
  locale ||= self.current_locale || self.site.config.locale
347
340
  @substitutes[locale] ||= begin
348
341
  subs = {
349
- "year" => @metadata.date.strftime('%Y'),
350
- "month" => @metadata.date.strftime('%m'),
351
- "day" => @metadata.date.strftime('%d'),
352
- "locale" => (@site.config.locale == locale && @site.config.hides_base_locale ? "" : locale),
353
- "name" => CGI.escape(name).gsub('%2F', '/'),
354
- "slug" => CGI.escape(@metadata.slug(locale)).gsub('%2F', '/'),
355
- "title" => @metadata.title(locale).to_url,
342
+ "year" => @metadata.date.strftime('%Y'),
343
+ "month" => @metadata.date.strftime('%m'),
344
+ "monthname" => @metadata.date.strftime('%B'),
345
+ "monthabbr" => @metadata.date.strftime('%b'),
346
+ "day" => @metadata.date.strftime('%d'),
347
+ "weekday" => @metadata.date.strftime('%A'),
348
+ "weekdayabbr" => @metadata.date.strftime('%a'),
349
+ "locale" => (@site.config.locale == locale && @site.config.hides_base_locale ? "" : locale),
350
+ "name" => CGI.escape(name).gsub('%2F', '/'),
351
+ "slug" => CGI.escape(@metadata.slug(locale)).gsub('%2F', '/'),
352
+ "title" => @metadata.title(locale).to_url,
356
353
  }
357
354
  if self.metadata.generator
358
355
  subs.merge!(self.metadata.generator.substitutes(locale, self))
@@ -363,19 +360,11 @@ module Alula
363
360
 
364
361
  private
365
362
  def _last_modified
366
- # if @hooks[:last_modified]
367
- # return instance_exec(locale, &@hooks[:next])
368
- # end
369
- #
370
363
  return unless self.class.to_s[/Page|Post/]
364
+
371
365
  mtime = nil
372
366
  unless @item.nil?
373
367
  mtime = @item.mtime
374
- # if self.site.git
375
- # rev = %x{git rev-list -n 1 HEAD #{Shellwords.escape(@item.filepath)}}.strip
376
- # time = %x{git show --pretty=format:%ai --abbrev-commit #{rev}|head -1}.strip
377
- # mtime = Time.parse(time) rescue nil
378
- # end
379
368
  end
380
369
  mtime
381
370
  end
@@ -17,8 +17,12 @@ module Alula
17
17
  options.templates.collect do |template|
18
18
  posts.collect do |post|
19
19
  archives[post.substitude(template, lang)] ||= {}
20
- archives[post.substitude(template, lang)][lang] ||= []
21
- archives[post.substitude(template, lang)][lang] << post
20
+ key = "archive.title." + template.scan(/:(\w+)*/).flatten.join('-')
21
+ archives[post.substitude(template, lang)][:title] ||= I18n.t(key, Hash[post.substitutes(lang).map{|k,v|[k.to_sym,v]}].merge(locale: lang))
22
+ archives[post.substitude(template, lang)][:key] ||= key
23
+ archives[post.substitude(template, lang)][:content] ||= {}
24
+ archives[post.substitude(template, lang)][:content][lang] ||= []
25
+ archives[post.substitude(template, lang)][:content][lang] << post
22
26
  end
23
27
  end
24
28
  end
@@ -26,15 +30,39 @@ module Alula
26
30
  archives.each do |name, archive|
27
31
  self.site.content.pages << Alula::Content::Page.new({
28
32
  generator: self,
29
- posts: archive,
30
- title: titles.select {|lang, title| archive.keys.include?(lang)},
33
+ posts: archive[:content],
34
+ title: archive[:title],#titles.select {|lang, title| archive.keys.include?(lang)},
31
35
  name: name,
32
36
  slug: name,
33
37
  sidebar: false,
34
38
  template: "/:locale/:name/",
35
39
  site: self.site,
36
- view: "archive"
37
- })
40
+ view: "archive",
41
+ key: archive[:key],
42
+ },
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
+ },
59
+ :navigation => ->(hook, locale = nil) {
60
+ locale ||= self.current_locale || self.site.config.locale
61
+ @navigation[locale] ||= self.site.content.pages.select { |item|
62
+ item.metadata.generator == self.generator and item.metadata.key == self.metadata.key
63
+ }
64
+ }
65
+ )
38
66
  end
39
67
  end
40
68
 
data/lib/alula/version.rb CHANGED
@@ -2,7 +2,7 @@ module Alula
2
2
  module VERSION
3
3
  MAJOR = 0
4
4
  MINOR = 4
5
- PATCH = 12
5
+ PATCH = 13
6
6
  PRE = nil
7
7
 
8
8
  STRING = [MAJOR, MINOR, PATCH, PRE].compact.join('.')
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.12
4
+ version: 0.4.13
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors: