Bookmarklet är en nodejs-modul för att kompilera bookmarklets i server-sidekod och direkt från skalet. Du kan köra den på vilken JavaScript-fil som helst – den kommer att minifiera den med uglify-js, linda in den i en självutförande funktion och returnera en eskapad bookmarklet.
Mer än så har den stöd för ett metadatablock – modellerat efter metadatablocket för greasemonkey userscript – för att specificera metadata, externa formatmallar och inkluderade skript, som kan se ut så här:
// ==Bookmarklet==// @name LoveGames// @author Old Gregg// @style !loadOnce https://mrcoles.com/media/css/silly.css// @script https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js// ==/Bookmarklet==
Mestadels kan du specificera alla externa skript som du vill att din bookmarklet ska inkludera via regeln @script
, som kan upprepas så många gånger som du vill.
OBS: För närvarande måste du hantera noConflict
-scenarier själv när det gäller inkluderade skript, t.ex, du kanske vill börja ett skript med var $ = jQuery.noConflict(true)
.
Det kommer dessutom att injiceras alla css-filer som inkluderas med @style
.
Som standard kommer skript- och stiltaggarna att läggas till på nytt varje gång bokmärket trycks upp. Du anpassar var och en per rad genom att lägga till en !loadOnce
-deklaration mellan @style
– eller @script
-parametern och sökvägen för tillgången. Se exemplet ovan.
Sedan v1.0.0 använder detta nu Babel med nuvarande ”env” för att göra koden bakåtkompatibel innan den minifieras.
Detta projekt är öppet för förslag & pull requests.
Och om du bara letar efter ett snabbt sätt att slänga ihop en bookmarklet kan du prova min webbläsarbaserade bookmarklet creator.
Installation
Den beroende kan hittas på NPM som ”bookmarklet”. Du kan installera den med:
npm install bookmarklet
Användning
Du kan enkelt se användningen genom att köra bookmarklet -h
:
> bookmarklet -hBookmarklet v0.0.1 usage: bookmarklet source-d | --demo - output a demo HTML page for sharing the bookmarkletsource - path to file to read from or `-` for stdindestination - path to file to write to
Standardutgången är den råa bookmarlet-koden. NEW lägger till flaggan --demo
för att ge ut en test HTML-sida som innehåller bookmarklet.
Testing
Ett mycket grundläggande testskript kan köras via bash test/run.sh
.