ãã®è¨äºã¯ç¾
éç¤ ã¢ããã³ãã«ã¬ã³ãã¼ 2024ã®10æ¥ç®ã®è¨äºã§ãã
qiita.com
9æ¥ç®ã®è¨äºã¯ LinearBでDORA Four Keysはどーだ? - 羅針盤 技術航海日誌 ã§ããã
ããã«ã¡ã¯ãç¾
éç¤ã®æ£®å·ã§ãã
7æ¥ç®ã«å¼ãç¶ããä»åãChrome Extensionã®è©±ã§ãã
2024å¹´ãChrome ExtensionãSveltekitã§æ¸ãããã§ãããï¼
Reactã¨ãè¨ã£ã¦ãæ¹ã¯ä»ãããã©ã¦ã¶ãéã㦠rm -rf /tmp/ilovejsx
ãã¦ãã ããã
ã¨ãè¨ã£ã¦ããã¦ãªãã§ãããtl;dr ãã使ãã°ããã§ãã¾ãã
Skeletonãæåããå ¥ã£ã¦ãã®ã§å«ããããªããã°ããªã楽ã§ãã
å³ä¸ã® Use this template
ããã³ãã¼ãã¦ããããã¼ã¹ã«éçºãã¦ãã ããã
ãã¿ã¾ãããããããã§ä½ã解説ãããã¨ãç¡ããªã£ã¦ãã¾ãã¾ããã
ãã¨ã¯ãã宣ä¼ã ããã¦çµããã«ãã¾ãããã¿ã¾ããã
Compass SEO Checker
åæ©
SEOé¢é£ã®Extensionã¯æåãªã®ãããã¤ãããã¨æããã§ãããhreflangã確èªã§ãããã®ãå°ãªãã®ãè¦çã§ããã
æ¯æ¥ã¤ã©ã¤ã©ã°ãããåããããã¯ããã¦ãã¤ããç¥ãã¸ã¨å¤ããã¾ããã
ããã¦å°å³ã«æ
å ±ã¶ã£ãæããªã¹ã¯ãããã®ã§ãè¬ã®ä¼æ¥ãéçºè
ãä¿¡ããããã«ã¯ããã¾ããã
çãã¯ãã¤ããä¿¡ä»°ã¸ã¨å¤ããã¾ããã
ãããªããã§ä¼æ¥ã«ä½ã£ãã®ããã®Chrome Extensionã§ãã ä»ã®ã¨ããæªããã³ã¼ãã¯ä»è¾¼ãã§ãã¾ãããç¥ããããã¦ä¿¡ãã¦ãã ããã
æ©è½ - Main
Exntensionã®ã¢ã¤ã³ã³ãæ¼ãã¨Mainãéãã¾ãã
<title>
ã¿ã°ãSEOã§ä½¿ã<meta>
ã¿ã°ãfaviconçã®ç¢ºèªãã§ãã¾ãã
ãããããã¤ã§ãã
æ©è½ - Heading
<h1>
~ <h6>
ãæãåºããæ
å ±ã表示ããã¾ãã
ãããããã¤ã§ãã
æ©è½ - Social
OGè¨å®ã確èªã§ãã¾ãã
ãããããã¤ã§ãã
æ©è½ - Image
<img>
ã¿ã°ã <style>
ã¿ã°ä¸ã®ç»åãã¼ã¿ã確èªã§ãã¾ãã
ãã¡ã¤ã«ãµã¤ãºã®ç¢ºèªã§ãã使ãã¾ãã
ãããããã¤ã§ã
æ©è½ - A Link
<a>
ã¿ã°ã確èªã§ãã¾ãã
ããããªã<a>
å
ã®ç»åã確èªã§ãã¾ãã
ãããããã¤ã§ãã
æ©è½ - JS
HTMLä¸ã®å¤é¨JSãã¡ã¤ã«ã¨ã¤ã³ã©ã¤ã³JSã確èªã§ãã¾ãã
preload
ã¨ã prefetch
ã¨ããã¤ãã§ã«ç¢ºèªã§ãã¾ãã
ãã£ããããã¤ã§ãã
éçºæã®Tips
æå¾ã«ç³ã訳ç¨åº¦ã«ã¤ãã¦ããã¾ãã
routes/+page.svete
ã® onMount
ã®ä¸ã§HTML解æã®å®è¡ãéå§ãã¦ãã¾ãã
onMount(function () { if (!window.chrome) { return; } // `vite dev` ã®æã®åä½ if (import.meta.env.DEV) { const currentURL = window.location.href; const data = getDummyData(currentURL); updateData(data); return; } if (!chrome.scripting) { console.error('[onMount] chrome.scripting does not activated'); return; } chrome.tabs.query({ active: true, currentWindow: true }, function (tabs) { const activeTab = tabs[0]; const currentURL = activeTab.url; chrome.scripting.executeScript( { target: { tabId: activeTab.id }, function: () => document.documentElement.outerHTML }, (result) => { const html = result[0].result as string; const data = getTagsFromHTML(html, currentURL); updateData(data); } ); }); });
Extensionã¨ãã¦æ©è½ãããã¨ãããã¼ã«ã«ãããã°ï¼vite dev
å®è¡æï¼ã§ããããã«ããã¼ãã¼ã¿ããã¼ãããããã«ãã¦ãã¾ãã
updateData
ã§ã¯ store ã使ã£ã¦ãã¼ã¿ã®æ´æ°ããã¦ãã¾ããåã³ã³ãã¼ãã³ã㧠subscribeãã¦æ¤ç¥ããã¦ã¾ãã
æåã¯ãªãã¸ã§ã¯ããå¼æ°ã«ãã¦ãã³ã³ãã¼ãã³ãã«æ¸¡ãã¦ãããã§ãããç§ã®Svelteåãä½ãã¦æ´æ°æ¤ç¥ãããªããã¿ã¼ã³ãåºã¦ããã®ã§å¤§äººããstoreã使ãããã«ãã¾ããã
ï¼ä¸é¨ã¿ãã®ç¶æ
管çãåæ§ï¼
ã¾ã¨ã
LukeHagarããã®ãã³ãã¬ã¼ãã§ç°¡åã«UIä»ãã®Extensionãä½ããã¨ãã§ãã¾ããã
ç§ãã³ã¼ãã£ã¼ããæ¦ãå¸é·æ´¾ã§ãã
ãã ãã³ã¼ãä¸ã«ã¯ä½ãåãè¾¼ã¾ãã¦ãããåãããªãã®ã§æçµçã«ã¯èªèº«ã§ãã¡ãã¨ç¢ºèªããããã«ãã¾ãããã
OSSã®è¯ãé¨åã§ãããæè¬ã