やったことは以下
- タブ,全角/半角スペースを可視化(whitespaceの導入)
- タブをスペースで変換するように設定
- Markdownにおける行頭タブの自動整形の無効化
- GFMを利用する
それぞれまとめていく.
1. やったこと
1.1 whitespace導入
上記を参考に,whitespace-modeを導入.
(setq-default show-trailing-whitespace t)
と設定がかぶっていたので削除した.
1.2 タブをスペースに変換
(setq-default indent-tabs-mode nil)
を使っていたのだけど,タブがスペースに置換されない.
そもそもどのタイミングで置換されていたのか?
上記サイトによれば,自動インデントをした際のインデントがスペースになる,ということらしい.
普段入力するタブをスペースに置換するにはどうすればよいかと考えたけれど,単純にキーバインドに割り当てればよいだけだということに気づく.
init.el
内でのタブ周りの設定は以下.
1 2 3 4 5 |
|
これとは別に,キーバインドとして以下を設定したらうまくいった.
1 2 3 4 5 6 7 |
|
タブをC-i
で入力できるように,C-i
を\t
で置き換えていた.
タブ文字の挿入を割り当てているのだから,設定が反映されないのは当たり前だった.
スペース4つ分で代わりに置き換えようと思ったが,タブ幅の設定を反映できた方が良いと思ったのでこうなった.
ちょっとやり方が苦しい.もっと上手い方法があるかもしれない.
1.3 Markdownにおける行頭タブの自動整形の無効化
タブ入力した後に字句入力して改行するとタブが削除されてしまうのでなんとかしかった.
これはつまり,直前にインデントがない場合,Emacs が余分なインデントだと判断して自動整形してしまっているのだと思われる.
emacs 24.4のmarkdown-modeでリストのインデントが行頭に揃えられてしまう(解決)
Emacs 24.4 のインデントを無効化
コーディングの際には自動インデントは欲しいので,Markdownの編集時のみ自動インデントを無効化したい.
Emacsはモードが設定されると,対応するモードフック変数に登録されている関数を呼び出す.
各モードのカスタマイズのためには,このモードフック変数を編集する.
今回は,以下のように設定を追記して自動インデントを無効化した.
1 2 3 4 5 6 7 8 |
|
global-linum-mode
は画面外にはみ出した文章の改行指定.
コーディングでは全体の形が崩れるので無効にしておくが,Markdownは文章なので改行したほうが読みやすい.
1.4 GFMモードを利用する
行末のスペースも削除されてしまうので,どうしようと思っていたが,GFMモードというものを利用すれば良いらしい.
具体的な使い方は前項に示した.gfm-mode は markdown-mode.el 内に定義されているようだ.
GFMモードを快適に利用したいので,さらに以下を設定していく.
- OctopressでGFMが使用できるように設定する
- GFMのプレビューができるようにする
1.4.1 OctopressでGFMが使用できるように設定する
Gemfile
にgem 'redcarpet', '~> 3.1
を追記(他のgemがこのバージョンに依存していたため,参考サイトと違うバージョンを指定)- なかったので,
gem 'albino', '~> 1.3.3'
も追加 bundle install
plugins
ディレクトリに,redcarpet2_markdown.rb
を追加(source)_config.yml
のmarkdown: rdiscount
を下記のように書き換え
1 2 3 |
|
redcarpet2
を指定するとエラーとなった.(参考)
1.4.2 emacs上からGFMのプレビューができるようにする
Grip は Markdown を GitHub Flavor に変換してプレビューできる.
- Gripをインストール
1
|
|
GitHub Flavored Markdown に対応した Grip というツールが便利だったので備忘録
Grip - GitHub風にMarkdownをHTMLプレビュー
- binファイルを作成し,パスの通ったディレクトリにおく
1 2 3 4 5 6 7 |
|
GFMモードでプレビューするためには,--gfm
オプションを追加する.
markdown
ファイルについて.既にパス内に存在している場合がある(通常のプレビュー時に用いていたのかも)
なので,which markdown
で存在するかどうか調べて,存在したならバックアップをとって新たに置き換えると良い.
また,権限を755に設定しておくこと.
- 設定の追加
1 2 3 4 5 6 7 8 9 10 11 12 13 |
|
C-c C-c p
,C-c C- v
で実行
トラブルシューティング
これでok…と思ったら,文字化けする上にちっともGitHub Flavor でない.
試しに,Markdownファイルに対して直接grip
を叩く.
1
|
|
するとエラーがでて,プレビューできない.
1
|
|
文字コード関連かと思い,対象ファイルの文字コードをnkfで調べる.
1 2 |
|
UTF-8に変換.
1
|
|
再び実行.
1 2 3 |
|
うまくいった.
ただ,エラーが表示されてしまう.
1
|
|
証明書関連のエラーだと思われる.
詳しくは後日調べることにして,プレビューもできたのでとりあえずコレでOK.
ただ,#
で指定する見出しがなぜか変換されない.これもとりあえず後日調べることにする.
2. 今後やりたいことのメモ
- Emacsにおける文字コードの設定
- 認証局関連の知識ほしい…(認証局を立ててぼろもうけしたいんですが>無理な理由を理解しよう)
- ブログの見た目を少し変えたい(文字が大きい…)
とりあえず,MarkdownをEmacsから手軽に書いて,ブログを更新するという目標は達成できた.