Wiki to Git (wiki2git)

Data startowa: 
wtorek, 11 Lipiec, 2023
Wiki JS and CSS to Git

Wiki to Git (lub wiki2git) – narzędzie, które pomaga pobrać historię strony MediaWiki i wstawić ją do repozytorium Git. W ten sposób każda edycja staje się commitem. Natomiast posiadanie kodu poza MediaWiki może pomóc w rozwoju gadżetu używanego na Wikipedii (lub skryptu użytkownika).

Gdy już będzie mieć pobrane pliki do repozytorium Git, to możesz oczywiście pochwalić się swoją aktywnością na GitHub 😉 (również wstecznie!). Ale to nie wszystko. Od tego momentu możesz zacząć korzystać z bardziej standardowych narzędzi i tym samym wygodniej edytować kod, ale także analizować historię gadżetu (czyli np. narzędzi takich jak VSCode, eslint i git blame). Możesz również łatwiej tworzyć testy za pomocą narzędzi takich jak Mocha/Chai. A w przypadku większych gadżetów, możesz użyć narzędzi do budowania JS takich jak Browserify czy Webpack.

Jak już skończysz wstępne prace, to możesz użyć Wikiploy, aby wdrożyć swój gadżet z powrotem na Wikipedię. Wikiploy pomoże również we wdrażaniu wersji developerskich/testowych do twojej przestrzeni użytkownika (niezależnie od gadżetu).

Techniczne ciekawe elementy:

  1. Zachowuje autorów i daty ze strony wiki. W tym celu wykorzystywane są możliwości swobodnego tworzenia historii w Git (co jest również wykorzystywane przy konwersji z SVN do Git).
  2. Pobieranie wielu plików JS i CSS. Mimo wrzucenia ich niezależnie historia sama się przesortuje, gdy prześlesz swoje repozytorium na GitHub.
  3. Zapisywanie historii jako JSON. Pozwala to pobrać historie dwóch stron i scalić je poza wiki. Może to być przydatne do połączenia historii skryptu użytkownika, który został później skopiowany do gadżetu bez zachowania pełnej historii zmian.
  4. Globalny skrypt (bin). Po globalnej instalacji moduły jest możliwość bezpośredniego wykonania skryptów przez shell (cmd, bash itp). Skrypty są uruchamiane z parametrami i umożliwiają dodanie plików do istniejącego już repo (bez instalacji modułu w danym repo).

Linki

Licencja:

Wersje językowe:

Technologie: