ホームページの作成

まず、3DCG関連の記事を書く前に、このホームページの作り方をまとめておこうと思います。

このホームページは、Hugoを使って作成しています。

Web系の技術には詳しくないので、WordPressやMovableTypeといったCMSを使ってホームページを作ろうと思っていました。しかし、調べてみると、自分なりにカスタマイズさせることが難しそうだったので、マークダウンで書いたものから静的なページを作成してくれるHugoを使ってみることにしました。テーマはとりあえずMainroadというものを選びました。

Hugoの公式ページ: https://gohugo.io/

Mainroadテーマのページ: https://themes.gohugo.io/themes/mainroad/

ちょっと見た目がシンプルすぎる気もしますが、最低限の機能は揃っているので、これを使っています。(アーカイブページは欲しかったので、誰かが作ったものを参考に追加しました。)

マークダウンで書きたかった理由の一つは、自動翻訳などのツールを通して、他の言語にも翻訳してみたかったことです。とりあえず、英語だけですが、DeepLのAPIを使った翻訳をしています。

DeepLはGoogleなどと比べても自然な翻訳をしてくれている気がしていますが、ちょっと不満もあります。

  • 翻訳結果に必要のないスペースやピリオドが入ることがあります。マークダウンの記法として、誤った位置にスペースやピリオドを書くと正しく動作しなくなることがあります。今のところ、大きな影響が出ていないので無視していますが、今後、翻訳結果のスペースやピリオドを調整するツールが必要になるかもしれません。
  • 同じ翻訳が2回繰り返し書かれることがあります。分散処理のバグだと思うのですが、何度か起きました。とりあえず、1つ文章が長いとよく起きるので、文章を分割して回避するようにしています。

ちなみに、マークダウンのフォーマットをどうやって翻訳しているかというと、翻訳したくない部分を抽出してkeepタグをつけることで、その部分だけDeepLが翻訳をしないように制御しています。ただし、英単語を含む日本語を書いた場合に、いくつか問題が起きています。具体的に言うと、純粋な文章の中で英単語を使っていても問題ないのですが、パラメータの設定(例えば alt = "...")に、英語と日本語を混在させてしまうと、翻訳結果がおかしくなります。これはマークダウンのパーサーを使って、正確にkeepタグを埋め込んでいけば、解決するかもしれませんが、現在は、マークダウンの記法を解析せずに、特定の記号が使われている部分を正規表現で検出しているだけなので、そういうことが起きています。

そういう感じで、翻訳結果をみて、日本語の書き方を修正することはありますが、英語の翻訳結果を手動で修正することは避けています。

コメントは、Hugoに組み込まれているDisqusを使ってみました。せっかく静的なページで軽いのに、Disqusを使うことで重たくなることが嫌なのですが、フィードバックする手段がないのもどうなのって思うので、一応つけてみました。おそらく日本人でフィードバックしてくれるのは、間違いを指摘するくらいだと思いますが、しばらく様子をみて、使う人がいなかったり、荒らす人がでてきたりしたら、コメントは廃止するかもしれません。そんなにこだわりはありません。

あと、Hugoで作成したHTMLのデータは、zipでまとめて、レンタルサーバーにFTPコマンドで送っています。なお、そういったツールはすべてPythonで書いています。Pythonは何でも簡単に実行できるので、スクリプト系の処理を書くのは非常に便利です。さらに、サーバー上では10分に1回指定したPythonスクリプトが起動するように設定しているので、そこで、zipファイルが届いている場合に、ファイルを展開して外部へ公開するようにしています。

本来であれば、GitHub Actionsとかで実行するほうがスマートなのかもしれませんが、今のところ、手動で、Pythonを実行しています。翻訳結果を見て日本語を修正したりしているので、まだ、完全自動化とはいかないですね。