Author Archives: misohena

2013-08-29 , ,

org-modeでblog(jekyll, jekyll-bootstrap, ox-jekyll.el使用)

blogをorg-modeで書くようにしました。

org-modeでblogと言うと真っ先に見つかるのが次のページです。

http://orgmode.org/worg/org-blog-wiki.html

色々方法があるみたいですが、jekyll(ジキル)を利用する方法を採用しました。
o-blogはEmacs上だけで完結するので魅力的なのですが、投稿を1ファイルにまとめなければならないらしい1 のでやめておきました。
今後は1投稿1ファイルで行きたいので。
Blorgit は凄そうなのですが、設置が面倒くさそうなので試していません。
結局、一番簡単そうなjekyllにしました。

jekyll はrubyで作られたblogの静的生成ツールです。

jekyllは通常Markdown形式で書かれたテキストを入力としますが、さすがにorgは扱えません。
でもHTMLは入力として受け付けてくれます。
なので、Emacs上でorgからhtmlへ(投稿内容部分のみを)エクスポートし、
それをjekyllで(blog用のヘッダーとかページ移動とかコメント欄とかが付いた)htmlへ変換するという手順を踏むことになります。

20130829_flow.png

orgからhtmlへのエクスポートには、ox-jekyll.el と org-publish を使用しました。

jekyllの入力ファイル(.mdや.html)には、その先頭にページの付加情報を記したyamlヘッダー2 をつける必要があります。
ox-jekyll.el はorgからhtmlを生成するときに、そのyamlヘッダーを良い感じに付加してくれます。
ox-jekyll.elorg-octopress の一部ですが、jekyllでもそのまま使えます。
タイトル、日付、カテゴリーなど、投稿の付加情報は#+で始まる特殊なコメントで指定することになります。

#+TITLE: org-modeでblog
#+DATE: 2013-08-29
#+JEKYLL_LAYOUT: post
#+JEKYLL_CATEGORIES: Computer
#+JEKYLL_TAGS: Emacs Blog
#+JEKYLL_PUBLISHED: true

blogをorg-modeで書くようにしました。

まあ、1投稿1ファイルにするならこんな所でしょう。

タグを指定する機能が無かったので、categoriesと名の付く部分をコピーしてtagsに置き換えて対処しました。

ヘッドラインをタイトルにして、プロパティで付加情報を指定するような方法も考えられます。例えば次。

* blog-by-org-mode
 :PROPERTIES:
 :title: org-modeでblog
 :date: <2013-08-29 Thu>
 :categories: Computer
 :tags: Emacs Blog
 :published: true
 :END:
 blogをorg-modeで書くようにしました。

org-jekyll なんかはこの方向みたいですね。
この方法はrefileがやりやすそうです。
つまり、プライベートなメモ書き用orgファイルに下書きをして、公開したいと思ったらC-c C-wでblog用のファイルへ移動してしまえばいいわけですね。
でも1投稿1ファイルのスタイルでこれをすると、ヘッドラインの前に何か書いてあったらどうするかとか、ファイル名と英字タイトルが一致していなければならないとか、新しいファイルを作るならどのみちrefileでは対応しきれないとか、色々問題がありそうです。

org-publishはorg-modeに標準で付いてくるエクスポート機構です。
blogのソースorgファイルが入ったディレクトリからjekyllの_postsディレクトリへorg-jekyll-publish-to-htmlを使用してエクスポートするよう、org-publish-project-alistを設定しておきます。
そうすると、簡単なキー操作だけで変換処理が実行できます。
ox-jekyll.el を使ったorg-publishの設定については、次のサイトを参考にしました。

jekyll自体はCygwin上のruby gems経由でインストールできました。
posix-spawnを開発最新版にしなければならなかったり3
pygmentsを0.5.0へダウングレードしなければならなかったり4 しましたが、
参考になるサイトがいくつかあったのでそれほど苦労はしませんでした。

jekyllだけではblogに必要な様々な機能を設定するのが面倒なので、jekyll-bootstrapを使います。
jekyll-bootstrapを展開し、_postsディレクトリに投稿となるhtmlを2013-08-29-example.htmlのような形式で配置すれば準備完了です。
あとは、jekyll buildすれば_siteディレクトリに結果が出力されるので、それをサーバにrsyncか何かでコピーすればOKです。

残りの問題:

  • 投稿ワークフローの改善
  • 生成が遅い

投稿作業の流れは今のところ、

  1. org/_posts/2013-08-30-title.orgに必要なものを書く(新規で書く場合だけでなく、既存の文書からコピーまたは移動して投稿したい場合もある)
  2. org-publishまたはorg-publish-current-fileする。
  3. jekyll serve –watch –limit_post 10 で生成し、ブラウザからlocalhost:4000を見て確認
  4. update.sh起動(jekyll build –safe && rsync -v -rz –checksum –delete _site/ user@example.jp:/blog/ )

