Org-mode
作者 | Carsten Dominik |
---|---|
開発元 | Carsten Dominik, Bastien Guerry et al. |
最新版 |
9.61[1]
/ 2023年1月11日 |
リポジトリ | |
プログラミング 言語 | Emacs Lisp |
種別 | アウトラインプロセッサ、TODO管理、表、表計算 |
ライセンス | GPL |
公式サイト |
orgmode |
Org-mode (オーグモード / [ˈɔːrɡ moʊd]) は、フリーソフトウェアのテキストエディタである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リスト、プロジェクト計画、GTD、HTML、LaTeXのオーサリングを、すべてEmacsのプレーンテキストファイルで行う 」と説明している[10]。
Orgシステムは、単純なマークアップを施したプレーンテキストファイルに基づいているため、ファイルの移植性が非常に高くなる。Linux Information Projectは、「プレーンテキストは、すべてのオペレーティングシステム上のほぼすべてのアプリケーションプログラムでサポートされている」と説明している[11]。
このシステムには、プレーンテキストファイル用の軽量マークアップ言語が含まれており (Markdown、reStructuredText、Textile (英語版) などと同様の機能で、実装が異なる)、プレーンテキストの行やセクションを階層的に分割、タグ付け、リンクすることができる。
機能
[編集]このセクションでは、プレーンテキストの階層表示や編集の例をいくつか挙げる[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マークアップはGitLabやGitHubのコードリポジトリ[17]、JIRAイシュートラッカー[18]、Pandocドキュメント・コンバーターなどでサポートされている。
関連項目
[編集]- 軽量マークアップ言語
- ノート作成ソフトウェアの一覧 (英語版)
- ドキュメントマークアップ言語の一覧 (英語版)
- 個人用情報管理ソフトウェアの一覧 (英語版)
- アウトラインプロセッサ
- Emacs - 拡張性を特徴としたテキストエディタのファミリー
- GNU Emacs - 最も有名で、かつ最も多く移植されているEmacsテキストエディタ
脚注
[編集]- ^ “GNU ELPA - org”. https://elpa.gnu.org/. OrgMode team. 2023年1月24日閲覧。
- ^ 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
- ^ Dominik, Carsten (2011-12-15), Emacs Org-mode: Organizing a Scientist's Life and Work (abstract and video), Max Planck Institute for Neurological Research
- ^ Org Mode Manual: History and acknowledgments, Free Software Foundation
- ^ Corbet, Jonathan (2006), “Pre-testing Emacs 22”, LWN.net
- ^ Org mode for Emacs – Community
- ^ “Babel: active code in Org-mode”. orgmode.org. 2020年1月9日閲覧。
- ^ 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.
- ^ O'Toole, David, Org tutorial
- ^ Dominik, Carsten, Technical description in 24 words
- ^ The Linux Information Project: What is plain text?
- ^ “#10 巨大なオーガナイズシステム「org-mode」の世界 (Software Design 2015年2月号掲載記事) Emacs org-mode インストール 設定 使い方”. るびきち「新生日刊Emacs」 (2016年2月10日). 2020年11月3日閲覧。
- ^ Chavan, Abhijeet (2007), “Get Organized with Emacs Org-mode”, Linux Journal
- ^ Chua, Sacha, Outlining Your Notes with Org
- ^ “Babel: Languages”. 25 November 2018閲覧。
- ^ Org-mode Contributed Packages, and many other hierarchical or list-oriented formats.
- ^ GitHub Markup, (2020-01-11)
- ^ Bao, Haojun (2019-12-02), org-jira
推薦文献
[編集]書籍
[編集]- Dominik, Carsten (2010). The Org Mode 7 Reference Manual: Organize your life with GNU Emacs. With contributions by David O'Toole, Bastien Guerry, Philip Rooke, Dan Davison, Eric Schulte, and Thomas Dye. UK: Network Theory. pp. 282. ISBN 978-1-906966-08-9. オリジナルの2012-11-02時点におけるアーカイブ。 2012年11月23日閲覧。
論文
[編集]- Schulte, Eric; Davison, Dan; Dye, Thomas; Dominik, Carsten (Jan 2012). “A Multi-Language Computing Environment for Literate Programming and Reproducible Research”. Journal of Statistical Software (American Statistical Association) 46 (3): 1–24. ISSN 1548-7660 .
- Schulte, E.; Davison, D. (May–June 2011). “Active Documents with Org-Mode”. Computing in Science & Engineering (American Institute of Physics, and IEEE Computer Society) 13 (3): 66–73. Bibcode: 2011CSE....13c..66S. doi:10.1109/MCSE.2011.41. ISSN 1521-9615.