awkiawki a light weight wiki as your personal wiki
--------------------------------------------------
Last edited: $Date: 2015/09/26 15:43:08 $
> awkiawki is written in awk
## 2015 and still talking about wiki?
Wiki seems to be something of the dark ages. They were popular about
10 years ago. So why bother talking about a wiki, let alone
installing a wiki?
It seems the entire internet has become reduced to only a few
vectors, like Facebook, GooglePlus and Evernote. So why bother
setting up a wiki?
When you start using a personal wiki it will quickly become a real
treasure. A wiki gives you the opportunity to quickly add a new page
and link from one to the other. You can make as many links and back-
links as you like. All your stuff is in it, and you can switch
quickly from one item to another. Make sure your wiki saves its data
as plain text files, so you can use powertools like grep on it.
> Hierarchies can get in the way
Most wikis are unstructured, this means all your wiki files are in
one big pool without any subdirectories. On first glance this seems
to be a bad thing. However, the data is not on paper but in files
so you can use things like grep to find what you need. Also
unstructured actually helps in assosiative thinking. A wiki does not
commit you to any hierarchical structure at any point, though you
can introduce it through a ordered system of categories with
category backlinks, see http://c2.com/cgi/wiki?CategoryCategory.
Some people use their wiki as Zettelkasten (see
http://takingnotenow.blogspot.nl/2007/12/luhmanns-zettelkasten.htm).
Every thought and every idea will be a small wiki note,
interconnected to one or more other notes. While your knowledge-base
and idea-base grows the interlinks grow exponential, giving you much
opportunity to get inspired with new insights and new ideas. Even
Jules Verne worked like this, leaving a collection of 25000 fact
cards
(see http://www.spiegel.de/spiegel/print/d-46407320.html,German)
after his death. See also this pdf (English) at Bristol reads:.
http://www.bristolreads.com/around_the_world/download_files/jules_verne.pdf.
Read more on Wikipedia page on Zettelkasten,
https://de.wikipedia.org/wiki/Zettelkasten (German).
But perhaps your usage could be more modest, with just a few notes
how to use your bash-shell or when your car has it last maintenance
service. No matter what your kind of use is, a wiki should be fast,
easy and must make it very easy to add new pages. Some people have a
few issues with the use of CamelCase to add new pages, but this is
something you will grow into without much trouble.
## Light weight personal wiki
When you are a vi-user (or better: a vi-lover) then you sure want to
use Vimwiki. However, sometimes you want a a wiki that is available
over the internet and can be used from within a browser. Vimwiki let
you export your wiki to html, but does not give a solution for
interaction over the internet like editing or adding pages.
> A personal wiki is great for keeping all your notes together.
There are many wikis available. My personal requirements are:
* Must be light weight
* Wiki data in flat files with plain Markdown-like syntax
### Light weight wiki
In most use cases, a light weight wiki is just as good as a not-so-
light wiki. You allmost never need the extra options of the more
heavier wiki products. Perhaps if you want to use attachments or a
lot of images a more feature-loaded wiki could be a better option.
But if you want a personal wiki for mostly note taking, a light
weight wiki will do fine.
I like small boards like the Raspberry Pi and the BeagleBone Black.
When you want to deploy a wiki on such small boards, then light
weight is really important.
I run my awkiawki on a Raspberry Pi with the data on the SD-card,
and this setup up turns out to be fast enough for real daily usage.
### Plain text files
It is important that your wiki saves the wiki files as plain text
files.
* First, we all love the power of plain text, see
http://c2.com/cgi/wiki?PowerOfPlainText.
* You can all use all the text powertools on plain text files,
see http://www.ibm.com/developerworks/linux/tutorials/l-gnutex/
* Plain text is great for revision control systems.
* Future-proof: A wiki in plain text markdown-like files is easy
to port to another wiki.
* Ease of use: Plain text files are easy to edit, so you can edit
your wiki both from your browser as well as from your editor
## awkiawki
Awkiawki is a wiki that uses awk. It is very light (about 300 lines of
code) and is very fast. See http://awkiawki.bogosoft.com/.
Awk is available on all the Unix like operating systems, like
FreeBSD, OpenBSD and Linux so you can run awkiawki anywhere. Just
add a webserver like lighttpd or apache.
Awkiawki saves the wiki files just as plain flat files.
### Revisions and page history
Awkiawki can put your wiki files on revison control. Simply put a line
with the following contents in your conf file:
rcs=true
Also a sub-directory named RCS in your data directory, and make sure
you have rcs installed.
When you have enabled rcs like this then Awkiawki will put a link
PageHistory under each page, which give you a list with the revison
versions and some options to view different versions and diffs.
### Search in the contents of your wiki
As light weight as it is, awkiawki comes with a powerful search
feature. On the right hand side of the bottom of your wiki pages is
a small input field with a search button. Type something in the
input field, hit the search button and you will be prompted with a
list of wiki pages containing the string you typed in the input box.
## Syntax
It seems like every wiki must invent its own syntax.
Fortunately, Awkiawki uses a classic wiki syntax. If you don't like
that, the code of awkiawki is easy to read so you can do some
changes to make it more to your liking.
I made some changes to match the syntax to some other wiki systems
that I use or have used.
Also, adding support for tables is not very complicated, see the
page of JW Stumpel http://jw-stumpel.nl/a-wiki-on-a-home-gateway He
shows a lot more changes to awkiawki, but you don't have to do all
of this, Awkiawki is a great wiki right out of the box (a.k.a.
tab-ball).
## Commit to git
I like the PageHistory option and have enabled RCS. However, I still
run a small shell script that automaticly commits any changes to my
central git repository. That way I know that the information in my
wiki will be in my backup :)
## Coexistence with vimwiki
I still use vimwiki as my main solution for my notes. Vimwiki uses
the power of Vim, and the diary option is a great solution for
connecting notes to dates.
The use of awkiawki allows my to have a wiki that can be used over
the internet with a browser on a laptop, tablet or even a
smartphone.
So I am thinking about a solution to integrate both wikis. Vimwiki
has its own syntax and adds an extension to the filenames. So
running vimwiki on the same files as the awkiawki is not possible.
## Just start
Remember to Do The Simplest Thing That Could Possibly Work. Keep it
small, keep it simple. And just start!
http://c2.com/xp/DoTheSimplestThingThatCouldPossiblyWork.htm
Install a light weight wiki with flat plain text files and start
using it. Soon you wonder how you ever lived without your wiki ...
$Id: awkiawki.txt,v 1.3 2015/09/26 15:43:08 matto Exp $