MobileOrg で Agenda ファイルを org-directry 以外の場所に置くと何が起こるか? gblog
1.1 はじめに
何やらMobileOrgの同期がうまくいかないなぁ,と思ったときについカッとなってコードを読んだ時の簡単なメモです.
※以下,本文中では,Emacs のシンボル(関数や変数)は(シンボル)で書いてます
※以下,本文中では,Emacs のシンボル(関数や変数)は(シンボル)で書いてます
1.2 何が起きる?
- (org-mobile-push) はうまくいく (Emacs –> MobileOrg アプリ)
- (org-agenda-file) でファイルのフルパスを指定していれば.
- (org-agenda-file) でファイルのフルパスを指定していれば.
- (org-mobile-pull) はうまくいなかい (MobileOrg アプリ –> Emacs)
1.3 なぜなのか?
1.3.1 org-mobile-pull の挙動
早い話が, (org-mobile-pull) は Agenda ファイルが (org-directory) 以下にあることを想定している .
- (org-mobile-pull) は独自のフォーマットで差分を読み込み,パースして,適用する.
- Dropbox で同期していれば,MobileOrg アプリは差分情報を (org-mobile-directory)/(org-mobile-capture-file) に保存する
- (org-mobile-directory) は設定が必要なので,init.el などで設定しているはず.
- (org-mobile-capture-file) はデフォルトだと,"mobileorg.org"
- (org-mobile-directory) は設定が必要なので,init.el などで設定しているはず.
- (org-mobile-pull) 時に,(org-mobile-capture-file) から(org-mobile-inbox-for-pull) へコピーする
- (org-mobile-index-for-pull) のデフォルト値は "~/org/from-mobile.org"
- (org-mobile-index-for-pull) のデフォルト値は "~/org/from-mobile.org"
- この差分を記述するフォーマットはともかく,変更箇所の記述方法が問題
=~[[olp:<ファイル名>:H1/H2/H3][Head名]]~=
となっている.
- これを,(org-mobile-locate-entry) が実際のファイルパスとポジションに変換する.
- このとき,ファイルパスは (org-directry) /<ファイル名>になる.
- (org-directory) はデフォルトで "~/org"
- (org-directory) はデフォルトで "~/org"
- このとき,ファイルパスは (org-directry) /<ファイル名>になる.
- Dropbox で同期していれば,MobileOrg アプリは差分情報を (org-mobile-directory)/(org-mobile-capture-file) に保存する
1.3.2 org-mobile-push の挙動
じゃあ,push はどうなのよというと,実は Agenda ファイルが (org-directory) 以下になくても動くようになっている
- (org-mobile-push) は.org ファイルを丸々転送している.
- コピー元は, (org-agenda-files) からファイルパスごと 取ってくる
- 暗号化しているときは,(org-mobile-capture-file) 経由で暗号化して転送するっぽい
- でも,この時も .org は暗号化せずに転送しているように見えるけど,大丈夫か?(動かしたわけじゃないから実際はどうなのかわからないけども)
- コピー元は, (org-agenda-files) からファイルパスごと 取ってくる
1.4 おわりに
Agenda ファイルはちゃんと,(org-directory) 以下に置きましょう.
どうしてもいやなら,MobileOrg か org-mobile.el を改造しましょう.
どうしてもいやなら,MobileOrg か org-mobile.el を改造しましょう.