Wiki
Před pár lety, přibližně okolo roku 2002, nastal boom wiki. Všichni byli z Wiki
nadšení a každý kdo ještě ho neměl nebyl patřičně IN. Tyto nadšené doby sice už
minuly, ale Wiki je stále velmi užitečným nástrojem.
Wiki je web aplikace typu groupware, která umožňuje uživatelům spolupracovat
na editaci hypertextových dokumentů. Skládá se ze systému pro správu verzí, markup systému (nepoužívá se HTML) a vyhledávacího engine. Klíčovým rysem Wiki technologie je umožnit komukoliv (nebo alespoň registrovaným uživatelům) měnit obsah
většiny stránek.
Wiki lze využít mnoha způsoby. Nejčastější využití je knowledge base typu WikiPedia, ale vzhledem k snadné editaci se
Wiki používají i jako blogy, CMS, databáze nebo CRM. Osobně používám wiki jako
poznámkový bloček kombinovaný s TODO listem a Bug/installation tracking
systémem. Hezky se při tom využije jedna ze základních vlastností wiki -
ukládání komentované historie změn.
Proč zrovna MoinMoin
MoinMoin má mnoho pokročilých
vlastností. Stránky lze hierarchicky uspořádat, používat šablony a
kategorie, full text search, sledovat úplnou historii změn, generovat grafy počtu změn a přístupů. Markup jazyk podporuje renderování tabulek včetně
custom HTML atributů, syntax highlighting, smajlíky, makra, attachmenty, inline HTML,
generování slide show, plná podpora Unicode a I18N, export změn ve formě RSS,
rozesílání změn emailem, WYSIWYG editace, XMLRPC podpora, ACL listy, Antispam
systém, podpora DocBook a ReStructuredText.
Instalace MoinMoin
MoinMoin je naprogramováno v jazyce Python, což je pro někoho dobrá a pro
někoho zase špatná zpráva. Já osobně jsem si před léty MoinMoin nainstaloval
jelikož jsem příznivcem programovacího jazyka Python. Jelikož je Python multiplatformní, MoinMoin běhá i pod Windows. Ačkoliv minimální
podporovanou verzí je Python 2.3, doporučuji minimálně díky bugfixům a memory
leakům interpretru nainstalovat Python 2.4.4.
Administrátory jistě potěší, že kromě Pythonu už není nic jiného zapotřebí.
Není potřeba ani PHP, ani Apache, ani SQL databáze. MoinMoin umí běžet i v
prostředí twisted, mod_python, CGI, FastCGI, WSGI, ale nejrychleji běhá v jako standalone aplikace, což se i nejsnáze konfiguruje.
Instalaci lze provádět i z balíčku, pokud pro vaše distro existuje, ale
vzhledem k rychlosti aktualizace většiny dister (pravda jsou i vyjímky jako FreeBSD nebo Gentoo) je lepší instalovat ručně, abychom měli rychlejší přístup k bugfixům.
K instalaci je použit standardní Python modul distutils. Osobně instaluji
s těmito přepínači:
python setup.py --quiet install --install-data='/usr/local' --record=install.log
Instalace instance
Druhým krokem je vytvoření instance. To už je trošku složitější, podívejte
se do
instalačního návodu V našem případě to bude vypadat takto:
mkdir -p /usr/local/www/wiki
cd /usr/local/www/wiki
cp -R /usr/local/share/moin/data .
cp -R /usr/local/share/moin/underlay .
cp /usr/local/share/moin/config/wikiconfig.py .
cp /usr/local/share/moin/server/moin.py .
cp /usr/local/share/moin/server/moin .
Pro adresář instance je vhodné nastavit restriktivnější přístupová práva, neboť
kromě stránek (což jsou veřejná data) obsahuje i databázi registrovaných uživatelů.
chown -R www-data /usr/local/www/wiki
chmod -R u+rwX /usr/local/www/wiki
chmod -R g-w /usr/local/www/wiki
chmod -R o-rwx /usr/local/www/wiki
Konfigurace
Počáteční konfigurace je jednoduchá. V souboru /usr/local/www/wiki/moin,
který slouží ke startování / zastavování wiki,
doplňte dráhu k moin.py takto:
# Add the path to moin.py directory
sys.path.insert(0, '/usr/local/www/wiki')
Standalone server se konfiguruje v souboru moin.py. Upravte cestu
ke konfiguraci wiki stejně jako v předchozím prípadě a nastavte
cestu k statickým komponentům docs = '/usr/local/share/moin/htdocs'.
V moin.py lze nakonfigurovat port a uživatele pod kterým wiki server běží.
Konfigurace vlastního wiki je v souboru wikiconfig.py. V konfiguraci není třeba
provádět moc změn. Většinou změníte jen jméno wiki a případně startovací
stránku. Je potřeba použít unicode Stringy (prefix u).
sitename = u'Retro Wiki'
page_front_page = u"Start".
Nejdůležitější část konfigurace se nachází v sekci Critical setup
a obsahuje nastavení datových adresářů v našem případě bude následující
data_dir = data_dir = '/usr/local/www/wiki/data/'
data_underlay_dir = '/usr/local/www/wiki/underlay/'
Upgrade z předchozích verzí
Čas od času se změní formát datových souborů a kromě aktualizace
vlastního MoinMoin software je potřeba překonvertovat i stávající data.
Od verze MoinMoin 1.5.3 se data konvertují snadno. Zastavte wiki server
a proveďte následující příkazy
sudo -u www-data sh
moin --config-dir=/usr/local/www/wiki migration data
Migrace z verzí starších než 1.5.3 je složitější, podrobnější
informace se dozvíte v souboru docs/README.migration.
Start
Wiki server se spouští scriptem /usr/local/www/wiki/moin s parametrem
start a zastavuje obdobně s parametrem stop. Je vhodné zajistit jeho
spuštění při startu systému.
Většina administrátorů preferuje wiki zaintegrované do jmenného
prostoru serveru. (Lepší GoogleRank, ušetří se jedna IP adresa a některé
firewally nepovolují HTTP komunikaci na jiném portu než 80. Nejjednodušší
je použít proxy modul z Apache. Podrobnosti o nastavení
najdete
zde.
Používání Wiki
MoinMoin, ostatně jako většina wiki, se používá snadno. Hlavním problémem
začínajících uživatelů je vypořádat se s markupem stránek, který se liší podle
použitého wiki engine. MoinMoin uživatelům v tomto pomáhá. Jednak je při
editaci zobrazeno kratičké připomenutí základní syntaxe (dokonce i v češtině,
pokud ji máte nastavenou v prohlížeči) a od verze 1.5 lze použít GUI (WYSIWYG)
editor stránek, který sice neumí všechny markup finesy, ale pro většinu editací
plně postačí. Vytváření nových stránek je také snadné, stačí zadat jméno
požadované stránky do browseru jako URL a MoinMoin nabídne její vytvoření, při
kterém je možné použít některou z připravených šablon.
Markup
MoinMoin používá tradiční wiki CamelCase linky. Každé slovo CamelCase slovo se automaticky stává hyperlinkem na stejnojmennou stránku. Pokud chcete CamelCase slovo aniž by se stalo
linkem je třeba vložit do slova nějakou prázdnou formátovací sekvenci
např. Camel``Case. Jména stánek jsou case-sensitive.
V MoinMoin se pro hypertextové odkazy používají hranaté závorky, které lze u
CamelCase či URL odkazů vynechat. Odkaz na wiki stránku se píše do uvozovek
["stranka"], u externích odkazů link text následuje URL:
[http://moinmoin.wikiwikiweb.de/ Domovská stránka MoinMoin] se zobrazí jako
Domovská stránka MoinMoin.
MoinMoin podporuje také InterWiki
linky. Před jméno stránky stačí napsat jméno Wiki oddělené dvojtečkou např.
WikiPedia:Linux. Jména ostatních wiki a jejich URL jsou uloženy v adresáři instance v souboru data/intermap.txt, který v současné době obsahuje 131 záznamů.
Nadpisy se zapisují pomocí = t.j. = nadpis první úrovně =, == nadpis druhé úrovně == atd. Co se týče ostatního nejpoužívanějšího markupu, kurzíva se píše do ''dvojitých uvozovek'' a tučný text do '''trojitých'''. Docela hezkým trikem je zapisovat email adresy pomocí makra MailTo
[[MailTo(hsn AT SPAMFREE sendmail DOT cz)]], které je pak ukáže jen přihlášeným uživatelům.
Skinování MoinMoin
MoinMoin se dá velice dobře nejen skinovat, ale také rozšiřovat pomocí pluginů a maker. Popis tvorby těchto rozšíření však
přesahuje rozsah tohoto článku a tak se alespoň můžete
inspirovat v
galerii screenshotů, kde najdete obrázky z několika známých wiki
používající MoinMoin engine.
MoinMoin VS MediWiki
Dalším známým wiki enginem zejména díky projektu WikiPedia je MediaWiki. MediaWiki je
zaměřeno zejména na větší projekty s důrazem na výkon a škálovatelnost. MoinMoin nebylo navrženo pro wiki obsahující statisíce stránek, osobně bych MoinMoin nepoužil pro wiki čítající více než několik málo tisíc stránek, většina wiki je však mnohem menší, průměrná wiki obsahují maximálně pár set stránek. Srovnání
MediaWiki VS MoinMoin je k dispozici
zde a
zde.
Na závěr
Jak již jsem napsal v úvodu, Wiki (zejména doupravované) se dají použít pro
široké spektrum web aplikací na kterých není použití wiki engine na první
pohled vůbec poznat. MoinMoin se snadno upravuje a data jsou uložena v
jednoduchém formátu, takže je není problém do tohoto formátu vyexportovat.