井戸端ブックマーク
使い方
ブックマークレットで開く
アイコン前付け記法で適当にコメントを書く
登録方法
自動更新版
code:automatic.js
code:atodeyomu.js
ブロッカーをご使用の場合、scrapbox.ioへのリクエストを許可してください
そしてCORS解除拡張を入れてください
手動更新版
code:bookmarklet.js
必ずブックマークに入れてから動かす
存在チェック機能が使えない
存在チェック機能:すでに存在するときにページ名とリンクを追記しない
corsとかはいらない
日付順ではなくURL別で整理される
問答無用でURLがページ名になる
タイトルを考える必要がない
試しにブクマしてみたbsahd.icon
本体
code:min.js
function lib(){const e=encodeURIComponent,t=location;return[e,t,t=>fetch("https://scrapbox.io/api/pages/villagepump/"+e(t)).then((e=>e.ok?e.json():{persitent:!1})).then((e=>e.persistent))]}export default function bookmark(e){vart,o,n=lib(),i=decodeURI(o.host+o.pathname);n(i).then((n=>{if(n)var p=[];else p=[""+o.href+" "+document.title+"",""+o.hostname+""];p.push(""+e+".icon");var a=getSelection()+"";a.trim()&&a.split("\n").map((e=>{p.push(" > "+e)})),open("https://scrapbox.io/villagepump/"+t(i)+"?body="+t(p.join("\n")))}))}export function atodeyomu(e){vart,o,n=lib(),i=decodeURI(o.host+o.pathname);n(i).then((n=>{if(n)var p=[];else p=[""+o.href+" "+document.title+"",""+o.hostname+""];p.push(""+e+".icon"),p.push(""+e+":あとで読む");var a=getSelection()+"";a.trim()&&a.split("\n").map((e=>{p.push(" > "+e)})),location.href="https://scrapbox.io/villagepump/"+t(i)+"?body="+t(p.join("\n"))}))} code:villagepumpbookmark.js
// deno-lint-ignore-file no-var no-inner-declarations no-redeclare prefer-const no-unused-vars
function lib() {
const myEncodeURIComponent = encodeURIComponent;
const myLocation = location;
const checkAlreadyExits = (pageName) => {
return fetch(
myEncodeURIComponent(pageName),
)
.then((pageRes) => {
if (pageRes.ok) {
return pageRes.json();
} else {
return { persitent: false };
}
})
.then((json) => {
return json.persistent;
});
};
}
export default function bookmark(username) {
var pageName = decodeURI(myLocation.host + myLocation.pathname);
checkAlreadyExits(pageName).then((alreadyExits) => {
if (alreadyExits) {
var lines = [];
} else {
var lines = [
"+ myLocation.href + " " + document.title + "",
"+ myLocation.hostname + "",
];
}
lines.push("+ username + ".icon");
var quote = getSelection() + "";
if (quote.trim()) {
quote.split("\n").map((line) => {
lines.push(" > " + line);
// 本当はmapをこういう用途で使うのはNGだが、ゴルフのために仕方なく
});
}
open(
myEncodeURIComponent(pageName) +
"?body=" +
myEncodeURIComponent(lines.join("\n")),
);
});
}
export function atodeyomu(username) {
var pageName = decodeURI(myLocation.host + myLocation.pathname);
checkAlreadyExits(pageName).then((alreadyExits) => {
if (alreadyExits) {
var lines = [];
} else {
var lines = [
"+ myLocation.href + " " + document.title + "",
"+ myLocation.hostname + "",
];
}
lines.push("+ username + ".icon");
lines.push("+ username + ":あとで読む");
var quote = getSelection() + "";
if (quote.trim()) {
quote.split("\n").map((line) => {
lines.push(" > " + line);
// 本当はmapをこういう用途で使うのはNGだが、ゴルフのために仕方なく
});
}
myEncodeURIComponent(pageName) +
"?body=" +
myEncodeURIComponent(lines.join("\n"));
});
}
// 引用機能は公式ブックマークレットをパクりました