generated at
Private行のみを公開しないというProject運用
>自分のScrapboxプロジェクト、private.iconをつけたページ以外全部転送する仕組みに変更した
> なので、ほとんどのページが公開されるようになった https://twitter.com/blu3mo/status/1389869952815882245
印つけてない方を公開するって珍しい気がする

-
2
指摘いただいた

> 例えばページAに内容x, y, zがあって、xのみ公開できない場合
> xの内容のどこかに [private.icon] が付いているので、xのみをページBにコピペした時にもxのprivate指定は維持される
private.iconついてる単位で切り出すことを想定しているわけか

そして俺のソースコード読解力がゴミすぎるw
改めて
ts
if (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。する。
どっちも通らなかった場合はデフォに従う
ts
const 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はつかない
いや、たぶんsta
「private.iconついてる行以外」は全部公開、ってしてるのかな
つまりは行指向
もっと言うと「private行」を定義する形になっている
ts
if (lines.some((line) => line.includes("[private.icon]"))) {
bingo