Odpowiedz

21

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.

-1

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.

+1

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

0

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ź.