Static Content
Static Content provides an easy way of defining static content in your application.
Installation
Add this line to your application's Gemfile:
gem 'static_content'
And then execute:
$ bundle
Or install it yourself as:
$ gem install static_content
After install the gem, you just need run the install generator:
$ rails g static_content:install
Usage
Creating content
The content we create can be normal text or a markdown. Let`s see the way we can create a content.
Standard Way
You can create as a normal model with:
Content.create({slug: :about_title, text: "My awesome about page"}, as: :admin)
special attention to the as: :admin
, the fields is only acessible to admin
.
This is intended to be used with admin panels such as Typus or ActiveAdmin.
The better way
The better way is to use the Content.from_slug
like:
Content.from_slug(:about_title, default: "My awesome about page")
as this uses find_or_initialize
, if is a new slug
its create, if a old one its only return the value not raising a error.
So you can use this on a seed for example to create the default things.
Showing content
content
Show your content as html converted from markdown, in your view, just add:
<%= c :about_title, default: "# My awesome about page" %>
to be converted into
<h1>My awesome about page</h1>
Please note that a default
option is required. If it hasn't been created, it will be created upon the first request.
raw content
Show your raw content, in your view, just add:
<%= rc :about_title, default: "# My awesome about page" %>
no change the value as
# My awesome about page
Please note that a default
option is required. If it hasn't been created, it will be created upon the first request.
Warning
Static Content generates a model Content
and a table contents
, so your app should not contain this model and table.
Versioning
Static Content follow the Semantic Versioning.
Issues
If you have problems, please create a Github Issue.
Contributing
Please see CONTRIBUTING.md for details.
Credits
Static Content is maintained and funded by HE:labs. Thank you to all the contributors.