Homeland
A new style forum for tiny community as Rails Engine. You can mount this in any of you Rails apps.
演示网站: https://homeland-app.herokuapp.com
我们时常可能需要在各类中小型项目中集成用户社区之类的功能,每次当你需要做这个事情的时候都重头设计实现一遍么? No, that no the Rails way! Rails 教育我们要 DRY!
Homeland 是基于 Rails Engine 实现的论坛社区 Gem,用于快速开发,类似 Devise 给我们解决账号体系的方案一样。它包含数据库、Model、Controller、Views 以及 UI 细节的完整实现,你只需简单几行就能快速在你的现有项目上面集成起来。
功能列表
系统依赖
由于内部包含较多复杂功能,Homeland 不得不需要依赖一些三方库,Homeland 尽可能的选用 Ruby 社区流行的 Gem,保持较小的版本依赖。
建议你使用的时候选择目前 homeland.gemspec
里面描述的最佳的三方库版本号。
下面是几个基本的
- Rails 4.2.x +
- ActiveRecord 4.2.x +
- Bootstrap 4 Alpha (当然如果你重写 View 可以不管它)
安装
仅仅需要几步,就能集成到你的任何应用(当然我说的是 Rails + ActiveRecord 的!)。
[提示]: Homeland 的默认配置是增对 Devise 设计的,你可以从配置文件里面看到,很多参数都是 Devise 的默认值。所以我建议大家尽可能的使用 Devise 来配合(如果情况允许的话),否则你需要实现一些必要的参数,详见后面的配置文件说明。
- 修改 Gemfile 增加:
gem "homeland"
gem 'font-awesome-sass-rails'
gem 'github-markup'
然后直接 bundle install
安装好.
- 生成 Homeland 的基本配置文件:
$ rails g homeland:install
- 自定义配置
Homeland.configure do
end
如果你有更高级的需要,可以直接生成出 Homeland 的 Model, Controller, View 文件,然后按自己的需要定制:
$ rails g homeland:models
$ rails g homeland:controllers
$ rails g homeland:views
你也可以通过下面的命令生成默认的 I18n 文件
$ rails g homeland:i18n
实现自己的文章内容格式化
Homeland 默认提供: [:markdown, :simple, :html] 几种可选的内容格式化方式,但某些时候你可能会有更多的需求,需要按自己的需要定制。
Homeland 提供的方式让你达到这个目的。
你需要在 Homeland::Markup
命名空间下面实现一个新的自定义类,并继承 Homeland::Markup::Base
,实现 render
函数,例如:
新建文件 lib/homeland/markup/ruby_china.rb
module Homeland
module Markup
class RubyChina < Base
class << self
def render(raw)
YouCustomRender.render(raw)
end
end
end
end
end
需改 config/initializes/homeland.rb
Homeland.configure do
self.markup = :ruby_china
end
然后,Homeland 在转换格式的时候,就会用你的自定义 Markup 来处理了。
Demo App