Private行のみを公開しないというProject運用
>自分のScrapboxプロジェクト、private.iconをつけたページ以外全部転送する仕組みに変更した
印つけてない方を公開するって珍しい気がする
2
指摘いただいた
> 例えばページAに内容x, y, zがあって、xのみ公開できない場合
> xの内容のどこかに [private.icon]
が付いているので、xのみをページBにコピペした時にもxのprivate指定は維持される
private.iconついてる単位で切り出すことを想定しているわけか
そして俺のソースコード読解力がゴミすぎるw
改めて
tsif (lines.some((line) => line.includes("[private.icon]"))) {
someは配列の中に一つでも見つかればおっけーとするもの
linesの中に、include private.icon な line が一つでもあれば lines まるごとがオッケーになる
つか全体を見るべきだな
ts const importingPages = pages.filter(({ lines }) => {
if (lines.some((line) => line.includes("[private.icon]"))) {
return false;
} else if (lines.some((line) => line.includes("[public.icon]"))) {
return true;
} else {
return shouldDuplicateByDefault;
}
});
filterとか全然知らんから一つずつ見ていくぞ
importされるpagesを決めたい
そのためにfilterしてる
linesをfalse(importしない)に倒すか、true(importする)に倒すかを決める
linesが一つでも private.icon を含む場合、false。しない。
逆に一つでも public.icon を含む場合、true。する。
どっちも通らなかった場合はデフォに従う
tsconst shouldDuplicateByDefault: boolean = (Deno.env.get("SHOULD_DUPLICATE_BY_DEFAULT") === "True");
環境変数から取ってくる
それを "True" と比較している
比較した結果を採用している
つまりどういうこと?
普通に = Deno.env.get("SHOULD_DUPLICATE_BY_DEFAULT")
ではダメ?
ああ、そうか、文字列だから、文字列としてtrueになってるかを見る必要がある
ここでは True
という文字列を使っている
true
でも y
でもなくて
理解
1
間違い
詳しい解説
privateにしたいものにアイコンを張るので「鍵をかける」みたいで直感的
>private指定がページではなく文章に紐づいているのも良い
ここはよくわかってない
たとえば
pageX
aaa
bbb ★ここにprivate.iconつける
ccc
この状態でcccをコピーしてもprivate.iconはつかない
いや、たぶん
「private.iconついてる行以外」は全部公開、ってしてるのかな
つまりは行指向
もっと言うと「private行」を定義する形になっている
tsif (lines.some((line) => line.includes("[private.icon]"))) {
bingo