我想使用 clojurescript 编写 chrome 扩展。
4 回答
Chrome 扩展通常使用 HTML/CSS/JS 制作,因此 ClojureScript 应该可以正常工作,因为它可以编译为 JavaScript。话虽如此,我认为还没有人真正使用 ClojureScript 构建过大型扩展。作为概念证明,这里概述了如何制作一个简单的警报扩展,它会说 Zaboomafoo(对不起这个名字):
首先安装Leiningen和lein-cljsbuild。阅读 lein-cljsbuild 的文档并查看关于 ClojureScript 的 wiki,以了解如何使用 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>
清单.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”的警报。希望让浏览器扩展变得更流行一点,但这是它的一般流程。
我刚刚发布了一个简单的 Chrome 扩展示例项目以及一些文档: https ://github.com/binaryage/chromex-sample
它使用 Chromex 库: https ://github.com/binaryage/chromex
免责声明:我是图书馆的作者
我开始这个项目的确切目的是使用 ClojureScript 编写一个 Chrome 扩展程序。
虽然greenyouse
答案确实为您提供了一般指导,但作为 ClojureScript 的初学者,我在使用时遇到了一些麻烦lein
,cljsbuild
因此选择首先进行基本设置。也许它会帮助某人。
旁注:我计划将我的项目迁移到lein
并且cljsbuild
一旦我更好地理解了事情。那时我会更新这个答案。
看看这个用 cljs 编写的 chrome 扩展,它允许您通过选择来评估浏览器中的 clojure 代码作为示例。