ScrapboxのJSONをParseするライブラリをDenoで作る
Node.jsが嫌いだったけど、Denoのおかけで「かくか」という気持ちになる トランスパイルとかめんどくさいので、直接実行できる方が良いし、色々設定しなくて良いのは良い
Typescriptを触りたくなかった理由、多分自分で色々決めないといけなかったところなのかな
僕は巨人の方に乗れれば良いのです
code:main.ts
import data from "./data/gorira.json" with { type: "json" };
というズルができるのも良い
よし、いい感じに修正した
これで多分良くなっているはず
とりあえずここに移行するためのスクリプトをたくさん書く
/#(?![^\[]*])[^\s,]+/に落ち着いたけど、引用符の中にある#はhashtagとして拾ってしまう
Centraくんに「AST作ろうね」と笑顔で言われているが僕は笑えない() とりあえずTagの一覧を出せるようになったので、この中から指定したTagを吹き飛ばせるようにすれば良い
これが意外と難しい
Mapで紐づけることになるんだけど、一対複数は雑な処理じゃキツイ とりあえず突貫で書いた
code:main.ts
const page_data = data.pages
const LinkedAllTagPageid = () => {
let AllLinked = new Map();
page_data.forEach((page) => {
const CheckTheTag = page.lines.slice(1).join().match(/#(?![^\[]*])^\s,+/g); if (CheckTheTag) {
CheckTheTag.forEach((tag) => {
if (!AllLinked.has(tag)) {
} else {
const LinkedTagPageids: string[] = Array.from(AllLinked.get(tag) || []);
LinkedTagPageids.push(String(page.id));
AllLinked.set(tag, LinkedTagPageids);
}
});
}
});
return AllLinked;
};
正規表現がだいぶヤバめ
https://gyazo.com/875195c8bf8a16c5f11d1d0602098395
コミットメッセージがヤバすぎ