自分が在籍している学科(琉大工学部知能情報コース)は学科関連のお知らせをインターネット経由で流している。歴史的にはネットニュース(fj)時代から運用されており、その後wordpressに移行している。
現在はここから見れる。
WordPressでの運用は元気に動いている間は良いのだけれど、数年前にplugin経由でGoogle検索結果を爆撃されるという事件があったりした。最近はDBのコネクションエラーが多発しており、ログを取って解析していても原因が追求できない。
更に追い打ちをかけるように学科ウェブはだいたいマルチサイト化されたWordPressで動かしているので、どこかでDBエラーなどが発生すると全滅するということになっていた。
まぁこれが辛いので静的サイト化するぞ!!!!! というのをid:unimarimoと話していたのだけど、最近のシステム更新のどさくさに紛れてシス管MTGで話したら河野先生も乗り気にできたので進めている。
静的サイト化!!!
静的サイト化としては色々方法があって、nuxt.jsを使う方法などを発見していた。 とはいえ学科のメンバーとwebサイトを管理しているシス管メンバーが毎年コンスタントにnuxt.jsのことが解るようになるかと言われると微妙なところがあった。
まぁこれはメンバーと主に僕の趣味で、バイナリをおいておけばどうにかなるhugoを使ってmarkdownから変換する形式にしていこうとなった。
静的サイトのつくりかた
ということで今考えている構成はこんな感じ
- markdown化したnews-ieのリポジトリを学科gitlabにたてる
- 投稿したい人がなにかでリポジトリにmarkdown等をpushする
- jenkinsかgitlab ciが頑張ってhugoを動かしてhtmlを生成する
- どうにかしてそのファイルをwwwサーバーに送りつける
ci移行のとこと投稿に関しては手探りではあるのだけど、なんとなく行けそうな気がする。
news-ieは他に学科アカウントが無いと閲覧できないという機能があって、今まではwordpressのpluginで管理していたのだけれど、これはnginx側で制御することにしたい。ついでに今はwwwサーバーはapacheなのでapacheからnginxへの移行もやってしまう。
手順?
基本的には現在のnews-ieのエントリをすべて回収してくる必要がある。 賢い人はいるみたいですでにwordpress pluginでhugoで使えるmarkdown形式に変換した上でzipダウンロードしてくれるやつがあった。
管理コンソールでこのpluginを使ったところ、本当に動いているか怪しいほど時間はかかった。 1分以上立った後で、zipが無事ダウンロードされたのだけれど、ちゃんと添付ファイル込でmarkdownにしていたのでかなり良かった。
とりあえずこれで今までの投稿のmarkdownが手に入ったので、後は頑張ってhugoでhtmlを組み立てていくフェーズとなる。続きはまた...