Chcę użyć clojurescript do pisania rozszerzeń chrome.Czy można używać rozszerzeń Chrome lub aplikacji internetowej za pomocą Clojurescript lub Google Closure?
Odpowiedz
Rozszerzenia przeglądarki Chrome są zwykle tworzone za pomocą HTML/CSS/JS, więc ClojureScript powinien działać dobrze, ponieważ kompiluje się do JavaScript. Mówiąc to, nie sądzę, aby ktokolwiek jeszcze zbudował duże rozszerzenie z ClojureScript. Dowodem na to jest ogólny zarys, w jaki sposób utworzyć proste rozszerzenie alertu, które powie: Zaboomafoo (przepraszam za tę nazwę):
Najpierw zainstaluj Leiningen i lein-cljsbuild. Przeczytaj dokumentację dla lein-cljsbuild i zapoznaj się z wiki on ClojureScript, aby zrozumieć, jak używać lein-cljsbuild do projektów i kompilacji.
Zrób plik ClojureScript który wyświetla alert mówiący „Zoboomafoo” tak:
(ns Zaboomafoo.hello)
(js/alert "Zaboomafoo")
skompilować ten z lein cljsbuild
uzyskać plik JavaScript. Następnie dodaj podstawowy plik HTML i plik manifest.json dla rozszerzenia.
Zaboomafoo.html:
<!Doctype html>
<html>
<head>
<title>Zaboomafoo!</title>
</head>
<body>
<script type="text/javascript" src="Zaboomafoo.js"></script>
</body>
</html>
manifest.json:
{
"name": "Displays Zaboomafoo when opening a new tab",
"version": "0.1",
"incognito": "split",
"chrome_url_overrides": {
"newtab": "Zaboomafoo.html"
},
"manifest_version": 2
}
Włóż nową manifest.json, Zaboomafoo.html i Zaboomafoo.js do folderu gdzieś oczywiste. Na koniec przejdź do strony rozszerzenia Chrome, włącz tryb programisty, załaduj rozpakowane rozszerzenie i otwórz nową kartę. Rozszerzenie powinno załadować alert, który denerwująco mówi "Zaboomafoo" po otwarciu karty. Mam nadzieję, że rozszerzenie przeglądarki stanie się trochę bardziej popularne, ale taki jest ogólny przepływ.
Spójrz na rozszerzenie chrome this napisane w cljs, które pozwala na eval clojure kod w przeglądarce przez wybór jako przykład.
Rozpocząłem projekt this z dokładnym celem pisania rozszerzenia Chrome przy użyciu ClojureScript.
Podczas gdy odpowiedź zapewnia ogólne wskazówki, jako początkujący w ClojureScript miałem problemy z używaniem lein
i cljsbuild
i wybrałem najpierw instalację podstawową. Może to pomoże komuś.
Strona poprzednia: Zamierzam przeprowadzić migrację mojego projektu do lein
i cljsbuild
, gdy zrozumiem lepiej. W tym momencie zaktualizuję tę odpowiedź.
Właśnie wydany prosty projekt rozszerzenia Chrome próbki wraz z dokumentacji: https://github.com/binaryage/chromex-sample
Wykorzystuje Chromex Biblioteka: https://github.com/binaryage/chromex
Oświadczenie: Jestem autorem biblioteki
Wydaje podobnie jak ten projekt (goranjovic/chromeclojure) nie używa żadnego ClojureScript. Zamiast tego rozszerzenie Chrome (napisane prostym JavaScriptem) wysyła wybrany kod Clojure do zewnętrznego procesu JVM Clojure i zwraca wynik do przeglądarki. Nie sądzę, żeby tak naprawdę było to, czego szukał plakat. – Aaron