BBCodeを分かりやすい形式で表す
これは
アスタルテゆるふわアドベントカレンダー2019を500日遅刻した記念に作成した記事です(?)
前日はniさんの写真ですが、既に404 not foundになっています。
前々日は霧島さんの
一年の振り返りです。
作った理由
- BBCodeそのままでは見た目では分かりづらい
- BBCodeをコンピューターで扱う時に扱いやすいように変換したい
- BBCodeと一意で変換出来るような形式を作りたい
- 大学のコンパイラの授業と今までBBCodeを作ってきた経験を使って作れると思った
どのように作るか
- 分岐している部分、回っている物の全ての回転数を求める
- 同じspinに囲まれている時は外側、左からパースして、2分木にしていく。末端の方は多分1本しか出ない。(言葉で説明しづらい)
- 同じspinの中に分岐して3つのspinが入っている一つの要素から3本出すのはアレなので同じ回転数の物を左から積み上げていく(言葉で説明しづらい)(左からという制約をつけると、位相という私の独自概念も表す事が出来るので都合が良い)
- 上の階層との回転数の差がその部分のspinの数になる(上手く言えない)
直接私に聞いたほうが良いのかもしれない
そもそも回転数って何?
- spinでの回転をflip+spinで打ち消す事を分かりやすく数字で表したかった形式
- 何も無い所ではspinをn個積み重ねて回転数をn増やすことが出来る
- flipにspinをn個積み重ねた時、回転数がプラスの時:n減る、回転数がマイナスの時:n増える
- 中身にspin無しのflipでは中身が反転するだけなので回転数は変わらない
- 回転数がプラスの部分は時計回り、マイナスの部分は半時計回り、0の時は回転しない
この形式で分かる事
- なんとなくの動き(これは経験次第)
- 中身がどのくらいの速さで回転するか
- BBCodeの構造
- 同じ動きでBBCodeを省略出来る場所(分岐していない末端でのspinは消せる場合がある)
形式の例
垂直移動
[spin] [flip=horizontal][spin][spin] [flip=horizontal][spin]☆[/spin][/flip][/spin][/spin][/flip][/spin]
☆
画像が添付されています。
初手から分岐しているBBCodeの例(2つの垂直移動)
[spin][flip=horizontal][spin][spin][flip=horizontal][spin]A[/spin][/flip] [/spin][/spin][/flip][flip=horizontal][spin][spin] [flip=horizontal][spin]B[/spin][/flip][/spin][/spin][/flip][/spin]
A B
画像が添付されています。
この形式で出来ない事
- BBCode何も分からない人がBBCode組むこと(つらい)(お絵描きする気持ちで作れるのかも?)
- 位相(私の独自概念)が分かりやすく表せない事(一応グラフの形で表せるけれども、分かりづらい)
- spin、flip以外のBBCodeを使ったBBCode(つらい)(flip horizontalとverticalが混在しててもつらい)
発展
一番上の回転数0の部分を分岐させると今まで私が扱えてなかった地の文でBBCodeを並べるのも理論の体系入れられるのかも?という感じ(未確認)
あとがき
2019年末から500日も経っているなんてあっという間に感じてしまった。
BBCodeを埋め込むためにアスタルテで書いたが、そこまで例をたくさん載せられる程の余裕が無かった。(と書いて本当か?って確かめてみたら、いつの間にかトゥート埋め込み直ってた。)
忙しくてBBCode書けないのつらい
一時期神崎丼のBBCodeと同じレベルの表現力のMFMがmisskeyに搭載されたが、一瞬で無くなったので辛い(BBCodeの技術はアスタルテで途絶えるのだろうか。)