#+TITLE: Welcome to the IGB Worg
#+AUTHOR: Michael Zeller
#+EMAIL: zellerm@uci.edu
#+OPTIONS: toc:nil
#+INFOJS_OPT: up:index.html view:showall

* Introduction

Welcome to Worg - a wiki engine built around =org-mode= and =org-babel=. Here you can edit any page in =org-mode= syntax, taking advantage of =org-babel= to run =R=, =perl=, =python=, or =sh= code. Markup is easily converted to HTML and elements can be styled using [[http://twitter.github.com/bootstrap/][Twitter Bootstrap]].

#+BEGIN_HTML
<br>
To view and/or edit private pages, please <a class="btn btn-primary btn-small" href="intro.html&mode=login">Login</a> first. To view all pages visible to you, please visit the <a href='index.html'>Index</a>. See the internal wiki to create an account.
#+END_HTML

* Features

#+BEGIN_HTML
<div class='alert alert-success'>Compilation of code blocks</div>
<div class='alert alert-success'>Twitter Bootstrap UI</div>
<div class='alert alert-success'>R Shiny app integration</div>
<div class='alert alert-error'>Simple markup language for creating runnable reports</div>
<div class='alert alert-error'>Version control and RSS feeds</div>
<div class='alert alert-error'>Code block caching</div>
<div class='alert alert-success'>User permissions</div>
<div class='alert alert-success'>Project specific read-only accounts</div>
<div class='alert alert-error'>Search</div>
<div class='alert alert-error'>Syntax Highlighting</div>
<div class='alert alert-success'>In-browser editor</div>
<div class='alert alert-error'>Comments and attachments</div>
#+END_HTML

* Syntax

The syntax used by worg is the same as that of =org-mode= including =org-babel= as would be found in your native =emacs= client, for =emacs= versions > =23.1=.

- [[http://orgmode.org/org.html#Markup][=org-mode= Syntax Guide]]
- [[http://orgmode.org/manual/Structure-of-code-blocks.html#Structure-of-code-blocks][=org-babel= Syntax Guide]]

Included in the Worg is an alternative syntax for =R= code blocks (=python=, =sh=, and =perl= are all also supported through =org-babel=). For this, please see the tutorial at file:tutorial.html.

* Navigation

Visit file:index.html for a list of pages available to you. After logging in and joining a project, you will have access to private pages and depending on write permissions, will be able to edit some pages.

* Permissions

Permissions can be set using a =.auth= file within any project folder. These settings will be inherited by any children directories, or can be overridden. For example, the following =.auth= file will allow only the user *Michael Zeller* to edit the files, but anyone within the projects *bogi* and *baldig* will be able to view. Additionally, the ignore directive will omit directories and all subdirectories matching any name on the ignore list, so that they will not be searched or displayed on the [[file:index.html][Index]].

#+BEGIN_EXAMPLE
[users]
users[]=Michael Zeller

[projects]
projects[]=igb
projects[]=collaborator

[ignore]
ignore[]="opt"
ignore[]=".git"
#+END_EXAMPLE

* Editing pages

Files can be edited in the terminal and checked in via git which will trigger autocompilation of any changed files. 

Alternatively, a built-in editor is provided for easily editing pages on the web. To edit any page, simply visit that page followed by &mode=edit, for example to edit this page you would visit [[file:intro.html&mode=edit]]. If you are not currently logged in or you have insufficient access, you will be prompted to login or change users.

Since org-mode is built on the =emacs= text editor, editing via =emacs= is preferred over the browser. To use the editor from the command line use the following aliases (in your =~/.bashrc=):

#+BEGIN_EXAMPLE
alias edit-org="bash /path/to/worg/utils/edit.sh"
alias compile-org="bash /path/to/worg/utils/compile.sh"
#+END_EXAMPLE

* Example

You can view the source of this page for a basic example of the =org-mode= syntax. This can be accessed for any page by selection "Source" from the "View" dropdown menu (after logging in), or can be viewed for this page by visiting: file:intro.html&mode=source

#+INCLUDE: intro.org src org