Created
September 17, 2026 07:41
-
-
Save codingdudecom/632eb117bd3ce52ef586c7a4f9a9c524 to your computer and use it in GitHub Desktop.
Keywords Counter
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
| <p> | |
| Drag this to your bookmarks: | |
| <a href="javascript:(function(){var e=document.getElementById('kw-checker-overlay');if(e)e.remove();var p=document.body.innerText;var o=document.createElement('div');o.id='kw-checker-overlay';Object.assign(o.style,{position:'fixed',top:'0',left:'0',width:'100vw',height:'100vh',backgroundColor:'rgba(0,0,0,0.55)',display:'flex',alignItems:'center',justifyContent:'center',zIndex:'99999999',fontFamily:'system-ui,-apple-system,sans-serif',fontSize:'14px',color:'rgb(31,41,55)'});var m=document.createElement('div');Object.assign(m.style,{backgroundColor:'rgb(255,255,255)',borderRadius:'10px',width:'560px',maxWidth:'92vw',maxHeight:'85vh',display:'flex',flexDirection:'column',boxShadow:'0 20px 40px rgba(0,0,0,0.3)',overflow:'hidden'});o.appendChild(m);function escH(s){var d=document.createElement('div');d.textContent=s;return d.innerHTML;}function inView(prev){prev=prev||'';m.innerHTML='<div style=\'padding:16px 20px;border-bottom:1px solid rgb(229,231,235);display:flex;justify-content:space-between;align-items:center;\'><h3 style=\'margin:0;font-size:16px;font-weight:600;\'>Keyword Density Checker</h3><button id=\'kw-c-btn\' style=\'background:none;border:none;font-size:22px;cursor:pointer;color:rgb(156,163,175);line-height:1;\'>×</button></div><div style=\'padding:20px;display:flex;flex-direction:column;gap:8px;\'><label style=\'font-weight:500;font-size:13px;color:rgb(75,85,99);\'>Paste keywords (one per line):</label><textarea id=\'kw-in\' placeholder=\'Enter keywords...\' style=\'width:100%;height:240px;padding:10px;border:1px solid rgb(209,213,219);border-radius:6px;resize:vertical;box-sizing:border-box;font-family:monospace;font-size:13px;line-height:1.5;\'></textarea></div><div style=\'padding:12px 20px;border-top:1px solid rgb(229,231,235);background:rgb(249,250,251);display:flex;justify-content:flex-end;gap:10px;\'><button id=\'kw-can-btn\' style=\'padding:8px 16px;border:1px solid rgb(209,213,219);background:rgb(255,255,255);border-radius:6px;cursor:pointer;font-weight:500;\'>Cancel</button><button id=\'kw-go-btn\' style=\'padding:8px 18px;border:none;background:rgb(37,99,235);color:rgb(255,255,255);border-radius:6px;cursor:pointer;font-weight:500;\'>Count Keywords</button></div>';m.querySelector('#kw-c-btn').onclick=function(){o.remove();};m.querySelector('#kw-can-btn').onclick=function(){o.remove();};var ta=m.querySelector('#kw-in');ta.value=prev;ta.focus();m.querySelector('#kw-go-btn').onclick=function(){var raw=ta.value;var lines=raw.split('\n').map(function(s){return s.trim();}).filter(Boolean);if(!lines.length){alert('Please enter at least one keyword.');return;}var u=[...new Set(lines)];var escRe=function(s){return s.replace(/[.*+?^${}()|[\\]\\\\]/g,'\\$&');};var res=u.map(function(k){var matches=p.match(new RegExp(escRe(k),'gi'));return{kw:k,cnt:matches?matches.length:0};});res.sort(function(a,b){return b.cnt-a.cnt;});resView(res,raw);};}function resView(res,raw){var found=res.filter(function(r){return r.cnt>0;}).length;var total=res.reduce(function(a,r){return a+r.cnt;},0);var rows=res.map(function(r){var bg=r.cnt>0?'background:rgb(240,253,244);':'';var col=r.cnt>0?'rgb(21,128,61)':'rgb(107,114,128)';var bBg=r.cnt>0?'background:rgb(187,247,208);color:rgb(22,101,52);':'background:rgb(243,244,246);color:rgb(156,163,175);';return'<tr style=\'border-bottom:1px solid rgb(243,244,246);'+bg+'\'><td style=\'padding:9px 14px;color:'+col+';font-weight:'+(r.cnt>0?'600':'normal')+';word-break:break-word;\'>'+escH(r.kw)+'</td><td style=\'padding:9px 14px;text-align:right;\'><span style=\'display:inline-block;padding:2px 8px;border-radius:12px;font-weight:600;font-size:12px;'+bBg+'\'>'+r.cnt+'</span></td></tr>';}).join('');m.innerHTML='<div style=\'padding:16px 20px;border-bottom:1px solid rgb(229,231,235);display:flex;justify-content:space-between;align-items:center;\'><div><h3 style=\'margin:0;font-size:16px;font-weight:600;\'>Keyword Occurrences</h3><p style=\'margin:3px 0 0;font-size:12px;color:rgb(107,114,128);\'>Found <b>'+found+'</b> of <b>'+res.length+'</b> keywords ('+total+' total matches)</p></div><button id=\'kw-c-btn2\' style=\'background:none;border:none;font-size:22px;cursor:pointer;color:rgb(156,163,175);line-height:1;\'>×</button></div><div style=\'overflow-y:auto;max-height:55vh;\'><table style=\'width:100%;border-collapse:collapse;text-align:left;font-size:13px;\'><thead style=\'position:sticky;top:0;background:rgb(249,250,251);border-bottom:1px solid rgb(229,231,235);\'><tr><th style=\'padding:10px 14px;font-weight:600;color:rgb(75,85,99);\'>Keyword</th><th style=\'padding:10px 14px;font-weight:600;color:rgb(75,85,99);text-align:right;\'>Count</th></tr></thead><tbody>'+rows+'</tbody></table></div><div style=\'padding:12px 20px;border-top:1px solid rgb(229,231,235);background:rgb(249,250,251);display:flex;justify-content:space-between;align-items:center;\'><button id=\'kw-back-btn\' style=\'padding:8px 14px;border:1px solid rgb(209,213,219);background:rgb(255,255,255);border-radius:6px;cursor:pointer;font-weight:500;\'>← Edit Keywords</button><button id=\'kw-done-btn\' style=\'padding:8px 18px;border:none;background:rgb(37,99,235);color:rgb(255,255,255);border-radius:6px;cursor:pointer;font-weight:500;\'>Done</button></div>';m.querySelector('#kw-c-btn2').onclick=function(){o.remove();};m.querySelector('#kw-done-btn').onclick=function(){o.remove();};m.querySelector('#kw-back-btn').onclick=function(){inView(raw);};}inView();document.body.appendChild(o);})();" | |
| style="display: inline-block; padding: 6px 12px; background: #2563eb; color: #fff; text-decoration: none; border-radius: 4px; font-weight: bold; font-family: sans-serif;"> | |
| count keywords | |
| </a> | |
| </p> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment