Skip to content

Provides editable inline content blocks to modify your content on the fly.

License

Notifications You must be signed in to change notification settings

renuo/micro_cms

Repository files navigation

MicroCms

Provides editable inline content blocks to modify your content on the fly.

Dependencies

Usage

To provide an editable content block, use the cms_block helper method in your view, e.g.:

= cms_block 'my.unique.block.identifier'
  h1 Default
  p This is my default content

To print the content in readonly mode, use the cms_content helper method in your view, e.g:

= cms_content 'my.unique.block.identifier'
  p My content if there's no content block yet

It's best to write an own helper method which also does authentication like

def cms(path, &block)
  if current_user&.write_cms?
    cms_block(path, &block)
  else
    cms_content(path, &block)
  end
end

Installation

Add this line to your application's Gemfile:

gem 'micro_cms'

And then execute:

$ bundle

Or install it yourself as:

$ gem install micro_cms

In your app, run

bin/bundle exec rake micro_cms:install:migrations
bin/rails db:migrate

to copy the migrations.

Mount the engine routes in you config/routes.rb file:

mount MicroCms::Engine => '/micro_cms'

Usage with Sprockets

Require the JavaScript (e.g. //= require micro_cms) and all styles (e.g. @import 'micro_cms';').

Usage with Webpacker

Make sure that you import rails/ujs like that in your application.js:

import Rails from '@rails/ujs';
Rails.start();
...
window.Rails = Rails;

The last line makes the Rails scope global (since we inline the script, this is needed).

Now you have to include the helper to your ApplicationHelper:

module ApplicationHelper
  include MicroCms::ApplicationHelper
  ...
end

Now you can use the helper to inline the needed scripts via app/views/layouts/application.html.slim. It's strongly recommended to check first, if the user is allowed to edit (but this is not part of this gem):

- if user_signed_in? # not part of this gem!
  = micro_cms_asset_tags

Configuration

app/config/initializers/micro_cms.rb:

MicroCms.configure do |config|
  config.ckeditor_configuration_file = 'ckeditor/config.js' # Custom ckeditor config. Optional
end

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/renuo/i18n-docs. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the code of conduct.

License

The gem is available as open source under the terms of the MIT License.

About

Provides editable inline content blocks to modify your content on the fly.

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published