2023-02-12 image

Kozanebaに線を引く機能が入ってどんどん線を引くようになっか思ったんだけど、この機能が必要では

どうやって実現するんだ?

  • むしろ、こうか?
    • まず6つに引き裂く
    • 選択範囲のこざねを一つにまとめる
      • この時に同じ文字列ならまとめる、そうでないなら空白かスラッシュを挟んでつなげる
    • 二重線は後から描く

2023-02-27実装

update_annotation_after_deletion

  • “leave from line”の実装

  • 参考にする

  • 一旦保留

    • 2本以上の線が繋がっている時だけメニューを表示
    • 線のつながっている方向に動かす

image

できた

  • しかし予想通り「完全に重なってるとどれに繋がってるものかわからない」が発生している
    • 2個目のXをAに繋がってると思って動かして、実はCに繋がっていた

線のつながっている方向に動かすできた

  • image

次はマージ

  • 同一内容テキストは一つに
  • 異なる内容のテキストはスラッシュ区切り
  • 同じページへのScrapboxこざねは一つに
  • では、混ざっていたら?
    • そういうことするのやめろよ…
  • 線の両端をマージしたら?

一旦保留

  • Scrapboxこざねのマージ
  • 異常系

マージしたこざねを作るところまではできた

  • 左にあるものを先にする 次に必要なこと
  • 線の付け替え
  • マージ前のこざねの削除

二重のグループの内側をungroupした時に座標がズレるバグ

できた - image

Tear 引き裂き

  • 2本以上の線がつながっているこざねを引き裂きます Merge 併合

  • 選択範囲のこざねを一つにまとめます

  • Split Kozane機能を削除

    • まだどういう機能が必要か明確になっていなかった時代に作られた、過度に抽象的な機能でした
    • Edit Kozane機能とClone機能で十分です
    • Edit Kozane機能で編集するとこざねが置き換わります
      • image
    • この時に複数行にすれば複数枚になります
      • image
    • なので「追加したものを後から複数枚に分割したい」というニーズははEdit Kozane機能で実現できる
    • Split Kozaneダイアログには「replace」と「add」の二つのボタンがありました
      • これは「既存のものを残しつつ、それを分割したものを追加したいこともあるよな」という考えでした
      • Clone機能が追加されて「これは残しておきたいな」と思った時点でcloneするようになったので必要なくなりました
      • image
  • 現時点での仕様上の注意点

    • こざねを編集した場合、テキストが一行なら表示テキストの編集と解釈している
      • なので引かれた線は維持される
    • テキストが複数行ならこざねの分割と解釈している
      • この時には「古いこざね」が消滅して「複数行テキストのインポート」が行われる
      • なので古い付箋に引かれていた線は消える
    • cloneは「同じ内容のこざねを新しく追加する」と解釈しているので、線は引かれない
  • 解説を書いていて引っかかるかもなと思ったので明記しました。

    • 西尾はこの仕様で今のところ困っていないです
    • デフォルトで線が増える仕様と、増えない仕様とを選べる場合、増えない方を選んでいると言えます
    • 人間は線が多すぎると混乱するので、増えない方が良いと思っています

use case image