最終更新日: 2019-01-06 日 16:09
ホーム | 文書トップ | 目次

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);
    }
}
ホーム | 文書トップ | 目次
Created by Emacs 27.1 (Org mode 9.3)