Skip to content

rosano/launchlet

Repository files navigation

Project logo

Customize the web with JavaScript or CSS

Launchlet is a simple way to add a name to snippets of code and run it. Inspired by Quicksilver, it functions primarily via mouseless interaction and lets you access your Recipes with a few keyboard strokes. You can also use it to personalize websites with custom CSS or JavaScript. Read the guide for more details.

You can run Launchlet as a bookmarklet, browser extension, or as a module in your own project to add a 'jump to' functionality.

There is also an app where you can compose a launcher personalized with your own Recipes.

Open app

Architecture

The project follows a Universal folder structure and is a large collection of mostly small modules or functions that are put together using Svelte and Rollup. With the exception of a few 'global' or 'magic' things such as the localization function OLSKLocalized, most resources used by a module should be in the same folder or referenced by path name.

Routing, rendering markdown content, and serving pages is done via a Node.js server (usually configured in the controller.js files).

Development Setup

(For a deeper dive, watch the tutorial).

Install Node.js and npm, then:

npm run setup

This should create an .env file if there is none. If you encounter errors referring to this file, you can find missing variables in .env-sample.

Running

Start the Rollup process to build and reload automatically

npm run watch

Start the Node.js server to view in the browser

npm start

It should be accessible at http://localhost:3000.

Testing

See Testing logic and interfaces for a tutorial.

Run logic tests

npm test

Run interface tests

npm test ui

To filter interface test paths by string:

npm test ui match=ResultList

To filter interface test paths by JavaScript regular expressions:

npm test ui match='/(guide|vitrine)/'

❤️

Help me keep creating projects that are public, accessible for free, and open-source.

Become a backer

License

The code is released under a Hippocratic License, modified to exclude its use for surveillance capitalism and also to require large for-profit entities to purchase a paid license.

Questions

Feel free to reach out on Mastodon or Twitter.