のように複雑です。何とかしないと。

生成が遅いのはjekyllが静的生成というコンセプトを掲げている以上仕方がないところもあります。
jekyllは毎回サイト全体を生成し直します。
一つの投稿をしただけでも全体を作り直します。
一見、投稿が一つなら一つのファイルだけを生成すれば良さそうに思いますが、
アーカイブページ、カテゴリーページ、タグページ、ページの前後ボタン、関連ページリンクといったものがあると、
他のファイルも再生成する必要が出てきます。
依存関係を厳密に定義できれば最小限のファイルだけ再生成するようにも出来るでしょうが、
設定はかなり面倒になるでしょうね。

2013-08-26

2013-07新番組リスト

今期も視聴数はかなり少なくなっています。

今気に入っているのは、たまゆら、Free!あたりでしょうか。
特にたまゆらは、主人公が本格的に写真に取り組むようになって面白くなってきました。
正直おじさんには眩しすぎます。

新番組:

  • ×07/01(月) 25:00~ TOKYO MX 犬とハサミは使いよう
  • ×07/02(火) 24:30~ TOKYO MX BROTHERS CONFLICT
  • ×07/02(火) 25:40~ テレビ東京 義風堂々!! 直江兼続 ~前田慶次酒語り~
  • 07/03(水) 22:30~ TOKYO MX たまゆら ~もあぐれっしぶ~ (第2期)
  • 07/03(水) 24:30~ TOKYO MX Free!
  • ×07/04(木) 25:29~ TBS 特例措置団体ステラ女学院高等科C3部
  • ×07/04(木) 25:59~ TBS ローゼンメイデン 新作
  • ×07/04(木) 26:54~ 日本テレビ 帰宅部活動記録
  • ×07/05(金) 24:00~ TOKYO MX 空の境界 (再編集版)
  • ×07/05(金) 25:53~ テレビ東京 マジでオタクなイングリッシュ!りぼんちゃん the TV
  • ×07/05(金) 25:55~ TBS ダンガンロンパ 希望の学園と絶望の高校生
  • ×07/05(金) 26:25~ TBS 恋愛ラボ
  • ×07/06(土) 23:30~ TOKYO MX 幻影ヲ駆ケル太陽
  • ×07/06(土) 24:00~ TOKYO MX 『物語 シリーズ』セカンドシーズン
  • ×07/06(土) 24:30~ TOKYO MX サーバント×サービス
  • ×07/06(土) 25:30~ TOKYO MX 神さまのいない日曜日
  • ×07/07(日) 22:00~ TOKYO MX 有頂天家族
  • 07/07(日) 24:00~ TOKYO MX ファンタジスタドール
  • 07/07(日) 24:30~ TOKYO MX ロウきゅーぶ!SS (第2期)
  • ×07/07(日) 25:05~ テレビ東京 魔界王子 devils and realist
  • ×07/08(月) 24:30~ TOKYO MX きんいろモザイク
  • ×07/08(月) 25:30~ TOKYO MX ハイスクールDxD NEW (第2期)
  • ×07/08(月) 25:35~ テレビ東京 神のみぞ知るセカイ 女神篇 (第3期)
  • 07/08(月) 26:05~ テレビ東京 私がモテないのはどう考えてもお前らが悪い!
  • ×07/10(水) 22:27~ TOKYO MX にゅるにゅる!!KAKUSENくん
  • ×07/10(水) 25:00~ TOKYO MX ブラッドラッド
  • ×07/11(木) 25:10~ フジテレビ 銀の匙 Silver Spoon
  • ×07/12(金) 25:00~ TOKYO MX 神次元ゲイムネプテューヌ
  • ×07/12(金) 25:58~ 日本テレビ ガッチャマン クラウズ
  • ×07/13(土) 23:30~ テレビ東京系 君のいる町
  • ×08/18(日) 13:00~ 公式サイト 俺の妹がこんなに可愛いわけがない。(第2期) 第14話~最終回第16話

前期からの継続:

  • 月 19:30 TX △アイカツ! (10/08~)
  • 月 25:30 TX LINE OFFLINE ~サラリーマン~ (※毎週 月,火,水 の帯で5分枠)(01/07~)
  • 火 25:00 MX ゴルゴ13(再放送)
  • 水 23:25 ETV ガッ活! 第2シリーズ
  • 土 06:55 MX がんばれ!おでんくん (01/12~)
  • 土 09:30 TX △ジュエルペット ハッピネス(04/06~)
  • 土 17:30 NTV ○ 宇宙兄弟
