alula 0.2.3 → 0.4.0b
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -0
- data/Gemfile +7 -0
- data/Guardfile +9 -0
- data/Rakefile +12 -1
- data/VERSION +1 -1
- data/alula.gemspec +20 -4
- data/lib/alula/attachment_processor.rb +77 -0
- data/lib/alula/cdn.rb +30 -0
- data/lib/alula/cdns/edgecast.rb +16 -0
- data/lib/alula/cdns/hosts.rb +14 -0
- data/lib/alula/cli.rb +90 -39
- data/lib/alula/compressors.rb +22 -10
- data/lib/alula/config.rb +141 -0
- data/lib/alula/content.rb +113 -0
- data/lib/alula/contents/attachment.rb +8 -0
- data/lib/alula/contents/item.rb +409 -0
- data/lib/alula/contents/metadata.rb +73 -0
- data/lib/alula/contents/page.rb +9 -0
- data/lib/alula/contents/post.rb +32 -0
- data/lib/alula/context.rb +72 -0
- data/lib/alula/core_ext.rb +5 -0
- data/lib/alula/core_ext/environment.rb +20 -0
- data/lib/alula/core_ext/filter.rb +20 -0
- data/lib/alula/core_ext/filters/smilies.rb +36 -0
- data/lib/alula/core_ext/manifest.rb +30 -0
- data/lib/alula/core_ext/tag.rb +100 -0
- data/lib/alula/core_ext/tags/attachment.rb +28 -0
- data/lib/alula/core_ext/tags/blockquote.rb +21 -0
- data/lib/alula/core_ext/tags/image.rb +48 -0
- data/lib/alula/core_ext/tags/locale.rb +17 -0
- data/lib/alula/core_ext/tags/video.rb +103 -0
- data/lib/alula/generator.rb +31 -0
- data/lib/alula/generators/feedbuilder.rb +44 -0
- data/lib/alula/generators/paginate.rb +88 -0
- data/lib/alula/generators/sitemap.rb +26 -0
- data/lib/alula/helpers.rb +2 -0
- data/lib/alula/helpers/addons.rb +12 -0
- data/lib/alula/helpers/assets.rb +56 -0
- data/lib/alula/helpers/url_helpers.rb +16 -0
- data/lib/alula/plugin.rb +32 -0
- data/lib/alula/processor.rb +86 -0
- data/lib/alula/processors/dummy.rb +24 -0
- data/lib/alula/processors/image.rb +52 -0
- data/lib/alula/processors/magick.rb +83 -0
- data/lib/alula/processors/video.rb +97 -0
- data/lib/alula/processors/zencoder.rb +199 -0
- data/lib/alula/progress.rb +95 -0
- data/lib/alula/progressbar.rb +66 -0
- data/lib/alula/site.rb +331 -262
- data/lib/alula/storage.rb +46 -0
- data/lib/alula/storages/file_item.rb +43 -0
- data/lib/alula/storages/filestorage.rb +96 -0
- data/lib/alula/storages/item.rb +12 -0
- data/lib/alula/support/commonlogger.rb +30 -0
- data/lib/alula/theme.rb +70 -13
- data/lib/alula/theme/layout.rb +56 -0
- data/lib/alula/theme/view.rb +43 -0
- data/lib/alula/version.rb +1 -1
- data/locales/en.yml +9 -0
- data/locales/fi.yml +10 -0
- data/locales/l10n/ar.yml +199 -0
- data/locales/l10n/az.yml +199 -0
- data/locales/l10n/bg.yml +199 -0
- data/locales/l10n/bn-IN.yml +182 -0
- data/locales/l10n/bs.yml +242 -0
- data/locales/l10n/ca.yml +199 -0
- data/locales/l10n/cs.yml +198 -0
- data/locales/l10n/csb.yml +210 -0
- data/locales/l10n/cy.yml +199 -0
- data/locales/l10n/da.yml +199 -0
- data/locales/l10n/de-AT.yml +203 -0
- data/locales/l10n/de-CH.yml +203 -0
- data/locales/l10n/de.yml +203 -0
- data/locales/l10n/dsb.yml +215 -0
- data/locales/l10n/el.yml +199 -0
- data/locales/l10n/en-AU.yml +205 -0
- data/locales/l10n/en-CA.yml +214 -0
- data/locales/l10n/en-GB.yml +205 -0
- data/locales/l10n/en-IN.yml +205 -0
- data/locales/l10n/en-US.yml +205 -0
- data/locales/l10n/en.yml +205 -0
- data/locales/l10n/eo.yml +201 -0
- data/locales/l10n/es-AR.yml +205 -0
- data/locales/l10n/es-CL.yml +199 -0
- data/locales/l10n/es-CO.yml +205 -0
- data/locales/l10n/es-MX.yml +205 -0
- data/locales/l10n/es-PE.yml +181 -0
- data/locales/l10n/es-VE.yml +205 -0
- data/locales/l10n/es.yml +199 -0
- data/locales/l10n/et.yml +199 -0
- data/locales/l10n/eu.yml +199 -0
- data/locales/l10n/fa.yml +199 -0
- data/locales/l10n/fi.yml +199 -0
- data/locales/l10n/fr-CA.yml +207 -0
- data/locales/l10n/fr-CH.yml +207 -0
- data/locales/l10n/fr.yml +222 -0
- data/locales/l10n/fur.yml +199 -0
- data/locales/l10n/gl-ES.yml +178 -0
- data/locales/l10n/gsw-CH.yml +199 -0
- data/locales/l10n/he.yml +201 -0
- data/locales/l10n/hi-IN.yml +199 -0
- data/locales/l10n/hi.yml +199 -0
- data/locales/l10n/hr.yml +237 -0
- data/locales/l10n/hsb.yml +214 -0
- data/locales/l10n/hu.yml +199 -0
- data/locales/l10n/id.yml +200 -0
- data/locales/l10n/is.yml +213 -0
- data/locales/l10n/it.yml +205 -0
- data/locales/l10n/ja.yml +197 -0
- data/locales/l10n/kn.yml +199 -0
- data/locales/l10n/ko.yml +197 -0
- data/locales/l10n/lo.yml +186 -0
- data/locales/l10n/lt.yml +182 -0
- data/locales/l10n/lv.yml +215 -0
- data/locales/l10n/mk.yml +170 -0
- data/locales/l10n/mn.yml +205 -0
- data/locales/l10n/nb.yml +207 -0
- data/locales/l10n/nl.yml +199 -0
- data/locales/l10n/nn.yml +160 -0
- data/locales/l10n/pl.yml +221 -0
- data/locales/l10n/pt-BR.yml +207 -0
- data/locales/l10n/pt-PT.yml +207 -0
- data/locales/l10n/quotes.yml +24 -0
- data/locales/l10n/rm.yml +182 -0
- data/locales/l10n/ro.yml +199 -0
- data/locales/l10n/ru.yml +257 -0
- data/locales/l10n/sk.yml +213 -0
- data/locales/l10n/sl.yml +210 -0
- data/locales/l10n/sr-Latn.yml +170 -0
- data/locales/l10n/sr.yml +170 -0
- data/locales/l10n/sv-SE.yml +199 -0
- data/locales/l10n/sw.yml +197 -0
- data/locales/l10n/th.yml +173 -0
- data/locales/l10n/tl.yml +229 -0
- data/locales/l10n/tr.yml +199 -0
- data/locales/l10n/uk.yml +257 -0
- data/locales/l10n/vi.yml +201 -0
- data/locales/l10n/wo.yml +205 -0
- data/locales/l10n/zh-CN.yml +199 -0
- data/locales/l10n/zh-TW.yml +199 -0
- data/template/Gemfile.erb +14 -4
- data/template/README +16 -0
- data/template/config.yml.erb +42 -38
- data/test/fixtures/config_001_simple.yml +2 -0
- data/test/fixtures/config_002_l10n.yml +5 -0
- data/test/fixtures/pages/invalid-page.markdown +1 -0
- data/test/fixtures/pages/multilingual-page.markdown +20 -0
- data/test/fixtures/pages/section/subpage.markdown +5 -0
- data/test/fixtures/pages/simple-page.markdown +7 -0
- data/test/fixtures/posts/2012-07-02-invalid-post.markdown +1 -0
- data/test/fixtures/posts/2012-07-02-simple.markdown +7 -0
- data/test/fixtures/posts/2012-07-03-full-metadata.markdown +8 -0
- data/test/fixtures/posts/2012-07-03-multilingual-full-metadata.markdown +20 -0
- data/test/fixtures/theme/test/layouts/default.html.erb +1 -0
- data/test/fixtures/theme/test/views/page.html.erb +1 -0
- data/test/fixtures/theme/test/views/post.html.erb +1 -0
- data/test/minitest_helper.rb +14 -0
- data/test/test_config.rb +33 -0
- data/test/test_content.rb +30 -0
- data/test/test_metadata.rb +83 -0
- data/test/test_page.rb +81 -0
- data/test/test_post.rb +123 -0
- data/test/test_storage.rb +23 -0
- data/test/test_storage_file.rb +32 -0
- data/test/test_theme.rb +45 -0
- data/vendor/assets/images/favicon.png +0 -0
- data/vendor/assets/images/grey.gif +0 -0
- data/vendor/assets/javascripts/jquery.alula.js.coffee +16 -0
- data/vendor/{javascripts → assets/javascripts}/jquery.js +0 -0
- data/vendor/assets/javascripts/jquery.lazyload.js +210 -0
- data/vendor/assets/javascripts/lazyload.js.coffee +15 -0
- data/vendor/layouts/feed.xml.builder +19 -0
- data/vendor/layouts/sitemap.xml.builder +10 -0
- data/vendor/views/feed_post.html.haml +1 -0
- metadata +529 -50
- data/lib/alula.rb +0 -5
- data/lib/alula/assethelper.rb +0 -75
- data/lib/alula/plugins.rb +0 -23
- data/lib/alula/plugins/assets.rb +0 -82
- data/lib/alula/plugins/pagination.rb +0 -121
- data/lib/alula/rake_tasks.rb +0 -42
- data/lib/alula/tasks.rb +0 -2
data/lib/alula.rb
DELETED
data/lib/alula/assethelper.rb
DELETED
@@ -1,75 +0,0 @@
|
|
1
|
-
require 'RMagick'
|
2
|
-
|
3
|
-
module Alula
|
4
|
-
class AssetHelper
|
5
|
-
IMAGES = %w{jpeg jpg png gif}
|
6
|
-
MOVIES = %w{mp4}
|
7
|
-
|
8
|
-
def initialize(asset_path, options)
|
9
|
-
@options = options
|
10
|
-
@asset_path = asset_path
|
11
|
-
end
|
12
|
-
|
13
|
-
def process(asset, options)
|
14
|
-
options = @options.deep_merge(options)
|
15
|
-
|
16
|
-
# Resolve our asset type
|
17
|
-
ext = File.extname(asset)[1..-1].downcase
|
18
|
-
|
19
|
-
if IMAGES.include?(ext)
|
20
|
-
[:image, process_image(asset, options)]
|
21
|
-
elsif MOVIES.include?(ext)
|
22
|
-
[:movie, process_movie(asset, options)]
|
23
|
-
else
|
24
|
-
raise "Unknown asset type #{ext} for #{asset}"
|
25
|
-
end
|
26
|
-
end
|
27
|
-
|
28
|
-
private
|
29
|
-
def process_image(asset, options)
|
30
|
-
ext = File.extname(asset)[1..-1].downcase
|
31
|
-
name = File.basename(asset, ext).to_url
|
32
|
-
generated = []
|
33
|
-
|
34
|
-
# Resolve size for new photo
|
35
|
-
width, height = case options[:type]
|
36
|
-
when :attachment
|
37
|
-
options["images"]["size"].split("x").collect {|i| i.to_i }
|
38
|
-
when :thumbnail
|
39
|
-
options["images"]["thumbnails"].split("x").collect {|i| i.to_i }
|
40
|
-
end
|
41
|
-
|
42
|
-
file_path = case options[:type]
|
43
|
-
when :attachment
|
44
|
-
File.join("attachments", "_generated", "images", @asset_path)
|
45
|
-
when :thumbnail
|
46
|
-
File.join("attachments", "_generated", "thumbnails", @asset_path)
|
47
|
-
end
|
48
|
-
# Create output path
|
49
|
-
FileUtils.mkdir_p(file_path)
|
50
|
-
|
51
|
-
# Copy asset to originals
|
52
|
-
if options[:type] == :attachment and !File.exists?(File.join("attachments", "originals", @asset_path, "#{name}.#{ext}"))
|
53
|
-
FileUtils.mkdir_p File.join("attachments", "originals", @asset_path)
|
54
|
-
FileUtils.cp asset, File.join("attachments", "originals", @asset_path, "#{name}.#{ext}")
|
55
|
-
end
|
56
|
-
|
57
|
-
# Create normal photo
|
58
|
-
image = Magick::Image.read(asset).first
|
59
|
-
image_width, image_height = image.columns, image.rows
|
60
|
-
|
61
|
-
resized = image.resize_to_fit(width, height)
|
62
|
-
resized.write(File.join(file_path, "#{name}.#{ext}"))
|
63
|
-
generated << File.join(@asset_path, "#{name}.#{ext}")
|
64
|
-
|
65
|
-
# Generate retina if required
|
66
|
-
if (options["images"]["retina"] and (image_width > width * 2) or (image_height > height * 2))
|
67
|
-
retina = image.resize_to_fit(width * 2, height * 2)
|
68
|
-
resized.write(File.join(file_path, "#{name}_2x.#{ext}"))
|
69
|
-
generated << File.join(@asset_path, "#{name}_2x.#{ext}")
|
70
|
-
end
|
71
|
-
|
72
|
-
return generated
|
73
|
-
end
|
74
|
-
end
|
75
|
-
end
|
data/lib/alula/plugins.rb
DELETED
@@ -1,23 +0,0 @@
|
|
1
|
-
module Alula
|
2
|
-
module Plugins
|
3
|
-
# def self.register(plugin, path)
|
4
|
-
# @@plugins ||= {}
|
5
|
-
# @@plugins[plugin] = path
|
6
|
-
# end
|
7
|
-
#
|
8
|
-
# def self.plugins
|
9
|
-
# @@plugins
|
10
|
-
# end
|
11
|
-
def self.register_attachment_handler(type, handler)
|
12
|
-
@@handlers ||= {}
|
13
|
-
@@handlers[:attachment] ||= {}
|
14
|
-
@@handlers[:attachment][type] = handler
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.attachment_handler(type)
|
18
|
-
@@handlers ||= {}
|
19
|
-
@@handlers[:attachment] ||= {}
|
20
|
-
@@handlers[:attachment][type]
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
data/lib/alula/plugins/assets.rb
DELETED
@@ -1,82 +0,0 @@
|
|
1
|
-
module Alula
|
2
|
-
module Plugins
|
3
|
-
class GenericAsset < Liquid::Tag
|
4
|
-
def self.type(type)
|
5
|
-
define_method(:type) { type }
|
6
|
-
end
|
7
|
-
|
8
|
-
def self.default(default)
|
9
|
-
define_method(:default) { default }
|
10
|
-
end
|
11
|
-
|
12
|
-
def initialize(tag_name, markup, tokens)
|
13
|
-
super
|
14
|
-
|
15
|
-
/(?<name>\w+)/ =~ markup
|
16
|
-
@name = "#{name || default}.#{type}"
|
17
|
-
end
|
18
|
-
|
19
|
-
def render(context)
|
20
|
-
asset_path = context.registers[:site].config["asset_path"]
|
21
|
-
manifest = context.registers[:site].config["manifest"]
|
22
|
-
|
23
|
-
content(File.join(asset_path, manifest.assets[@name]))
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
class StylesheetAsset < GenericAsset
|
28
|
-
type :css
|
29
|
-
default :styles
|
30
|
-
|
31
|
-
def content(asset)
|
32
|
-
"<link rel=\"stylesheet\" href=\"#{asset}\" media=\"screen,projection\" type=\"text/css\">"
|
33
|
-
end
|
34
|
-
end
|
35
|
-
|
36
|
-
class JavascriptAsset < GenericAsset
|
37
|
-
type :js
|
38
|
-
default "scripts"
|
39
|
-
|
40
|
-
def content(asset)
|
41
|
-
if File.size(File.join("public", asset)) < 10
|
42
|
-
content = File.read(File.join("public", asset))
|
43
|
-
unless content == ";"
|
44
|
-
"<script type=\"text/javascript\">#{content}</script>"
|
45
|
-
end
|
46
|
-
else
|
47
|
-
"<script type=\"text/javascript\" src=\"#{asset}\"></script>"
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
class ImageAsset < GenericAsset
|
53
|
-
def initialize(tag_name, markup, tokens)
|
54
|
-
/(?<src>(?:https?:\/\/|\/|\S+\/)\S+)(?<title>\s+.+)/ =~ markup
|
55
|
-
/(?:"|')(?<title>[^"']+)?(?:"|')\s+(?:"|')(?<alt>[^"']+)?(?:"|')/ =~ title
|
56
|
-
|
57
|
-
@name = src
|
58
|
-
@title = title
|
59
|
-
@alt = alt
|
60
|
-
end
|
61
|
-
|
62
|
-
def render(context)
|
63
|
-
asset_path = context.registers[:site].config["asset_path"]
|
64
|
-
manifest = context.registers[:site].config["manifest"]
|
65
|
-
|
66
|
-
asset = File.join(asset_path, manifest.assets[@name])
|
67
|
-
|
68
|
-
# Fetch image size
|
69
|
-
img = Magick::Image.read(File.join("public", asset)).first
|
70
|
-
width = img.columns
|
71
|
-
height = img.rows
|
72
|
-
|
73
|
-
"<img src=\"#{asset}\" alt=\"#{@alt}\" title=\"#{@title}\" width=\"#{width}\" height=\"#{height}\">"
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
78
|
-
|
79
|
-
|
80
|
-
Liquid::Template.register_tag('stylesheet_link', Alula::Plugins::StylesheetAsset)
|
81
|
-
Liquid::Template.register_tag('javascript_link', Alula::Plugins::JavascriptAsset)
|
82
|
-
Liquid::Template.register_tag('image', Alula::Plugins::ImageAsset)
|
@@ -1,121 +0,0 @@
|
|
1
|
-
module Jekyll
|
2
|
-
|
3
|
-
class Pagination < Generator
|
4
|
-
# This generator is safe from arbitrary code execution.
|
5
|
-
safe true
|
6
|
-
|
7
|
-
# Generate paginated pages if necessary.
|
8
|
-
#
|
9
|
-
# site - The Site.
|
10
|
-
#
|
11
|
-
# Returns nothing.
|
12
|
-
def generate(site)
|
13
|
-
site.pages.dup.each do |page|
|
14
|
-
paginate(site, page) if Pager.pagination_enabled?(site.config, page)
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
# Paginates the blog's posts. Renders the index.html file into paginated
|
19
|
-
# directories, e.g.: page2/index.html, page3/index.html, etc and adds more
|
20
|
-
# site-wide data.
|
21
|
-
#
|
22
|
-
# site - The Site.
|
23
|
-
# page - The index.html Page that requires pagination.
|
24
|
-
#
|
25
|
-
# {"paginator" => { "page" => <Number>,
|
26
|
-
# "per_page" => <Number>,
|
27
|
-
# "posts" => [<Post>],
|
28
|
-
# "total_posts" => <Number>,
|
29
|
-
# "total_pages" => <Number>,
|
30
|
-
# "previous_page" => <Number>,
|
31
|
-
# "next_page" => <Number> }}
|
32
|
-
def paginate(site, page)
|
33
|
-
all_posts = site.site_payload['site']['posts']
|
34
|
-
pages = Pager.calculate_pages(all_posts, site.config['paginate'].to_i)
|
35
|
-
page_dir = page.destination('').sub(/\/[^\/]+$/, '')
|
36
|
-
page_dir_config = site.config['pagination_dir']
|
37
|
-
dir = ((page_dir_config || page_dir) + '/').sub(/^\/+/, '')
|
38
|
-
|
39
|
-
(1..pages).each do |num_page|
|
40
|
-
pager = Pager.new(site.config, num_page, all_posts, page_dir+'/', '/'+dir, pages)
|
41
|
-
if num_page > 1
|
42
|
-
newpage = Page.new(site, site.source, page_dir, page.name)
|
43
|
-
newpage.pager = pager
|
44
|
-
newpage.dir = File.join(page.dir, "#{dir}page/#{num_page}")
|
45
|
-
site.pages << newpage
|
46
|
-
else
|
47
|
-
page.pager = pager
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
|
53
|
-
class Pager
|
54
|
-
attr_reader :page, :per_page, :posts, :total_posts, :total_pages, :previous_page, :next_page
|
55
|
-
|
56
|
-
# Calculate the number of pages.
|
57
|
-
#
|
58
|
-
# all_posts - The Array of all Posts.
|
59
|
-
# per_page - The Integer of entries per page.
|
60
|
-
#
|
61
|
-
# Returns the Integer number of pages.
|
62
|
-
def self.calculate_pages(all_posts, per_page)
|
63
|
-
(all_posts.size.to_f / per_page.to_i).ceil
|
64
|
-
end
|
65
|
-
|
66
|
-
# Determine if pagination is enabled for a given file.
|
67
|
-
#
|
68
|
-
# config - The configuration Hash.
|
69
|
-
# file - The String filename of the file.
|
70
|
-
#
|
71
|
-
# Returns true if pagination is enabled, false otherwise.
|
72
|
-
def self.pagination_enabled?(config, file)
|
73
|
-
file.name == 'index.html' && !config['paginate'].nil? && file.content =~ /paginator\./
|
74
|
-
end
|
75
|
-
|
76
|
-
# Initialize a new Pager.
|
77
|
-
#
|
78
|
-
# config - The Hash configuration of the site.
|
79
|
-
# page - The Integer page number.
|
80
|
-
# all_posts - The Array of all the site's Posts.
|
81
|
-
# num_pages - The Integer number of pages or nil if you'd like the number
|
82
|
-
# of pages calculated.
|
83
|
-
def initialize(config, page, all_posts, index_dir, pagination_dir, num_pages = nil)
|
84
|
-
@page = page
|
85
|
-
@per_page = config['paginate'].to_i
|
86
|
-
@page_dir = pagination_dir + 'page/'
|
87
|
-
@total_pages = num_pages || Pager.calculate_pages(all_posts, @per_page)
|
88
|
-
@previous_page = nil
|
89
|
-
|
90
|
-
if @page > @total_pages
|
91
|
-
raise RuntimeError, "page number can't be greater than total pages: #{@page} > #{@total_pages}"
|
92
|
-
end
|
93
|
-
|
94
|
-
init = (@page - 1) * @per_page
|
95
|
-
offset = (init + @per_page - 1) >= all_posts.size ? all_posts.size : (init + @per_page - 1)
|
96
|
-
|
97
|
-
@total_posts = all_posts.size
|
98
|
-
@posts = all_posts[init..offset]
|
99
|
-
@previous_page = @page != 1 ? @page_dir + (@page - 1).to_s + '/' : nil
|
100
|
-
@previous_page = index_dir if @page - 1 == 1
|
101
|
-
@next_page = @page != @total_pages ? @page_dir + (@page + 1).to_s + '/' : nil
|
102
|
-
end
|
103
|
-
|
104
|
-
# Convert this Pager's data to a Hash suitable for use by Liquid.
|
105
|
-
#
|
106
|
-
# Returns the Hash representation of this Pager.
|
107
|
-
def to_liquid
|
108
|
-
{
|
109
|
-
'page' => page,
|
110
|
-
'per_page' => per_page,
|
111
|
-
'posts' => posts,
|
112
|
-
'total_posts' => total_posts,
|
113
|
-
'total_pages' => total_pages,
|
114
|
-
'previous_page' => previous_page,
|
115
|
-
'next_page' => next_page
|
116
|
-
}
|
117
|
-
end
|
118
|
-
end
|
119
|
-
|
120
|
-
end
|
121
|
-
|
data/lib/alula/rake_tasks.rb
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
require 'alula/site'
|
2
|
-
|
3
|
-
module Alula
|
4
|
-
class RakeTasks
|
5
|
-
include Rake::DSL if defined? Rake::DSL
|
6
|
-
|
7
|
-
def self.install_tasks
|
8
|
-
self.new().install
|
9
|
-
end
|
10
|
-
|
11
|
-
def initialize
|
12
|
-
end
|
13
|
-
|
14
|
-
def install
|
15
|
-
desc "Generate Alula blog (development)"
|
16
|
-
task :generate do
|
17
|
-
puts "==> Generating blog..."
|
18
|
-
site = Alula::Site.new
|
19
|
-
site.generate
|
20
|
-
end
|
21
|
-
|
22
|
-
desc "Starts previw mode by development server"
|
23
|
-
task :preview do
|
24
|
-
puts "==> Starting preview"
|
25
|
-
site = Alula::Site.new
|
26
|
-
site.preview
|
27
|
-
end
|
28
|
-
|
29
|
-
desc "Generate blog (deployment)"
|
30
|
-
task :publish do
|
31
|
-
site = Alula::Site.new("asset_compress" => true)
|
32
|
-
site.generate
|
33
|
-
end
|
34
|
-
|
35
|
-
desc "Starts preview server in deployment mode"
|
36
|
-
task :preview_publish do
|
37
|
-
site = Alula::Site.new("asset_compress" => true)
|
38
|
-
site.preview
|
39
|
-
end
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|
data/lib/alula/tasks.rb
DELETED