Middleman Prismic
Installation
Add this line to your application's Gemfile:
gem 'middleman-prismic'
And then execute:
$ bundle
Or install it yourself as:
$ gem install middleman-prismic
Configuration
To configure the extension, add the following configuration block to Middleman's config.rb:
Parameter | i Description |
---|---|
api_url | the single endpoint of your content repository |
access_token | Prismic API OAuth2 based access token (optional) |
release | The content release (optional, defaults to master ) |
link_resolver | A link resolver. Expects a proc with one param, which is an object of type Prismic::Fragments::DocumentLink (optional) |
For instance:
activate :prismic do |f|
f.api_url = 'https://testrepositorymiddleman.prismic.io/api'
f.release = 'master'
f.link_resolver = ->(link) { binding.pry; "#{link.type.pluralize}/#{link.slug}"}
f.custom_queries = { test: [Prismic::Predicates::at('document.type', 'product')] }
end
Usage
Run bundle exec middleman prismic
in your terminal. This will fetch entries for the configured
spaces and content types and put the resulting data in the local data folder as yaml files.
For each document mask you have, you will get a file named prismic_{document-name}
under /data
.
So for instance if you have article and product document masks, you will get 2 files: prismic_articles
, prismic_products
.
Each file will contain all your documents of the specified document mask in an array.
In your templates, you get for free helper methods named after your document mask that return the Prismic equivelant object.
For instance for articles, if you run <%= articles %>
you get back a Prismic::Document
.
If at any time need access to Prismic::Ref
you can do it using the reference
helper.
Prismic Preview
Prismic supports a preview function by sending a browser to /preview
with a token
and document_id
on the query. This middleware is intended
to hook into Middleman to add a /preview
endpoint that will fetch the
preview content by token (as ref
) and display the content in the Middleman
server.
In your Middleman app, add the following to config.rb
to activate
this middleware:
require "middleman-prismic/preview"
use Middleman::Prismic::Preview,
app_url: 'https://mysite.prismic.io/api',
link_resolver: link_resolver
Now when running the middleman
server, any requests to /preview
will be
intercepted. The token
param will be read and used to execute
middleman prismic --ref ${token}
. Because Middleman is running as a
server, when the content from Prismic is downloaded, it will show the
live content when browsing the Middleman site.
Development
After checking out the repo, run bin/setup
to install dependencies. Then, run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
to create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
Contributing
- Fork it ( https://github.com/[my-github-username]/middleman-prismic/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request