Skip to content

Posts

Ginkgoわからん

MDMMLじゃない話。 https://onsi.github.io/ginkgo/ でテストを、 Describe(){ Context(){ // 準備 It(){ Expect() } // 次の準備 It(){ Expect() } // 後片付け } } みたいな感じで書いていたら、思った通りの動きにならなくてハマった。 どうやら、Contextの中は上から順番に実行されるのではなく、 Describe(){ Context(){ // 準備 // 次の準備 // 後片付け It(){ Expect() } It(){ Expect() } } } となるらしい。 やりたい順番で実行したければ Read more

MDMML CI構築

いまさらながらGitHub ActionsでCIを設定した。 Actionsのバージョン指定なしgoは1.15.15なんだね。もうじき1.18が出るのに。

crontabの範囲指定について

crontab、-で範囲指定ができるけれど、大小関係が逆だったらどうなるか気になったので調べてみた。 59-1 * * * * time こういうやつ。 dockerでalpine使って動かしたところ、想定通り59,0,1で実行された。

リファクタリング

通らなくなっていたテストを通した。 バイナリものはパッと見でどこが違うかわかりにくいのが難点。。

リファクタリング

データ構造の変更と、それに関連する部分を修正。 テーブルのセルごとに読み込んで保持するようにした。 テストが通らなくなった。。 セル(小節)ごとに変換したら、ループとか現在のオクターブとか状態として持たせないといけないのか・・ちょっと、あまり、よくない気がする。

マークダウンパーサーを使ってみたが

やりたかったのは、hタグでセクションをブロック化して取り出して加工だったのだけど、 実際やってみて、hタグでブロック化はHTML的にも無理じゃんってなった。 結局自前でやっていくしかないのか。。 で、これをやっていて思いついたのが、今は読み捨てているテーブルのヘッダー部分をセクション代わりに使えないかなと Read more

goldmarkを読む

難解だと思って避けていたASTを直接見れば、goqueryを使わなくてもよいのでは?と思ってgoldmarkのソースを眺めてみた。 rendererのhtml.goが参考になると思うんだけど、なかなか長大な感じ。 RegisterFuncsで各要素ごとの処理を登録していけばよいのかな。 うーん。変換結果と Read more

ライブラリの力を借りる

機能を追加していってだんだんマークダウンのパターンマッチが面倒になってきたので、パーサー使おうかと。 マークダウンのパーサーはyuin/goldmark: A markdown parser written in Go. Easy to extend, standard(CommonMark) compliant, well structured.が良さそう。 で、HTMLに変換したのをPuerkitoBio/goquery: A little like that j-thing, only in Go.で必 Read more

構成指定実装

結局、Sectionsで実装することにした。 データ構造変更したのでテストも修正。修正の影響範囲がわかるから、テスト書いておいてよかったと思う。

曲の構成の変数名

昨日思いついた、曲の構成もマークダウン上で管理するのをやってみようと思ったところ、変数名をどうするか悩んでいる。 イメージ的にはパートとかセクションかなーと思うんだけど、自信がない。