ウェブサイトをリニューアルしました。

久しぶりの更新となりました。ここ最近はこのウェブサイトをいじっていました。今日はその背景と作業のきっかけについて記録しておこうと思います。

サイトの歴史を振り返る

このサイトを作成したのは2012年頃で、かれこれ7年が経過しました。プログラミングを大学のサークルで初めてC++を教わり、DirectXやOpenGLと格闘していました。いつかC++で自作したソフトウェアを配布しようと思い、無料のレンタルサーバーを借りたのがこのサイトの始まりです。HTMLやCSSを学び、Linuxのコマンドを覚えながら、当時は話題になっていたnginxを試行錯誤しながら設定した記憶があります。また、PHP,Ruby,Pythonなどの動的な言語を知る機会にもなりました。

そんなプログラミング初心者が初めて作成したサイトだったので、ウェブサイトはHTMLタグの手打ちでした。なぜそうしたのかというと、当時はデータベースの使い方がわからず、初心者でも管理できる軽量で高速なウェブサイトを目指したからでした。

ただ、サイト作成経験者ならお分かりになると思いますが、HTMLタグの手打ちは面倒です。記事を書くために余計なパワーが必要だと、どうしても更新が億劫になります。また、ページが増えてくるとデザインの変更が大変になってきて、ちょっとした遊びも難しくなってきました。動的言語はPHP程度しか使えず、PythonのSphynxに乗り換えようとしましたが思うように使いこなせず、最終的に更新が停滞しました。また、大学院にいたときはプログラミングどころではなかったのもあります。

静的サイトジェネレータ

この状態を抜け出すきっかけとなったのが、静的サイトジェネレータとの出会いでした。静的サイトジェネレータ(SSG)を使うと、Markdownで書いた記事をレイアウトと組み合わせて、手打ちのホームページを生成してくれます。これを使えば文書の内容と見た目を分離でき、コンテンツの作成に集中できるのではないかと思い、metalsmithを使うためにNode.jsの世界に入門し、昔のホームページをSSGで生成するように改造しました。これが多分2016年頃だったと思います。

その後もJavascriptを学ぶたびにSSGを改造したり、Gitを知ったので文書のバージョン管理を試みたり、その過程で全文書を消してしまったりと、新しい技術を学ぶたびにこのサイトで試してきました。その後ソフト系の仕事に就き、今後は情報発信に専念しようと思ってブログを2017年末に作成しました(情報発信してない)。

ブログをやって分かったこと

その後1年間ブログを運営していろいろわかったことがありました。

一つは、そもそも情報発信が難しいこと。発信するほどでもない内容を増やせば、重要な記事が埋もれてしまいます。また、間違った情報を発信すると全ての情報の信頼が損なわれます。それに匿名でブログをやっている以上、人物の特定に繋がる内容は書けません。気軽に記事を書こうとブログを設置しましたが、ブログだけでは情報発信が難しいことがわかりました。

二つ目は、記事アップロードの時間です。Markdownで記事を書いて、コマンド一つでサイトが更新されるようになりましたが、結局サーバーへアップロードして更新しないといけないことに変わりはありません。このブログの初めての記事を書いた時点でも自動アップロードの必要性は感じていました。

記事の質を向上する仕組みとして下書き作成⇒公開の手続きを踏んだり、仮想マシンを使ってシェルスクリプトを使ったアップロードの仕組みを作ったのですが、管理は大変になるわ、個人情報を含む記事は相変わらず書けないわで、文章を書くハードルはあまり変わりませんでした。

そこで、今回のサイト改修です。今回の作業でSSGの処理をライブラリ化し、コンテンツと分離しました。目立った変化があるとすれば、ブログを日常ブログと技術ブログに分けました。日常ブログは日々の記録を、技術ブログは技術について試したことや考えについて投稿することにします。残すべき記事は時系列順のブログではなく、カテゴリで階層管理されたメインコンテンツ配下におきます。ローカルでは非公開ブログや下書きを作ったので人に見せられないこともバシバシ書き貯められ、それぞれが共通のSSGで処理されるため互換性があり、下書きからメインコンテンツへの昇華も容易になりました。

文書だけでなく、デザインの改修を今後しやすいようにsassを使ってみたり、browser-syncというモジュールを使うように改造しました。また、今はまだできていませんが、CircleCIを使ってサーバーへのアップロードを行えないか検討しています。CI/CDは職場で誰も使っていないのでぜひ会得したいところです。

なお、現在抱えている改善点としては

  1. SSGでブログを生成するために複雑な変換をしており、ビルドに時間がかかるようになった
  2. Markdownを書くエディタ以外のツールが揃っていない
  3. 著者の日本語力が低い

といった具合ですが、また来年に向けて改善活動を進めていきたいと思います。今後ともよろしくお願いします。

ブログのデザインにほんの少し遊び心を加えてみたのですが、あまり変わっていませんね。