jdormit / looped-in

A browser extension that displays Hacker News comments for the current webpage
GNU General Public License v3.0
67 stars 4 forks source link
chrome clojurescript firefox hackernews webextension

Looped In

A browser extension that displays Hacker News comments for the current webpage

Looped In is a browser extension that displays Hacker News comments for the current webpage in a sidebar. It is written in ClojureScript.

Looped In will be available from the Firefox Add-ons site and the Chrome Web Store pending review. If you'd prefer to clone the repository and run the extension locally, read on.

Usage

To obtain a copy of the source code:

$ git clone git@github.com:jdormit/looped-in.git

Building

To build Looped In locally, you'll need Leiningen and GNU Make.

To build the source code, navigate to the project root and run:

$ make dev

This will output a development build of the extension to ext.

If you want a production build instead, run:

$ make prod

This will output an optimized production build of the extension to ext.

To load the extension locally in your browser, see instructions for Firefox or instructions for Chrome.

Figwheel

The development build of Looped In supports live-reloading of the background and sidebar scripts via Figwheel. You have two options for connecting to Figwheel: directly in the terminal or through Emacs via CIDER.

Connecting to Figwheel from the terminal

Spinning up Figwheel in the terminal is straightforward:

$ make fig

This will compile a development build of the extension and attach a Figwheel REPL to the background script.

Connecting to Figwheel through CIDER

You'll need to install and configure clojure-mode and CIDER. If you use Spacemacs, just install the Clojure layer and you will be all set.

Before connecting to Figwheel from Emacs, make sure you have compiled a development build:

$ make dev

The .dir-locals.el file configures CIDER to start Figwheel when it launches a ClojureScript REPL. Launch a ClojureScript REPL with M-x cider-jack-in-clojurescript. Then switch to the REPL buffer with M-x cider-switch-to-repl-buffer.

Switching builds in Figwheel

Whether you use CIDER or the terminal, Figwheel will start connected to and live-reloading the background script. If you want to connect to and live-reload the sidebar script instead, run this command in the Figwheel REPL:

cljs.user> (switch-to-build sidebar)

Packaging

To package the extension for publication, run:

$ make package

This will package a production build of the extension to dist/looped-in.zip.

License

Copyright © 2018 Jeremy Dormitzer

Distributed under the GNU General Public License v3. See LICENSE.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.