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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c89a1e82384086506d0ad586a5688fce69c4b231
4
- data.tar.gz: bd637910c27f9d13559fecf13c6d36b6eac5508f
3
+ metadata.gz: 51679cec3fb95d5b0e6a2ee392373856eb160b3f
4
+ data.tar.gz: 17e5203af322a8bc0c9fbe9b435b25c7a27f9166
5
5
  SHA512:
6
- metadata.gz: 045e624bfb0a5830ef2297b7cf2aad3c5717f404fc5271e6b75c825e78c204dd143fc67b58d0d26c6647ba39ca193258d350b4a71d32b60ea4bd355040b318f8
7
- data.tar.gz: 4f067bd019669deaa791ff166f43c578158765b2a6ea6d709afcd4f578e3bdd2a128a7d5d49a3b22a42f18286557662dcddce7b282c4d4e4a52ec27aa5087df1
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
- [![Gem Version](https://badge.fury.io/rb/flutterby.svg)](https://badge.fury.io/rb/flutterby) [![Build Status](https://travis-ci.org/hmans/flutterby.svg?branch=master)](https://travis-ci.org/hmans/flutterby) ![Status](https://img.shields.io/badge/status-active-brightgreen.svg)
2
-
3
1
  # Flutterby
4
2
 
5
- #### A very good static site generator.
3
+ ### A very, very good static site generator.
4
+
5
+ [![Gem Version](https://badge.fury.io/rb/flutterby.svg)](https://badge.fury.io/rb/flutterby) [![Build Status](https://travis-ci.org/hmans/flutterby.svg?branch=master)](https://travis-ci.org/hmans/flutterby) [![license](https://img.shields.io/github/license/hmans/flutterby.svg)](https://github.com/hmans/flutterby/blob/master/LICENSE.txt) ![Status](https://img.shields.io/badge/status-active-brightgreen.svg)
6
6
 
7
7
 
8
- ### Key Features
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
- Now let's create a new project:
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
- Now let's generate that static site:
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
- Or run a local development server for faster development:
36
+ Flutterby comes with a local development server that will automatically pick up changes you make to your files:
33
37
 
34
- flutterby server
38
+ flutterby serve
35
39
 
36
- **Note**: by default, both the `build` and `server` 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.
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 server` so it doesn't always regenerate the _entire_ site graph when a file is modified.
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.3'
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("🦋 Creating a new Flutterby project in #{path}...", :bold)
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
@@ -14,7 +14,7 @@ module Flutterby
14
14
  FileUtils.mkdir_p(::File.dirname(path))
15
15
 
16
16
  # Write file
17
- ::File.write(path, node.render)
17
+ ::File.write(path, node.render(layout: true))
18
18
  logger.info "Exported #{node.url}"
19
19
  end
20
20
  end
@@ -2,7 +2,7 @@ require 'sass'
2
2
  require 'tilt'
3
3
  require 'slim'
4
4
  require 'builder'
5
- require 'slodown'
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 = Slodown::Formatter.new(node.body).complete.to_s
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
@@ -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{^\.\./?} then
111
- parent ? parent.find($') : nil
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(layout: true)
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
 
@@ -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 self, Port: @port, Logger: Flutterby.logger
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"
@@ -1,3 +1,3 @@
1
1
  module Flutterby
2
- VERSION = "0.1.0"
2
+ VERSION = "0.2.0"
3
3
  end
@@ -1,10 +1,11 @@
1
1
  module Flutterby
2
2
  class View
3
- attr_reader :node
3
+ attr_reader :node, :opts
4
4
  alias_method :page, :node
5
5
 
6
6
  def initialize(node)
7
7
  @node = node
8
+ @opts = {}
8
9
  end
9
10
 
10
11
  def date_format(date, fmt)
@@ -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: Hello World!
2
+ title: Welcome to Flutterby!
3
3
  ---
4
4
 
5
- This is your first blog post!
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
+ }
@@ -1 +1,3 @@
1
1
  /* insert your JavaScript here */
2
+
3
+ hljs.initHighlightingOnLoad();
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.1.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 00:00:00.000000000 Z
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: builder
182
+ name: rack
169
183
  requirement: !ruby/object:Gem::Requirement
170
184
  requirements:
171
185
  - - "~>"
172
186
  - !ruby/object:Gem::Version
173
- version: '3.2'
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: '3.2'
194
+ version: '2.0'
181
195
  - !ruby/object:Gem::Dependency
182
- name: sass
196
+ name: listen
183
197
  requirement: !ruby/object:Gem::Requirement
184
198
  requirements:
185
199
  - - "~>"
186
200
  - !ruby/object:Gem::Version
187
- version: '3.4'
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.4'
208
+ version: '3.1'
195
209
  - !ruby/object:Gem::Dependency
196
- name: tilt
210
+ name: mime-types
197
211
  requirement: !ruby/object:Gem::Requirement
198
212
  requirements:
199
213
  - - "~>"
200
214
  - !ruby/object:Gem::Version
201
- version: '2.0'
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: '2.0'
222
+ version: '3.1'
209
223
  - !ruby/object:Gem::Dependency
210
- name: slim
224
+ name: better_errors
211
225
  requirement: !ruby/object:Gem::Requirement
212
226
  requirements:
213
227
  - - "~>"
214
228
  - !ruby/object:Gem::Version
215
- version: '3.0'
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: '3.0'
236
+ version: '2.1'
223
237
  - !ruby/object:Gem::Dependency
224
- name: toml-rb
238
+ name: sass
225
239
  requirement: !ruby/object:Gem::Requirement
226
240
  requirements:
227
241
  - - "~>"
228
242
  - !ruby/object:Gem::Version
229
- version: '0.3'
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: '0.3'
250
+ version: '3.4'
237
251
  - !ruby/object:Gem::Dependency
238
- name: rack
252
+ name: builder
239
253
  requirement: !ruby/object:Gem::Requirement
240
254
  requirements:
241
255
  - - "~>"
242
256
  - !ruby/object:Gem::Version
243
- version: '2.0'
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.0'
264
+ version: '3.2'
251
265
  - !ruby/object:Gem::Dependency
252
- name: listen
266
+ name: slim
253
267
  requirement: !ruby/object:Gem::Requirement
254
268
  requirements:
255
269
  - - "~>"
256
270
  - !ruby/object:Gem::Version
257
- version: '3.1'
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.1'
278
+ version: '3.0'
265
279
  - !ruby/object:Gem::Dependency
266
- name: mime-types
280
+ name: tilt
267
281
  requirement: !ruby/object:Gem::Requirement
268
282
  requirements:
269
283
  - - "~>"
270
284
  - !ruby/object:Gem::Version
271
- version: '3.1'
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: '3.1'
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: '0'
351
+ version: '2.2'
336
352
  required_rubygems_version: !ruby/object:Gem::Requirement
337
353
  requirements:
338
354
  - - ">="