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