WebページをScrapするBookmarklet
参考
タイトルとリンクをメモする
スクショを見る限り、リンクがエンコードされちゃってますね
2021-01-26 19:58:44 decodeするようにしました
Webページで選択した範囲を引用記法で書き込める
htmlタグは全て無視する
タグをつけられる
お好きに変えて下さい
導入方法
新しいブックマークを作る
ブックマークのURL欄に bookmarklet.js
を貼り付ける
bookmarklet.js
内のprojectとtagを変更
#${"scrapocket"}
→ #bookmark
${"your project"}
→ programming-notes
bookmarklet.jsjavascript:(()=>{const a=document.title,b=[],c=window.getSelection().toString().trim();c&&b.push(...c.split(/[\f\n\r]/g).filter(a=>""!==a).map(a=>`>${a}`),""),b.push(a,decodeURIComponent(window.location.href),"","",`#${"scrapocket"}`,"");const d=encodeURIComponent(b.join("\n"));window.open(`https://scrapbox.io/${"your project"}/${a}?body=${d}`,"_self")})();
コンパイル前のソース
script.jsjavascript:(() => {
const PROJECT = 'your project'; // Webページを保存するproject
const TAG = 'scrapocket'; // Scrapboxのページに付けるタグ
const title = document.title;
const lines = [];
const quote = window.getSelection().toString().trim(); // 選択範囲の文字列を取得
if (quote) {
lines.push(...quote
script.js .split(/[\f\n\r]/g) // 改行区切りで配列化
.filter(line => line !== '') // 空行は削除
.map(line => `>${line}`), // 引用記号
'', // 空行
);
}
lines.push(
title, // 保存するページのタイトル
decodeURIComponent(window.location.href), // 保存するページのリンク
'',
'',
`#${TAG}`,
'',
);
const body = encodeURIComponent(lines.join('\n'));
window.open(`https://scrapbox.io/${PROJECT}/${title}?body=${body}`, '_self');
})();
複数要素を格納できます
lines
は定数にしました
...quote
の部分?
なんでだろ?
別の導入方法 (by
)
この方法だと認証が必要?
scrapbox.io
からなら実行できる
cookieがあるので?
↑では試していませんが、private projectから読み込んでいる別のbookmarkletでは起きたことがありません
一旦元の方法に戻します