(追記 2018/07/25) 現在はGitBook形式にしています → GitBookでGitHubと遊ぶ

このページで紹介すること

emacsのorg-modeで書いた小説などの文章を,GitHubに投稿して読めるようにする方法を紹介します。GitHubにはブラウザでファイルをアップロードすればpushできるという便利な機能があります。ただし今回は執筆→投稿まで全てemacsで行いたいので,バージョン管理はmagitで行います。

このページで紹介しないこと

magitを使ったブランチとマージの方法については紹介しません。そのため小説を書いていてありがちな「行き詰まったから前の版に戻したいけど今のルートも保険で残しておきたい。Gitを使えば手軽にできるらしいがどうすればいいんだ?」という要望を叶える方法はここには書いてありませんのでご了承ください。

magitのインストールおよび設定

GitHubのアカウントを既に持っているものとします (ない方は作ってください)。emacsでmagitをインストール (M-x package-install magit) したらinit.elに以下の行を追加します。

;; magit
(require 'magit)

;; org-markdown
(eval-after-load "org"
  '(require 'ox-md nil t))

GitHubでリポジトリ作成

GitHubでリポジトリを作成します。

img


リポジトリができました。

img

org-modeで書いたファイルをmarkdown形式にする

文章を書いた.orgファイルそのものはブラウザで読みやすい形にはしてくれないので,markdown形式に出力します。(追記: githubのバージョンアップでorgファイルでも読みやすくなりました。)

C-c C-e m m

フォルダ名はGitHubで作成したリポジトリ名と同じものにしてください。今回はShortShortというフォルダにREADME.org (目次),その中のarticleというフォルダにWhaleDreams.orgというファイル (小説の本文) と,それぞれmarkdown形式で出力したものを置いています。

magitでコミットする

README.mdがある場所でmagitを起動します。

M-x magit-status


実行すると別ウインドウにmagit-statusの画面が表示されます (adminiという名前ですが権限は一般ユーザーです)。

img

Enterを押すとgitリポジトリを作成するか聞かれるので,yを押すとフォルダ内に.gitフォルダが作成されます。


次にmagit-statusを起動すると変更点が表示されます。

img


ここでsを押すと,”Unstaged” が “Staged” に変わります。コミットの準備完了の合図です。

img


cを2回押すとコミット画面になるので,コメントを書きます。

img


コメントを書き終わってC-c C-cするとコミットが完了します。

img

GitHubにプッシュする

Shift-M aを押すとRemote nameの入力を促されるので,originと入力します。

img


Remote先をきかれるので,GitHubの該当するリポジトリURLを入力します (今回はShortShortのあるURL)。

img


Set ‘remote.pushDefault’ to “origin”? ときかれるのでyを押します。するとorigin/master is missingとなります。

img


Shift-P uを押すとupsteam of masterを選択するよう促されるので,そのままEnterを押します。

img


ユーザー名とパスワードを入力し,Git finishedと表示されればプッシュ完了です。

img


ブラウザでリポジトリを見ると,空っぽのときと比べてファイルが追加されているのがわかります。

img

以降の流れ

  • 文章を書いたらmagit-statusを起動
  • Unstaged Filesをsを押してStagedにする
  • c cでコメントを書いてC-c C-cでコミット
  • Shift-P uでユーザー名とパスワードを入力してGitHubにプッシュする