Org-mode

Org-mode (オーグモード / ) は、フリーソフトウェアのテキストエディタであるEmacs内のノート、計画、およびオーサリングのために設計された、文書の編集、書式設定、および整理をするモードである。

orgファイルは単純なテキストファイルで、階層レベルを示す単純な表記(マークアップ)を含み、その階層にはエッセイのアウトライン、入れ子になったトピック一覧、コンピュータコードなどを包含する。そしてマークアップを読み取って、要素の展開/非表示、要素のブロックの移動、To-Doリストの項目のチェックオフなどの階層要素を操作できる各種エディタによって使用される。

Org-modeは、2003年にカーステン・ドミニク (Carsten Dominik) によって作成されたが、当初は彼自身の生活や仕事を整理するためであり、最初のリリース以降、他の多くのユーザーや開発者がこのフリーソフトウェアパッケージに貢献してきた。Emacsには、デフォルトでメジャーモードとしてOrg-modeが含まれている。バスティアン・ゲリー (Bastien Guerry) が現在のメンテナーで、活発な開発コミュニティと協力している。Emacsでの成功以来、他のシステムでもorgファイルを扱う機能を提供し始めている。

Org-modeは、ほぼ直交的に、さまざまな外部言語でコードを実行することを目的とした機能があり、これらの機能は「org-babel」を形成する。

システム

Org-modeのホームページでは、「Org-modeは、基本的にメモ取りとリスト管理のための単純なアウトライナーである」と説明されている。Orgシステムの作者であるカーステン・ドミニクは、「Org-modeは、アウトライン化、メモ取り、ハイパーリンク、スプレッドシート、リスト、プロジェクト計画、GTD、HTML、LaTeXのオーサリングを、すべてEmacsのプレーンテキストファイルで行う 」と説明している。

Orgシステムは、単純なマークアップを施したプレーンテキストファイルに基づいているため、ファイルの移植性が非常に高くなる。Linux Information Projectは、「プレーンテキストは、すべてのオペレーティングシステム上のほぼすべてのアプリケーションプログラムでサポートされている」と説明している。

このシステムには、プレーンテキストファイル用の軽量マークアップ言語が含まれており (Markdown、reStructuredText、Textileなどと同様の機能で、実装が異なる)、プレーンテキストの行やセクションを階層的に分割、タグ付け、リンクすることができる。

機能 

このセクションでは、プレーンテキストの階層表示や編集の例をいくつか挙げる。
 To-doリストはしばしばサブタスクを持っているので、階層化システムに適している。Org-modeは、項目を単純なステップ (入れ子になったTo-Doやチェックリスト) に細分化し、優先順位や期限などのタグやプロパティを指定することで、これを容易にする。今週または当日に行われる項目のアジェンダは、日付タグから自動的に生成される。
 プレーンテキストのアウトライン。
 リンク用のマークアップを使用して、個人wikiの相互接続されたページとしてorgファイルを整理する。
 Gitのような分散リビジョン管理システムにorgファイルを保存することで、プロジェクトのバグを追跡する。
 Webページ、同じファイル内、他のファイル、電子メールへのリンク、カスタムリンクの定義など、幅広いリンク機能を備えている。

org-mode文書は様々なフォーマット(HTML, LaTeX, OpenDocument, PDF, DocBook, TaskJuggler, Freemind, iCalendar, プレーンテキストを含む)にエクスポートすることができ、これらのフォーマットは構造のアウトラインを適切な方法で表示するために使用される(必要に応じて相互参照を含む)。また、MarkdownやLaTeXに存在するものと同様の機能を備えたフォーマット化マークアップ (数学用のLaTeXを含む) を使用でき、これらのツールの代替手段を提供する。

Org-babel

Org-modeは、編集中の文書にソースコードを挿入する機能を提供する。ソースコードは、ドキュメントのエクスポート時に自動的にエクスポートまたは実行される。このコードによって生成された結果は、結果の出力の中に自動的に取り込まれる。これらの機能は「org-babel」(オーグ・バベル)を形成する。

このソースコードは、再利用可能なスニペットとして構造化でき、論理的な説明のために必要な場所でソースドキュメントに挿入されるため、この機能をコンパイラ/インタプリタに必要な構造から独立させることができる。

org-modeのマークアップ機能と合わせて、この2つの機能は以下のことを可能にする。

 文芸的プログラミング : プログラムの機能の説明をコード構造から切り離すことで文芸的プログラミングを実現
 再現可能な研究 : 説明、元のデータ、分析、議論、結論を統合した一貫したドキュメントを作成することにより、同じソフトウェアツールを使って誰でも再現可能な研究を実現

2018年11月現在、org-babelは50以上のプログラミング言語やプログラマブルな設備を直接サポートしており、他にも20以上のツールが貢献したパッケージやドライバを介して利用可能である。

統合化

org-modeは他のフォーマットにエクスポートする機能を持ち、他のシステムはorg-modeフォーマットを扱う機能を持っている。さらに、フル機能のテキストエディタには、Wiki、個人的な連絡先、電子メール、カレンダーなどを扱う機能が含まれている場合がある。org-modeは単なるプレーンテキストであるため、これらの機能をorg-mode文書に統合することもできる。

org-modeから、アドオンパッケージは、MediaWiki (org-export-generic, org-export) などの他のマークアップ形式にエクスポートしたり、のアルゴリズムを実装するフラッシュカード学習システム (org-drill, org-learn) にエクスポートできる。

orgモードエディタ以外では、orgマークアップはGitLabやGitHubのコードリポジトリ、JIRAイシュートラッカー、Pandocドキュメント・コンバーターなどでサポートされている。

関連項目 
 軽量マークアップ言語
 ノート作成ソフトウェアの一覧
 ドキュメントマークアップ言語の一覧
 個人用情報管理ソフトウェアの一覧
 アウトラインプロセッサ
Emacs - 拡張性を特徴としたテキストエディタのファミリー
GNU Emacs - 最も有名で、かつ最も多く移植されているEmacsテキストエディタ

脚注

推薦文献

書籍

論文

外部リンク
 
Org Mode マニュアル

コンピュータ
ソフトウェア
フリーソフトウェア