ずっとBloggerでmarkdownで書きたいなーとか、Bloggerなんか更新して書きやすくならないかなーとか、思ってた。 思ってもう5年ぐらい経ったけど全然更新されないし、そもそもTwitterとかfacebookやdev.toに大体の事書いてるから別に情報発信の場を考えてないし、というわけでBloggerはおしまいおしまい。長らくありがとうございました。 移行先は色々考えたけど、この具にもつかない日記を未来永劫保管できるところはないよなと考えて、自分のWebページを今年のはじめにHugoで作り変えたことを思い出して、そこでいいじゃないかと。

移行

とりあえず、一ページごとにこぴーあんどぺーすとなんてやってられないので、BloggerでMarkdownの吐き出しがないかを確認、ない。 次にツールで何か無いかと思ったらドンピシャなものを発見。

https://github.com/palaniraja/blog2md

BloggerやWordpressのエクポートをHugo用に変えてくれるnodeのツール。 嫌素晴らしい。多分同じ気持ちだった人だろう。 というわけで、Bloggerからエクスポートして、出てきたxmlをツールに食わせて、終わり終わり。 Tagsとかまできちんと出来てる。

_index.mdを表示する!

_index.mdとは -> https://bwaycer.github.io/hugo_tutorial.hugo/content/using-index-md/

hugo って大体メインページが無い感じでした。 大体、ページあけるとブログみたいにずらっと記事一覧が出てくる感じ。 なので、私はブログとかあげず。一枚だけ記事を書きそれをメインページにしてました。 でも、ブログをこっちに移行するからには、一枚ペラのメインページがあって、リンクでPostsを押したら次に記事一覧が出るようにしたい。

Hugo version up to v0.61.0

前からindexページの話は知ってたのですが、うまく動かなかった。 ところが、Hugoのバージョンアップし上記バージョンまで上げたところ、動くじゃないですか! きちんと _index.mdを認識して、最初のページを出し、Postsを押すと記事一覧が表示される、いいね!

terminal theme version up…

ついでにとthemeの方も結構バージョンアップしてたので、あげようかと思ったら、folkしてなんか自作のコード入れてたことを思い出す。 最新のものと見比べると、私が足したコードが追加されていた。 じゃ、もう自作のrepositoryいらないよね。と考え、差し替えてみたところ。 indexページが動かなくなった!なんで! theme切り戻すと、indexページが復活する。 これは困った。

investigation#1 meld

とりあえず、meldを使って2つのthemeを見比べるが、変更差分が結構あってわからない。 いくつか試してみたが、成果出ず。

investigation#2 git bisect

git bisect があったことを思い出す。 まずは

hugo server -w

でwatch mode でhugo server を起動し、 top page に_index.mdの内容が表示されている元々folkした時のhashを確認、 次に最新のhash値をcheckoutすると記事一覧が表示されることを確認。

git bisect start
git bisect 
git bisect good a28c65d41178ff39981a3df5b80a7108eec2a1bc
git bisect bad 2a34760541f983068786cbe7b2e901fefa357e5d

bad の hash値は駄目だったときのもの、good はindexが表示されたもの。

後は、gitが自動的にcheckoutをしてくれるので、 good と bad を以下のようにやりながら、gitが見つけるまで続ける

git bisect good
git bisect bad

最終的には以下のようになった。

$ git bisect good
3d20322e3ad506e0110a0f134b043b90534a15fc is the first bad commit
commit 3d20322e3ad506e0110a0f134b043b90534a15fc
Author: William Sandbrink <wilsandbrink@gmail.com>
Date:   Wed Aug 14 22:08:50 2019 +0200

    fixes broken page list

 layouts/_default/list.html | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

結局、以下の変更が問題だった見たい。 おそらく修正後の方が正しいんだけど、私には都合がわるいので、 自分のrepositoryに取り込んだ後、修正コードを買いて終了。

- {{ $paginator := .Paginate (where .Data.Pages "Type" $contentTypeName) }}
+ {{ $paginator := .Paginate (where .Site.RegularPages "Type" $contentTypeName) }}

最終

これで移行は終了。
後は、gitlab ci/cd を使っての自動publish とか考えているけど又今度でいいや。