Oy! is a Wiki based on git. Purely written in Ruby with few dependencies. All you need to use it is clone Oy!, create a new git repos and start the application.
This is inspired by gollum, the github wiki. Ramaze is the framework.
The entire content is stored plaintext in the git repos, there are multiple ways to add/edit content. The Webfrontend, $EDITOR
or the Oy! Ruby-API.
Pathnames for wikipages are as well available in the git repos. So the page you get while requesting /test/index
is equivalent with /path/to/your/repos/test/index.textile
. Media files, for now only images, are stored in media/
with full history.
- No Database backend but Git powered.
- Nice default template. Besides this, the look of Oy! is 100% customizeable for every single repository. Thanks to MVC its possible to edit template files or customize Javascript or CSS. Just create a
{_view,_public,_layout}
directory within your repos and copy the original files to the right location and edit them for your needs. - Entire directories or single files are lockable from commandline. Given a file
./hello.textile
in your repository run atouch ./hello.textile.locked && git add ./hello.textile.locked && git commit -m "lock hello"
and/hello
is readonly for the webinterface or through the Oy! Api. - Media files uploaded via the webinterface are stored with full history in the repository. To lock a directory:
touch ./.locked && git add ./.locked [...]
— every single file in this directory is write protected now. - Simple REST like api. Just try a
curl http://wiki.kommunism.us/api/GET/index
. Also its possible to POST — The Oy! executable provides a method to do this. I’ts done like thiscat index.textile | oy.rb -P http://wiki.kommunism.us/index
- Different Markups; for now RedCloth (which is default), Markdown, and ORG. I’ts dead simple to add your own.
- Unicode support for pages, try [[test/ěĕėƒĝğġģĥ ěĕėƒĝğġģĥ]]
- Support for graphs from tables, on top of Google graph api and gvChart gem
- Syntax highlighting for for source code via [[http://softwaremaniacs.org/soft/highlight/en/ Hightlight.js]]
- Support for [[https://gist.github.com/ Gists]] ’[[gist 1337]]
- Youtube support. Its possible to embed videos ’[[yt asdf1234 embed]] or just show an image with a link to the video ’[[yt asdf1234]]
- Textile/RedCloth
gem install RedCloth
, the default markup system. - Markdown
gem install rdiscount
- Org
gem install org-ruby
For now the best way is to clone the repos, run rake build
and install the gem:
git clone git://github.com/entropie/oy.git && cd oy && rake build && sudo gem install pkg/*.gem
After installation run oy.rb --help
. For the lazy ones: oy.rb -r /path/to/initialised/git/repos -p <port> -h <hostname>
The default port ist 8200 and the default hostname is localhost.
This is really an early release. There will be bugs, probably lots of it. If a bug bites you in your hand please file it. As well you might want to request features, which is totaly fine, but dont expect it will be done soon. You’re encouraged to make a fork and add features yourself.
- [[about/todo Todo]] Generated by Rakefile from ./TODO.howm
- Generated Documentation (yard)
- Rspec output
- Coverage