Scrapboxにマーカーとコメントを記録する
annoでWebページにマーカーを引くとき、Scrapboxには以下のようなデータが記録される。 code: scrapbox
domain
コメントhata.iconlike.icon
https://gyazo.com/88bff5ddf3055d06d80f0a71f55dfa35
[annos://example.com/]
マーカーを引いたWebページのURL。
[🍀 https://example.com/#e=domain&p=%0A%0A++++Example+Domain%0A++++This+&s=+is+for+use+in+illustrative+exam]
exact (e) domain
prefix (p) \n\n Example Domain\n This
suffix (s) is for use in illustrative exam
コメント[hata.icon][like.icon]
コメントおよびアイコン。
以下のようなアイコンを、Scrapboxプロジェクトに登録してある。
[hata.icon] ⇨ hata6502.icon
[like.icon] ⇨ like.icon
マーカーの位置は、Text Quote Selectorを含むURLとして記録されている。
URLは本来URLエンコードされている必要があるが、Scrapboxでは一部の文字をエンコードせずに書き込める。 以下のURLをScrapboxに書き込んでクリックすると、同じWebページが開く。
エンコードしたURL
一部の文字をエンコードしないURL
日本語をエンコードしないことで、短く読みやすいURLを生成できる。
annoでは正規表現のUnicodeプロパティを利用して、簡易的にURL生成している。 Unicodeプロパティ
\p{scx=Hiragana} ひらがなにマッチする。
\p{scx=Katakana} カタカナにマッチする。
\p{scx=Han} 漢字にマッチする。
export const encodeForScrapboxReadableLink = (uriComponent: string) => {
let encoded = encodeURIComponent(uriComponent);
for (const match of uriComponent.matchAll(
)) {
encoded = encoded.replace(encodeURIComponent(match0), match0); }
return encoded;
};