CosenseにリッチテキストをCosense記法に変換して貼り付ける
Paperpileから文献情報をコピペする時に欲しくなった。雑誌名とかを斜体にするやつ。
探せば既にどこかにあるんだろうけども。
とりあえずcontrol + alt + vにしてます。必要に応じて適宜直してください。
このキーの場合、Macだと日本語入力のままでは上手くいかないっぽい。英数入力に切り替えましょうね。
Javascript久々すぎてほぼほぼChatGPTに書かせたので、なんか変なことしてたり書き方がキモかったりしたら適宜自分で直してください。
code:script.js
import '/api/code/foldrr/scrapbox-shortcut/script.js';
scrapboxShortcut.onEdit('ctrl+alt+v', async (e) => {
try {
const clipboardItems = await navigator.clipboard.read();
const clipboardItem = clipboardItems0; const blob = await clipboardItem.getType('text/html');
const htmlText = await blob.text();
// HTMLをScrapbox記法に変換
const scrapboxText = convertToScrapboxFormat(htmlText);
document.execCommand('insertText', null, scrapboxText);
} catch (error) {
console.error('クリップボードの読み込みに失敗しました:', error);
}
});
function convertToScrapboxFormat(html) {
// bold: <strong> または <b> を テキスト に変換
let text = html.replace(/<strong>(.*?)<\/strong>/g, '$1');
text = text.replace(/<b>(.*?)<\/b>/g, '$1');
// italic: <em> または <i> を テキスト に変換
text = text.replace(/<em>(.*?)<\/em>/g, '$1');
text = text.replace(/<i>(.*?)<\/i>/g, '$1');
// その他のHTMLタグを取り除く
text = text.replace(/<^>+>/g, ''); text = text.replace(/&/g, '&');
return text;
}