*WARNING: It's unstable branch for migration to Rails 4*
Irwi is a Ruby on Rails 4 plugin which adds wiki functionality to your application.
Add to your Gemfile:
gem 'irwi', :git => 'git://github.com/alno/irwi.git'
Then in your application directory call:
rails g irwi_wiki
It will generate:
WikiPageController to serve wiki pages
WikiPage model to represent page
Migration to prepare database
Also it will add to your
routes.rb something like:
Wiki syntax (links to other pages)
You can link pages by using
- [Some page title]
construction in text. If linked page exists, when it will be replaced with link to this page, in other case it will be replaced with link to new page with such path/title.
You may create your own templates for controller actions (
history), in other case default built-in templates will be used.
Following helpers are defined by default and you may replace them with you own:
wiki_user- Renders user name or link by given user object. By default renders <Unknown> for
niland “User#useruser.id” for others.
Configuration options are acessed via
Irwi.configobject. Currently supported options:
user_class_name- Name of user model class. By default - 'User'
Define a method named 'current_user' method on WikiPagesController that returns the object for the current user
formatter- Formatter instance, which process wiki content before output. It should have method
format, which gets a string and returns it formatted. By default instance of
Irwi::Formatters::RedClothis used (requires RedCloth gem). Other built-in formatter is
Irwi::Formatters::BlueCloth(requires BlueCloth gem). Option accepts formatter instance, not class, so correct usage is:
Irwi.config.formatter = Irwi::Formatters::BlueCloth.new
comparator- Comparator instance, which builds and renders a set of changes between to texts. By default instance of
Irwi::Comparators::DiffLcsis used (requires diff-lcs gem).
If you want (and it's good idea) to specify which users can see or edit certain pages you should simply override following methods in your controller:
show_allowed?- should return
truewhen it's allowed for current user to see current page (@page).
history_allowed?- should return
truewhen it's allowed for user to see history of current page (@page) and compare it's versions.
edit_allowed?- should return
truewhen it's allowed for current user to modify current page (@page).
Irwi allows easy attachment integration in your wiki. There area several simple steps to add attachments to wiki pages:
irwi_wiki_attachmentsgenerator. It will create WikiPageAttachment class.
config.gem "paperclip"in your
environment.rbor, if you prefer another library modify generated code for it.
Append to initializer (or create a new one) something like
Irwi.config.page_attachment_class_name = 'WikiPageAttachment'.
rake db:migrateand start using attachments in your wiki!
Alexey Noskov (github.com/alno)
Ravi Bhim (github.com/ravibhim)
Pavel Valodzka (github.com/valodzka)
Xavier Defrang (github.com/xavier)
Tomáš Pospíšek (github.com/tpo)
Evan Arnold (github.com/earnold)
Feel free to add yourself when you add new features.
Copyright © 2009 Alexey Noskov, released under the MIT license