org-mode vs emacs-muse
Table of Contents
記法
タイトル
muse
#title タイトル
org
#+TITLE: タイトル
目次
muse
<contents>
org
(org-html-publish-htmlの出力では)不要
URLのリンク
同じ
[[URL][表示文字列]]
ファイルへのリンク
muse
[[ファイル名][表示文字列]]
org
[[file:ファイル名.org][表示文字列]]
ページの所定位置へのリンク
muse
[[URL#識別子][表示文字列]] [[ファイル名#識別子][表示文字列]]
org
[[URL::#識別子][表示文字列]] [[file:ファイル名.org::#識別子][表示文字列]]
ページの所定位置へ識別子を置く
muse
#識別子
org
* 見出し :PROPERTIES: :CUSTOM_ID: 識別子 :END:
Emacs org-modeを使ってみる: (7) ハイパーリンク によると下記のように PROPERTIES で記述できるようだが、なかなか大それているのでmuseからの置き換えは下記で対応することにする。
#+BEGIN_HTML <a name="test" id="test"> #+END_HTML
コメント
muse
; コメント
org
# コメント
脚注
muse
例えばこういう文章があり[1]
Footnotes: [1] ここに解説を書く
org
例えばこういう文章があり[fn:kaisetsu]
[fn:kaisetsu] ここに解説を書く
操作方法
リンク表示の切り替え
museでは C-c C-l font-lock モードで表示全部を切り替えていた。(自分は)
orgだと C-c C-l は org-insert-link に割り当てられている。
とりあえず、下記を実行すればリンクのみ、生の文字列表示に切り替えることができる
M-x org-toggle-link-display
変換スクリプト
muse2org.pl
#!/c/usr/Perl/bin/perl ##### START ##### &muse2org_main(); ##### END ##### sub muse2org_main { my @dir_list; opendir(DIR,"."); @dir_list = readdir(DIR); closedir(DIR); foreach $filename (@dir_list) { &muse2org_convert($filename); } } sub muse2org_convert() { my($filename) = @_; if( $filename =~ /(.+)\.muse/ ) { my($filename_wo_ext) = $1; my(@lines); # print "-----$filename-----\n"; open(IN,$filename); @lines = <IN>; close(IN); open(OUT,">\.\./org_data/$filename_wo_ext"."\.org"); foreach $line (@lines) { $line =~ s/#title/#+TITLE:/g; $line =~ s/<contents>\n//g; $line =~ s/<example>/#+BEGIN_EXAMPLE/g; $line =~ s/<\/example>/#+END_EXAMPLE/g; $line =~ s/^#([A-z0-9_]+)$/#+BEGIN_HTML\n<a name=\"$1\" id=\"$1\">\n#+END_HTML\n/g; $line =~ s/\[\[(.+)\.(png|gif|jpg)\]\]/\[\[file:$1\.$2\]\]/g; #img $line =~ s/\[\[([A-z0-9_\-]+)\]\[(.+)\]\]/\[\[file:$1.org]\[$2\]\]/g; #file $line =~ s/\[\[([A-z0-9_\-]+)\]\]/\[\[file:$1.org\]\]/g; #file $line =~ s/\[\[([A-z0-9_\-]+)#([A-z0-9_]+)\]\[(.+)\]\]/\[\[file:$1.org::#$2\]\[$3\]\]/g; $line =~ s/\[\[([A-z0-9_\-]+)#([A-z0-9_]+)\]\]/\[file:$1.org::#$2\]\]/g; $line =~ s/<strike>/+/g; $line =~ s/<\/strike>/+/g; $line =~ s/^;\s$/# /; $line =~ s/^;\s(.+)/# $1/; print OUT $line; } close(OUT); } }