MoinMoin i Vim
Niespecjalnie przepadam za webowymi edytorami. Zazwyczaj są brzydkie, niewygodne i powolne ” a ten wbudowany MoinMoin Wiki też nie zachwyca. Możecie więc wyobrazić sobie, jaką przyjemność sprawiło mi odkrycie skryptu editmoin, pozwalającego edytować zawartość wspomnianego wiki za pomocą ulubionego edytora. Oto kilka podpowiedzi, które mogą odrobinę ułatwić nam pracę:
- Editmoin bazuje na zawartości zmiennej EDITOR ” przy jej braku używa vi
- W dokumentacji troszkę niejasno opisano logowanie się do wiki z użyciem nazwy użytkownika: konfiguracja powinna być dokładnie taka sama, jak w przypadku użycia ID, tylko parę:
https://naszew.wiki/ UserNamewpisujemy do pliku ~/.moin_users. - Jeśli korzystamy z wiki w antycznej wersji 1.5.x i chcemy logować się z nazwą użytkownika, musimy wprowadzić drobną zmianę do skryptu. Odszukujemy w nim procedurę get_session_cookie() i zamienić jej ostatnie linie, wyglądające tak:
for morsel in cookie.values(): if morsel.key.startswith("MOIN_SESSION"): return morsel.key, morsel.value raise Error("Couldn't obtain session cookie from server")na następujące:
for morsel in cookie.values(): if morsel.key.startswith("MOIN_SESSION"): return morsel.key, morsel.value if morsel.key.startswith("MOIN_ID"): return morsel.key, morsel.value raise Error("Couldn't obtain session cookie from server")Gdyby ktoś chciał mi zwrócić uwagę na to, że startswith() można zapisać bardziej kompaktowo to już się tłumaczę: to nie zadziała w Pythonie 2.4.
Poprawka przeznaczona jest dla skryptu w wersji 1.15.
-
Jeśli korzystamy w naszym wiki z innych formatów zapisu, takich jak Markdown czy ReST to możemy wspomóc się odrobinę rozszerzonym przykładem dla vima. Oczywiście zakładam, że odpowiednie pliki składni mamy już zainstalowane.
au! BufRead,BufNewFile *.moin \ let s=search("^$", 'n') \ | if search('^#format rst$', 'n', s) > 0 | setf rst \ | elseif search('^#format markdown$', 'n', s) > 0 | setf mkd \ | elseif getline(1) =~ '^@@ Syntax: 1\.5$' | setf moin1_5 \ | else | setf moin1_6 \ | endif
Wygodnej pracy!
