Bookmarklet é um módulo nodejs para compilação de bookmarklets em código do lado do servidor e diretamente da shell. Você pode executá-lo em qualquer arquivo JavaScript – ele irá minificá-lo usando uglify-js, envolvê-lo em uma função de autoexecução, e retornar um bookmarklet escapado.
Mais ainda, ele suporta um bloco de metadados modelado após o bloco de metadados do userscript greasemonkey – para especificar metadados, folhas de estilo externas e scripts incluídos, que podem se parecer com isto:
// ==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==
Mais notavelmente, você pode especificar quaisquer scripts externos que você gostaria que seu bookmarklet incluísse através da regra @script
, que pode ser repetida quantas vezes você quiser.
NOTE: actualmente com o script inclui você mesmo os cenários noConflict
, por exemplo, você pode querer começar um script com var $ = jQuery.noConflict(true)
.
Além disso, qualquer arquivo css incluído com @style
será injetado.
Por padrão, toda vez que o bookmark for atingido, ele adicionará o script e as tags de estilo novamente. Você personaliza cada uma por linha adicionando uma declaração !loadOnce
entre o parâmetro @style
ou @script
e o caminho para o ativo. Veja o exemplo acima.
As da v1.0.0, este agora usa Babel com o presente “env” para tornar o código compatível de trás para frente antes de minificá-lo.
Este projeto está aberto a sugestões & pull requests.
Também, se você está apenas procurando uma maneira rápida de juntar um bookmarklet, tente meu criador de bookmarklet baseado no navegador.
Instalação
A dependência pode ser encontrada no NPM como “bookmarklet”. Você pode instalá-lo com:
npm install bookmarklet
Uso
Você pode facilmente ver o uso executando 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
A saída padrão é o código bruto do bookmarlet. NOVO adicione a bandeira --demo
para sair uma página HTML de teste que inclui o bookmarklet nela.
Testing
Um script de teste muito básico pode ser executado via bash test/run.sh