Download: KnowHow_Wiki
Transkrypt
Download: KnowHow_Wiki
KNOW HOW Wiki MoinMoin Wiki Wiki pędziwiatr Członkowie zespołu pracującego nad jakimś projektem mogą odnieść wiele korzyści dzieląc się swoimi pomysłami lub wyjaśniając szczegóły i niejasności w centralnym miejscu zwanym repozytorium. Strony programu Wiki są wprost stworzone do tego zadania. HEIKE JURZIK J eszcze na długo przed pojawieniem się systemów zarządzania treścią, umożliwiających zarządzanie stronami internetowymi, systemy Wiki dostarczyły swego rodzaju „furtki” do stron HTML, umożliwiając każdemu odwiedzającemu daną stronę internetową edytowanie zawartości tej strony przy pomocy jednego kliknięcia myszą. „Wiki” to skrót od WikiWikiWeb – „wiki wiki” to zwrot pochodzący z języka hawajskiego oznaczający „szybki” lub „szybko”. SŁOWNICZEK CGI: CGI to skrót od angielskiej nazwy „Common Gateway Interface” (czyli „interfejs bram sieciowych”). Zapewnia on interfejs pomiędzy programami zewnętrznymi (lub skryptami) a serwerem sieciowym. Strony HTML są statyczne, a CGI umożliwia tworzenie zawartości stron w trakcie pracy. Programy w katalogu serwera sieciowego „cgi-bin” są uruchamiane automatycznie przez serwer na żądanie przeglądarki. Przykładowo, skrypty CGI przetwarzają wprowadzone informacje do formy stron HTML. 54 Kwiecień 2004 A system jest naprawę szybki. Mechanizm MoinMoin Wiki jest jednym z najlepszych przykładów zastosowania tej technologii. Użytkownicy za pomocą jednego kliknięcia myszą i wbudowanego edytora mają dostęp do zawartości i struktury strony, którą zamierzają edytować. Zwykle na stronie znajduje się odnośnik Edit, który umożliwia edycję strony. W porównaniu z „prawdziwym” językiem HTML, w którym spotykamy znaczniki formatowania, strony Wiki są napisane specjalną składnią, do której potrzeba tylko kilku rodzajów poleceń dla znaczników formatowania. Gdyby strona Wiki została usunięta lub uszkodzona, systemy kontroli wersji Wiki pozwalają na odtworzenie starszych wersji strony w dowolnym momencie. Ponadto system pozwala nadać specjalne prawa dostępu, umożliwiające edycję strony tylko przez zarejestrowanych użytkowników. Pierwsza strona internetowa Wiki została udostępniona publicznie w 1995 roku przez Warda Cunninghama – strona jest nadal dostępna w Internecie [1]. W tamtym czasie www.linux-magazine.pl Cunningham napisał wiadomość mówiącą o stworzeniu przez niego nowego rodzaju bazy danych, którą „umieścił na swoim serwerze (...). Jest to strona osób, projektów i wzorców, do których dostęp można uzyskać przy pomocy skryptu CGI.” [2]. Oznaczało to udostępnienie jego własnych stron HTML szerokiej rzeszy odbiorców. Nagłówek każdej strony Wiki zawiera odnośnik kierujący użytkowników do edytora, w którym możliwa jest zmiana, dodanie lub usunięcie zawartości strony. Oczywiście nie ma konieczności wpisywania kodu HTML. Celem Cunninghama było osiągnięcie prostoty i łatwiejsza składnia. Mechanizm Wiki przechowuje wprowadzone dane w formacie tekstowym ASCII lub też w zewnętrznych bazach danych typu MySQL, Oracle czy PostgreSQL. Z tych danych oprogramowanie Wiki generuje publiczne strony HTML. Warto odwiedzić obecnie największą stronę Wiki w sieci Internet – Wikipedia [3]. Znajduje się w niej mnóstwo artykułów w wielu językach. Jest to doskonały przykład organizacji informacji przy pomocy Wiki. Wiki /etc/init.d/apache restart dla Apache 1 oraz /etc/init.d/httpd restart dla Red Hat Linux). Jeżeli teraz podamy adres URL http://localhost/mywiki/ w naszej przeglądarce powinniśmy zobaczyć stronę powitalną Wiki (Rysunek 1). Jeżeli myślimy o uruchomieniu własnej strony Wiki, może nas zaskoczyć ilość dostępnego oprogramowania – istnieje ponad 100 systemów Wiki [4], z których większość to projekty typu Open Source. W tym artykule skupimy swoją uwagę na motorze MoinMoin oraz zajmiemy się jego składnią. Piaskownica Zanim wzbijemy się w powiet rze... Przed instalacją Wiki sprawdźmy, czy jesteśmy dobrze przygotowani i mamy uruchomione odpowiednie usługi na naszym komputerze, np. Apache [5]. Większość obecnych dystrybucji zawiera pakiety z wersją 2 tego serwera. Nie będzie trzeba zatem ręcznie kompilować źródeł programu. MoinMoin [6] to Wiki oparty na języku skryptowym Python [7], który musi być obecny w systemie. Można to sprawdzić wpisując polecenie python -V, jeśli nie jest dostępny – zainstaluj pakiety Pythona z płyt instalacyjnych dystrybucji Linuksa. Źródła MoinMoin Źródła MoinMoin można pobrać ze strony projektu. Aby rozpakować archiwum, należy wpisać tar xzvf moin-1.1.tar.gz, a następnie przejść do utworzonego katalogu (cd moin1.1) i nadać sobie uprawnienia użytkownika (root). Python może pomóc w instalacji oprogramowania. Poniżej podajemy następujące polecenie: huhnix:/moin-1.1 # python setup.py U install --record=install.log running install running build running build_py creating build creating build/lib creating build/lib/MoinMoin [...] Parametr --record=install.log zapisuje przebieg wykonanych czynności w pliku install.log. Następną czynnością jest odkrycie identyfikatorów użytkownika i grupy, z których korzysta serwer Apache. Można w tym celu przetworzyć plik konfiguracyjny Apache. W systemie SuSE Linux 8.2 wystarczy wpisać: huhnix:/moin-1.1 # egrep „^UserU |^Group” /etc/httpd/httpd.conf User wwwrun Group nogroup KNOW HOW Rysunek 1: Witamy! – MoinMoin krótko po uruchomieniu. Użytkownicy Red Hat Linux będą musieli przetworzyć tutaj plik /etc/httpd/conf/ httpd.conf, a użytkownicy Debian Linux – plik /etc/apache/httpd.conf. Przejdźmy teraz do katalogu moin (cd /usr/share/moin/ lub cd /usr/local/share/moin/), gdzie tworzymy nowe wcielenie Wiki: mkdir mywiki cp -r data mywiki cp cgi-bin/* mywiki chown -R wwwrun.nogroup mywiki chmod a+rx mywiki/*.cgi Użytkownicy Debiana będą musieli ponadto zmienić identyfikatory w chown na www-data.www-data, a użytkownicy systemu Red Hat Linux – na apache.apache. Następnie potrzebujemy jeszcze dwóch wpisów w pliku konfiguracyjnym Apache (czyli w /etc/httpd/ httpd.conf dla Apache 1 oraz /etc/apache2/ httpd.conf dla Apache 2 w systemie SuSE Linux, /etc/apache/httpd.conf w Debianie i /etc/httpd/conf/httpd.conf w Red Hat Linux): Alias /wiki/ „/usr/share/moinU /htdocs/” ScriptAlias /mywiki „/usr/localU /share/moin/mywiki/moin.cgi” W pliku konfiguracyjnym potrzebujemy tylko pierwszej linijki – druga jest wymagana dla każdego kolejnego przypadku Wiki na serwerze (pamiętajmy, aby zmienić ścieżkę dostępu i nazwę). Jeśli to możliwe, nie nazywajmy naszej strony Wiki jako wiki, gdyż prowadzi to do konfliktu nazw w wewnętrznych składnikach oprogramowania. Na koniec uruchamiamy ponownie serwer sieci (/etc/init.d/apache2 restart dla Apache 2, Podczas testów naszej nowej strony Wiki warto zwrócić uwagę na tzw. „piaskownicę”, do której odnośnik znajdziemy na stronie powitalnej (http://localhost/ mywiki/WikiSandBox). Klikamy odnośnik Edit this page (edytuj stronę), co spowoduje otwarcie nowego okna. Większość poleceń formatujących jest intuicyjna i łatwa do opanowania. W Tabeli 1 zamieściliśmy spis najważniejszych poleceń. Odnośniki można tworzyć na wiele różnych sposobów. Aby odwołać się do obcej strony internetowej, wystarczy podać adres URL, nie zapominając jednak o wpisaniu http://. Na przykład http://www.linux-magazine.pl jest prawidłowym adresem internetowym, ale www.linux-magazine.pl już nie. Ponadto, aby dołączyć dodatkowy opis do odnośnika, możemy użyć nawiasów kwadratowych – [http://www.linux-magazine.pl Strona domowa Linux Magazine]. W języku HTML wyglądałoby to tak: <a href='http://www.linux-magazine.pl'> Strona domowa Linux Magazine</a> Odnośniki wewnętrzne do stron Wiki wykorzystują tzw. zapis „CamelCase”. Zapis wymaga użycia wielkich liter na początku i gdzieś w środku nazwy odnośnika. Przykład: odnośnik LinuxMagazine będzie nas kierował do strony http://localhost/mywiki/LinuxMagazine. Jeżeli strona nie istnieje, MoinMoin pomoże nam ją stworzyć (Rysunek 2). Nawiasem mówiąc, jeśli dodamy przedrostek Moin- Rysunek 2: Wykorzystanie MoinMoin jako szablonu st rony. www.linux-magazine.pl Kwiecień 2004 55 KNOW HOW Wiki Moin: do odnośnika wewnętrznego, mechanizm Wiki utworzy odnośnik do oficjalnej strony MoinMoin Wiki. Zatem odnośnik MoinMoin:LinuxMagazine zaprowadziłby nas na stronę http://purl.net/ wiki/moin/LinuxMagazine. Pod maską Katalog /usr/share/moin/ htdocs/img/ zawiera wiele plików graficznych w formacie GIF, z których korzysta Wiki. Są to między innymi wszelkiego rodzaju ikonki obrazujące uczucia (emotikony). Oprogramowanie Wiki korzysta z tych Rysunek 3: Nasz własny znak firmowy. plików w momencie pojawienia się określonych ciągów znaków Umożliwia to oddanie indywidualnego w tekście. Ponadto Wiki dodaje kilka swocharakteru firmy, organizacji lub osoby ich własnych znaków, takich jak logo Pythopodczas projektowania strony wiki dla pona na każdej stronie, czy znak ostrzegawczy. trzeb większego projektu lub sieci Intranet Tabelka z dostępnymi uśmieszkami i spososwojej firmy. bem ich wprowadzania znajduje się pod adDzięki edycji pliku /usr/share/moin/mywiresem http://localhost/mywiki/HelpOnSmiki/moin_config.py możemy zmienić nazwę leys. strony Wiki. Zastępujemy wartość domyślną, reprezentowaną przez zmienną sitename, Katalog /usr/share/moin/htdocs/img/ zadowolnie wybraną nazwą, np. sitename = wiera różne obrazy, takie jak logo MoinMo'Specjalne wydanie biuletynu. W ten sposób nain, moinmoin.gif. Jeżeli na stronach Wiki zwa ta zostanie wyświetlona jako nagłówek chcemy użyć własnego znaku firmowego w przeglądarce internetowej. lub pliku graficznego (Rysunek 3), zapisujemy po prostu plik obrazu w katalogu /usr/share/moin/htdocs/img/ i dokonujemy Wiki otwarte dla wszystkich? edycji pliku /usr/share/moin/mywiki/moAdministratorzy Wiki mają kilka istotin_config.py. Wpis powinien mieć następunych zadań do wykonania; należy do nich jącą postać: między innymi obsługa i zarządzanie stronami. Strony Wiki znajdują się w podkatalogu Wiki data/text/. Przy pomocy logo_url = url_prefix + '/imgU polecenia rm możemy usunąć zawartość /Your_Imagefile' bezpośrednio z serwera. Zwykli użytkownicy Tabela 1: Składnia poleceń MoinMoin nie mogą usuwać stron, Składnia Wiki Składnia HTML Wyświetlane jako chyba że zostaną im ''kursywa <em>kursywa</em> <I>kursywa<I> wyraźnie nadane takie '''pogrubienie <b>pogrubienie</b> <B>pogrubienie<B> prawa w pliku konfigu##komentarz <!-->komentarz<--> nie wyświetlany na racyjnym /usr/shastronie re/moin/ [[BR]] <br> hard newline mywiki/moin_config.py. Nowa linijka <p> Akapit Jeżeli zamierzamy dać = Nagłówek = <h1>Nagłówek</h1> Nagłówek użytkownikom tę możli== Nagłówek sekcji == <h2>Nagłówek sekcji</h2> Nagłówek sekcji wość, powinniśmy dopi=== Poziom 3 === <h3>Poziom 3</h3> Poziom 3 sać poniższą linijkę: ==== Poziom 4 ==== <h4>Poziom 4 </h4> Poziom 4 ===== Poziom 5 ===== <h5>Poziom 5</h5> Poziom 5 ---- (cztery myślniki) <hr> Linia pozioma 56 Kwiecień 2004 www.linux-magazine.pl allowed_actions=U ['DeletePage'] Spowoduje to pojawienie się odnośnika DeletePage na stronie Wiki. Jeżeli ktoś z użytkowników kliknie myszą na ten odnośnik, MoinMoin poprosi o potwierdzenie wykonania polecenia, a następnie o podanie przyczyny takiego postępowania. Aby zapobiec tajemniczemu znikaniu stron Wiki, oprogramowanie zachowuje kopie zapasowe usuniętych stron w katalogu /usr/share/moin/mywiki/data/backup/. Ostatnie zmiany dokonane na stronie można sprawdzić poprzez kliknięcie odnośnika RecentChanges (ostatnie zmiany) znajdującego się na górze każdej strony – w ten sposób możemy się dowiedzieć, nad czym obecnie pracują użytkownicy. Twórcy oprogramowania MoinMoin pracują obecnie nad uprawnieniami dostępu opartymi na indywidualnych kontach użytkowników – funkcja ta dostępna jest już w wersji 1.1 razem z obsługą ACL (listy kontroli dostępu). Ogólnie rzecz biorąc, strony Wiki nie są chronione żadnymi mechanizmami zabezpieczeń – administratorzy powinni być tego świadomi. Jeżeli zdecydujemy się na prowadzenie otwartej strony w sieci Internet, prosimy w zasadzie o graffiti – każdy może wszystko. W wewnętrznej sieci Intranet Wiki może okazać się przydatnym narzędziem. Prostota obsługi i fakt, że użytkownicy nie muszą posiadać kont na serwerze, aby mieć możliwość edytowania zawartości strony oznaczają, że oprogramowanie Wiki jest całkiem rozsądną alternatywą dla wszystkich użytkowników nietechnicznych. ■ INFO [1] WikiWikiWeb: http://c2.com/cgi/wiki [2] Zapowiedź poczty elektronicznej: http://c2.com/wiki/mail-history.txt [3] Wikipedia: http://pl.wikipedia.org/ [4] Mechanizmy Wiki: http://c2.com/cgi/wiki?WikiEngines [5] Apache: http://www.apache.org [6] MoinMoin: http://moin.sourceforge.net [7] Python: http://www.python.org