alula 0.4.18 → 0.4.19
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/config.rb +10 -0
- data/lib/alula/core_ext/tag.rb +1 -6
- data/lib/alula/generators/archive.rb +1 -0
- data/lib/alula/generators/feedbuilder.rb +0 -1
- data/lib/alula/generators/sitemap.rb +1 -1
- data/lib/alula/plugin.rb +50 -10
- data/lib/alula/site.rb +3 -7
- data/lib/alula/version.rb +1 -1
- metadata +2 -2
data/lib/alula/config.rb
CHANGED
@@ -83,6 +83,16 @@ module Alula
|
|
83
83
|
# Plugins
|
84
84
|
plugins: {},
|
85
85
|
|
86
|
+
# Cookie consent
|
87
|
+
cookieconsent: {
|
88
|
+
consenttype: "implicit",
|
89
|
+
style: "light",
|
90
|
+
bannerPosition: "push",
|
91
|
+
onlyshowbanneronce: true,
|
92
|
+
privacysettingstab: false,
|
93
|
+
ipinfodbkey: "",
|
94
|
+
},
|
95
|
+
|
86
96
|
# Deployment options
|
87
97
|
deployment: { "package" => {}},
|
88
98
|
|
data/lib/alula/core_ext/tag.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
require 'liquid'
|
2
|
-
require '
|
2
|
+
require 'mini_exiftool'
|
3
3
|
|
4
4
|
module Alula
|
5
5
|
module LiquidExt
|
@@ -57,11 +57,6 @@ module Alula
|
|
57
57
|
return Hashie::Mash.new if file.nil?
|
58
58
|
|
59
59
|
info = MiniExiftool.new File.join self.context.storage.path(:public), file
|
60
|
-
# # info = Dimensions.dimensions(File.join(self.context.storage.path(:public), file))
|
61
|
-
# info ||= begin
|
62
|
-
# _info = MiniExiftool.new File.join(self.context.storage.path(:public), file)
|
63
|
-
# [_info.imagewidth, _info.imageheight, _info.copyrightnotice]
|
64
|
-
# end
|
65
60
|
Hashie::Mash.new({
|
66
61
|
width: info.imagewidth,
|
67
62
|
height: info.imageheight,
|
@@ -52,7 +52,6 @@ module Alula
|
|
52
52
|
Alula::Plugin.addon(:head, ->(context) {
|
53
53
|
"<link rel=\"alternate\" type=\"application/rss+xml\" title=\"RSS\" href=\"#{context.url_for(@feed_page.url(context.locale))}\">"
|
54
54
|
})
|
55
|
-
# -# %link{rel: "alternate", type: "application/rss+xml", title: "RSS", href: "/feed.xml"}
|
56
55
|
end
|
57
56
|
end
|
58
57
|
end
|
@@ -15,7 +15,7 @@ module Alula
|
|
15
15
|
content.languages.collect{|lang| {
|
16
16
|
url: content.url(lang),
|
17
17
|
lastmod: content.last_modified,
|
18
|
-
priority: content.generator.nil? ? 0.
|
18
|
+
priority: content.generator.nil? ? 1.0 : !content.metadata.priority.nil? ? content.metadata.priority : 0.3,
|
19
19
|
}
|
20
20
|
}
|
21
21
|
}.flatten
|
data/lib/alula/plugin.rb
CHANGED
@@ -1,8 +1,16 @@
|
|
1
1
|
module Alula
|
2
2
|
class Plugin
|
3
|
-
def self.register(name, klass)
|
4
|
-
|
5
|
-
|
3
|
+
def self.register(name, klass)
|
4
|
+
plugins[name.to_s] = klass
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.plugins
|
8
|
+
@@plugins ||= {}
|
9
|
+
end
|
10
|
+
|
11
|
+
def plugins
|
12
|
+
self.class.plugins
|
13
|
+
end
|
6
14
|
|
7
15
|
def self.load(name, options)
|
8
16
|
if plugins[name] and !(!!options == options and !options)
|
@@ -23,25 +31,52 @@ module Alula
|
|
23
31
|
addons[type].unshift content_or_block
|
24
32
|
end
|
25
33
|
|
26
|
-
def self.script(
|
34
|
+
def self.script(placement, content_or_block)
|
35
|
+
name = caller_name
|
36
|
+
|
37
|
+
if self.cookieconsent?(name)
|
38
|
+
self.cookieconsented(name)
|
39
|
+
end
|
40
|
+
|
27
41
|
script = <<-EOS
|
28
|
-
<script type="#{self.cookieconsent? ? "text/plain" : "text/javascript"}" #{self.cookieconsent? ? "style=\"cc-onconsent
|
42
|
+
<script type="#{self.cookieconsent?(name) ? "text/plain" : "text/javascript"}" #{self.cookieconsent?(name) ? "style=\"cc-onconsent-#{@@cookieconsent[name].to_s}\"" : ""}>
|
29
43
|
EOS
|
30
44
|
if content_or_block.kind_of?(Proc)
|
31
45
|
scpt = ->(context) { script + content_or_block.call(context) + "</script>" }
|
32
46
|
else
|
33
47
|
scpt = script + content_or_block + "</script>"
|
34
48
|
end
|
49
|
+
|
50
|
+
self.addon(placement, scpt)
|
51
|
+
end
|
52
|
+
|
53
|
+
def self.needs_cookieconsent(type = 'analytics')
|
54
|
+
name = caller_name
|
35
55
|
|
36
|
-
|
56
|
+
@@cookieconsent ||= {}
|
57
|
+
@@cookieconsent[name] = type
|
37
58
|
end
|
38
59
|
|
39
|
-
def self.
|
40
|
-
|
60
|
+
def self.cookieconsent?(name = nil)
|
61
|
+
if name.nil?
|
62
|
+
@@cookieconsent.kind_of?(Hash)
|
63
|
+
else
|
64
|
+
@@cookieconsent.kind_of?(Hash) and @@cookieconsent.key?(name)
|
65
|
+
end
|
41
66
|
end
|
42
67
|
|
43
|
-
def self.
|
44
|
-
@@
|
68
|
+
def self.cookieconsented(name)
|
69
|
+
@@cookieconsented ||= {}
|
70
|
+
@@cookieconsented[name] = true
|
71
|
+
end
|
72
|
+
|
73
|
+
def self.cookieconsent_types
|
74
|
+
@@cookieconsented ||= {}
|
75
|
+
if @@cookieconsented.kind_of?(Hash)
|
76
|
+
@@cookieconsented.keys
|
77
|
+
else
|
78
|
+
[]
|
79
|
+
end
|
45
80
|
end
|
46
81
|
|
47
82
|
def self.script_load_mode=(mode)
|
@@ -56,5 +91,10 @@ module Alula
|
|
56
91
|
def self.script_load_mode
|
57
92
|
@@script_load_mode ||= :async
|
58
93
|
end
|
94
|
+
|
95
|
+
private
|
96
|
+
def self.caller_name
|
97
|
+
caller[1].gsub(/.*\/(.*)\.\w+:\d+.*/, '\1').downcase
|
98
|
+
end
|
59
99
|
end
|
60
100
|
end
|
data/lib/alula/site.rb
CHANGED
@@ -131,10 +131,6 @@ module Alula
|
|
131
131
|
# Set up default head addons
|
132
132
|
Alula::Plugin.addon(:head, "<meta name=\"generator\" content=\"Alula #{Alula::VERSION::STRING}\">")
|
133
133
|
Alula::Plugin.addon(:head, ->(context){"<link rel=\"icon\" type=\"image/png\" href=\"#{context.asset_url('favicon.png')}\">"})
|
134
|
-
|
135
|
-
# Set up footer addons (disclaimer, copyright)
|
136
|
-
Alula::Plugin.addon(:footer, ->(context){ "<p class=\"disclaimer\">#{context.site.config.disclaimer(context.locale)}</p>" }) if self.config.disclaimer
|
137
|
-
Alula::Plugin.addon(:footer, ->(context){ "<p class=\"copyright\">#{context.site.config.copyright(context.locale)}</p>" }) if self.config.copyright
|
138
134
|
end
|
139
135
|
|
140
136
|
# Compiles a site to static website
|
@@ -326,7 +322,7 @@ module Alula
|
|
326
322
|
end
|
327
323
|
|
328
324
|
# Vendored
|
329
|
-
io.puts " *= require cookieconsent"
|
325
|
+
io.puts " *= require cookieconsent" unless Alula::Plugin.cookieconsent_types.empty?
|
330
326
|
|
331
327
|
# Blog customization
|
332
328
|
@storage.custom(/stylesheets\/.*.css.*$/).each do |name, item|
|
@@ -336,7 +332,7 @@ module Alula
|
|
336
332
|
|
337
333
|
io.puts "*/"
|
338
334
|
end
|
339
|
-
# Add
|
335
|
+
# Add stylesheet to template
|
340
336
|
Alula::Plugin.prepend_addon(:head, ->(context){ context.stylesheet_link("style") })
|
341
337
|
|
342
338
|
# Generate javascript
|
@@ -353,7 +349,7 @@ module Alula
|
|
353
349
|
|
354
350
|
# Vendored
|
355
351
|
io.puts " *= require lazyload" if self.config.attachments.image.lazyload
|
356
|
-
io.puts " *= require cookieconsent"
|
352
|
+
io.puts " *= require cookieconsent" unless Alula::Plugin.cookieconsent_types.empty?
|
357
353
|
|
358
354
|
# Customisation
|
359
355
|
@storage.custom(/javascripts\/.*.js.*$/).each do |name, item|
|
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.19
|
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-28 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: hashie
|