meta 0.0.1 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile.lock +13 -1
- data/README.md +4 -1
- data/docs/backlog +11 -4
- data/docs/design +70 -4
- data/lib/meta.rb +7 -1
- data/lib/meta/catalog.rb +12 -1
- data/lib/meta/cli.rb +42 -3
- data/lib/meta/filelib.rb +2 -2
- data/lib/meta/page.rb +22 -76
- data/lib/meta/version.rb +1 -1
- data/meta.gemspec +15 -2
- metadata +180 -4
data/Gemfile.lock
CHANGED
@@ -1,7 +1,18 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
meta (0.0.
|
4
|
+
meta (0.0.3)
|
5
|
+
colorize (~> 0.6.0)
|
6
|
+
haml (~> 4.0.4)
|
7
|
+
highline (~> 1.6.20)
|
8
|
+
rack (~> 1.5.2)
|
9
|
+
redcarpet (~> 3.0.0)
|
10
|
+
sequel (~> 4.5.0)
|
11
|
+
sqlite3 (~> 1.3.8)
|
12
|
+
thin (~> 1.6.1)
|
13
|
+
thor (~> 0.18.1)
|
14
|
+
tilt (~> 2.0.0)
|
15
|
+
url2thumb
|
5
16
|
|
6
17
|
GEM
|
7
18
|
remote: https://rubygems.org/
|
@@ -23,6 +34,7 @@ GEM
|
|
23
34
|
rack (>= 1.0.0)
|
24
35
|
thor (0.18.1)
|
25
36
|
tilt (2.0.0)
|
37
|
+
url2thumb (0.0.1)
|
26
38
|
|
27
39
|
PLATFORMS
|
28
40
|
ruby
|
data/README.md
CHANGED
@@ -8,7 +8,8 @@ be used to test/preview static pages in your development environment without
|
|
8
8
|
having to deploy into production.
|
9
9
|
|
10
10
|
## requirements
|
11
|
-
*
|
11
|
+
* linux (tested on ubuntu 12.04.x lts)
|
12
|
+
* ruby (1.9.2+)
|
12
13
|
* bundler
|
13
14
|
* colorize
|
14
15
|
* haml
|
@@ -20,6 +21,8 @@ having to deploy into production.
|
|
20
21
|
* thin
|
21
22
|
* thor
|
22
23
|
* tilt
|
24
|
+
* url2thumb
|
25
|
+
* yaml
|
23
26
|
|
24
27
|
## installation
|
25
28
|
```gem install meta```
|
data/docs/backlog
CHANGED
@@ -1,12 +1,16 @@
|
|
1
1
|
open:
|
2
|
-
+
|
3
|
-
+ multiple templates
|
4
|
-
+ syntax highlighting for code
|
5
|
-
+ title modification
|
2
|
+
+ custom templates
|
6
3
|
+ referencing a link and commenting on that
|
4
|
+
+ post tags
|
5
|
+
+ rss/atom feed
|
6
|
+
+ config file based configuration
|
7
|
+
+ pull content from other sinks like facebook, flickr, twitter, wechat, etc
|
8
|
+
+ links
|
7
9
|
|
8
10
|
iced:
|
11
|
+
+ syntax highlighting for code
|
9
12
|
+ support uppercase file extensions
|
13
|
+
+ migrate schema without losing any data
|
10
14
|
+ detect and compile changes only
|
11
15
|
+ tie static files with source repository
|
12
16
|
+ clone template files
|
@@ -24,3 +28,6 @@ closed:
|
|
24
28
|
+ single entry template
|
25
29
|
+ add config.ru file for testing, this should be added during compilation
|
26
30
|
+ google analytics
|
31
|
+
+ title modification
|
32
|
+
+ statistics
|
33
|
+
|
data/docs/design
CHANGED
@@ -9,15 +9,12 @@ design:
|
|
9
9
|
directory layout example:
|
10
10
|
|
11
11
|
+ src
|
12
|
-
+-- site.
|
12
|
+
+-- site.sqlite3
|
13
13
|
+-- article1.md
|
14
14
|
+-- article2.md
|
15
15
|
+-- layout.haml
|
16
16
|
+-- navbar.haml
|
17
17
|
+-- footer.haml
|
18
|
-
+-- css
|
19
|
-
+-- images
|
20
|
-
+-- js
|
21
18
|
|
22
19
|
* create a flat hierarchy of html files
|
23
20
|
* js, css, images are found in folders
|
@@ -37,3 +34,72 @@ articles( id, creation, modification, title, layout, src )
|
|
37
34
|
b. organize by latest at the top
|
38
35
|
4. create individual pages
|
39
36
|
|
37
|
+
in the initial version, layout.haml, navbar.haml were fixed templates. this
|
38
|
+
assumes that each site will have these files. there can actually be multiple
|
39
|
+
layouts for a site so there needs to be a mapping of layouts to content (md
|
40
|
+
files). also there should be enough flexibility to not have navbars, or
|
41
|
+
multiple navbars, etc.
|
42
|
+
|
43
|
+
there will be 4 main types of haml templates: page layouts, navbars, footers,
|
44
|
+
and contents.
|
45
|
+
|
46
|
+
layout files are the main templates that house the structure of the site,
|
47
|
+
from enclosing html tags to the head which includes all of the stylesheets
|
48
|
+
and javascript assets. in order to identify layout files, the filename will
|
49
|
+
be searched for the substring "layout.haml".
|
50
|
+
|
51
|
+
e.g.
|
52
|
+
|
53
|
+
layout.haml
|
54
|
+
main.layout.haml
|
55
|
+
sub-layout.haml
|
56
|
+
layout-sub.haml (not valid)
|
57
|
+
|
58
|
+
each of these will be listed in the layouts table
|
59
|
+
|
60
|
+
navbars are embedded in layout templates and need to have the "navbar.haml"
|
61
|
+
identifier in the filename.
|
62
|
+
|
63
|
+
footers are also embedded in layout templates and need to have the
|
64
|
+
"footer.haml" identifier in the filename.
|
65
|
+
|
66
|
+
content templates are also embedded in layout templates and need to have the
|
67
|
+
"content.haml" identifier in the filename.
|
68
|
+
|
69
|
+
if there's only one set of navbars, footer, and layout, then the user
|
70
|
+
won't be prompted.
|
71
|
+
|
72
|
+
the above is for a more advanced version, let's keep things simple, you
|
73
|
+
must have layout.haml, index.haml, and page.haml.
|
74
|
+
|
75
|
+
1. layout.haml defines the overall site from html tags to body and head.
|
76
|
+
meta requires this file be present in order to compile.
|
77
|
+
|
78
|
+
2. index.haml includes the content for the main page of a site, typically
|
79
|
+
it's a summary of all posts.
|
80
|
+
|
81
|
+
3. page.haml includes the content for a single post.
|
82
|
+
|
83
|
+
let's initially support the case where layout.haml, index.haml, and page.haml
|
84
|
+
are required.
|
85
|
+
|
86
|
+
custom templates:
|
87
|
+
|
88
|
+
assume a site has pages for about, projects, etc. there should be a generic
|
89
|
+
way to associate a layout and content layer, and the process should be very
|
90
|
+
simple.
|
91
|
+
|
92
|
+
assume there are these types of posts:
|
93
|
+
|
94
|
+
1. blog: mostly original text from an author, can contain pictures, tables,
|
95
|
+
etc.
|
96
|
+
2. picture: picture only post, no text. will include pictures from other
|
97
|
+
sources only, will not store many pictures on my site.
|
98
|
+
3. recommended link: user submit's url, title, summary, maybe a picture
|
99
|
+
included.
|
100
|
+
|
101
|
+
|
102
|
+
markdown compendium:
|
103
|
+
|
104
|
+
[![alt text](image link)](web link)
|
105
|
+
|
data/lib/meta.rb
CHANGED
@@ -4,11 +4,13 @@ require "colorize"
|
|
4
4
|
require "digest/md5"
|
5
5
|
require "haml"
|
6
6
|
require "highline/import"
|
7
|
+
require "open3"
|
7
8
|
require "redcarpet"
|
8
9
|
require "sequel"
|
9
10
|
require "sqlite3"
|
10
11
|
require "thor"
|
11
12
|
require "tilt"
|
13
|
+
require "yaml"
|
12
14
|
|
13
15
|
require File.join( File.dirname(__FILE__), "meta", "catalog" )
|
14
16
|
require File.join( File.dirname(__FILE__), "meta", "cli" )
|
@@ -24,17 +26,21 @@ end
|
|
24
26
|
module Meta
|
25
27
|
|
26
28
|
BASEDIR = ".".freeze
|
29
|
+
CONFIGFILE = "~/.meta".freeze
|
27
30
|
DATASTORE = File.join( Dir.pwd, "site.sqlite3" )
|
28
31
|
EXCLUDES = [ "layout.haml", "navbar.haml", "footer.haml" ]
|
32
|
+
FEXISTS = "File already exists".freeze
|
29
33
|
HAML = ["*.haml"]
|
30
34
|
HAMLEXT = ".haml".freeze
|
31
35
|
HTML = ["*.html"]
|
32
36
|
HTMLEXT = ".html".freeze
|
33
37
|
INDEX = "index.html".freeze
|
34
38
|
MARKDOWN = ["*.md", "*.markdown", "*.mkd"]
|
35
|
-
|
39
|
+
MDEXT = ".md".freeze
|
40
|
+
PNGEXT = ".png".freeze
|
36
41
|
SEED = 1234562
|
37
42
|
SLASH = "/".freeze
|
43
|
+
SPACE = " ".freeze
|
38
44
|
|
39
45
|
end
|
40
46
|
|
data/lib/meta/catalog.rb
CHANGED
@@ -10,6 +10,17 @@ module Meta
|
|
10
10
|
|
11
11
|
end
|
12
12
|
|
13
|
+
def get_statistics
|
14
|
+
|
15
|
+
stats = Hash.new
|
16
|
+
|
17
|
+
stats[:posts] = self.db[:contents].count
|
18
|
+
stats[:pictures] = self.db[:contents].where(:picture => true).count
|
19
|
+
|
20
|
+
return stats
|
21
|
+
|
22
|
+
end
|
23
|
+
|
13
24
|
def content_exists?(file)
|
14
25
|
|
15
26
|
rs = self.db[:contents].where(:path => file).all
|
@@ -75,7 +86,7 @@ module Meta
|
|
75
86
|
:title => title,
|
76
87
|
:hash => hash,
|
77
88
|
:path => file,
|
78
|
-
:created_at =>
|
89
|
+
:created_at => Time.now )
|
79
90
|
|
80
91
|
end
|
81
92
|
|
data/lib/meta/cli.rb
CHANGED
@@ -3,6 +3,8 @@ module Meta
|
|
3
3
|
class CLI < Thor
|
4
4
|
include Thor::Actions
|
5
5
|
|
6
|
+
config = YAML.load_file(CONFIGFILE) if File.exists?(CONFIGFILE)
|
7
|
+
|
6
8
|
desc "compile", "compile meta files"
|
7
9
|
method_option :output, :aliases => "-o", :type => :string,
|
8
10
|
:required => false, :desc => "static file output directory"
|
@@ -21,7 +23,7 @@ module Meta
|
|
21
23
|
p = Meta::Page.new(dest)
|
22
24
|
|
23
25
|
p.generate(options[:force])
|
24
|
-
p.
|
26
|
+
p.generate_index(options[:force])
|
25
27
|
|
26
28
|
end
|
27
29
|
|
@@ -96,11 +98,48 @@ module Meta
|
|
96
98
|
|
97
99
|
end
|
98
100
|
|
101
|
+
desc "capture", "capture thumbnail of url"
|
102
|
+
method_option :output, :aliases => "-o", :type => :string,
|
103
|
+
:required => false, :desc => "output directory"
|
104
|
+
def capture(url)
|
105
|
+
|
106
|
+
if options[:output].nil?
|
107
|
+
dest = BASEDIR
|
108
|
+
else
|
109
|
+
dest = options[:output]
|
110
|
+
end
|
111
|
+
|
112
|
+
images = dest + SLASH + "images"
|
113
|
+
|
114
|
+
images = dest unless Dir.exists?(images)
|
115
|
+
|
116
|
+
cmd = "xvfb-run url2thumb capture #{url} -o #{images}"
|
117
|
+
|
118
|
+
stdin, stdout, stderr = Open3.popen3(cmd)
|
119
|
+
|
120
|
+
abort( stderr.read.chomp.red ) if stdout.nil?
|
121
|
+
|
122
|
+
out = stdout.read.chomp
|
123
|
+
|
124
|
+
unless out.include?(FEXISTS)
|
125
|
+
|
126
|
+
created = out.split(SPACE).first
|
127
|
+
|
128
|
+
link = "[![referral](images/#{File.basename(created)})](#{url})"
|
129
|
+
|
130
|
+
Meta::Filelib.create_file( link, created, MDEXT, dest, false )
|
131
|
+
|
132
|
+
end
|
133
|
+
|
134
|
+
end
|
135
|
+
|
99
136
|
desc "test", "testing"
|
100
137
|
def test
|
101
138
|
|
102
|
-
|
103
|
-
|
139
|
+
c = Meta::Catalog.new
|
140
|
+
stats = c.get_statistics
|
141
|
+
puts stats[:posts]
|
142
|
+
puts stats[:pictures]
|
104
143
|
|
105
144
|
end
|
106
145
|
|
data/lib/meta/filelib.rb
CHANGED
@@ -17,9 +17,9 @@ module Meta
|
|
17
17
|
|
18
18
|
end
|
19
19
|
|
20
|
-
def self.create_file( text, filename, dest, overwrite=false )
|
20
|
+
def self.create_file( text, filename, ext, dest, overwrite=false )
|
21
21
|
|
22
|
-
filename = File.basename( filename, File.extname(filename) ) +
|
22
|
+
filename = File.basename( filename, File.extname(filename) ) + ext
|
23
23
|
filename = dest + SLASH + filename
|
24
24
|
|
25
25
|
reply = false
|
data/lib/meta/page.rb
CHANGED
@@ -2,88 +2,39 @@ module Meta
|
|
2
2
|
|
3
3
|
class Page
|
4
4
|
|
5
|
-
attr_reader :
|
5
|
+
attr_reader :catalog
|
6
6
|
|
7
7
|
def initialize(dest=BASEDIR)
|
8
8
|
|
9
|
-
@dest
|
9
|
+
@dest = dest
|
10
10
|
|
11
|
-
@catalog
|
11
|
+
@catalog = Meta::Catalog.new
|
12
12
|
|
13
|
-
@
|
14
|
-
@navbar = Tilt.new("navbar.haml")
|
15
|
-
@col = Tilt.new("col.haml")
|
13
|
+
@templates = Meta::Filelib.get_templates
|
16
14
|
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
length = contents.length
|
22
|
-
|
23
|
-
if length == 1
|
24
|
-
contents[0][:col_classes] = "col-lg-12 box"
|
25
|
-
elsif length == 2
|
26
|
-
|
27
|
-
rng = Random.new(SEED)
|
28
|
-
|
29
|
-
r = rng.rand(1..3)
|
15
|
+
@layout = Tilt.new("layout.haml") if @templates.include?("layout.haml")
|
16
|
+
@navbar = Tilt.new("navbar.haml") if @templates.include?("navbar.haml")
|
17
|
+
@index = Tilt.new("index.haml") if @templates.include?("index.haml")
|
18
|
+
@page = Tilt.new("page.haml") if @templates.include?("page.haml")
|
30
19
|
|
31
|
-
|
32
|
-
|
33
|
-
contents[1][:col_classes] = "col-lg-6 box"
|
34
|
-
elsif r == 2
|
35
|
-
contents[0][:col_classes] = "col-lg-8 box"
|
36
|
-
contents[1][:col_classes] = "col-lg-4 box"
|
37
|
-
else
|
38
|
-
contents[0][:col_classes] = "col-lg-4 box"
|
39
|
-
contents[1][:col_classes] = "col-lg-8 box"
|
40
|
-
end
|
41
|
-
|
42
|
-
elsif length == 3
|
43
|
-
contents[0][:col_classes] = "col-lg-4 box"
|
44
|
-
contents[1][:col_classes] = "col-lg-4 box"
|
45
|
-
contents[2][:col_classes] = "col-lg-4 box"
|
46
|
-
else
|
47
|
-
contents[0][:col_classes] = "col-lg-3 box"
|
48
|
-
contents[1][:col_classes] = "col-lg-3 box"
|
49
|
-
contents[2][:col_classes] = "col-lg-3 box"
|
50
|
-
contents[3][:col_classes] = "col-lg-3 box"
|
20
|
+
if @layout.nil?
|
21
|
+
abort("layout.haml template missing, this file must be included".red)
|
51
22
|
end
|
52
|
-
|
53
|
-
return contents
|
23
|
+
#TODO: must include index and page as well
|
54
24
|
|
55
25
|
end
|
56
26
|
|
57
|
-
def
|
58
|
-
|
59
|
-
c = @catalog.get_recent(-1)
|
60
|
-
|
61
|
-
length = c.length
|
62
|
-
remain = length
|
63
|
-
index = 0
|
27
|
+
def generate_index(overwrite=false)
|
64
28
|
|
65
|
-
|
29
|
+
contents = @catalog.get_recent(-1)
|
66
30
|
|
67
|
-
|
31
|
+
stats = @catalog.get_statistics
|
68
32
|
|
69
|
-
|
33
|
+
doc = @index.render( self, :contents => contents )
|
70
34
|
|
71
|
-
|
35
|
+
html = @layout.render( self, :stats => stats ) { doc }
|
72
36
|
|
73
|
-
|
74
|
-
|
75
|
-
remain = remain - n
|
76
|
-
index = index + n
|
77
|
-
|
78
|
-
rows << r
|
79
|
-
|
80
|
-
end
|
81
|
-
|
82
|
-
doc = @col.render( self, :rows => rows )
|
83
|
-
|
84
|
-
html = @layout.render { doc }
|
85
|
-
|
86
|
-
Meta::Filelib.create_file( html, INDEX, @dest, overwrite )
|
37
|
+
Meta::Filelib.create_file( html, INDEX, HTMLEXT, @dest, overwrite )
|
87
38
|
|
88
39
|
end
|
89
40
|
|
@@ -91,6 +42,8 @@ module Meta
|
|
91
42
|
|
92
43
|
all = Meta::Filelib.get_contents
|
93
44
|
|
45
|
+
stats = @catalog.get_statistics
|
46
|
+
|
94
47
|
all.each do |c|
|
95
48
|
|
96
49
|
if File.zero?(c)
|
@@ -102,22 +55,15 @@ module Meta
|
|
102
55
|
|
103
56
|
content = @catalog.check_content(c)
|
104
57
|
|
105
|
-
content[:col_classes] = "col-lg-12 box"
|
106
58
|
content[:summary] = Tilt.new(c).render
|
107
59
|
content[:link] = File.basename( content[:path],
|
108
60
|
File.extname(content[:path]) ) + HTMLEXT
|
109
61
|
|
110
|
-
|
111
|
-
contents << content
|
112
|
-
|
113
|
-
rows = []
|
114
|
-
rows << contents
|
115
|
-
|
116
|
-
r = @col.render( self, :rows => rows )
|
62
|
+
p = @page.render( self, :content => content )
|
117
63
|
|
118
|
-
html = @layout.render {
|
64
|
+
html = @layout.render( self, :stats => stats ) { p }
|
119
65
|
|
120
|
-
Meta::Filelib.create_file( html, c, @dest, overwrite )
|
66
|
+
Meta::Filelib.create_file( html, c, HTMLEXT, @dest, overwrite )
|
121
67
|
|
122
68
|
end
|
123
69
|
|
data/lib/meta/version.rb
CHANGED
data/meta.gemspec
CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
|
|
8
8
|
spec.version = Meta::VERSION
|
9
9
|
spec.authors = ["stephenhu"]
|
10
10
|
spec.email = ["epynonymous@outlook.com"]
|
11
|
-
spec.description = %q{
|
12
|
-
spec.summary = %q{
|
11
|
+
spec.description = %q{opinionated static web page generator}
|
12
|
+
spec.summary = %q{opinionated static web page generator}
|
13
13
|
spec.homepage = "http://github.io/stephenhu/meta"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
@@ -19,7 +19,20 @@ Gem::Specification.new do |spec|
|
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
spec.bindir = "bin"
|
21
21
|
|
22
|
+
spec.add_dependency "colorize", "~>0.6.0"
|
23
|
+
spec.add_dependency "haml", "~>4.0.4"
|
24
|
+
spec.add_dependency "highline", "~>1.6.20"
|
25
|
+
spec.add_dependency "rack", "~>1.5.2"
|
26
|
+
spec.add_dependency "redcarpet", "~>3.0.0"
|
27
|
+
spec.add_dependency "sequel", "~>4.5.0"
|
28
|
+
spec.add_dependency "sqlite3", "~>1.3.8"
|
29
|
+
spec.add_dependency "thin", "~>1.6.1"
|
30
|
+
spec.add_dependency "thor", "~>0.18.1"
|
31
|
+
spec.add_dependency "tilt", "~>2.0.0"
|
32
|
+
|
22
33
|
spec.add_development_dependency "bundler", "~> 1.3"
|
23
34
|
spec.add_development_dependency "rake"
|
35
|
+
|
36
|
+
spec.add_runtime_dependency "url2thumb"
|
24
37
|
end
|
25
38
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: meta
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,8 +9,168 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2014-01-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: colorize
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
none: false
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: 0.6.0
|
22
|
+
type: :runtime
|
23
|
+
prerelease: false
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.6.0
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: haml
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ~>
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: 4.0.4
|
38
|
+
type: :runtime
|
39
|
+
prerelease: false
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: 4.0.4
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: highline
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
49
|
+
none: false
|
50
|
+
requirements:
|
51
|
+
- - ~>
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: 1.6.20
|
54
|
+
type: :runtime
|
55
|
+
prerelease: false
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.6.20
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rack
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: 1.5.2
|
70
|
+
type: :runtime
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: 1.5.2
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: redcarpet
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ~>
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: 3.0.0
|
86
|
+
type: :runtime
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ~>
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 3.0.0
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: sequel
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ~>
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: 4.5.0
|
102
|
+
type: :runtime
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ~>
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 4.5.0
|
110
|
+
- !ruby/object:Gem::Dependency
|
111
|
+
name: sqlite3
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
113
|
+
none: false
|
114
|
+
requirements:
|
115
|
+
- - ~>
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 1.3.8
|
118
|
+
type: :runtime
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ~>
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 1.3.8
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: thin
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
none: false
|
130
|
+
requirements:
|
131
|
+
- - ~>
|
132
|
+
- !ruby/object:Gem::Version
|
133
|
+
version: 1.6.1
|
134
|
+
type: :runtime
|
135
|
+
prerelease: false
|
136
|
+
version_requirements: !ruby/object:Gem::Requirement
|
137
|
+
none: false
|
138
|
+
requirements:
|
139
|
+
- - ~>
|
140
|
+
- !ruby/object:Gem::Version
|
141
|
+
version: 1.6.1
|
142
|
+
- !ruby/object:Gem::Dependency
|
143
|
+
name: thor
|
144
|
+
requirement: !ruby/object:Gem::Requirement
|
145
|
+
none: false
|
146
|
+
requirements:
|
147
|
+
- - ~>
|
148
|
+
- !ruby/object:Gem::Version
|
149
|
+
version: 0.18.1
|
150
|
+
type: :runtime
|
151
|
+
prerelease: false
|
152
|
+
version_requirements: !ruby/object:Gem::Requirement
|
153
|
+
none: false
|
154
|
+
requirements:
|
155
|
+
- - ~>
|
156
|
+
- !ruby/object:Gem::Version
|
157
|
+
version: 0.18.1
|
158
|
+
- !ruby/object:Gem::Dependency
|
159
|
+
name: tilt
|
160
|
+
requirement: !ruby/object:Gem::Requirement
|
161
|
+
none: false
|
162
|
+
requirements:
|
163
|
+
- - ~>
|
164
|
+
- !ruby/object:Gem::Version
|
165
|
+
version: 2.0.0
|
166
|
+
type: :runtime
|
167
|
+
prerelease: false
|
168
|
+
version_requirements: !ruby/object:Gem::Requirement
|
169
|
+
none: false
|
170
|
+
requirements:
|
171
|
+
- - ~>
|
172
|
+
- !ruby/object:Gem::Version
|
173
|
+
version: 2.0.0
|
14
174
|
- !ruby/object:Gem::Dependency
|
15
175
|
name: bundler
|
16
176
|
requirement: !ruby/object:Gem::Requirement
|
@@ -43,7 +203,23 @@ dependencies:
|
|
43
203
|
- - ! '>='
|
44
204
|
- !ruby/object:Gem::Version
|
45
205
|
version: '0'
|
46
|
-
|
206
|
+
- !ruby/object:Gem::Dependency
|
207
|
+
name: url2thumb
|
208
|
+
requirement: !ruby/object:Gem::Requirement
|
209
|
+
none: false
|
210
|
+
requirements:
|
211
|
+
- - ! '>='
|
212
|
+
- !ruby/object:Gem::Version
|
213
|
+
version: '0'
|
214
|
+
type: :runtime
|
215
|
+
prerelease: false
|
216
|
+
version_requirements: !ruby/object:Gem::Requirement
|
217
|
+
none: false
|
218
|
+
requirements:
|
219
|
+
- - ! '>='
|
220
|
+
- !ruby/object:Gem::Version
|
221
|
+
version: '0'
|
222
|
+
description: opinionated static web page generator
|
47
223
|
email:
|
48
224
|
- epynonymous@outlook.com
|
49
225
|
executables:
|
@@ -97,5 +273,5 @@ rubyforge_project:
|
|
97
273
|
rubygems_version: 1.8.23
|
98
274
|
signing_key:
|
99
275
|
specification_version: 3
|
100
|
-
summary:
|
276
|
+
summary: opinionated static web page generator
|
101
277
|
test_files: []
|