2018-11-09: crystal docsを直してた
やったこと
mdx-deck
直そうと努力はしているが無理な気がする。そもそもルーターと独立させつつ、ヒストリを扱うのが難しい。最低限のAPIだけ持ったオブジェクトをhistoryプロパティとして渡す、とかが無難なんだろうか‥‥。
URLが変わったときにルーターがcomponentDidUpdateをトリガーするのが問題だと理解したので、ラッパーをPureComponentで包んだら動くようになった。これで問題が起こるようなスライドは作らないと思うので、これでいいような気がする。
React.memoでもいいっぽい。
これでようやく先に進める‥‥。
CrystalのJSONで、Hash内のnullが無視される
https://github.com/crystal-lang/crystal/issues/7052
調べたところ確かにそういう実装になってる。
https://github.com/crystal-lang/crystal/commit/5312eed11065fa626474d996602b2303d863b3f1
が、なぜそんなことをしたのか全く分からない。普通に考えて、勝手にスキップされても誰も嬉しくないと思う。
どうもUnionに対するJSONの変換ができない時代の実装だったらしい。なるほど。
とりあえずPull Requestを作った。
https://github.com/crystal-lang/crystal/pull/7053
さくっとマージされた。なんでこういうのは早いのか‥‥。
crystal docsの修正
https://github.com/crystal-lang/crystal/pull/7054
https://github.com/crystal-lang/crystal/pull/7056
数日前に実装したまま放置してたやつ。テストを書いてなかったのもあるけど、新MacBook Airを開く余裕が無かったというのもある。
この手のテストを書くのはめんどい。