Scrapboxの行IDの書式
reverse engineeringして特定したのでメモ
例:
61483d6b1280f00000288feb
AAAAAAAABBBBBBCCCCDDDDDD
各単位の説明
unix時刻で0xFFFFFFFFは2106-02-07T15:28:15Z+0900なので、これより前なら末尾8文字をそのままUnix時刻として扱って良い
この性質はUserCSSで使えそうだなtakker.icon
B: その行を生成したUserのIDの末尾6文字分
C: 常に0000
D: 0x000000から0xfffffeまでの完全にランダムな16進数
サーバで作成した行IDは、この規則に従っていない
新規作成したページのタイトル行のIDなどが例
生成コード
code:mod.ts
const zero = (n: string) => n.padStart(8, '0');
export function createNewLineId(userId: string) {
const time = Math.floor(new Date().getTime() / 1000).toString(16);
const rand = Math.floor(0xFFFFFE * Math.random()).toString(16);
return ${zero(time).slice(-8)}${userId.slice(-6)}0000${zero(rand)};
}