Подтвердить что ты не робот

Можно ли использовать Clojurescript или Google Closure для написания расширений Chrome или веб-приложения?

Я хочу использовать clojurescript для записи chrome-расширений.

4b9b3361

Ответ 1

Расширения Chrome обычно создаются с помощью HTML/CSS/JS, поэтому ClojureScript должен работать отлично, потому что он компилируется на JavaScript. Это, как говорится, я не думаю, что кто-то на самом деле построил большое расширение с ClojureScript. В качестве доказательства концепции здесь приводится общая схема того, как сделать простое расширение предупреждений, которое скажет Zaboomafoo (извините за это имя):

Установите Leiningen и lein-cljsbuild сначала, Прочтите документы для lein-cljsbuild и посмотрите wiki на ClojureScript, чтобы понять, как использовать lein-cljsbuild для проектов и компиляции.

Сделайте файл ClojureScript, в котором отображается предупреждение с надписью "Zaboomafoo" следующим образом:

(ns Zaboomafoo.hello)   
(js/alert "Zaboomafoo")

Скомпилируйте это с помощью lein cljsbuild, чтобы получить файл JavaScript. Затем добавьте основной файл HTML и manifest.json для расширения.

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
}

Поместите новые manifest.json, Zaboomafoo.html и Zaboomafoo.js в папку где-то очевидным. Наконец, перейдите на страницу расширения Chrome, включите режим разработчика, загрузите распакованное расширение и откройте новую вкладку. Расширение должно загружать предупреждение, которое досадно говорит "Zaboomafoo", когда вы открываете вкладку. Надеемся, что расширение браузера станет немного более популярным, но это общий поток.

Ответ 2

Я только что выпустил простой пример проекта расширения Chrome вместе с некоторой документацией: https://github.com/binaryage/chromex-sample

В нем используется библиотека Chromex: https://github.com/binaryage/chromex

Отказ от ответственности: я являюсь автором библиотеки

Ответ 3

Я начал этот проект с целью написания расширения Chrome с использованием ClojureScript.

В то время как ответ greenyouse дает вам общие указания, как новичок в ClojureScript, я столкнулся с некоторыми проблемами с использованием lein и cljsbuild и решил сначала перейти к базовой настройке. Может быть, это поможет кому-то.

Sidenote: я планирую перенести свой проект на lein и cljsbuild после того, как я пойму лучше. В этот момент я обновлю этот ответ.

Ответ 4

Посмотрите это расширение chrome, написанное в cljs, которое позволяет вам eval clojure код в браузере путем выбора в качестве примера.