Hexirp / hexirp-hakyll

I decided to deeply fork hakyll.
Apache License 2.0
1 stars 0 forks source link

コンパイラが適用されない #90

Open Hexirp opened 4 years ago

Hexirp commented 4 years ago

See https://github.com/Hexirp/hexirp-hakyll/pull/89 . See https://github.com/Hexirp/hexirp-hakyll/pull/86 .

https://github.com/Hexirp/blog/commit/b06bee93847556cb87605bb37c92dbd2bd839ca0 のような事態になっている。やはりどこかがおかしくなっていた。

Hexirp commented 4 years ago

ここで原因となると思われるのは、

これらでは Dependency に関する破壊的な変更があったので怪しい。

Hexirp commented 4 years ago

ここで、 route が正常に適用されずコンパイラも適用されないという状況である。 Hexyll.Web.PaginateHexyll.Web.Tags は、それぞれページ数の付与とタグの扱いを加える、オプション的な機能であるため、ここまでの破壊的な影響力はないと考えられる。

Hexirp commented 4 years ago

Hexyll.Core.Runtime がやはり怪しい。 facts は揮発するもので cache は残るもの。 cache を組み立てるのは outOfDate 関数だけ。なので Hexyll.Core.Compiler.InternalHexyll.Core.Compiler.Internal は設計的に cache を組み立てなくてもいいが……

Hexirp commented 4 years ago

hexyll/src/Hexyll/Core/Runtime.hs を読んだ。原因が見つかったかもしれない。ここでは facts から facts と cache の二つに置き換えていたけど、ここで store していたのが facts のままで cache を store していなかった。これが原因であるかにせよ、修正しなければならないのは確かである。

Hexirp commented 4 years ago

ここを修正しても直っていないようだから Compiler の方を確かめてみる。

Hexirp commented 4 years ago

色々やったけど直らないので Route の方がおかしいかもしれない?

Hexirp commented 4 years ago

はっきりさせよう。 RouteCompiler も適用されない。ここでおかしくなっているのはどこか。

Hexirp commented 4 years ago

RouteIdentifier がディレクトリも許すものだと扱っている……? でも、これは直接の原因ではないか? 変更が入った後の hexyll-0100-alpha-0 も正常に動作しているし。

Hexirp commented 4 years ago

うーん、あきらめた方が? どうせ設計は大きく変えるつもりだし。

Hexirp commented 4 years ago

あ! Rulesmatch とかで使う Pattern の中身まで全部新しい Pattern になったからか!?

Hexirp commented 4 years ago

なるほど、 https://github.com/Hexirp/blog 側で escapeGlob とかやっていたけどもういらないのか?

Hexirp commented 4 years ago

よし、 hexyll-0100-alpha-0 ではおかしくなっていないことを確認した。

Hexirp commented 4 years ago

https://github.com/Hexirp/blog/commit/cfc5fbf6ca7f97dda0b8f8279f17a27b217dc328 で確認。

Hexirp commented 4 years ago

escapeGlob とかの問題じゃないことを確認。