tDiaryからJekyllへの移行 - 2020-12-24 - ククログ

ククログ

株式会社クリアコード > ククログ > tDiaryからJekyllへの移行

tDiaryからJekyllへの移行

このブログシステムを10年以上メンテナンスしている須藤です。

このブログシステムは2008年5月から運用しています。Rubyを使って実現したいと思って運用開始時からtDiaryを使って実現していました。tDiaryはWebアプリケーションとして動かすことを想定していますが、このサイトはできるだけ静的なHTMLとしてコンテンツを提供したかったのでtDiaryで管理しているコンテンツを静的なHTMLに変換するフリーソフトウェアを開発してそれを使っていました。このたび、そのtDiaryベースのブログシステムをJekyllを使ったシステムに移行しました。

この記事を書いているのはJekyllに移行してなにか問題が発生していないか気づいた人がいたら教えて欲しいからです。気づいた人は https://gitlab.com/clear-code/website/-/issues にissueを作るか、直接私に教えてください。

移行の背景

まず、どうして移行したのかを説明します。理由は次のとおりです。

  • 重複管理をやめたい
  • より多くのサイトのデータを自由に利用できるようにしたい
  • Webブラウザーではなくテキストエディターで文章を書きたい
  • 社外からの寄稿も受け付けたい

重複管理をやめたい

このサイトのブログ以外の部分は当初はRubyで実装した独自の小さな静的HTMLジェネレーターで生成していました。生成ツールが別なのでブログ部分とそれ以外でヘッダー・フッターなど共通部分を二重に管理していました。独自ツールにブログ機能を実装する気はなかったのでイヤイヤ二重管理をしていました。

時は流れ、Jekyllのようにブログ機能付きの静的HTMLジェネレーターがいろいろ登場しました。そのようなツールに移行すれば二重管理をしなくてもよくなることから、まずはブログ以外の部分を独自ツールからJekyllに移行しました。2018年のことです。しかし、ブログ部分はまだtDiaryを使っているので二重管理をしたままです。ブログ部分もJekyllに移行し、二重管理をやめたかったのです。

より多くのサイトのデータを自由に利用できるようにしたい

私達はフリーソフトウェアを推進しているので私達の活動の成果はできるだけ多く自由に利用できるようにしたいです。サイトの情報はソフトウェアではありませんが、自由な文書ライセンスソフトウェア・文書以外用の自由なライセンスもあるのでそれらのライセンスのもとで利用できるようにしたいです。

次の通り、すでに一部は自由に利用できるようにしていました。

しかし、ブログのソースデータやtDiaryの設定ファイルなど自由に利用できないものがありました。

Jekyllベースのビルドシステムはすでに https://gitlab.com/clear-code/website で公開済みです。(ライセンスについて整理していなかったことに今気づいたので整理しておきます。)ブログシステムもここに組み込めれば自由に利用できるようになります。

Webブラウザーではなくテキストエディターで文章を書きたい

tDiaryはWebアプリケーションなので記事の管理はWebブラウザーで行います。ブログ記事としてそれなりの量の文章を書くとき、Webブラウザーのテキストエリアでは編集機能が貧弱です。私はFirefoxのwithExEditorを使って手元のEmacsでテキストエリアの内容を編集していましたが面倒でした。

Jekyllベースのブログシステムはローカルで記事を書いてGitで管理します。そのため、使い慣れたテキストエディターをそのまま使えます。

社外からの寄稿も受け付けたい

今年からノータブルコードコーナーをはじめましたが、社外の人からも寄稿してもらえたらおもしろいんじゃないかと思っていました。(このブログに集約するのではなく、いろんな人が自分たちのサイトでノータブルコードを紹介するのもおもしろいとは思います。)

しかし、このブログシステムの記事管理用のtDiaryは社内で運用されていて社外の人はアクセスできません。これだと社外の人からの寄稿の敷居が高いです。

Jekyllに移行して https://gitlab.com/clear-code/website で記事を管理すれば、社外の人はMerge Requestで記事を寄稿できます。このリポジトリーにはGitLab Pagesでプレビューできるようにしてあるので https://clear-code.gitlab.io/website/ のように記事のプレビューもできます。

という感じでtDiaryからJekyllに移行したいと思っていました。

移行方法

tDiaryからJekyllに移行するためにtDiaryのデータをJekyll用のデータに変換するスクリプトを開発しました。フリーソフトウェアとして公開しています。

技術的な詳細や困ったところは。。。来年にでも別途まとめます。

社外からの寄稿方法

Jekyllに移行した理由の1つが社外からの寄稿を受け付けられる仕組みにすることでした。

それでは、社外からの寄稿の仕方を。。。来年にでも別途まとめます。

まとめ

このブログシステムをtDiaryからJekyllに移行しました。tDiaryには10年以上お世話になりました。ありがとうございました。

移行したばかりで問題が残っているかもしれないので、問題を見つけた人は https://gitlab.com/clear-code/website/-/issues に新しいissueを作るか、直接私に教えてください。

2020年中に完了できてよかった。。。