Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
A quick & dirty git-powered Sinatra wiki
Ruby
tree: 9329a9d368

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
public
views
.gitignore
README
git-wiki.rb
index.text

README

Decklin's git-wiki
==================

Everyone needs a fork of git-wiki; here's mine. I have dispensed with
a few things in an attempt to make it even more minimal:

  * It doesn't require Rack. (But see below if you still want it.)
    git-wiki.rb reads like a naive Sinatra script and can be run from
    the command line.

  * It doesn't use a separate repository to hold the wiki; you clone
    git-wiki and then store your pages in that repo! From there,
    changes to the code can be merged from upstream or cherry-picked
    back. (You don't have to do this either; it's just the default.)

I've changed a few matters of taste, as well:

  * Page URLs are under /pages/. Instead redirecting to a "home page",
    / magically shows the contents of the page "index" (this name is
    configurable).

  * Wiki links use [[Brackets, Like This!]], and generate a link to
    (e.g.) "brackets-like-this". You *can* create a page with
    characters other than [a-z0-9-], but you won't be able to link to
    it as easily.

  * The extension for Markdown files is, by default, ".text".

  * There's a basic stylesheet included. The views themselves are more
    spartan, but since they are a part of your wiki's repository, you
    are encouraged to edit them.

And finally, I added a couple features and bug fixes:

  * You can enter a commit message when editing a page. If you don't,
    the default message only denotes that the commit was made from the
    web interface.

  * You don't have to use the branch 'master'; git-wiki always reads and
    commits to the current branch. (You may prefer to keep all your real
    pages in a branch, and have master just be a tracking branch.)

  * Page histories are viewable under /page/foo/revisions/.

Git-wiki was designed and written by Simon Rozet. He did the hard work, I
just fiddled with the chrome a bit. The original README contains a wealth
of additional information.

Installation and Use
--------------------

This git-wiki requires Sinatra, Grit, Haml, and RDiscount, all available
on RubyGems. Here's how to create a new wiki and run it:

    git clone git-wiki my-wiki
    cd my-wiki
    ./git-wiki.rb # and point browser to http://localhost:4567/

You can still run git-wiki with Rack if you want; create a trivial
config.ru (`require 'git-wiki'; run Sinatra::Application`) and then
run rackup.

Configuration
-------------

At the end of git-wiki.rb is a `configure` block (which applies to all
environments). Edit it, or copy it to your rackup script and override
the defaults. You can use this to set different wiki repositories for
development/testing/production if you want.

Caveats
-------

Because we use Grit by modifying the workdir and then calling `git
add`, git-wiki must be run with a non-bare wiki repo. If you want to
clone this repo and then push to it, you should read the [Git FAQ
entry][faq] about the perils of pushing to a repo with a checked-out
workdir.

In practice, you will hopefully never edit the workdir of the "live"
repo directly, so ensuring that receive.denyNonFastForwards is turned
on and adding a post-update hook to reset the index is a reasonable
(if not very clean) work-around.

[faq]: http://git.or.cz/gitwiki/GitFaq#push-is-reverse-of-fetch

License
-------

    Copyright (C) 2008 Simon Rozet <simon@rozet.name>
    Copyright (C) 2009 Decklin Foster <decklin@red-bean.com>

               DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
                       Version 2, December 2004

    Everyone is permitted to copy and distribute verbatim or modified
    copies of this license document, and changing it is allowed as long
    as the name is changed.

               DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
      TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

     0. You just DO WHAT THE FUCK YOU WANT TO.
Something went wrong with that request. Please try again.