flutterby 0.1.0 → 0.2.0
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.
- checksums.yaml +4 -4
- data/CHANGES.md +23 -0
- data/README.md +14 -10
- data/flutterby.gemspec +12 -5
- data/lib/flutterby/cli.rb +18 -1
- data/lib/flutterby/exporter.rb +1 -1
- data/lib/flutterby/filters.rb +7 -17
- data/lib/flutterby/markdown_formatter.rb +17 -0
- data/lib/flutterby/node.rb +6 -6
- data/lib/flutterby/server.rb +11 -2
- data/lib/flutterby/version.rb +1 -1
- data/lib/flutterby/view.rb +2 -1
- data/lib/templates/new_project/site/_layout.erb +5 -0
- data/lib/templates/new_project/site/blog/2017-01-01-hello-world.html.md +19 -2
- data/lib/templates/new_project/site/css/styles.css.scss +24 -0
- data/lib/templates/new_project/site/js/app.js +2 -0
- metadata +44 -28
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 51679cec3fb95d5b0e6a2ee392373856eb160b3f
|
4
|
+
data.tar.gz: 17e5203af322a8bc0c9fbe9b435b25c7a27f9166
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dc7c1767f95d7a49e5fd2612a187e9e10d1976da0dfd6afad7172a79ac684d3f11e9ef8dffe078e4a4a538b9ff629fd0af45d1461dd45d7bf26d7dbaeccbbc82
|
7
|
+
data.tar.gz: 73b5970b058190ec21e67339d5134f00a795aa92e18d3a65fca87da627b1c9ae7dc2944045aa9e2c91cfe1de7cc243199b1c786bb55ad3481be33805f37b654d
|
data/CHANGES.md
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
# Version History
|
2
|
+
|
3
|
+
### 0.2.0 (in development)
|
4
|
+
|
5
|
+
- **BREAKING CHANGE:** The default for `Node#render` is now to _not_ render a layout. Pass `layout: true` if you do want the node to be rendered within a layout.
|
6
|
+
- **BREAKING CHANGE:** The behavior of `find` has now changed with regard to relative paths. `find(".")` will now return _the node's parent_ (ie. it's folder); before, a single dot would return the node itself. This change was made to make `find` behave more like what you would expect from a file system.
|
7
|
+
- **CHANGE:** Stop the [Slodown] library from picking up Coderay et al to perform server-side syntax highlighting. This will probably be made configurable at some point in the future. For the time being, it is recommended to perform syntax highlighting through client-side libraries like [highlight.js].
|
8
|
+
- **NEW:** You can now pass options to rendered partials. For example, when you invoke `<%= render("_foo.html.erb", name: "bar") %>`, `_foo.html.erb` can use `opts[:name]`.
|
9
|
+
- **NEW:** `flutterby serve` now properly catches and displays exceptions via the [better_errors](https://github.com/charliesome/better_errors) gem.
|
10
|
+
- **NEW:** For filters not natively supported by Flutterby, it will now fall back to [Tilt]. This means you can just add any gem supported by Tilt to your project to use it as a template language, with no Flutterby-specific plugin required. Hooray!
|
11
|
+
- **NEW:** the `flutterby` CLI now has a `version` command that will print the version of Flutterby you're using.
|
12
|
+
|
13
|
+
|
14
|
+
### 0.1.0 (2017-01-11)
|
15
|
+
|
16
|
+
- First release!
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
[Tilt]: https://github.com/rtomayko/tilt
|
22
|
+
[Slodown]: http://github.com/hmans/slodown
|
23
|
+
[highlight.js]: https://highlightjs.org/
|
data/README.md
CHANGED
@@ -1,11 +1,11 @@
|
|
1
|
-
[](https://badge.fury.io/rb/flutterby) [](https://travis-ci.org/hmans/flutterby) 
|
2
|
-
|
3
1
|
# Flutterby
|
4
2
|
|
5
|
-
|
3
|
+
### A very, very good static site generator.
|
4
|
+
|
5
|
+
[](https://badge.fury.io/rb/flutterby) [](https://travis-ci.org/hmans/flutterby) [](https://github.com/hmans/flutterby/blob/master/LICENSE.txt) 
|
6
6
|
|
7
7
|
|
8
|
-
|
8
|
+
#### Key Features
|
9
9
|
|
10
10
|
- Generate a static website from a source directory!
|
11
11
|
- Apply any number of transformations on files!
|
@@ -13,6 +13,10 @@
|
|
13
13
|
- Extremely easy to extend with new transformation filters!
|
14
14
|
- Sprinkle your site with Ruby code that can interact with your site's pages and data!
|
15
15
|
|
16
|
+
#### Recommended Reading
|
17
|
+
|
18
|
+
- [Blog post introducing Flutterby](http://hmans.io/posts/2017/01/11/flutterby.html)
|
19
|
+
- [New project template](https://github.com/hmans/flutterby/tree/master/lib/templates/new_project) (example code)
|
16
20
|
|
17
21
|
## Installation & Basic Usage
|
18
22
|
|
@@ -20,20 +24,20 @@ Flutterby is distributed as a RubyGem, so let's install it first:
|
|
20
24
|
|
21
25
|
gem install flutterby
|
22
26
|
|
23
|
-
|
27
|
+
This will install a `flutterby` executable on your system. Let's use it to create a new project:
|
24
28
|
|
25
29
|
flutterby new mysite
|
26
30
|
cd mysite
|
27
31
|
|
28
|
-
|
32
|
+
The new project template serves as a simple starting point for new projects. Let's compile it into a static site:
|
29
33
|
|
30
34
|
flutterby build
|
31
35
|
|
32
|
-
|
36
|
+
Flutterby comes with a local development server that will automatically pick up changes you make to your files:
|
33
37
|
|
34
|
-
flutterby
|
38
|
+
flutterby serve
|
35
39
|
|
36
|
-
**Note**: by default, both the `build` and `
|
40
|
+
**Note**: by default, both the `build` and `serve` commands assume `./site/` to be the source directory and `./_build/` to be the export directory. Please refer to `flutterby help` to see how you can override these.
|
37
41
|
|
38
42
|
|
39
43
|
## Examples
|
@@ -46,7 +50,7 @@ Please refer to the [Sites built with Flutterby](https://github.com/hmans/flutte
|
|
46
50
|
Flutterby is young, but already quite functional. Here's a list of changes I'm intending to make in the near future -- if you want to work on any of these, let me know!
|
47
51
|
|
48
52
|
- Performance! Right now, the source file for every node is read into RAM as a whole. Not a big problem when you're building a small site, but add some larger images, and you'll have one.
|
49
|
-
- Change `flutterby
|
53
|
+
- Change `flutterby serve` so it doesn't always regenerate the _entire_ site graph when a file is modified.
|
50
54
|
- Extract filters (like Slim, Sass etc.) to separate gems, to make the core gem more light-weight.
|
51
55
|
- Improve the template site (`flutterby new`).
|
52
56
|
- Produce a fun screencast to explain what the heck is going on here!
|
data/flutterby.gemspec
CHANGED
@@ -14,6 +14,8 @@ Gem::Specification.new do |spec|
|
|
14
14
|
spec.homepage = "https://github.com/hmans/flutterby"
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
17
|
+
spec.required_ruby_version = '~> 2.2'
|
18
|
+
|
17
19
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
18
20
|
f.match(%r{^(test|spec|features)/})
|
19
21
|
end
|
@@ -32,13 +34,18 @@ Gem::Specification.new do |spec|
|
|
32
34
|
spec.add_dependency 'json', '~> 2.0'
|
33
35
|
spec.add_dependency 'thor', '~> 0.19'
|
34
36
|
spec.add_dependency 'highline', '~> 1.7'
|
35
|
-
spec.add_dependency 'slodown', '~> 0.
|
36
|
-
spec.add_dependency 'builder', '~> 3.2'
|
37
|
-
spec.add_dependency 'sass', '~> 3.4'
|
38
|
-
spec.add_dependency 'tilt', '~> 2.0'
|
39
|
-
spec.add_dependency 'slim', '~> 3.0'
|
37
|
+
spec.add_dependency 'slodown', '~> 0.4'
|
40
38
|
spec.add_dependency 'toml-rb', '~> 0.3'
|
41
39
|
spec.add_dependency 'rack', '~> 2.0'
|
42
40
|
spec.add_dependency 'listen', '~> 3.1'
|
43
41
|
spec.add_dependency 'mime-types', '~> 3.1'
|
42
|
+
spec.add_dependency 'better_errors', '~> 2.1'
|
43
|
+
|
44
|
+
# We support some template engines out of the box.
|
45
|
+
# There's a chance these will be extracted/made optional
|
46
|
+
# at some point in the future.
|
47
|
+
spec.add_dependency 'sass', '~> 3.4'
|
48
|
+
spec.add_dependency 'builder', '~> 3.2'
|
49
|
+
spec.add_dependency 'slim', '~> 3.0'
|
50
|
+
spec.add_dependency 'tilt', '~> 2.0'
|
44
51
|
end
|
data/lib/flutterby/cli.rb
CHANGED
@@ -13,6 +13,13 @@ module Flutterby
|
|
13
13
|
class CLI < Thor
|
14
14
|
include Thor::Actions
|
15
15
|
|
16
|
+
desc "version", "Displays Flutterby's version"
|
17
|
+
map "-v" => :version
|
18
|
+
map "--version" => :version
|
19
|
+
def version
|
20
|
+
say_hi
|
21
|
+
end
|
22
|
+
|
16
23
|
desc "build", "Build your static site"
|
17
24
|
option :in, default: "./site/", aliases: [:i]
|
18
25
|
option :out, default: "./_build/", aliases: [:o]
|
@@ -23,6 +30,8 @@ module Flutterby
|
|
23
30
|
" • #{msg}\n"
|
24
31
|
end
|
25
32
|
|
33
|
+
say_hi
|
34
|
+
|
26
35
|
time = Benchmark.realtime do
|
27
36
|
# Import site
|
28
37
|
say color("📚 Importing site...", :bold)
|
@@ -44,6 +53,8 @@ module Flutterby
|
|
44
53
|
option :port, default: 4004, aliases: [:p], type: :numeric
|
45
54
|
|
46
55
|
def serve
|
56
|
+
say_hi
|
57
|
+
|
47
58
|
say color("📚 Importing site...", :bold)
|
48
59
|
root = Flutterby::Node.new("/", fs_path: options.in)
|
49
60
|
root.stage!
|
@@ -57,10 +68,12 @@ module Flutterby
|
|
57
68
|
|
58
69
|
desc "new PATH", "Create a new Flutterby project"
|
59
70
|
def new(path)
|
71
|
+
say_hi
|
72
|
+
|
60
73
|
path = File.expand_path(path)
|
61
74
|
self.destination_root = path
|
62
75
|
|
63
|
-
say color("
|
76
|
+
say color("🏗 Creating a new Flutterby project in #{path}...", :bold)
|
64
77
|
directory("new_project", path)
|
65
78
|
in_root { bundle_install }
|
66
79
|
end
|
@@ -81,6 +94,10 @@ module Flutterby
|
|
81
94
|
$terminal.color(*args)
|
82
95
|
end
|
83
96
|
|
97
|
+
def say_hi
|
98
|
+
say color("🦋 Flutterby #{Flutterby::VERSION}", :bold, :blue)
|
99
|
+
end
|
100
|
+
|
84
101
|
def self.source_root
|
85
102
|
File.expand_path("../templates/", File.dirname(__FILE__))
|
86
103
|
end
|
data/lib/flutterby/exporter.rb
CHANGED
data/lib/flutterby/filters.rb
CHANGED
@@ -2,7 +2,7 @@ require 'sass'
|
|
2
2
|
require 'tilt'
|
3
3
|
require 'slim'
|
4
4
|
require 'builder'
|
5
|
-
require '
|
5
|
+
require 'flutterby/markdown_formatter'
|
6
6
|
|
7
7
|
module Flutterby
|
8
8
|
module Filters
|
@@ -15,6 +15,10 @@ module Flutterby
|
|
15
15
|
|
16
16
|
if Filters.respond_to?(meth)
|
17
17
|
Filters.send(meth, node)
|
18
|
+
elsif template = tilt(filter, node.body)
|
19
|
+
node.body = template.render(node.view)
|
20
|
+
else
|
21
|
+
Flutterby.logger.warn "Unsupported filter '#{filter}' for #{node.url}"
|
18
22
|
end
|
19
23
|
end
|
20
24
|
end
|
@@ -26,7 +30,7 @@ module Flutterby
|
|
26
30
|
end
|
27
31
|
|
28
32
|
def self.tilt(format, body)
|
29
|
-
Tilt[format].new { body }
|
33
|
+
t = Tilt[format] and t.new { body }
|
30
34
|
end
|
31
35
|
end
|
32
36
|
end
|
@@ -35,16 +39,8 @@ Flutterby::Filters.add("rb") do |node|
|
|
35
39
|
node.instance_eval(node.body)
|
36
40
|
end
|
37
41
|
|
38
|
-
Flutterby::Filters.add("erb") do |node|
|
39
|
-
node.body = tilt("erb", node.body).render(node.view)
|
40
|
-
end
|
41
|
-
|
42
|
-
Flutterby::Filters.add("slim") do |node|
|
43
|
-
node.body = tilt("slim", node.body).render(node.view)
|
44
|
-
end
|
45
|
-
|
46
42
|
Flutterby::Filters.add(["md", "markdown"]) do |node|
|
47
|
-
node.body =
|
43
|
+
node.body = Flutterby::MarkdownFormatter.new(node.body).complete.to_s
|
48
44
|
end
|
49
45
|
|
50
46
|
Flutterby::Filters.add("scss") do |node|
|
@@ -59,9 +55,3 @@ Flutterby::Filters.add("scss") do |node|
|
|
59
55
|
|
60
56
|
node.body = Sass::Engine.new(node.body, sass_options).render
|
61
57
|
end
|
62
|
-
|
63
|
-
Flutterby::Filters.add("builder") do |node|
|
64
|
-
xml = Builder::XmlMarkup.new
|
65
|
-
node.view.instance_eval(node.body)
|
66
|
-
node.body = xml.target!
|
67
|
-
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
require 'slodown'
|
2
|
+
|
3
|
+
module Flutterby
|
4
|
+
class MarkdownFormatter < Slodown::Formatter
|
5
|
+
def complete
|
6
|
+
markdown.autolink.sanitize
|
7
|
+
end
|
8
|
+
|
9
|
+
def kramdown_options
|
10
|
+
{
|
11
|
+
input: "GFM",
|
12
|
+
syntax_highlighter: nil,
|
13
|
+
syntax_highlighter_opts: { }
|
14
|
+
}
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
data/lib/flutterby/node.rb
CHANGED
@@ -104,13 +104,11 @@ module Flutterby
|
|
104
104
|
return self if path.nil? || path.empty?
|
105
105
|
|
106
106
|
# remove duplicate slashes
|
107
|
-
path.gsub!(%r{
|
107
|
+
path.gsub!(%r{/+}, "/")
|
108
108
|
|
109
109
|
case path
|
110
|
-
when %r{
|
111
|
-
parent ? parent.find($') :
|
112
|
-
when %r{^\.} then
|
113
|
-
self
|
110
|
+
when %r{^\./?} then
|
111
|
+
parent ? parent.find($') : root.find($')
|
114
112
|
when %r{^/} then
|
115
113
|
root.find($')
|
116
114
|
when %r{^([^/]+)/?} then
|
@@ -247,7 +245,9 @@ module Flutterby
|
|
247
245
|
@data
|
248
246
|
end
|
249
247
|
|
250
|
-
def render(
|
248
|
+
def render(opts = {})
|
249
|
+
layout = opts[:layout]
|
250
|
+
view.opts.merge!(opts)
|
251
251
|
(layout && apply_layout?) ? apply_layout(body) : body
|
252
252
|
end
|
253
253
|
|
data/lib/flutterby/server.rb
CHANGED
@@ -1,5 +1,6 @@
|
|
1
1
|
require 'rack'
|
2
2
|
require 'listen'
|
3
|
+
require 'better_errors'
|
3
4
|
|
4
5
|
module Flutterby
|
5
6
|
class Server
|
@@ -20,6 +21,14 @@ module Flutterby
|
|
20
21
|
@root.stage!
|
21
22
|
end
|
22
23
|
|
24
|
+
# Set up Rack app
|
25
|
+
BetterErrors.application_root = __dir__
|
26
|
+
this = self
|
27
|
+
app = Rack::Builder.app do |app|
|
28
|
+
app.use BetterErrors::Middleware
|
29
|
+
app.run this
|
30
|
+
end
|
31
|
+
|
23
32
|
# Set up server
|
24
33
|
server = Rack::Handler::WEBrick
|
25
34
|
|
@@ -31,7 +40,7 @@ module Flutterby
|
|
31
40
|
|
32
41
|
# Go!
|
33
42
|
listener.start
|
34
|
-
server.run
|
43
|
+
server.run app, Port: @port, Logger: Flutterby.logger
|
35
44
|
end
|
36
45
|
|
37
46
|
def call(env)
|
@@ -45,7 +54,7 @@ module Flutterby
|
|
45
54
|
|
46
55
|
# Build response
|
47
56
|
res.headers["Content-Type"] = mime_type
|
48
|
-
res.body = [node.render]
|
57
|
+
res.body = [node.render(layout: true)]
|
49
58
|
else
|
50
59
|
res.status = 404
|
51
60
|
res.headers["Content-Type"] = "text/html"
|
data/lib/flutterby/version.rb
CHANGED
data/lib/flutterby/view.rb
CHANGED
@@ -4,6 +4,11 @@
|
|
4
4
|
<meta charset="utf-8">
|
5
5
|
<title><%= config["site"]["title"] %></title>
|
6
6
|
<link rel="stylesheet" href="/css/styles.css">
|
7
|
+
|
8
|
+
<!-- highlight.js for syntax highlighting -->
|
9
|
+
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/styles/default.min.css">
|
10
|
+
<script src="//cdnjs.cloudflare.com/ajax/libs/highlight.js/9.9.0/highlight.min.js"></script>
|
11
|
+
|
7
12
|
<script src="/js/app.js"></script>
|
8
13
|
</head>
|
9
14
|
<body>
|
@@ -1,5 +1,22 @@
|
|
1
1
|
---
|
2
|
-
title:
|
2
|
+
title: Welcome to Flutterby!
|
3
3
|
---
|
4
4
|
|
5
|
-
|
5
|
+
|
6
|
+
**Congratulations!** You've just created a new Flutterby project through the magic of `flutterby new` -- now it's time to make it your own!
|
7
|
+
|
8
|
+
This sample project is set up as a simple blog, but of course you can do so much more with Flutterby. Just head straight into your project's `site` directory and mix things up. Some files you should look at:
|
9
|
+
|
10
|
+
| `/_config.toml` | Your site configuration. |
|
11
|
+
| `/css/styles.css.scss` | Your stylesheet. [Sass]-powered, of course! |
|
12
|
+
| `/_layout.erb` | Your global site layout. |
|
13
|
+
| `/posts/_layout.erb` | Your post-specific layout. |
|
14
|
+
|
15
|
+
#### Recommended Reading
|
16
|
+
|
17
|
+
- [Flutterby on Github](https://github.com/hmans/flutterby)
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
[Sass]: http://sass-lang.com/
|
@@ -37,3 +37,27 @@ ul.post-list {
|
|
37
37
|
list-style: none;
|
38
38
|
padding-left: 0;
|
39
39
|
}
|
40
|
+
|
41
|
+
|
42
|
+
/* embedded code */
|
43
|
+
code {
|
44
|
+
background-color: #e8e8e8;
|
45
|
+
font: 85% "Office Code Pro",Menlo,Consolas,Monaco,monotype;
|
46
|
+
padding: 2px 4px;
|
47
|
+
border-radius: 2px;
|
48
|
+
}
|
49
|
+
|
50
|
+
pre>code {
|
51
|
+
padding: 15px !important;
|
52
|
+
}
|
53
|
+
|
54
|
+
/* tables */
|
55
|
+
table {
|
56
|
+
}
|
57
|
+
|
58
|
+
td {
|
59
|
+
vertical-align: top;
|
60
|
+
}
|
61
|
+
td+td {
|
62
|
+
padding-left: 10px;
|
63
|
+
}
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: flutterby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hendrik Mans
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-01-
|
11
|
+
date: 2017-01-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -152,6 +152,20 @@ dependencies:
|
|
152
152
|
version: '1.7'
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: slodown
|
155
|
+
requirement: !ruby/object:Gem::Requirement
|
156
|
+
requirements:
|
157
|
+
- - "~>"
|
158
|
+
- !ruby/object:Gem::Version
|
159
|
+
version: '0.4'
|
160
|
+
type: :runtime
|
161
|
+
prerelease: false
|
162
|
+
version_requirements: !ruby/object:Gem::Requirement
|
163
|
+
requirements:
|
164
|
+
- - "~>"
|
165
|
+
- !ruby/object:Gem::Version
|
166
|
+
version: '0.4'
|
167
|
+
- !ruby/object:Gem::Dependency
|
168
|
+
name: toml-rb
|
155
169
|
requirement: !ruby/object:Gem::Requirement
|
156
170
|
requirements:
|
157
171
|
- - "~>"
|
@@ -165,117 +179,117 @@ dependencies:
|
|
165
179
|
- !ruby/object:Gem::Version
|
166
180
|
version: '0.3'
|
167
181
|
- !ruby/object:Gem::Dependency
|
168
|
-
name:
|
182
|
+
name: rack
|
169
183
|
requirement: !ruby/object:Gem::Requirement
|
170
184
|
requirements:
|
171
185
|
- - "~>"
|
172
186
|
- !ruby/object:Gem::Version
|
173
|
-
version: '
|
187
|
+
version: '2.0'
|
174
188
|
type: :runtime
|
175
189
|
prerelease: false
|
176
190
|
version_requirements: !ruby/object:Gem::Requirement
|
177
191
|
requirements:
|
178
192
|
- - "~>"
|
179
193
|
- !ruby/object:Gem::Version
|
180
|
-
version: '
|
194
|
+
version: '2.0'
|
181
195
|
- !ruby/object:Gem::Dependency
|
182
|
-
name:
|
196
|
+
name: listen
|
183
197
|
requirement: !ruby/object:Gem::Requirement
|
184
198
|
requirements:
|
185
199
|
- - "~>"
|
186
200
|
- !ruby/object:Gem::Version
|
187
|
-
version: '3.
|
201
|
+
version: '3.1'
|
188
202
|
type: :runtime
|
189
203
|
prerelease: false
|
190
204
|
version_requirements: !ruby/object:Gem::Requirement
|
191
205
|
requirements:
|
192
206
|
- - "~>"
|
193
207
|
- !ruby/object:Gem::Version
|
194
|
-
version: '3.
|
208
|
+
version: '3.1'
|
195
209
|
- !ruby/object:Gem::Dependency
|
196
|
-
name:
|
210
|
+
name: mime-types
|
197
211
|
requirement: !ruby/object:Gem::Requirement
|
198
212
|
requirements:
|
199
213
|
- - "~>"
|
200
214
|
- !ruby/object:Gem::Version
|
201
|
-
version: '
|
215
|
+
version: '3.1'
|
202
216
|
type: :runtime
|
203
217
|
prerelease: false
|
204
218
|
version_requirements: !ruby/object:Gem::Requirement
|
205
219
|
requirements:
|
206
220
|
- - "~>"
|
207
221
|
- !ruby/object:Gem::Version
|
208
|
-
version: '
|
222
|
+
version: '3.1'
|
209
223
|
- !ruby/object:Gem::Dependency
|
210
|
-
name:
|
224
|
+
name: better_errors
|
211
225
|
requirement: !ruby/object:Gem::Requirement
|
212
226
|
requirements:
|
213
227
|
- - "~>"
|
214
228
|
- !ruby/object:Gem::Version
|
215
|
-
version: '
|
229
|
+
version: '2.1'
|
216
230
|
type: :runtime
|
217
231
|
prerelease: false
|
218
232
|
version_requirements: !ruby/object:Gem::Requirement
|
219
233
|
requirements:
|
220
234
|
- - "~>"
|
221
235
|
- !ruby/object:Gem::Version
|
222
|
-
version: '
|
236
|
+
version: '2.1'
|
223
237
|
- !ruby/object:Gem::Dependency
|
224
|
-
name:
|
238
|
+
name: sass
|
225
239
|
requirement: !ruby/object:Gem::Requirement
|
226
240
|
requirements:
|
227
241
|
- - "~>"
|
228
242
|
- !ruby/object:Gem::Version
|
229
|
-
version: '
|
243
|
+
version: '3.4'
|
230
244
|
type: :runtime
|
231
245
|
prerelease: false
|
232
246
|
version_requirements: !ruby/object:Gem::Requirement
|
233
247
|
requirements:
|
234
248
|
- - "~>"
|
235
249
|
- !ruby/object:Gem::Version
|
236
|
-
version: '
|
250
|
+
version: '3.4'
|
237
251
|
- !ruby/object:Gem::Dependency
|
238
|
-
name:
|
252
|
+
name: builder
|
239
253
|
requirement: !ruby/object:Gem::Requirement
|
240
254
|
requirements:
|
241
255
|
- - "~>"
|
242
256
|
- !ruby/object:Gem::Version
|
243
|
-
version: '2
|
257
|
+
version: '3.2'
|
244
258
|
type: :runtime
|
245
259
|
prerelease: false
|
246
260
|
version_requirements: !ruby/object:Gem::Requirement
|
247
261
|
requirements:
|
248
262
|
- - "~>"
|
249
263
|
- !ruby/object:Gem::Version
|
250
|
-
version: '2
|
264
|
+
version: '3.2'
|
251
265
|
- !ruby/object:Gem::Dependency
|
252
|
-
name:
|
266
|
+
name: slim
|
253
267
|
requirement: !ruby/object:Gem::Requirement
|
254
268
|
requirements:
|
255
269
|
- - "~>"
|
256
270
|
- !ruby/object:Gem::Version
|
257
|
-
version: '3.
|
271
|
+
version: '3.0'
|
258
272
|
type: :runtime
|
259
273
|
prerelease: false
|
260
274
|
version_requirements: !ruby/object:Gem::Requirement
|
261
275
|
requirements:
|
262
276
|
- - "~>"
|
263
277
|
- !ruby/object:Gem::Version
|
264
|
-
version: '3.
|
278
|
+
version: '3.0'
|
265
279
|
- !ruby/object:Gem::Dependency
|
266
|
-
name:
|
280
|
+
name: tilt
|
267
281
|
requirement: !ruby/object:Gem::Requirement
|
268
282
|
requirements:
|
269
283
|
- - "~>"
|
270
284
|
- !ruby/object:Gem::Version
|
271
|
-
version: '
|
285
|
+
version: '2.0'
|
272
286
|
type: :runtime
|
273
287
|
prerelease: false
|
274
288
|
version_requirements: !ruby/object:Gem::Requirement
|
275
289
|
requirements:
|
276
290
|
- - "~>"
|
277
291
|
- !ruby/object:Gem::Version
|
278
|
-
version: '
|
292
|
+
version: '2.0'
|
279
293
|
description: There are many static site generators. This is mine.
|
280
294
|
email:
|
281
295
|
- hendrik@mans.de
|
@@ -287,6 +301,7 @@ files:
|
|
287
301
|
- ".gitignore"
|
288
302
|
- ".rspec"
|
289
303
|
- ".travis.yml"
|
304
|
+
- CHANGES.md
|
290
305
|
- Gemfile
|
291
306
|
- LICENSE.txt
|
292
307
|
- README.md
|
@@ -301,6 +316,7 @@ files:
|
|
301
316
|
- lib/flutterby/cli.rb
|
302
317
|
- lib/flutterby/exporter.rb
|
303
318
|
- lib/flutterby/filters.rb
|
319
|
+
- lib/flutterby/markdown_formatter.rb
|
304
320
|
- lib/flutterby/node.rb
|
305
321
|
- lib/flutterby/server.rb
|
306
322
|
- lib/flutterby/version.rb
|
@@ -330,9 +346,9 @@ require_paths:
|
|
330
346
|
- lib
|
331
347
|
required_ruby_version: !ruby/object:Gem::Requirement
|
332
348
|
requirements:
|
333
|
-
- - "
|
349
|
+
- - "~>"
|
334
350
|
- !ruby/object:Gem::Version
|
335
|
-
version: '
|
351
|
+
version: '2.2'
|
336
352
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
337
353
|
requirements:
|
338
354
|
- - ">="
|