ウェブページの半角英数字を装飾(太字・斜体)を保ったままコピーするブックマークレットです。
Twitter 等で貼り付けて装飾文字を投稿できます。
機能を終了するには、ページをリロードしてください。
javascript:(()=>{function n(a,b,f){const e=window.getComputedStyle(a.parentElement),c=e.fontWeight.match(/bold/i)||400<parseInt(e.fontWeight),g=e.fontStyle.match(/italic/i);if(c||g)a.data=a.data.substring(0,b)+a.data.substring(b,f).replaceAll(/[a-zA-Z0-9]/g,h=>k[h][(c?1:0)|(g?2:0)]||h)+a.data.substring(f,a.length)}const k={};(function(){"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split("").forEach((a,b)=>{k[a]={[1]:String.fromCodePoint(119808+b),[2]:String.fromCodePoint(119860+b),[3]:String.fromCodePoint(119912+
b)}});k.h[2]="\u210e";"0123456789".split("").forEach((a,b)=>{k[a]={[1]:String.fromCodePoint(120782+b)}})})();document.body.contentEditable="true";document.designMode="on";document.addEventListener("copy",function(){const a=document.getSelection();if(0!=a.rangeCount){var b=a.getRangeAt(0),{startContainer:f,startOffset:e,endContainer:c,endOffset:g}=b,h=c.length-g,l=b.commonAncestorContainer,p=l.cloneNode(!0),m=document.createTreeWalker(l,NodeFilter.SHOW_TEXT,{acceptNode(d){return b.intersectsNode(d)?
NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}});for(let d=m.currentNode;d;d=m.nextNode())"#text"==d.nodeName&&n(d,d==f?e:0,d==c?g:c.length);b.setStart(f,e);b.setEnd(c,c.length-h);navigator.clipboard.writeText(a.toString());l.before(p);l.remove()}})})()
こちらのバージョンでは、ノーマル版の動作に加えて、
します。
javascript:(()=>{function n(a,b,f){const e=window.getComputedStyle(a.parentElement),d=e.fontWeight.match(/bold/i)||400<parseInt(e.fontWeight),g=e.fontStyle.match(/italic/i);if(d||g)a.data=a.data.substring(0,b)+a.data.substring(b,f).replaceAll(/[a-zA-Z0-9]/g,h=>k[h][(d?1:0)|(g?2:0)]||h)+a.data.substring(f,a.length)}const k={};(function(){"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz".split("").forEach((a,b)=>{k[a]={[1]:String.fromCodePoint(119808+b),[2]:String.fromCodePoint(119860+b),[3]:String.fromCodePoint(119912+
b)}});k.h[2]="\u210e";"0123456789".split("").forEach((a,b)=>{k[a]={[1]:String.fromCodePoint(120782+b)}})})();document.body.contentEditable="true";document.designMode="on";document.addEventListener("copy",function(){var a=document.getSelection();if(0!=a.rangeCount){var b=a.getRangeAt(0),{startContainer:f,startOffset:e,endContainer:d,endOffset:g}=b,h=d.length-g,l=b.commonAncestorContainer,p=l.cloneNode(!0),m=document.createTreeWalker(l,NodeFilter.SHOW_TEXT,{acceptNode(c){return b.intersectsNode(c)?
NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}});for(let c=m.currentNode;c;c=m.nextNode())"#text"==c.nodeName&&n(c,c==f?e:0,c==d?g:d.length);b.setStart(f,e);b.setEnd(d,d.length-h);a=a.toString();a=a.replaceAll(/[ \u00a0]{2,}/gm,c=>" "+" ".repeat(c.length-1)).replaceAll(/^\t+/gm,c=>" ".repeat(4*c.length));navigator.clipboard.writeText(a);l.before(p);l.remove()}})})()
参考: