up:: Wiki
up:: JavaScript and TypeScript

新しく同期した場合、まずnotionIDを見てヒットしたらそれを消して書き換える
ヒットしなければ名前を見て、同名のファイルがあれば書き換える
inlinksにデータベース上に存在しないファイルがある場合は、別データべースを製作して登録

まず、存在するプロパティタイプ
Text,List,Number,Checkbox,Date,Date & Time
それぞれに定型文を用意
ついでにinlinks

次にObsidian上でのフロントマターに存在するプロパティを登録

最後にNotion上でのプロパティタイプ及び名前を登録
Text,Number,Select,Multi-Select,Date,Checkbox,Relation

プロパティの対応で6*7=42通りくらい書くことになる
Ob側が困るのはListをTextにする時くらい、まあ問題ない
No側は対応潰さないと困る
Text、NumberはM-SとDate除いて何にしてもいい
Checkboxは何か入ってたらチェック、Numberで0をチェックにするなら設定で
Listは平板にする処理を挟めばText,M-S,Relに入る
Checkは二通りあるのでそれだけ注意すればT,Nと同じ扱いにできる
Numberには入らないので注意
DateはText,Select,Date,C

RelはURLが無いといけないのでは? TextかListの時のみ

RelはURLを認識しないといけないので、マッチかけて反応するかどうか
リンクとしてTextもしくはListに存在する場合は、Relationを繋ぎたいところ
だが多数のデータベースに跨って存在するファイルのRelationを、全て同じデータベースに繋いだりすると問題が生じる
Relationは別のデータベースを繋ぐオプションを付けるべき、入力しなければ同じデータベースへ
その繋いだデータベースのファイルも同期する?
ここはチェックボックス

setPlaceholderで初期名設定
setValueでaddしたコンポーネントの設定を変数に反映
onChangeでコンポーネントが変更された際の処理

someは配列やレコードにある関数、指定した条件にハマる値があるかどうか調べる
includesは指定した要素があるかどうか
今回は変化した値が今までの値の中に既にあるかどうかを調べている
あればエラーを返し、無ければ先に進んで値を書き換える
最後にsave_settingsを呼ぶことを忘れずに

最初にあるFolderSuggestはcb.inputElに作用する
関数じゃなくわざわざクラスを使ってるのは、たぶん継承のため

スキルを一つにまとめる
界力とタグしか変わらないので、1の界力、2の界力みたいな
Ob上からタグで拾えなくなるがまあしゃあない、というか今でもカードをタグで拾えない状態だし大きな問題ではない
Obは情報を集約するのが目的、書きにくいのは論外

もしキャラ名が空ならArrayは空のまま
もしキャラ名が一つならstringとしてArrayに追記
もしキャラ名が複数ならArrayとして追記

ボタン
カラーピッカー
ドロップダウン
追加ボタン
時刻フォーマット
進捗バー
検索
スライダー
テキスト
テキストエリア
拡張できる複数行用のエリア
トグル
消去
セットClass
セット説明

Settings
setValueで初期値設定
Onchangeで入力を実際の値に入れる処理を書く

キャメルケースに統一

フロントマターとkey二つを投げるとjsonの一部を返してくれる関数

オブジェクトで禁止されているのはKeyValueを一気に変数展開すること
KeyとValueをforで回しそれぞれ割り当てていけば許可される

5に5が常につくわけじゃない
だから本当は解放ごとにスキルレベルを分けなきゃいけないが、ユースケース狭すぎなのでいったん無しで(合計界力の算出などに使う)

スキルごとに間違いなく界力の傾向があるので、その関係のタグも欲しい