Od dłuższego czasu zbierałem się, żeby zrobić update mojego grammar checkera - w ten weekend się udało!
Wreszcie dodałem elementy, których mi brakowało:
Jak ktoś nie widział wcześniejszego posta (dawno to było) to w skrócie co to potrafi:
api.languagetool.org
) i możliwość użycia lokalnego serwera (zautomatyzowana instalacja),Używam na co dzień od dwóch lat (głównie do sprawdzania commitów, teraz także do README wszelakich).
Jak ktoś chce poczytać więcej to zapraszam na GitHub
Demko poniżej.
Pytanie zasadnicze. Czy da się użyć tego Twojego toola bez CLI? Wygląda jakbyś na tym CLI chwilę poświęcił, nie chciałbym go dodawać do swojej aplikacji, ale samo sprawdzanie wydaje się fajne.
@TomRiddle: Tak, apka wystawia dwie JSowe metody i można użyć jej jako biblioteki, tutaj masz dokumentację: https://github.com/caderek/gramma#js-api
@Maciej Cąderek: No dobra, ale jak ją ściągnę i użyję JSowych metod, to będę mógł zrobić wszystko to samo co się da z CLI? + Nie zainstaluje mi kodu do CLI? Nie chcę go w swojej aplikacji.
@TomRiddle: Zależy co rozumiesz przez "wszystko" - libka sprawdza tekst i zwraca sugestie zmian oraz umożliwia podmianki w tekście, przyjmuje też wszystkie opcje które maja sens bez TUI. Tylko wybór podmianek trzeba samemu obsłużyć (no bo tu potrzebny jest wybór przez użytkownika). Libka ma osobny entrypoint niż CLI i nie używa niepotrzebnych modułów - tylko te dwie funkcje + kod obsługi markdownu.
@Maciej Cąderek: Nie chodzi o rozmiar, tylko o zależność. Jak masz jakiegoś buga w CLI, to nie chcę przez to mieć buga u siebie w aplikacji.
@TomRiddle: No rozumiem, tak jak wspomniałem - jak zaimportujesz grammę jako bibliotekę to nie zawiera ona kodu CLI.
@Maciej Cąderek: ale mówisz tak dlatego że Twój build tool robi tree shake, i ten kod nie ładuje w source codzie? Czy faktycznie Twoje elementy są oddzielone? Bo jak mówisz że Ci się "nie chce" ich rozdzielać to ja obstawiam że to pierwsze.
Ale u ciebie to "API" to jest API HTTP (query params, etc.). A mi chodzi o interfejs programistyczny, żeby tego użyć jak zwykłej biblioteki JS, funkcje, metody i klasy, nie request paramsy i body.
@TomRiddle: Nie bardzo wiem czego oczekujesz - biblioteka służy do comunikacji z LanguageTool API lub innymi kompatybilnymi. Nie wiem jak by to miło to inaczej wyglądać - no bo chyba nie oczekujesz biblioteki do analizy naturalnego języka - czyli mojej implementacji LanguageTool (bo to projekt pisany latami przez dziesiątki kontrybutorów). Jeśli moja biblioteka nie spełnia twoich oczekiwań to może to Ci się spodoba: https://github.com/btford/write-good (ale jak sam autor wspomina - to bardzo prosta implementacja i wspiera tylko angielski).
@TomRiddle: To napisałeś program, a nie bibliotekę tak na prawdę.
- tego to już całkiem nie rozumiem.
@Maciej Cąderek: Oczekuję od niej, że będę mógł jej użyć w moim programie w JavaScript, bez używania Twojego CLI oraz bez używania API HTTP. Chciałbym zrobić coś w stylu new Gramma().check()
albo gramma().check()
albo dowolnej innej metody lub entry pointa który był zaprojektowany.
Jeśli nie rozumiesz, o czym mówię to dla mnie sygnał że tego nie zrobiłeś; i biblioteka nie udostępnia interfejsu programistycznego, co w efekcie sprawa że dla mnie jest bezwartościowa.
przeczytałam obsługa makaronu, chyba muszę coś pojeść