flutterby 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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
  - - ">="