ちゃんとアウトプットを蓄積できるブログ環境を構築しようと考えた結果、以下の要件を満たすものを検討。

  • Markdownで書く
  • Gitでソース管理
  • 静的ページ出力
  • 独自ドメイン運用可能(VPS等へのデプロイ含)

メインマシンがUbuntu16.04なので、ここでJekyllを動かせるようにする。

Ubuntu16.04上でJekyll環境はコマンド1つ

やってみると記事にする程の手間ではなかった。 最初からUbuntu16.04のリポジトリにはJekyllが入っているので、apt-getのコマンド1つでインストールできる。

toming@toming-desktop:~$ sudo apt-get install jekyll

これでUbuntu16.04上でJekyll環境を構築完了。

Jekyllでのサイトの初期化

正常にインストールが完了していれば、PATHが通りjekyllコマンドが使用できるはず。 今回は新たに取得したドメインplasmic.spaceで運用するブログを作るので、名前をplasmicとした。

toming@toming-desktop:~$ jekyll new plasmic
New jekyll site installed in /home/toming/plasmic.
toming@toming-desktop:~/plasmic$ cd plasmic

Gitリポジトリの初期化をしておこう

初期化したサイトのディレクトリへcdしたら、まずはGitリポジトリの初期化とJekyllの生成したファイルの追加を行おう。

toming@toming-desktop:~/plasmic$ git init
Initialized empty Git repository in /home/toming/plasmic/.git/
toming@toming-desktop:~/plasmic$ git add .
toming@toming-desktop:~/plasmic$ git commit -m "initial commit"
[master (root-commit) ff63039] initial commit
 22 files changed, 1916 insertions(+)
 create mode 100644 _config.yml
 create mode 100644 _includes/footer.html
 create mode 100644 _includes/head.html
 create mode 100644 _includes/header.html
 create mode 100644 _includes/icon-github.html
 create mode 100644 _includes/icon-github.svg
 create mode 100644 _includes/icon-twitter.html
 create mode 100644 _includes/icon-twitter.svg
 create mode 100644 _layouts/default.html
 create mode 100644 _layouts/page.html
 create mode 100644 _layouts/post.html
 create mode 100644 _posts/2016-06-13-welcome-to-jekyll.markdown
 create mode 100644 _sass/_base.scss
 create mode 100644 _sass/_layout.scss
 create mode 100644 _sass/_normalize.scss
 create mode 100644 _sass/_syntax-highlighting.scss
 create mode 100644 about.md
 create mode 100644 css/main.scss
 create mode 100644 feed.xml
 create mode 100644 index.html
 create mode 100644 js/html5shiv.js
 create mode 100644 js/respond.js

これでいつでもJekyllで初期化した最初の状態に戻せる。 まさに今作業しているディレクトリでバージョン管理が始められるのはGitの良さ。 Subversionでバージョン管理を覚えた人なのでここの手軽さはすごく素敵に思う。

Webページの確認

作成中のWebサイトはjekyllコマンドですぐにアクセス可能になる。

toming@toming-desktop:~/plasmic$ jekyll serve
Configuration file: /home/toming/plasmic/_config.yml
            Source: /home/toming/plasmic
       Destination: /home/toming/plasmic/_site
 Incremental build: disabled. Enable with --incremental
      Generating...
                    done in 0.31 seconds.
 Auto-regeneration: enabled for '/home/toming/plasmic'
Configuration file: /home/toming/plasmic/_config.yml
    Server address: http://127.0.0.1:4000/
  Server running... press ctrl-c to stop.

http://127.0.0.1:4000/"を開くと下の通り。

初期化直後のWebページ

記事を追加してみる

_postsYYYY-MM-DD-*.markdownの名称でファイルを作成すれば、Markdown形式でHTMLに変換し記事になる。 「Markdown形式で」と書いたが、先頭の”—“〜”—“まではYAML形式となっており、ここで記事に関する変数をセットする。(参考: http://jekyllrb-ja.github.io/docs/frontmatter/ ) YYYY-MM-DDが自動的に記事の日付となる。

toming@toming-desktop:~/plasmic$ cat _posts/2013-09-22-pay_attention_at_copying_from_ext3_to_exfat.markdown
---
layout: post
title: ext3等のファイルシステムからexFATにファイルを移す際に注意すること
categories: fs
---

# Mac/Ubuntuで作成したファイルをexFATへ移動できず困った点

## Mac/Win/Linuxのファイル共有
常用しているMacとUbuntuと、たまに使うWindowsを跨いで外付HDDをexFATで使用している。
(Ubuntuはexfat-fuseを入れる事でexFATを利用可能 http://linux-user.hatenablog.com/entry/2013/01/31/195733 )
そこで今日Ubuntuからデータを移そうとしてハマった事のメモ。

## Ubuntuのスクリーンショット
Ubuntuで作成したデータを全て外付HDDに移そうとしたところ、何度実行しても失敗するファイルがあり頭をかしげていた。
失敗するファイルを見ると、全てUbuntuで作成したスクリーンショットのファイルだった。
ファイル名の中にコロン(:)が入っている為、exFAT上にファイルを作成できず失敗していた。
ファイル名からコロンを取り除く事で移動可能となった。

## コロンが使用できない理由
exFATはWindows用にMicrosoftが開発したファイルシステムの為、ファイル名に許された文字がWindows側に合わせてあるので注意が必要だ。それに似た仕様として注意すべきは下記の通り。

+ ファイル名の大文字小文字が区別されない(tempとTempが同一ファイル/ディレクトリとなる)
+ ファイル名に使用できない文字がある( \ / : * ? " < > | )ext3等ではNULと/以外は使用可能
+ 実行権などのパーミッションの方式が全く別(ext3→exFATでパーミッションが消える)

考えてみれば当たり前の事だが、あまり意識していなかったので書いてみた。
toming@toming-desktop:~/plasmic$

ここまでローカル環境でJekyll環境構築から記事1つを追加するところまで書いた。