Я хочу использовать clojurescript для записи chrome-расширений.
Можно ли использовать Clojurescript или Google Closure для написания расширений Chrome или веб-приложения?
Ответ 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 код в браузере путем выбора в качестве примера.