井戸端から自分の書いたものだけフィルターしたい
井戸端から自分の書いたものだけフィルターしたい
のりしろ
井戸端から自分の書いたものだけフィルターしたいと思って実装し掛けたメモnishio.icon
色々予定外のことがあったので一旦保留にした
----
多人数プロジェクトからのデータを元に、色々な条件で抽出する
特に「自分が書いたもの」条件が有力候補
色々な条件の指定が容易なように作る
ScrapboxのJSONに「行を最初に作った人のID」は入ってるのだろうか
入ってるなら「自分が作った行」を抽出するのが良さそう
最後に編集した人のIDしかありませんtakker.icon
残念nishio.icon
reading...
fetchしたデータは/contentsに置かれる
fetchとかはpackage.jsonで"fetch": "node scripts/fetch-sbx-data.js"されてる
static_site_generator: next ほ〜〜
next exportでStatic Siteを作って、jobs: deployでGithub Pagesでの公開をしてる
nextのpagesの中でコンテンツをレンダーしてる
そのコンテンツはここからくる
/contentsに置いたやつをfsで読んでる
fileName.match(RegExp('(\\S+)__' + query + '.+\\.txt$'))
queryはconst contents = getContents(${params.year}-${params.month})の形 src filenameはpath.join(process.cwd(), 'contents', ${projectId}__${dateString}.txt),の形 src fetchはconfigで指定された日時範囲を日記フォーマットを仮定して取得する path.parse(fileName).name.slice(-10)はfilename to date
getContent自体は'@progfay/scrapbox-parser'でparseしたものを返してる
あ、なるほど
utils.jsで「自分のアイコンだけが置かれた行」から空行までの範囲をフィルターしてるのか これは僕の目的にはあんまりマッチしないな
想定してた方法が二つともダメだったのでフィルター方法を改めて考える
行に作成者IDがついてないので「自分が作成した行を取り出す」ができない
アイコンを重ねられただけで取得不可能になるから
アイコン前置き記法を前提としたフィルターは、そのフォーマットに従ってる日記からの切り出しにはいいが、今回僕が達成したいのは「自分が関与した議論を、手動で自分のScrapboxにコピーしたりせずに記録や検索や英訳の対象にしたい」なのでワークしない 「自分が作成したページ」は狭い
十分条件
「自分のアイコンがついてるページ」だと、他の人の日記なども全部巻き込んでしまう
自分の活動データの保全という意味では自分の更新した行があるページを全部保存対象にした上で、後で内容や分量によるフィルタリングかな
とりあえず「自分が作成したページ」にして、プラスconfigで対象ページを指定かな
「自分が作ったわけじゃないけど面白い議論がされてるページ」をブックマークする感じ
これをパスして下流に進むかどうか
「自分のアイコンがついているページ」が広く拾うには良い、という結論になった
「自分が作ったわけじゃないけど面白い議論がされてるページ」をブックマークする感じこれも別のデータを管理するのではなく、そのページに「面白いnishio.icon」とか書けば良い
で、その拾い方だと「日記ページで自分が言及してない他人の日記まで拾うことになる、自分の書き込みは1割程度なのに」が発生する
これに関しても「井戸端の日記だけクラスターとして特殊」ということがわかっているので、日記だけ特別扱いすればよい
空行でチャンクに分けてからそれぞれで自分のアイコンがあるかどうかを判定する、など
これはビューの側で畳むのでもよいかも?