2013-08-12

複数の文字符号化方式が混在しているときのmagit文字化け対策コード(magit 1.2.0用)

64ビット版cygwinを入れたらgit-encwrapperがどうやっても正しく動かなくなってしまったので、諦めてmagit側を修正することにしました。

次のelispをロードすることで、magit 1.2.0がgitのencoding属性を使うようになってくれます。

差分のファイルヘッダー部分を認識して各ファイルパート毎に git check-attr encoding でエンコーディングを取得し、そのエンコーディングで decode-coding-region(git diff時) や encode-coding-region(git apply時) を使って変換します。

ファイルのエンコーディングは自動的に判別するわけではありませんので、必ず .gitattributes でencoding属性を設定してください。

(2014-01-29追記:magitの最新版で上のコードは使えなくなったので、git-encwrapperを復活させました)

2013-06-20

Google Readerの代わり

とりあえずfeedly使ってみてます。

未読の記事を一気にタブで開くとかGreasemonkeyスクリプト(Open all unread button相当)ないかな。

まあ、適当に要約だけ見て気になる記事だけ別タブで開いて、あとは一気にMark as readしてしまえばそれほど必要ではないんですけどね。要約にタイトル程度しか書いていないサイト、それでいて興味がある話題を提供しているサイトが困るんですよねー。

2013-06-04

STAR DRIVERの挿入歌

ひょんなことからSTAR DRIVER 輝きのタクトの挿入歌の動画を目にして、「あれ、この歌CD出てたのかな、amazonで検索……サントラに入ってるみたいだな、ポチっ」と購入した。

確か映像ソフトの特典になっていて「CD単独で出ないならいいや」と思った記憶がある。

STAR DRIVER自体は色々可笑しいところはあったけど、尻つぼみになっていったという印象。

ああ、でもこの曲はしばらく流しっぱなしにしてそう。

2013-05-25

霞ヶ浦輪行

同僚と霞ヶ浦輪行に行ってきました。

ルートは土浦駅から土浦駅への左回り、霞ヶ浦大橋の北側を除いた96kmでした。
対岸は遠すぎてほとんど見えず、えー、あそこまで行くのー!? といった感じでした。

風景は基本的に左は湖、右は水田です。場所によっては水田の高さが湖面の高さより低いように見える場所もあり、干拓地であることをうかがわせます。

2013-04-07

新番組

毎度、番組改編期です。四月第一週の新番組第一話を見ました。

  • ○04/03(水) 23:25~ :ETV ガッ活! 第2シリーズ
  • ×04/03(水) 24:30~ :MX 断裁分離のクライムエッジ
  • ×04/03(水) 25:00~ :MX RDG レッドデータガール
  • ◎04/04(木) 22:00~ :MX はたらく魔王さま!
  • ○04/04(木) 22:30~ :MX 銀河機攻隊 マジェスティックプリンス
  • △04/04(木) 25:25~ :TBS やはり俺の青春ラブコメはまちがっている。
  • △04/04(木) 25:58~ :TBS フォトカノ
  • ×04/05(金) 25:30~ :MX デート・ア・ライブ
  • ×04/06(土) 09:30~ :NHK 団地ともお
  • △04/06(土) 09:30~ :TX ジュエルペット ハッピネス
  • △04/06(土) 10:00~ :TX プリティーリズム レインボーライブ
  • ×04/06(土) 23:30~ :TX 絶対防衛レヴィアタン
  • △04/06(土) 24:00~ :MX 俺の妹がこんなに可愛いわけがない。(第2期)
  • △04/06(土) 25:00~ :MX よんでますよ、アザゼルさん。Z (第2期)
  • ×04/06(土) 25:15~ :MX 波打際のむろみさん
  • △04/06(土) 25:30~ :MX 惡の華
  • ◎04/07(日) 22:00~ :MX 翠星のガルガンティア
  • ×04/07(日) 22:27~ :MX 血液型くん!
  • △04/07(日) 22:30~ :MX カーニヴァル
  • △04/07(日) 23:30~ :MX 進撃の巨人

第一話がおもしろかったのは、「翠星のガルガンティア」「はたらく魔王さま!」の二つくらいでしょうか。あくまで、第一話が、ですよ。あ、図らずも両方とも異世界転移ものですね。

2013-03-18

さよなら海腹川背

本当に出るの? 新手のヴェーパーウェアじゃあるまいな。

前のやつは、DSの画面一体型のコントローラでプレイするのが辛くてほとんどプレイしないで終わってしまったのだけど、今の3DSってどうなんだろう。家庭用ゲーム機ハードなんてしばらく触っていない。ほんと、PCで出してくれれば好きなコントローラで末永くプレイできるのになと思うよ。