Org-mode

ウィキペディアから無料の百科事典

Org-mode
Org-mode logo
作者 Carsten Dominik
開発元 Carsten Dominik, Bastien Guerry et al.
最新版
9.61[1] / 2023年1月11日 (14か月前) (2023-01-11)
リポジトリ ウィキデータを編集
プログラミング
言語
Emacs Lisp
種別 アウトラインプロセッサ、TODO管理、表計算
ライセンス GPL
公式サイト orgmode.org
テンプレートを表示

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

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

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

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

システム[編集]

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

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

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

機能[編集]

orgファイルのツリーを表示するemacsのorg-mode
同じorgファイルから概要を表示するemacsのorg-mode

このセクションでは、プレーンテキストの階層表示や編集の例をいくつか挙げる[12]

  • To-doリストはしばしばサブタスクを持っているので、階層化システムに適している。Org-modeは、項目を単純なステップ (入れ子になったTo-Doやチェックリスト) に細分化し、優先順位や期限などのタグやプロパティを指定することで、これを容易にする。今週または当日に行われる項目のアジェンダは、日付タグから自動的に生成される[13]
  • プレーンテキストのアウトライン (英語版[14]
  • リンク用のマークアップを使用して、個人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以上のツールが貢献したパッケージやドライバを介して利用可能である[15]

統合化[編集]

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

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

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

関連項目[編集]

脚注[編集]

  1. ^ GNU ELPA - org”. https://elpa.gnu.org/. OrgMode team. 2023年1月24日閲覧。
  2. ^ Gmane: Org, Org-mode, Orgmode, Org Mode Archived 2017-09-10 at the Wayback Machine. - Carsten Dominik: Org, the system; Org-mode, the major mode
  3. ^ Dominik, Carsten (2011-12-15), Emacs Org-mode: Organizing a Scientist's Life and Work (abstract and video), Max Planck Institute for Neurological Research, https://vimeo.com/33725204 
  4. ^ Org Mode Manual: History and acknowledgments, Free Software Foundation, http://orgmode.org/org.html#History-and-Acknowledgments 
  5. ^ Corbet, Jonathan (2006), “Pre-testing Emacs 22”, LWN.net, https://lwn.net/Articles/206916/ 
  6. ^ Org mode for Emacs – Community, http://orgmode.org/community.html 
  7. ^ Babel: active code in Org-mode”. orgmode.org. 2020年1月9日閲覧。
  8. ^ Schulte, Eric; Davison, Dan; Dye, Thomas; Dominik, Carsten (2012-01-25). “A Multi-Language Computing Environment for Literate Programming and Reproducible Research” (英語). Journal of Statistical Software 46 (1): 1–24. doi:10.18637/jss.v046.i03. ISSN 1548-7660. 
  9. ^ O'Toole, David, Org tutorial, http://orgmode.org/worg/org-tutorials/orgtutorial_dto.html 
  10. ^ Dominik, Carsten, Technical description in 24 words, http://orgmode.org/worg/org-quotes.html#sec-2-1 
  11. ^ The Linux Information Project: What is plain text?
  12. ^ #10 巨大なオーガナイズシステム「org-mode」の世界 (Software Design 2015年2月号掲載記事) Emacs org-mode インストール 設定 使い方”. るびきち「新生日刊Emacs」 (2016年2月10日). 2020年11月3日閲覧。
  13. ^ Chavan, Abhijeet (2007), “Get Organized with Emacs Org-mode”, Linux Journal, http://www.linuxjournal.com/article/9116 
  14. ^ Chua, Sacha, Outlining Your Notes with Org, http://sachachua.com/blog/2008/01/outlining-your-notes-with-org/ 
  15. ^ Babel: Languages”. 2018年11月25日閲覧。
  16. ^ Org-mode Contributed Packages, and many other hierarchical or list-oriented formats.
  17. ^ GitHub Markup, (2020-01-11), https://github.com/github/markup 
  18. ^ Bao, Haojun (2019-12-02), org-jira, https://github.com/baohaojun/org-jira 

推薦文献[編集]

書籍[編集]

論文[編集]

外部リンク[編集]