contentful_middleman 0.0.4
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 +7 -0
- data/.gitignore +14 -0
- data/.travis.yml +8 -0
- data/.yardopts +3 -0
- data/CHANGELOG.md +15 -0
- data/CONTRIBUTING.md +43 -0
- data/Gemfile +18 -0
- data/LICENSE.md +20 -0
- data/README.md +83 -0
- data/Rakefile +36 -0
- data/TODO +15 -0
- data/contentful_middleman.gemspec +28 -0
- data/lib/contentful_middleman.rb +7 -0
- data/lib/contentful_middleman/commands/article.tt +9 -0
- data/lib/contentful_middleman/commands/sync_blog.rb +88 -0
- data/lib/contentful_middleman/core.rb +69 -0
- data/lib/contentful_middleman/version.rb +3 -0
- data/lib/middleman_extension.rb +1 -0
- data/spec/contentful_middleman_spec.rb +7 -0
- data/spec/spec_helper.rb +5 -0
- metadata +108 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: ccfe1bc9ea0a8cfa76de3d65aa382141e3d81da0
|
4
|
+
data.tar.gz: 5929f5f756b15d636a17e575a40c81bf3f0b1230
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ece6120ab1f940ce2bd6dac04a5ef093d322caf057e4f17a247362445b7a61b6eac19f35da0eef2e9c3f00b56f9417a19ebc1fab5fc8440c2e2a0dd16ea5bcc8
|
7
|
+
data.tar.gz: d20282b168ad58b84b9d77400dbaa01d9527d776119dd2510263f8de3b32cd824bb330ade6045ad17e77221185032938d94d51b93a8d71213e77e2d6e975d1ff
|
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/.yardopts
ADDED
data/CHANGELOG.md
ADDED
data/CONTRIBUTING.md
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
# Contributing
|
2
|
+
In the spirit of [free software][free-sw], **everyone** is encouraged to help
|
3
|
+
improve this project.
|
4
|
+
|
5
|
+
[free-sw]: http://www.fsf.org/licensing/essays/free-sw.html
|
6
|
+
|
7
|
+
Here are some ways *you* can contribute:
|
8
|
+
|
9
|
+
* by using alpha, beta, and prerelease versions
|
10
|
+
* by reporting bugs
|
11
|
+
* by suggesting new features
|
12
|
+
* by writing or editing documentation
|
13
|
+
* by writing specifications
|
14
|
+
* by writing code ( **no patch is too small** : fix typos, add comments, clean up inconsistent whitespace )
|
15
|
+
* by refactoring code
|
16
|
+
* by closing [issues][]
|
17
|
+
* by reviewing patches
|
18
|
+
|
19
|
+
[issues]: https://github.com/middleman/middleman-blog/issues
|
20
|
+
|
21
|
+
## Submitting an Issue
|
22
|
+
We use the [GitHub issue tracker][issues] to track bugs and features. Before
|
23
|
+
submitting a bug report or feature request, check to make sure it hasn't
|
24
|
+
already been submitted. When submitting a bug report, please include a [Gist][]
|
25
|
+
that includes a stack trace and any details that may be necessary to reproduce
|
26
|
+
the bug, including your gem version, Ruby version, and operating system.
|
27
|
+
Ideally, a bug report should include a pull request with failing specs.
|
28
|
+
|
29
|
+
[gist]: https://gist.github.com/
|
30
|
+
|
31
|
+
## Submitting a Pull Request
|
32
|
+
1. [Fork the repository.][fork]
|
33
|
+
2. [Create a topic branch.][branch]
|
34
|
+
3. Add specs for your unimplemented feature or bug fix.
|
35
|
+
4. Run `bundle exec rake test`. If your specs pass, return to step 3.
|
36
|
+
5. Implement your feature or bug fix.
|
37
|
+
6. Run `bundle exec rake test`. If your specs fail, return to step 5.
|
38
|
+
7. Add, commit, and push your changes.
|
39
|
+
8. [Submit a pull request.][pr]
|
40
|
+
|
41
|
+
[fork]: http://help.github.com/fork-a-repo/
|
42
|
+
[branch]: http://learn.github.com/p/branching.html
|
43
|
+
[pr]: http://help.github.com/send-pull-requests/
|
data/Gemfile
ADDED
@@ -0,0 +1,18 @@
|
|
1
|
+
# If you have OpenSSL installed, we recommend updating
|
2
|
+
# the following line to use "https"
|
3
|
+
source 'http://rubygems.org'
|
4
|
+
|
5
|
+
gem "middleman-core", :github => "middleman/middleman", :branch => 'v3-stable'
|
6
|
+
|
7
|
+
# Specify your gem's dependencies in contentful_middleman.gemspec
|
8
|
+
gemspec
|
9
|
+
|
10
|
+
gem "rake"
|
11
|
+
gem "yard"
|
12
|
+
|
13
|
+
# Test tools
|
14
|
+
gem "rspec"
|
15
|
+
gem "simplecov"
|
16
|
+
|
17
|
+
gem "cane", :platforms => [:mri_19, :mri_20], :require => false
|
18
|
+
gem 'coveralls', :require => false
|
data/LICENSE.md
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
Copyright (c) 2014 Contentful GmbH
|
2
|
+
|
3
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
a copy of this software and associated documentation files (the
|
5
|
+
"Software"), to deal in the Software without restriction, including
|
6
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
the following conditions:
|
10
|
+
|
11
|
+
The above copyright notice and this permission notice shall be
|
12
|
+
included in all copies or substantial portions of the Software.
|
13
|
+
|
14
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,83 @@
|
|
1
|
+
# Contentful Middleman
|
2
|
+
|
3
|
+
[](https://travis-ci.org/contentful/contentful_middleman)
|
4
|
+
|
5
|
+
Contentful Middleman is a [Middleman](http://middlemanapp.com/) extension to use the Middleman static side generator together with the API-driven [Contentful CMS](https://www.contentful.com). It is powered by the [Contentful Ruby Gem](https://github.com/contentful/contentful.rb).
|
6
|
+
|
7
|
+
Experience the power of Middleman while staying sane as a developer by letting end-users edit content in a web-based interface.
|
8
|
+
|
9
|
+
This extensions supports both page-based content as well as blog posts through middleman-blog.
|
10
|
+
|
11
|
+
## Installation
|
12
|
+
|
13
|
+
Add the following line to the Gemfile of your Middleman project:
|
14
|
+
|
15
|
+
```
|
16
|
+
gem "contentful_middleman"
|
17
|
+
```
|
18
|
+
|
19
|
+
Then as usual, run:
|
20
|
+
|
21
|
+
```
|
22
|
+
bundle install
|
23
|
+
```
|
24
|
+
|
25
|
+
## Configuration
|
26
|
+
|
27
|
+
To configure the extension, add the following configuration block to Middleman's config.rb:
|
28
|
+
|
29
|
+
```
|
30
|
+
activate :contentful do |f|
|
31
|
+
# The Space ID of your Contentful space
|
32
|
+
f.space = 'YOUR_SPACE_ID'
|
33
|
+
|
34
|
+
# The access token (API Key) for the Content Delivery API
|
35
|
+
f.access_token = 'YOUR_CONTENT_DELIVERY_API_ACCESS_TOKEN'
|
36
|
+
|
37
|
+
# Optional: Options for middleman-blog
|
38
|
+
|
39
|
+
# Filter Entries for your blog posts. See Contentful gem and Content Delivery API documentation.
|
40
|
+
f.blog_posts_query = {content_type: "6LbnqgnwA08qYaU", category: "news" }
|
41
|
+
|
42
|
+
# Which keys to use in the article template for blog posts
|
43
|
+
# Key: template variable
|
44
|
+
# Value: Entry method or block
|
45
|
+
f.blog_post_mappings = {
|
46
|
+
slug: :id,
|
47
|
+
date: :created_at,
|
48
|
+
body: :id,
|
49
|
+
tags: :tags,
|
50
|
+
title: ->(e){"#{e.id}XXXX"}
|
51
|
+
}
|
52
|
+
|
53
|
+
# Define your own template for blog posts
|
54
|
+
f.new_article_template = "/my_templates/article.tt"
|
55
|
+
|
56
|
+
# Automatically synchronize blog posts before building with "middleman build"
|
57
|
+
f.sync_blog_before_build = true # default: false
|
58
|
+
end
|
59
|
+
```
|
60
|
+
|
61
|
+
## Using managed content in regular pages
|
62
|
+
|
63
|
+
The `contentful` helper provides a Contentful gem client object, that can be used to fetch managed content from Contentful:
|
64
|
+
|
65
|
+
```
|
66
|
+
<ol>
|
67
|
+
<% contentful.entries(content_type: '6LbnqgnwA08qYaU').each do |entry| %>
|
68
|
+
<li>
|
69
|
+
<%= entry.title %>
|
70
|
+
<%= entry.body %>
|
71
|
+
<%= entry.created_at %>
|
72
|
+
</li>
|
73
|
+
<% end %>
|
74
|
+
</ol>
|
75
|
+
```
|
76
|
+
|
77
|
+
## Synchronizing blog posts manually
|
78
|
+
|
79
|
+
Blog posts are synchronized to your repo as YAML files with front matter, just as if you would write them manually. Either automatically when building, or manually by running:
|
80
|
+
|
81
|
+
```
|
82
|
+
middleman contentful
|
83
|
+
```
|
data/Rakefile
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'middleman-core'
|
2
|
+
|
3
|
+
require 'rake/clean'
|
4
|
+
|
5
|
+
desc "Run tests, both RSpec and Cucumber"
|
6
|
+
task :test => [:spec]
|
7
|
+
|
8
|
+
require 'rspec/core/rake_task'
|
9
|
+
desc "Run RSpec"
|
10
|
+
RSpec::Core::RakeTask.new do |spec|
|
11
|
+
spec.pattern = 'spec/**/*_spec.rb'
|
12
|
+
spec.rspec_opts = ['--color', '--format nested']
|
13
|
+
end
|
14
|
+
|
15
|
+
begin
|
16
|
+
require 'cane/rake_task'
|
17
|
+
|
18
|
+
desc "Run cane to check quality metrics"
|
19
|
+
Cane::RakeTask.new(:quality) do |cane|
|
20
|
+
cane.no_style = true
|
21
|
+
cane.no_doc = true
|
22
|
+
cane.abc_glob = "lib/contentful_middleman/**/*.rb"
|
23
|
+
end
|
24
|
+
rescue LoadError
|
25
|
+
# warn "cane not available, quality task not provided."
|
26
|
+
end
|
27
|
+
|
28
|
+
desc "Build HTML documentation"
|
29
|
+
task :doc do
|
30
|
+
sh 'bundle exec yard'
|
31
|
+
end
|
32
|
+
|
33
|
+
require 'rake'
|
34
|
+
|
35
|
+
require 'rubygems/tasks'
|
36
|
+
Gem::Tasks.new
|
data/TODO
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
- add specs
|
2
|
+
- add travis ci
|
3
|
+
|
4
|
+
- publish yard docs
|
5
|
+
- add comments
|
6
|
+
|
7
|
+
- support multiple instances and blog instances
|
8
|
+
|
9
|
+
- building through webhook
|
10
|
+
- preview mode
|
11
|
+
|
12
|
+
- blog posts
|
13
|
+
- add draft?
|
14
|
+
- add ignore?
|
15
|
+
- use title field from content type
|
@@ -0,0 +1,28 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "contentful_middleman/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "contentful_middleman"
|
7
|
+
s.version = ContentfulMiddleman::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Sascha Konietzke"]
|
10
|
+
s.email = ["sascha@contentful.com"]
|
11
|
+
s.homepage = "https://www.contentful.com"
|
12
|
+
s.summary = %q{Include mangablable content from the Contentful CMS and API into your Middleman projects}
|
13
|
+
s.description = %q{Load blog posts and other managed content into Middleman}
|
14
|
+
s.license = "MIT"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
# The version of middleman-core your extension depends on
|
22
|
+
s.add_dependency("middleman-core", ["~> 3.3"])
|
23
|
+
|
24
|
+
# Additional dependencies
|
25
|
+
s.add_dependency("contentful")
|
26
|
+
|
27
|
+
s.add_development_dependency 'rubygems-tasks', '~> 0.2'
|
28
|
+
end
|
@@ -0,0 +1,88 @@
|
|
1
|
+
require 'middleman-core/cli'
|
2
|
+
require 'date'
|
3
|
+
require 'middleman-blog/uri_templates'
|
4
|
+
|
5
|
+
module Middleman
|
6
|
+
module Cli
|
7
|
+
# This class provides an "contentful" command for the middleman CLI.
|
8
|
+
class SyncBlog < Thor
|
9
|
+
include Thor::Actions
|
10
|
+
include ::Middleman::Blog::UriTemplates
|
11
|
+
|
12
|
+
check_unknown_options!
|
13
|
+
|
14
|
+
namespace :contentful
|
15
|
+
|
16
|
+
def self.source_root
|
17
|
+
ENV['MM_ROOT']
|
18
|
+
end
|
19
|
+
|
20
|
+
# Tell Thor to exit with a nonzero exit code on failure
|
21
|
+
def self.exit_on_failure?
|
22
|
+
true
|
23
|
+
end
|
24
|
+
|
25
|
+
desc "contentful", "Synchronize Contentful blog posts"
|
26
|
+
method_option "lang",
|
27
|
+
aliases: "-l",
|
28
|
+
desc: "The language to create the post with (defaults to I18n.default_locale if avaliable)"
|
29
|
+
method_option "blog",
|
30
|
+
aliases: "-b",
|
31
|
+
desc: "The name of the blog to create the post inside (for multi-blog apps, defaults to the only blog in single-blog apps)"
|
32
|
+
def contentful
|
33
|
+
contentful_middleman = shared_instance.contentful_middleman
|
34
|
+
client = shared_instance.contentful_middleman_client
|
35
|
+
contentful_middleman_options = contentful_middleman.options
|
36
|
+
blog_post_mappings = contentful_middleman.blog_post_mappings
|
37
|
+
|
38
|
+
if shared_instance.respond_to? :blog
|
39
|
+
shared_instance.logger.info " Contentful Sync: Start..."
|
40
|
+
|
41
|
+
client.entries(contentful_middleman_options.blog_posts_query).each do |entry|
|
42
|
+
slug = value_from_object(entry, blog_post_mappings[:slug])
|
43
|
+
title = value_from_object(entry, blog_post_mappings[:title])
|
44
|
+
date = value_from_object(entry, blog_post_mappings[:date]).strftime("%Y-%m-%d")
|
45
|
+
tags = value_from_object(entry, blog_post_mappings[:tags]) || []
|
46
|
+
body = value_from_object(entry, blog_post_mappings[:body])
|
47
|
+
|
48
|
+
@title = title
|
49
|
+
@slug = slug || safe_parameterize(title)
|
50
|
+
@date = date ? Time.zone.parse(date) : Time.zone.now
|
51
|
+
@tags = tags
|
52
|
+
@lang = options[:lang] || ( I18n.default_locale if defined? I18n )
|
53
|
+
@body = body
|
54
|
+
|
55
|
+
blog_inst = shared_instance.blog(options[:blog])
|
56
|
+
|
57
|
+
path_template = blog_inst.source_template
|
58
|
+
params = date_to_params(@date).merge(lang: @lang.to_s, title: @slug)
|
59
|
+
article_path = apply_uri_template path_template, params
|
60
|
+
|
61
|
+
template contentful_middleman.options.new_article_template, File.join(shared_instance.source_dir, article_path + blog_inst.options.default_extension)
|
62
|
+
end
|
63
|
+
|
64
|
+
shared_instance.logger.info " Contentful Sync: Done!"
|
65
|
+
else
|
66
|
+
raise Thor::Error.new "You need to activate the blog extension in config.rb before you can create an article"
|
67
|
+
end
|
68
|
+
end
|
69
|
+
|
70
|
+
private
|
71
|
+
def shared_instance
|
72
|
+
@shared_instance ||= ::Middleman::Application.server.inst
|
73
|
+
end
|
74
|
+
|
75
|
+
def value_from_object(object, mapping)
|
76
|
+
if ( mapping.is_a?(Symbol) || mapping.is_a?(String) ) && object.respond_to?(mapping)
|
77
|
+
object.send(mapping)
|
78
|
+
elsif mapping.is_a?(Proc)
|
79
|
+
object.instance_exec(object, &mapping)
|
80
|
+
else
|
81
|
+
shared_instance.logger.warn "Warning - Unknown mapping (#{mapping}) for object (#{object.class}) with ID (#{object.id})"
|
82
|
+
nil
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
88
|
+
end
|
@@ -0,0 +1,69 @@
|
|
1
|
+
require 'middleman-core'
|
2
|
+
require 'contentful'
|
3
|
+
|
4
|
+
# The Contentful Middleman extensions allows to load managed content into Middleman projects through the Contentful Content Management Platform.
|
5
|
+
module ContentfulMiddleman
|
6
|
+
class Core < ::Middleman::Extension
|
7
|
+
DEFAULT_BLOG_MAPPINGS = {
|
8
|
+
slug: :id,
|
9
|
+
date: :created_at,
|
10
|
+
title: :id,
|
11
|
+
body: :id,
|
12
|
+
tags: :tags
|
13
|
+
}
|
14
|
+
|
15
|
+
self.supports_multiple_instances = false
|
16
|
+
|
17
|
+
option :space, nil, 'The Contentful Space ID'
|
18
|
+
option :access_token, nil, 'The Contentful Content Delivery API access token'
|
19
|
+
|
20
|
+
option :new_article_template, File.expand_path('../commands/article.tt', __FILE__), 'Path (relative to project root) to an ERb template that will be used to generate new Contentful articles from the "middleman contentful" command.'
|
21
|
+
|
22
|
+
option :blog_posts_query, {}, "The conditions that are used on the Content Delivery API to query for blog posts"
|
23
|
+
option :blog_post_mappings, {}, "The mappings from Contentful DynamicResources to Middleman"
|
24
|
+
|
25
|
+
option :sync_blog_before_build, false, "Synchronize the blog from Contentful before the build phase"
|
26
|
+
|
27
|
+
def initialize(app, options_hash={}, &block)
|
28
|
+
super
|
29
|
+
|
30
|
+
app.set :contentful_middleman, self
|
31
|
+
app.set :contentful_middleman_client, client
|
32
|
+
|
33
|
+
app.before_build do |builder|
|
34
|
+
contentful_middleman.sync_blog if contentful_middleman.middleman_blog_enabled? && contentful_middleman.options.sync_blog_before_build
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# Is the Middleman blog extension enabled?
|
39
|
+
def middleman_blog_enabled?
|
40
|
+
app.respond_to? :blog
|
41
|
+
end
|
42
|
+
|
43
|
+
# Synchronize blog posts from Contentful through the CLI task
|
44
|
+
def sync_blog
|
45
|
+
Middleman::Cli::SyncBlog.new.contentful
|
46
|
+
true
|
47
|
+
end
|
48
|
+
|
49
|
+
def blog_post_mappings
|
50
|
+
@blog_post_mappings ||= ContentfulMiddleman::Core::DEFAULT_BLOG_MAPPINGS.merge(options.blog_post_mappings)
|
51
|
+
end
|
52
|
+
|
53
|
+
# The Contentful Gem client for the Content Delivery API
|
54
|
+
def client
|
55
|
+
@client ||= Contentful::Client.new(
|
56
|
+
access_token: options.access_token,
|
57
|
+
space: options.space,
|
58
|
+
dynamic_entries: :auto
|
59
|
+
)
|
60
|
+
end
|
61
|
+
|
62
|
+
helpers do
|
63
|
+
# A helper method to access the Contentful Gem client
|
64
|
+
def contentful
|
65
|
+
contentful_middleman_client
|
66
|
+
end
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'contentful_middleman'
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,108 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: contentful_middleman
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.4
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Sascha Konietzke
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-03-21 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: middleman-core
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.3'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: contentful
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rubygems-tasks
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ~>
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0.2'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0.2'
|
55
|
+
description: Load blog posts and other managed content into Middleman
|
56
|
+
email:
|
57
|
+
- sascha@contentful.com
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- .gitignore
|
63
|
+
- .travis.yml
|
64
|
+
- .yardopts
|
65
|
+
- CHANGELOG.md
|
66
|
+
- CONTRIBUTING.md
|
67
|
+
- Gemfile
|
68
|
+
- LICENSE.md
|
69
|
+
- README.md
|
70
|
+
- Rakefile
|
71
|
+
- TODO
|
72
|
+
- contentful_middleman.gemspec
|
73
|
+
- lib/contentful_middleman.rb
|
74
|
+
- lib/contentful_middleman/commands/article.tt
|
75
|
+
- lib/contentful_middleman/commands/sync_blog.rb
|
76
|
+
- lib/contentful_middleman/core.rb
|
77
|
+
- lib/contentful_middleman/version.rb
|
78
|
+
- lib/middleman_extension.rb
|
79
|
+
- spec/contentful_middleman_spec.rb
|
80
|
+
- spec/spec_helper.rb
|
81
|
+
homepage: https://www.contentful.com
|
82
|
+
licenses:
|
83
|
+
- MIT
|
84
|
+
metadata: {}
|
85
|
+
post_install_message:
|
86
|
+
rdoc_options: []
|
87
|
+
require_paths:
|
88
|
+
- lib
|
89
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
90
|
+
requirements:
|
91
|
+
- - '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
94
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
95
|
+
requirements:
|
96
|
+
- - '>='
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
version: '0'
|
99
|
+
requirements: []
|
100
|
+
rubyforge_project:
|
101
|
+
rubygems_version: 2.0.0
|
102
|
+
signing_key:
|
103
|
+
specification_version: 4
|
104
|
+
summary: Include mangablable content from the Contentful CMS and API into your Middleman
|
105
|
+
projects
|
106
|
+
test_files:
|
107
|
+
- spec/contentful_middleman_spec.rb
|
108
|
+
- spec/spec_helper.rb
|