開いているWebページを自分のprojectに引用するbookmark
作:
機能
scrapbox ページを開いている状態で起動すると、そのページを全文自分のプロジェクトにコピペする
先頭に from [/Project.name/Page.title]
が追加される
scrapbox 以外を開いている状態で起動すると、そのページへの参照ページを自分のプロジェクトに作成する
その際に文字を選択していると、選択部分のみが引用される
使い方
1. minify バージョンをコピーしてブックマークの URL にペースト
2. "Summer498"
となっている所を自分のプロジェクト名にする
自分のプロジェクト名は、URL の https://scrapbox.io/ProjectName
の ProjectName
に書いてある文字列のこと
3. 気になったページでブックマークから起動するとページを引用できる
今後の課題
scrapbox ページを引用する方でも選択範囲のみの引用をしたい
参照
jsjavascript: (()=>{let p="Summer498",m='\n',_=window,r=encodeURIComponent,c=_.scrapbox,a=t=>prompt(`Scrap "${t}" to /${p}/.`,t),o,i,l,s;if(c){let t=c.Project.name,e=c.Page,n=e.title,d=t+"/"+n;o=a(n),o&&(i=`from [/${d}]`,s=e.lines.map(f=>f.text).slice(1))}else{let t=document.title;if(o=a(t),o){i=`from [${location.href} ${t}]`;let e=getSelection().toString();s=e.trim()?e.split(m).map(n=>"> "+n):[""]}}if(o){l=[i,""].concat(s);let t=r(l.join(m));open(`https://scrapbox.io/${p}/${r(o.trim())}?body=`+t)}})();
なんか minify すると
join
の後の
'\n'
が本当に改行になってしまうな
手動で直したけど
scrapbox-bundlerのバグ?
あ。多分違うな。Template literals 内では改行しても文字列が続くとみなされるから minify するために改行してるな
予想通り
readable.js (()=>{
const my_project = "Summer498";
const LF='\n'
const _window = window;
const _encodeURIComponent = encodeURIComponent;
const _scrapbox=_window.scrapbox;
const getTitle = title => prompt(`Scrap "${title}" to /${my_project}/.`, title);
let title, first_line, lines, quote;
try{_scrapbox = scrapbox}catch(_){_scrapbox=0}
を入れている理由がわからない
scrapbox 以外のページで scrapbox を参照しようとするとエラーが出るので防ぐ
window.scrapbox
にすればいいな
diff- try{_scrapbox = scrapbox}catch(_){_scrapbox=0}
+ const _scrapbox=_window.scrapbox;
readable.js if(_scrapbox){
const project_name = _scrapbox.Project.name;
const page = _scrapbox.Page;
const page_title = page.title;
const page_path = project_name + "/" + page_title;
title = getTitle(page_title);
if(title){
first_line = `from [/${page_path}]`;
quote = page.lines.map(e=>e.text).slice(1);
}
}
else {
const document_title = document.title;
title = getTitle(document_title);
if(title){
first_line = `from [${location.href} ${document_title}]`;
const selection = getSelection().toString();
quote = selection.trim() ? selection.split(LF).map(e=>'> '+e) : [""];
}
}
if(title){
lines = [first_line, ""].concat(quote);
const body = _encodeURIComponent(lines.join(LF));
open(`https://scrapbox.io/${my_project}/${_encodeURIComponent(title.trim())}?body=` + body);
}
})();
テンプレート文字列にしたほうが1文字少なくなる
草
もちろん助かる
diff- open('https://scrapbox.io/'+my_project+'/'+_encodeURIComponent(title.trim())+'?body='+body);
+ open(`https://scrapbox.io/${my_project}/${_encodeURIComponent(title.trim())}?body=`+body);
2文字減らせた (body まで包むとココから 2 文字増えて元に戻る)
端の変数は足したほうがいいのか
minify 頑張るなら if 分書きたくないところやけども (ヤメロ)