mikanmarusanのブログ

テクノロジーとかダイビングとか

[メモ]geocitiesの静的サイトをGitHub Pagesでホスティングする

Yahoo! ジオシティーズが2019/3/31に終了する。 info-geocities.yahoo.co.jp

自分も20年近くのジオシティーズユーザーで、サイト上に黒歴史も沢山残っている。ただインターネットを彩った歴史の一部ではあると思っている。今回はこれ何かの形で残したい。

自分は、ジオシティーズの有料付加サービスであるジオプラスを利用していない。CGIを利用していないからである。つまり、HTML/CSS/JavaScript/画像のみで構成された静的サイトだということだ。ということは、さくらやロリポップ!などのレンタルサーバだと明らかにオーバースペックである。

また古い情報のHTMLといえども、エンジニアとしてバージョン管理をしないのは悲しい。ということで、GitHub Pagesでホスティングできないのかと考え、移行した時のメモを記す。作業環境は macOS High Sierraである。

ちなみにGitHubWhat is GitHiub Pages? にも下記の通り書かれているので、okだと思う。

GitHub Pages is a static site hosting service designed to host your personal, organization, or project pages directly from a GitHub repository.

TL;DR

geocitiesの静的サイトはGitHub Pagesでホスティングすることが可能

手順はたったの4つ

  1. ftpgeocitiesのファイルを吸い出す
  2. ホスティング用のプロジェクト(レポジトリ)を作り、ここに1で取得したファイルを置く
  3. ファイルを調整し(エンコーディングの変更、不要なファイルの削除など)masterへpush
  4. プロジェクトのsettingsで、masterブランチからGitHub Pagesを生成する

1. ftpgeocitiesのファイルを吸い出す

まずはftpで思って叩いてみるといきなり死。
macOS High Sierraから/usr/bin配下のftptelnetなどはセキュリティ上の理由で廃止されたらしい。

bash-3.2$ ftp
bash: ftp: command not found

Homebrewでftpを復活させる。passiveモードになっていなくてファイヤウォールで叩き落とされていたりして解決まで時間がかかった。むしろ面倒だったら、CyberduckFileZillaのようなftpソフトでやる方が早いし正確な気がする。

# ftpを使えるようにする
brew install inetutils

2. ホスティング用のプロジェクト(レポジトリ)を作り、ここに1で取得したファイルを置く

GitHub PagesでホスティングしたときのURLはこのようになるので(ドメインなど割り当てなければ)

https://{username}.github.io/{repos}

適したrepos名のレポジトリを作り、1で取得したファイルをそのまま置く。

3. ファイルを調整し(エンコーディングの変更、不要なファイルの削除など)masterへpush

自分の場合は、htmlファイルがShift_JISで書かれていた。GitHubエンコーディングUTF-8っぽい(あまり調べていない)のでUTF-8に変換。 必要があれば改行コードも変えておく。

# UTF-8に変換
find . -name "*.html" | xargs nkf --overwrite -w

さらにhtmlファイル内部のcharsetもutf-8に修正する。 ここで黒歴史を消すこともお忘れなく。

4. プロジェクトのsettingsで、masterブランチからGitHub Pagesを生成する

  1. https://github.com/{username}/{repos}/settings にアクセスし、下部にあるGitHub PagesのSelect sourceを"master brunch"にする。
  2. https://{username}.github.io/{repos} で確認する

デフォルトでhttpsになっているのがいい

まとめ

geocitiesの静的サイトはGitHub Pagesでホスティングすることが可能