develog.me

into VR

emacs@がんばらない。なまけもの必見!今度こそ継続できるBlogを10分でGithubに開設する。もちろん無料 - Org-mode編

概要

markdown編の続き

今回は、 markdown ではなく org で投稿する方法を説明します。

  • 仕組み

    octopressは % rake gen_deploy で octopress/source/_posts/*.markdown ファイルを投稿しています。

    今回その仕組みは変えずにemacsのorg-mode側で orgmarkdown 変換を行います。

    具体的には C-c C-e F org-publish-current-file で octopress/source/org_posts/*.orgoctopress/source/_posts/*.markdown へ変換・出力させます。

    また、記事作成時の % rake new_post コマンドで org 形式で生成してくれるように octopress/Rakefile に手を加えます。

前提条件

目次

  1. 記事新規作成コマンドの対応。Rakefile書き換え
  2. 記事変換の対応。emacs設定にorg-modeの出力についての設定追加
  3. 早速投稿とかしてみる

記事新規作成コマンドの対応。Rakefile書き換え

% rake new_post で作成する投稿ファイルを、 source/_posts/*.markdown から、 source/org_posts/*.org に変更します。

参考元 では、 - pust.puts “—” としていますが、それを消すと投稿した記事にcssがあたらなかったり、いろいろ悲惨な目に遭います。

@@ -21,9 +22,10 @@ blog_index_dir  = 'source'    # directory for your blog's index page (if you put
 deploy_dir      = "_deploy"   # deploy directory (for Github pages deployment)
 stash_dir       = "_stash"    # directory to stash posts for speedy generation
 posts_dir       = "_posts"    # directory for blog files
+org_posts_dir   = "org_posts"
 themes_dir      = ".themes"   # directory for blog files
-new_post_ext    = "markdown"  # default new post file extension when using the new_post task
-new_page_ext    = "markdown"  # default new page file extension when using the new_page task
+new_post_ext    = "org"  # default new post file extension when using the new_post task
+new_page_ext    = "org"  # default new page file extension when using the new_page task
 server_port     = "4000"      # port for preview server eg. localhost:4000

@@ -91,16 +93,20 @@ end
-  mkdir_p "#{source_dir}/#{posts_dir}"
+  mkdir_p "#{source_dir}/#{org_posts_dir}"
-  filename = "#{source_dir}/#{posts_dir}/#{Time.now.strftime('%Y-%m-%d')}-#{title.to_url}.#{new_post_ext}"
+  filename = "#{source_dir}/#{org_posts_dir}/#{Time.now.strftime('%Y-%m-%d')}-#{title.to_url}.#{new_post_ext}"
   if File.exist?(filename)
     abort("rake aborted!") if ask("#{filename} already exists. Do you want to overwrite?", ['y', 'n']) == 'n'
   end
   puts "Creating new post: #{filename}"
   open(filename, 'w') do |post|
+    post.puts "#+BEGIN_HTML"
     post.puts "---"
     post.puts "layout: post"
     post.puts "title: \"#{title.gsub(/&/,'&')}\""
@@ -108,6 +114,7 @@ task :new_post, :title do |t, args|
     post.puts "comments: true"
     post.puts "categories: "
     post.puts "---"
+    post.puts "#+END_HTML"
   end
 end

記事変換の対応。emacs設定にorg-modeの出力についての設定追加

“develog.me” とか、各ディレクトリ位置は各環境で読み替え

;; ------------------------------------------------------------------------
;; @ org2blog (2013/02/11)
(setq org-publish-project-alist
   '(("develog.me" .  (:base-directory "~/repo/octopress/source/org_posts/"
                       :base-extension "org"
                       :publishing-directory "~/repo/octopress/source/_posts/"
                       :sub-superscript ""
                       :recursive t
                       :publishing-function org-publish-org-to-html
                       :headline-levels 4
                       :html-extension "markdown"
                       :body-only t))))

早速投稿とかしてみる

記事を書く

% cd ~/repo/octopress
# 生成コマンド
% rake new_post
Enter a title for your post: emacs-de-github-blog-sono2-org-mode
mkdir -p source/org_posts
Creating new post: source/org_posts/2013-02-11-emacs-de-github-blog-sono2-org-mode.org

# 記事の中身を編集
% emacs source/org_posts/2013-02-11-emacs-de-github-blog-sono2-org-mode.org
#+BEGIN_HTML
---
layout: post
title: "emacs@がんばらない。なまけもの必見!今度こそ継続できるBlogを10分でGithubに開設する。もちろん無料 - org-mode編"
date: 2013-02-11 15:53
comments: true
categories: emacs github octopress org-mode
---
\#+END_HTML
本文~
C-c C-e F で投稿元ネタ生成

記事をBlogに反映

% rake gen_deploy

投稿した記事を閲覧する

編集、削除する場合

source/org_posts/ 以下の .org を編集して C-c C-e F で投稿元ネタ上書き再生成。 % rake gen_deploy でUP


まとめ

以後、気が向いたときにコンソールから

% cd ~/repo/octopress
% rake new_post

で、記事ファイル置き場に投稿ファイル作って、

% emacs source/org_posts/2013-02-11-first-post.org
#+BEGIN_HTML
---
layout: post
title: "emacs@がんばらない。なまけもの必見!今度こそ継続できるBlogを10分でGithubに開設する。もちろん無料 - org-mode編"
date: 2013-02-11 15:53
comments: true
categories: emacs github octopress org-mode
---
@#+END_HTML
ほんぶんここから

で、投稿ネタ書いて、 C-c C-e F で orgmarkdown に変換して

% rake gen_deploy

で、大好きなorg-modeでgithubに投稿ができるようになります。

あれ?さらにめんどくさくなってるぞ・・


emacs@がんばらない。なまけもの必見!今度こそ継続できるBlogを10分でGithubに開設する。もちろん無料 - Markdown編

Blog投稿めんどくさ

そもそも書くのがめんどくさい、開設めんどくさい、管理めんどくさい、投稿するのにログインするのめんどくさい、金かかるのありえない、別に情報公開してほめられたい訳でない、アフィリエイト?めんどくさい、なんとなくどこからでも読める備忘録がほしい、でもその程度の欲求なら大してがんばれない。それにemacsから出たくないし。そんな問題をすべて解決してみます。

概要

GithubをBlogにしちゃうOctopressを使って、1.ローカルで .markdown を書く。2.コンソールから一発コマンドを打つ。だけで投稿を可能にする環境を構築します。

前提条件

  • Githubにアカウント作成済み
  • GithubにSSH Key登録済み 手順はおまけに
  • Mac 必須でもないが、Windowsだといろいろめんどくさい
  • Ruby 1.9.3-p194 管理にrbenv利用。途中、説明のコマンドはrbenv用、バージョン切替だけだからrvmでもかまわない
  • octopress ・・バージョン? .rbenv-version1.9.3-p194 って書いてあったバージョン

目次

  1. Octopress導入
  2. 早速投稿とかしてみる

Octopress導入

レポジトリを作る

Create a New Repository

次の名前でレポジトリを作る。 [username]は自分の名前 yunojy.github.com [username].github.com

OctopressをローカルPCへインストール(場所は任意)

# githubからclone
% cd ~/repo
% git clone git://github.com/imathis/octopress.git octopress
% cd octopress

# 利用するrubyの設定(octopress)
% rbenv install 1.9.3-p194
% rbenv local 1.9.3-p194
% rbenv rehash

# bundleのインストール
% sudo gem install bundler
% bundle install

# octopressインストール
% rake install
% rake setup_github_pages
# 途中gitリポジトリのURLを入力

% rake generate
% rake deploy

ブログの設定

% ~/repo/octopress
% emacs _config
url: http://yunojy.github.com
title: develog.me
subtitle: 開発@がんばらない
author: yunojy

早速投稿とかしてみる

記事を書く

% cd ~/repo/octopress
# 生成コマンド
% rake new_post
Enter a title for your post: first-post
mkdir -p source/_posts
Creating new post: source/_posts/2013-02-11-first-post.markdown

# 記事の中身を編集
% emacs source/_posts/2013-02-11-first-post.markdown
---
layout: post
title: "first-post"
date: 2013-02-11 9:45
comments: true
categories: スペース区切り。""不要
---
本文

記事をBlogに反映

開設したばかりの初回は10分くらいかかる。以後すぐ

% rake gen_deploy

投稿した記事を閲覧する

編集、削除する場合

そのまま source/_posts/ 以下の .markdown を編集して % rake gen_deploy


まとめ

以後、気が向いたときにコンソールから

% cd ~/repo/octopress
% rake new_post

で、記事ファイル置き場に投稿ファイル作って、

% emacs source/_posts/2013-02-11-first-post.markdown
---
layout: post
title: "first-post"
date: 2013-02-11 9:45
comments: true
categories:
---
ほんぶんここから

で、投稿ネタ書いて、

% rake gen_deploy

で、大好きなmarkdownでgithubに投稿ができるようになります。

あれ?めんどくさいぞ・・


おまけ

GithubにSSH Key登録

※PC買い替えしたばかりなどで未登録の人だけ。

※英語読めちゃう人は公式のこちら参照 Generating SSH Keys@github:help

  1. ローカルでSSHキーの生成
    # 既存バックアップ
    % cd ~/.ssh
    % ls -a
    % mv -p id_rsa* backup
    
    # 新しいKeyを生成
    % ssh-keygen -t rsa -C "your_email@youremail.com"
    
    # 生成キーをクリップボードへ
    % pbcopy < ~/.ssh/id_rsa.pub
    
  2. GitHubに公開鍵を登録 https://github.com/settings/ssh

    “Add SSH Key”をクリック “Title”は適当に “Key”にはりつけ

  3. ローカルからSSH接続確認
    # git@github.comはそのまま
    % ssh -T git@github.com
    # 成功すれば、usernameが自分の名前で次のメッセージが表示される
    Hi username! You've successfully authenticated, but GitHub does not provide shell access.