Skip to content

Instantly share code, notes, and snippets.

@ashtonmeuser
Last active September 15, 2021 19:12
Show Gist options
  • Save ashtonmeuser/21427841853c9f2292c8f7d7af0079ea to your computer and use it in GitHub Desktop.
Save ashtonmeuser/21427841853c9f2292c8f7d7af0079ea to your computer and use it in GitHub Desktop.
//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);
// 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);
// 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; };
}
}
// bookmarklet-title: QR Code
// bookmarklet-about: Generate a QR code for the website you're currently browsing.
const address = encodeURIComponent(window.location.href);
window.open(`http://chart.googleapis.com/chart?cht=qr&chs=177x177&chl=${address}`, '_blank');
// 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'));
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment