orgのサブツリーをエキスポートする場合の設定
orgのサブツリーをエキスポートするメリット
emacsでは、orgファイル全体をHTMLやmarkdownにエキスポートすることができます。これに加えて、特定のサブツリー以下をエキスポートすることもできます。
この機能を使うと、全てのブログ記事をまとめて一つのファイルで取り扱い、必要なサブツリーだけエキスポートして公開する、といった使い方が可能です。この方法は、JekyllやHugo等の静的サイトジェネレーターでWebサイトを生成するときに便利に活用できます。
静的サイトジェネレーターでは、1つの記事を1つのファイルとして扱います。この場合、それぞれのファイルはファイル名で区別することになりますが、ファイル名はslugや日付をつけることが一般的です。そうすると、ファイル名だけでは内容が分からない、という問題が発生します。
そうではなく、全てのブログ記事を1つのorgファイルにまとめて、記事にしたいサブツリーを個別のファイルにエキスポートするようにすると、編集したい記事を簡単に追加したり、見つけることができるようになります。
サブツリーにプロパティを設定する
orgファイルには様々なプロパティを設定することができます。例えば、記事のタイトル、著者名、日付などです。これらはファイル全体に1つ設定することが基本的な使い方です。しかし、こういったプロパティをサブツリーにつけることも可能です。
例を見てみましょう。
:TITLE: 私のブログの記事
:DATE: 2021-11-01
* 記事
** ある日の日記
:PROPERTIES:
:EXPORT_TITLE: ブログに掲載するタイトル
:EXPORT_DATE: 2021-11-07
:EXPORT_FILE_NAME: articles/20211107-101407
:END:
ある日、こんなことがありました。
最初の2行はファイル全体につけたプロパティです。これに対して、「ある日の日記」の次の行から書かれているのがサブツリーに対するプロパティです。全て、ファイル全体につけられるプロパティの頭に「EXPORT_」をつけたものが、サブツリーのプロパティです。
これらはファイル全体のプロパティを上書きします。上記の例では、ファイル全体のタイトルは「私のブログの記事」ですが、サブツリーのタイトルは「ブログに掲載するタイトル」になります。
このように設定したうえで、 C-c C-e でorgエキスポートのメニューを出し、 C-s を押してから目的のエキスポート形式を選択すれば、カーソルがいまいるサブツリーのみエキスポートすることができます。
Discussion