-
-
Save gapmiss/fd011886462685f6ce625be903c15418 to your computer and use it in GitHub Desktop.
Example bookmarklets for bookmarkl.ink
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//bookmarklet_title: Word Frequency | |
//bookmarklet_about: Display the top five most common words on a webpage. Drag the bookmarklet to your bookmarks bar to use it anywhere! If the word hippo shows up a lot, hippo should have a high occurrence (hippo hippo HIPPO). | |
var counts = { }; | |
var text = document.body.innerText || document.body.textContent || ''; | |
var words = text.split(/\b/).filter((word) => { | |
return word.match(/^\w+$/) !== null; | |
}); | |
words.forEach((word) => { | |
counts['_'+word.toLowerCase()] = (counts['_'+word.toLowerCase()] || 0) + 1; | |
}); | |
var sorted = Object.keys(counts).sort((a, b) => { | |
return counts[b] - counts[a]; | |
}); | |
var message = sorted[0]===undefined ? 'No words found!' : 'Top 5 words:'; | |
sorted.forEach((word, index) => { | |
if(index>4 || word===undefined) return; | |
message += '\n#'+(index+1)+': '+word.substring(1)+' ('+counts[word]+' occurrences)'; | |
}); | |
alert(message); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// bookmarklet_title: Emoji! | |
// bookmarklet_about: This is an example bookmarklet that adds a random emoji to the DOM. Click 'view gist' to see how you can generate a bookmarklet from a js snippet. Bookmarklets can be dragged to the bookmarks bar of your browser in order to use them later. | |
const link = document.createElement('link'); | |
link.type = 'text/css'; | |
link.rel = 'stylesheet'; | |
link.href = 'https://afeld.github.io/emoji-css/emoji.css'; | |
document.head.appendChild(link); | |
const emojis = ['-1','--1','100','1234','8ball','a','ab','abc','abcd','accept','aerial_tramway','airplane','alarm_clock','alien','ambulance','anchor','angel','anger','angry','anguished','ant','apple','aquarius','aries','arrow_backward','arrow_double_down','arrow_double_up','arrow_down','arrow_down_small','arrow_forward','arrow_heading_down','arrow_heading_up','arrow_left','arrow_lower_left','arrow_lower_right','arrow_right','arrow_right_hook','arrow_up','arrow_up_down','arrow_up_small','arrow_upper_left','arrow_upper_right','arrows_clockwise','arrows_counterclockwise','art','articulated_lorry','astonished','atm','b','baby','baby_bottle','baby_chick','baby_symbol','back','baggage_claim','balloon','ballot_box_with_check','bamboo','banana','bangbang','bank','bar_chart','barber','baseball','basketball','bath','bathtub','battery','bear','bee','beer','beers','beetle','beginner','bell','bento','bicyclist','bike','bikini','bird','birthday','black_circle','black_joker','black_medium_small_square','black_medium_square','black_nib','black_small_square','black_square','black_square_button','blossom','blowfish','blue_book','blue_car','blue_heart','blush','boar','boat','bomb','book','bookmark','bookmark_tabs','books','boom','boot','bouquet','bow','bowling','bowtie','boy','bread','bride_with_veil','bridge_at_night','briefcase','broken_heart','bug','bulb','bullettrain_front','bullettrain_side','bus','busstop','bust_in_silhouette','busts_in_silhouette','cactus','cake','calendar','calling','camel','camera','cancer','candy','capital_abcd','capricorn','car','card_index','carousel_horse','cat','cat2','cd','chart','chart_with_downwards_trend','chart_with_upwards_trend','checkered_flag','cherries','cherry_blossom','chestnut','chicken','children_crossing','chocolate_bar','christmas_tree','church','cinema','circus_tent','city_sunrise','city_sunset','cl','clap','clapper','clipboard','clock1','clock10','clock1030','clock11','clock1130','clock12','clock1230','clock130','clock2','clock230','clock3','clock330','clock4','clock430','clock5','clock530','clock6','clock630','clock7','clock730','clock8','clock830','clock9','clock930','closed_book','closed_lock_with_key','closed_umbrella','cloud','clubs','cn','cocktail','coffee','cold_sweat','collision','computer','confetti_ball','confounded','confused','congratulations','construction','construction_worker','convenience_store','cookie','cool','cop','copyright','corn','couple','couple_with_heart','couplekiss','cow','cow2','credit_card','crocodile','crossed_flags','crown','cry','crying_cat_face','crystal_ball','cupid','curly_loop','currency_exchange','curry','custard','customs','cyclone','dancer','dancers','dango','dart','dash','date','de','deciduous_tree','department_store','diamond_shape_with_a_dot_inside','diamonds','disappointed','disappointed_relieved','dizzy','dizzy_face','do_not_litter','dog','dog2','dollar','dolls','dolphin','donut','door','doughnut','dragon','dragon_face','dress','dromedary_camel','droplet','dvd','e-mail','ear','ear_of_rice','earth_africa','earth_americas','earth_asia','egg','eggplant','eight','eight_pointed_black_star','eight_spoked_asterisk','electric_plug','elephant','email','end','envelope','es','euro','european_castle','european_post_office','evergreen_tree','exclamation','expressionless','eyeglasses','eyes','facepunch','factory','fallen_leaf','family','fast_forward','fax','fearful','feelsgood','feet','ferris_wheel','file_folder','finnadie','fire','fire_engine','fireworks','first_quarter_moon','first_quarter_moon_with_face','fish','fish_cake','fishing_pole_and_fish','fist','five','flags','flashlight','floppy_disk','flower_playing_cards','flushed','foggy','football','fork_and_knife','fountain','four','four_leaf_clover','fr','free','fried_shrimp','fries','frog','frowning','fu','fuelpump','full_moon','full_moon_with_face','game_die','gb','gem','gemini','ghost','gift','gift_heart','girl','globe_with_meridians','goat','goberserk','godmode','golf','grapes','green_apple','green_book','green_heart','grey_exclamation','grey_question','grimacing','grin','grinning','guardsman','guitar','gun','haircut','hamburger','hammer','hamster','hand','handbag','hankey','hash','hatched_chick','hatching_chick','headphones','hear_no_evil','heart','heart_decoration','heart_eyes','heart_eyes_cat','heartbeat','heartpulse','hearts','heavy_check_mark','heavy_division_sign','heavy_dollar_sign','heavy_exclamation_mark','heavy_minus_sign','heavy_multiplication_x','heavy_plus_sign','helicopter','herb','hibiscus','high_brightness','high_heel','hocho','honey_pot','honeybee','horse','horse_racing','hospital','hotel','hotsprings','hourglass','hourglass_flowing_sand','house','house_with_garden','hurtrealbad','hushed','ice_cream','icecream','id','ideograph_advantage','imp','inbox_tray','incoming_envelope','information_desk_person','information_source','innocent','interrobang','iphone','it','izakaya_lantern','jack_o_lantern','japan','japanese_castle','japanese_goblin','japanese_ogre','jeans','joy','joy_cat','jp','key','keycap_ten','kimono','kiss','kissing','kissing_cat','kissing_closed_eyes','kissing_face','kissing_heart','kissing_smiling_eyes','koala','koko','kr','large_blue_circle','large_blue_diamond','large_orange_diamond','last_quarter_moon','last_quarter_moon_with_face','laughing','leaves','ledger','left_luggage','left_right_arrow','leftwards_arrow_with_hook','lemon','leo','leopard','libra','light_rail','link','lips','lipstick','lock','lock_with_ink_pen','lollipop','loop','loudspeaker','love_hotel','love_letter','low_brightness','m','mag','mag_right','mahjong','mailbox','mailbox_closed','mailbox_with_mail','mailbox_with_no_mail','man','man_with_gua_pi_mao','man_with_turban','mans_shoe','maple_leaf','mask','massage','meat_on_bone','mega','melon','memo','mens','metal','metro','microphone','microscope','milky_way','minibus','minidisc','mobile_phone_off','money_with_wings','moneybag','monkey','monkey_face','monorail','moon','mortar_board','mount_fuji','mountain_bicyclist','mountain_cableway','mountain_railway','mouse','mouse2','movie_camera','moyai','muscle','mushroom','musical_keyboard','musical_note','musical_score','mute','nail_care','name_badge','neckbeard','necktie','negative_squared_cross_mark','neutral_face','new','new_moon','new_moon_with_face','newspaper','ng','nine','no_bell','no_bicycles','no_entry','no_entry_sign','no_good','no_mobile_phones','no_mouth','no_pedestrians','no_smoking','non-potable_water','nose','notebook','notebook_with_decorative_cover','notes','nut_and_bolt','o','o2','ocean','octocat','octopus','oden','office','ok','ok_hand','ok_woman','older_man','older_woman','on','oncoming_automobile','oncoming_bus','oncoming_police_car','oncoming_taxi','one','open_file_folder','open_hands','open_mouth','ophiuchus','orange_book','outbox_tray','ox','package','page_facing_up','page_with_curl','pager','palm_tree','panda_face','paperclip','parking','part_alternation_mark','partly_sunny','passport_control','paw_prints','peach','pear','pencil','pencil2','penguin','pensive','performing_arts','persevere','person_frowning','person_with_blond_hair','person_with_pouting_face','phone','pig','pig2','pig_nose','pill','pineapple','pisces','pizza','plus1','point_down','point_left','point_right','point_up','point_up_2','police_car','poodle','poop','post_office','postal_horn','postbox','potable_water','pouch','poultry_leg','pound','pouting_cat','pray','princess','punch','purple_heart','purse','pushpin','put_litter_in_its_place','question','rabbit','rabbit2','racehorse','radio','radio_button','rage','rage1','rage2','rage3','rage4','railway_car','rainbow','raised_hand','raised_hands','raising_hand','ram','ramen','rat','recycle','red_car','red_circle','registered','relaxed','relieved','repeat','repeat_one','restroom','revolving_hearts','rewind','ribbon','rice','rice_ball','rice_cracker','rice_scene','ring','rocket','roller_coaster','rooster','rose','rotating_light','round_pushpin','rowboat','ru','rugby_football','runner','running','running_shirt_with_sash','sa','sagittarius','sailboat','sake','sandal','santa','satellite','satisfied','saxophone','school','school_satchel','scissors','scorpius','scream','scream_cat','scroll','seat','secret','see_no_evil','seedling','seven','shaved_ice','sheep','shell','ship','shipit','shirt','shit','shoe','shower','signal_strength','six','six_pointed_star','ski','skull','sleeping','sleepy','slot_machine','small_blue_diamond','small_orange_diamond','small_red_triangle','small_red_triangle_down','smile','smile_cat','smiley','smiley_cat','smiling_imp','smirk','smirk_cat','smoking','snail','snake','snowboarder','snowflake','snowman','sob','soccer','soon','sos','sound','space_invader','spades','spaghetti','sparkle','sparkler','sparkles','sparkling_heart','speak_no_evil','speaker','speech_balloon','speedboat','squirrel','star','star2','stars','station','statue_of_liberty','steam_locomotive','stew','straight_ruler','strawberry','stuck_out_tongue','stuck_out_tongue_closed_eyes','stuck_out_tongue_winking_eye','sun_with_face','sunflower','sunglasses','sunny','sunrise','sunrise_over_mountains','surfer','sushi','suspect','suspension_railway','sweat','sweat_drops','sweat_smile','sweet_potato','swimmer','symbols','syringe','tada','tanabata_tree','tangerine','taurus','taxi','tea','telephone','telephone_receiver','telescope','tennis','tent','thought_balloon','three','thumbsdown','thumbsup','ticket','tiger','tiger2','tired_face','tm','toilet','tokyo_tower','tomato','tongue','top','tophat','tractor','traffic_light','train','train2','tram','triangular_flag_on_post','triangular_ruler','trident','triumph','trolleybus','trollface','trophy','tropical_drink','tropical_fish','truck','trumpet','tshirt','tulip','turtle','tv','twisted_rightwards_arrows','two','two_hearts','two_men_holding_hands','two_women_holding_hands','u5272','u5408','u55b6','u6307','u6708','u6709','u6e80','u7121','u7533','u7981','u7a7a','uk','umbrella','unamused','underage','unlock','up','us','v','vertical_traffic_light','vhs','vibration_mode','video_camera','video_game','violin','virgo','volcano','vs','walking','waning_crescent_moon','waning_gibbous_moon','warning','watch','water_buffalo','watermelon','wave','wavy_dash','waxing_crescent_moon','waxing_gibbous_moon','wc','weary','wedding','whale','whale2','wheelchair','white_check_mark','white_circle','white_flower','white_large_square','white_medium_small_square','white_medium_square','white_small_square','white_square_button','wind_chime','wine_glass','wink','wolf','woman','womans_clothes','womans_hat','womens','worried','wrench','x','yellow_heart','yen','yum','zap','zero','zzz']; | |
const emoji = emojis[Math.floor(Math.random() * emojis.length)]; | |
const div = document.createElement('div'); | |
const page = { | |
width: Math.max(document.body.scrollWidth, document.documentElement.scrollWidth, document.body.offsetWidth, document.documentElement.offsetWidth, document.documentElement.clientWidth), | |
height: Math.max(document.body.scrollHeight, document.documentElement.scrollHeight, document.body.offsetHeight, document.documentElement.offsetHeight, document.documentElement.clientHeight), | |
}; | |
const dimensions = Math.random() * 20 + 20; | |
const position = { | |
x: Math.random() * (page.width - dimensions), | |
y: Math.random() * (page.height - dimensions), | |
}; | |
div.innerHTML = `<i class="em em-${emoji}"></i>`; | |
div.style.cssText = `position:absolute;left:${position.x}px;top:${position.y}px;font-size:${dimensions}px;width:${dimensions}px;height:${dimensions}px;z-index:1000;`; | |
document.body.appendChild(div); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// bookmarklet-title: img-- | |
// bookmarklet-about: Hide images until mouseover (v1.3) | |
const style = document.createElement('style'); | |
style.innerHTML = `*, *::before, *::after {background-image: none !important;}`; | |
document.head.appendChild(style); | |
for (let e of ['img', 'video', 'iframe']) { | |
for (let i of document.getElementsByTagName(e)) { | |
i.style.transition = 'opacity 400ms ease'; | |
i.style.opacity = 0.05; | |
i.onmouseover = function () { this.style.opacity = 1.0; }; | |
i.onmouseout = function () { this.style.opacity = 0.05; }; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// bookmarklet-title: Import | |
// bookmarklet-about: Demo of dynamic imports in async IIFE | |
(async () => { | |
const uuid = await import('https://cdn.jsdelivr.net/npm/[email protected]/+esm'); | |
console.log(uuid.v4()); | |
})(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// bookmarklet-title: QR Code | |
// bookmarklet-about: Generate a QR code for the website you're currently browsing. | |
// If embedded, the lean-qr (https://www.npmjs.com/package/lean-qr) NPM module will be bundled | |
// Otherwise, https://quickchart.io will be used | |
// bookmarklet-var(boolean): embed | |
import { generate } from 'https://esm.sh/lean-qr'; | |
if (embed) { | |
const qr = generate(window.location.href).toDataURL({ scale: 10 }); | |
const win = window.open('about:blank', '_blank'); | |
setTimeout(win.document.body.appendChild(win.document.createElement('img')).src = qr, 0); | |
} else { | |
const url = encodeURIComponent(window.location.href); | |
window.open(`https://quickchart.io/chart?cht=qr&chs=300x300&chl=${url}`, '_blank'); | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// bookmarklet-about: This is just a dummy bookmarklet. Using it to test transpilation via Babel and potentially CoreJS. As you may have noticed while reading this, I'm also testing the usage of a large bookmarklet description. Please ignore. Thanks. | |
const timer = (t) => new Promise((resolve) => { | |
setTimeout(() => { | |
console.log(`timer ${t}`); | |
resolve(); | |
}, t); | |
}); | |
(async () => { | |
timer(2000); | |
console.log('A'); | |
await timer(1000); | |
console.log('B'); | |
console.log(['A', 'B', 'C'].includes('B')); | |
})(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//bookmarklet_title: Test Variables | |
//bookmarklet_about: Simple test of bookmarklet requiring injected variables | |
//bookmarklet-var: varText | |
//bookmarklet-var(number): varNumber | |
//bookmarklet-var(password): varPassword | |
//bookmarklet-var(boolean): varBoolean | |
//bookmarklet-var(author): varAuthor | |
//bookmarklet-var(id): varId | |
//bookmarklet-var(uuid): varUuid | |
const result = `varText(${typeof varText}): ${varText} | |
varNumber(${typeof varNumber}): ${varNumber} | |
varPassword(${typeof varPassword}): ${varPassword} | |
varBoolean(${typeof varBoolean}): ${varBoolean} | |
varAuthor(${typeof varAuthor}): ${varAuthor} | |
varId(${typeof varId}): ${varId} | |
varUuid(${typeof varUuid}): ${varUuid}`; | |
console.log(result); | |
alert(result); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment