Fact-checked by Grok 2 weeks ago

Org-mode

Org-mode is a major mode for the GNU Emacs that enables structured note-taking, task management, and document authoring using a lightweight, plain-text markup format in files with the .org extension. It supports hierarchical outlining, TODO lists, timestamps, tables, and hyperlinks, allowing users to organize information hierarchically while maintaining portability across systems. Developed initially for personal productivity, Org-mode has evolved into a versatile tool for project planning, , and publishing content in formats like , , and PDF. Created by Carsten Dominik in 2003 out of frustration with the limitations of Emacs's existing Outline mode, Org-mode began as a system for outline-based and . Early enhancements included support for TODO entries, time stamps for scheduling, and tabular data, which quickly made it popular among users for managing agendas and workflows. By the late 2000s, contributions from developers like Eric Schulte and Dan Davison introduced Org Babel, enabling embedded code blocks in multiple programming languages (such as and ) with live execution and result integration, transforming Org-mode into a computational notebook system. Org-mode's ecosystem includes the Org Agenda for dynamic views of tasks across multiple files, customizable export backends for diverse output formats, and integration with tools like for professional document production. Maintained under the GNU project since its inception, it has seen leadership transitions, including Bastien Guerry from 2011 to 2024, succeeded by Ihor Radchenko in December 2024, and ongoing contributions from a global community tracked via the Worg wiki. As of November 2025 (version 9.7.36), Org-mode remains actively developed, emphasizing its role as a free, open-source solution for within .

History and Development

Origins and Creation

Org-mode was created in 2003 by Carsten Dominik, a working at the Max Planck Institute for Solar System Research, as a major mode for aimed at personal note-taking and project planning. Dominik developed it out of frustration with the user interface of Emacs's existing Outline mode, which relied on complex commands and lacked intuitive structure editing for organizing notes, tasks, and documents. His goal was to establish a lightweight, structured plain-text system that avoided proprietary formats, facilitating easy editing, searching, , and portability across tools. The first public release came in 2004, when Dominik shared Org-mode via the Emacs Wiki, marking its introduction to a broader audience. This release attracted early adoption within academic and programming communities, particularly among users in research and , who valued its seamless integration and potential for managing complex outlines and workflows. Feedback from these initial users, including bug reports and feature suggestions, began flowing immediately through email and the nascent . Key initial features centered on simplicity and functionality, including hierarchical outlines created using asterisks to denote heading levels—such as a single * for top-level items and multiple for sublevels—enabling tree-like organization of content. Additionally, built-in support for timestamps allowed users to embed scheduling information directly in the text, supporting basic without external dependencies. These elements provided a solid foundation for structuring information in a human-readable format while leveraging Emacs's extensibility.

Evolution and Maintenance

Following its initial development, Org-mode transitioned into a GNU project and was integrated into the core distribution of GNU Emacs starting with version 22.1, released in May 2007. This inclusion marked a significant step in its institutionalization, allowing it to benefit from the broader Emacs ecosystem and GNU maintenance processes while expanding its user base among Emacs users worldwide. Key version milestones highlight Org-mode's evolution. Org 5.0, released in 2007, introduced a foundational export engine that enabled structured output to formats like HTML and LaTeX, laying the groundwork for document authoring capabilities. Org 8.0 in May 2013 brought substantial refactoring, including a modular export backend system (ox- framework) for greater extensibility and performance. Org 9.0, released in November 2016, featured a new parser for more robust handling of complex structures. By Org 9.6, released in late 2022, enhancements included persistent element caching for faster parsing in large files, a new folding backend for improved navigation, and upgrades to MathJax 3 for better mathematical rendering in exports. As of 2025, Org-mode has seen incremental updates in version 9.7 and beyond, focusing on stability and compatibility with modern Emacs features. The stable release as of November 2025 is version 9.7.36. Maintenance shifted toward a community-driven model after Carsten Dominik stepped down as lead maintainer in November 2010, with Bastien Guerry taking over from 2011 to 2024. Under Guerry's stewardship, development emphasized collaborative contributions, supported by contributors like Eric Schulte, Nicolas Goaziou, and others. In December 2024, Ihor Radchenko assumed the maintainer role, continuing oversight through the Org Mode core team coordinated via the Worg website, which hosts documentation, development guidelines, and community resources. A pivotal was the of Org-babel in 2009, enabling executable code blocks within Org documents for across multiple languages, developed primarily by Eric Schulte and Davison. This feature transformed Org-mode into a computational environment, integrated into core releases by Org 7.0 in 2010. Development workflows also incorporated for around 2012, facilitating branched feature development and pull requests from the community, with the main repository hosted on the Org-mode Git forge. As of 2025, recent developments emphasize ecosystem integration, including enhanced compatibility with Org-roam for through bidirectional linking and graph visualization. Community efforts have also explored AI-assisted tools for outlining and content generation, such as prototypes for automated linking in Org-roam nodes, though these remain experimental extensions rather than core features. Mobile synchronization has improved via Git-based workflows and third-party tools like organice, enabling seamless editing across devices without proprietary dependencies.

Core Concepts and Syntax

Outline Structure

Org-mode documents are fundamentally organized as hierarchical outlines, leveraging a where headings serve as nodes and subtrees allow for nesting of content such as , , or additional headings. This structure enables users to represent complex information in a nested, easily navigable format, with the entire document forming a single, cohesive tree that can expand or collapse dynamically for focused viewing. The outline's depth is theoretically unlimited, limited only by practical considerations like editor performance, making it suitable for everything from simple notes to intricate project plans. Headings in Org-mode are denoted by leading asterisks, where the number of asterisks indicates the hierarchy level: a single asterisk (*) marks a top-level heading, two (** ) a second-level subheading, and so on, always followed by a space and the heading title. For example:
* Top-Level Heading
  Some introductory text or a list item here.

** Second-Level Subheading
  Nested content, such as further details or another list.
This syntax ensures that all content following a heading until the next heading of equal or lesser level belongs to that heading's subtree, promoting intuitive organization without requiring special delimiters. The use of asterisks provides a lightweight, human-readable way to build deep hierarchies, with Org-mode supporting up to 15 levels by default when inline tasks are enabled, though practical limits are often lower. Metadata and custom properties are managed through dedicated drawers, which are special blocks enclosed by keywords like :PROPERTIES: and :END: for key-value pairs attached to headings, or more generally with #+BEGIN: and #+END: for broader such as document titles, authors, or configuration directives. A typical properties drawer might appear as:
* Project Task
:PROPERTIES:
:CUSTOM_ID: task-123
:CREATED: 2023-01-15
:END:

Associated notes or content.
These drawers allow for structured data storage within the outline, facilitating features like searchability and integration with external tools, while remaining fully editable in . Org-mode supports sparse trees as a dynamic filtering mechanism, which temporarily collapses the outline to display only headings matching specific criteria, such as tags or TODO states, while preserving the hierarchical of matches. Accessed via the command C-c /, users can generate these views—for instance, C-c / t to show all TODO items—allowing efficient scanning of large documents without altering the underlying structure. This integrates briefly with by highlighting incomplete items based on predefined states. All Org-mode files are stored in a simple plain-text format with the .org extension, ensuring high portability across editors and platforms, as well as seamless integration with version control systems like due to the absence of binary elements or proprietary formatting. This format's simplicity underscores Org-mode's design philosophy, prioritizing accessibility and longevity over visual styling in the source file.

Markup Elements

Org-mode employs a to enable rich text formatting, hyperlinks, and embedded content directly within plain-text files, facilitating seamless integration of structured notes with visual and interactive elements. This markup operates at both inline and block levels, allowing users to emphasize text, create navigational , insert , add annotations, and incorporate mathematical expressions without leaving the Emacs environment. The design prioritizes simplicity and readability in source files while supporting advanced rendering during editing or export. Emphasis and formatting in Org-mode are achieved through simple delimiter-based syntax, which applies styles such as bold, italic, underline, verbatim, and code to selected text. Bold text is marked with asterisks, as in *bold text*, rendering it in a heavier font weight. Italic emphasis uses forward slashes, /italic text/, for slanted or oblique styling. Underlining employs underscores, _underlined text_, to add a line beneath the text; note that the same delimiters are used for subscript when the content follows a non-space character (e.g., CO_2 for CO₂), but standalone or spaced use prioritizes underlining as of version 9.7, with braces enabling explicit subscript like C_{O_2}. Verbatim content, which prevents further processing or interpretation, is enclosed in equals signs, =verbatim text=, typically displayed in a monospaced font without emphasis. Code snippets are delimited by tildes, ~code text~, also monospaced to distinguish them as programming or literal code. These markers must be paired correctly, with contents free of the delimiters themselves to avoid conflicts, and they can nest within certain combinations but not overlap. Links in Org-mode support internal navigation, external references, and custom identifiers, using a bracketed syntax for easy insertion and activation. The general format is [[link][description]], where the target follows the first pair of brackets and an optional visible follows the second; if omitted, the target serves as the description. External links to URLs, such as [[](https://orgmode.org)[Org-mode website]], connect to web resources or files, with plain URIs like https://example.com also recognized automatically. Internal links to headings within the same file use [[*Heading Title]] to exact titles or [[#custom-id]] for headings assigned a CUSTOM_ID property, enabling stable references across document edits. Custom ID-based links, like [[id:unique-uuid]], rely on globally unique identifiers for cross-file or long-term linking, promoting robust document interconnectivity. Images and embeds are incorporated via file links, allowing inline display during editing and labeled presentation in documents. The syntax [[file:path/to/image.png]] embeds an image file, such as [[file:diagram.jpg]], which Org-mode renders inline when toggled via C-c C-x C-v or enabled at startup with org-startup-with-inline-images. For labeling, a #+CAPTION: keyword precedes the link on a separate line, e.g., #+CAPTION: Diagram of Org-mode structure
[[file:structure.png]]
optionally paired with #+NAME: fig:label for referencing, enhancing accessibility and export compatibility. Image sizing defaults to actual dimensions capped by the window width, customizable per instance with attributes like #+ATTR_ORG: :width 300px. Footnotes provide a for inline annotations, defined either at the point of or collected at the document's end for cleaner . Inline use [fn:label], such as [fn:1], linking to a definition elsewhere, typically [fn:1] This is the footnote content. placed after a or at file end. Inline definitions combine and content in one, like [fn:: An inline note.], ideal for brief asides. Named footnotes, [fn:my-note], allow reuse across the document, with definitions stored separately; commands like C-c C-x f facilitate creation and navigation between and definitions. LaTeX fragments enable mathematical and technical typesetting directly in Org-mode text, with inline and display modes for flexible integration. Inline math uses dollar signs, $a = b$, or parentheses, $a = b$, embedding formulas within sentences for rendered preview via Emacs' LaTeX integration. Display equations employ double dollars, $$E = mc^2$$, or brackets, $$E = mc^2$$, for centered, multi-line blocks, supporting full environments like \begin{equation}...\end{equation}. Previewing occurs through org-preview-latex-fragment (bound to C-c C-x C-l), generating images or SVG via tools like dvipng, with scalability tied to Emacs font settings. This markup supports export to formats preserving LaTeX fidelity, such as PDF via LaTeX backend.

Editing and Organization Features

Org-mode provides efficient tools for navigating hierarchical outlines and controlling the visibility of document sections, enabling users to traverse and manage large files effectively. Basic movement between headings is facilitated by shortcuts such as C-c C-n to jump to the next visible heading and C-c C-p to move to the previous one, which respect the current visibility state and reveal context as needed. For broader jumps, Org-mode integrates with ' Imenu feature, allowing users to invoke M-x imenu to generate an index menu of all headings for quick selection and navigation within the outline structure. Additionally, regex-based searches are supported through the org-occur command, accessible via C-c / r, which scans the entire buffer for matches and displays them in a sparse with highlighted results and surrounding hierarchy. Folding and visibility control are central to Org-mode's editing workflow, allowing dynamic expansion and collapse of subtrees to focus on relevant sections. The TAB key performs local cycling on a heading, progressing through states: folded (hiding the subtree), children (showing only direct subheadings), and subtree (fully expanding the entire branch). For buffer-wide adjustments, S-TAB (or C-u TAB) cycles through global states: overview (displaying only top-level headings), contents (showing all headings but folding their contents), and show all (unfolding everything). These states can be restored to their startup configuration with C-u C-u TAB, while C-c C-r reveals the local around the point without altering the overall visibility. Sparse trees extend this functionality by creating temporary, targeted views of the document; invoked via the C-c / dispatcher, they fold the buffer to highlight specific elements, such as C-c / t for all TODO entries or C-c / r for regex matches, with navigation between matches using M-g n and M-g p. To accelerate routine navigation, Org-mode offers speed commands, which map single keystrokes to common actions when the point is at the beginning of a . These are enabled by setting the org-use-speed-commands to a non-nil value, after which keys like n for next heading and p for previous provide rapid traversal without multi-key sequences. Additional speed keys are customizable via org-speed-commands. Help for available speed keys is accessible by pressing ? at a headline or using M-x org-speed-command-help. Visual aids enhance these navigation and folding mechanisms within Emacs buffers. Heading levels are distinguished through fontification, applying varying fonts, sizes, or faces to indicate depth in the outline, which helps users quickly assess structure at a glance. These features collectively support efficient document management, with sparse trees occasionally referenced in task agendas for focused overviews.

Tables and Lists

Org-mode provides robust support for creating and editing tables directly within plain-text documents, using a simple pipe-based syntax that allows for spreadsheet-like functionality. Tables are delimited by vertical bars (|) separating columns, with rows separated by newlines; for example, a basic table might begin with | Name | Age | followed by data rows like | Alice | 30 |. Horizontal rules for separating sections are created using lines starting with |-, such as |---+---|, which Org-mode recognizes and renders appropriately during editing and export. Automatic column alignment occurs upon pressing TAB, ensuring readability without manual adjustment. Editing tables in Org-mode is facilitated by intuitive commands integrated into the built-in editor. The TAB key moves to the next cell, creating a new row if at the end of the current one, while S-TAB navigates to the previous cell; also support movement between cells. To insert a new row, use M-S-<down> (or org-table-insert-row), which adds it above the current one (with prefix argument, below), and org-table-insert-column (bound to M-S-<right> in ) for adding columns. Formulas enable dynamic calculations, specified after the table with #+TBLFM:, such as #+TBLFM: $2=$1*2 to multiply values in the first column and place the result in the second; recalculation is triggered by C-c C-c or automatically on export. Advanced features include named fields for referencing specific cells (e.g., via #+TBLNAME: mytable followed by @2&#36;3 for row 2, column 3) and horizontal rules for structuring complex . The orgtbl-mode minor mode enhances in non-Org buffers, providing the same commands for in emails or other text. Tables can be exported to formats like or , preserving structure and formulas where supported. Org-mode also excels in handling lists, supporting unordered, ordered, and types through lightweight markup that integrates seamlessly with the structure. Unordered lists begin with bullets like -, +, or * (e.g., - Item one), while ordered lists use numerals followed by a period or parenthesis (e.g., 1. First item); nesting is achieved by indenting sub-items, with Org-mode automatically adjusting bullets or numbers based on customization options like org-list-demote-modify-bullet. Checkboxes for task lists are added using [ ] or [X] (e.g., - [ ] Pending task), toggled with C-c C-c, enabling progress tracking within . Description lists employ a (::) to separate terms from their explanations (e.g., - Term :: Detailed description), useful for glossaries or key-value pairs. Manipulation of lists is streamlined with structure-editing commands that maintain consistency. Inserting a new item uses M-RET, which splits the current item if the cursor is in the middle and preserves indentation for nesting; moving items with M-UP or M-DOWN automatically renumbers ordered lists to ensure sequential integrity. Indentation is adjusted via M-LEFT or M-RIGHT, and bullet styles can be cycled with C-c - for variety in unordered lists. List items conclude at lines with equal or lesser indentation or after two blank lines, allowing flexible grouping without explicit delimiters. These features promote efficient , with brief folding of list subtrees available for during .

Task and Time Management

TODO Keywords and States

Org-mode provides a flexible system for marking and tracking tasks by associating TODO keywords with headings, allowing users to represent various states of progress within an outline structure. By default, the system supports two basic states: TODO for pending items requiring action, and DONE for completed ones, enabling a simple cycle from unmarked to TODO to DONE. These keywords are inserted directly into headings, such as *** TODO Prepare report, and can be toggled to manage task status efficiently. Customization of TODO keywords is highly configurable, either globally via the Emacs variable org-todo-keywords or per-file using in-buffer settings. For per-file customization, a line like #+TODO: TODO NEXT | DONE CANCELED defines a sequence of states, where the vertical bar separates active (TODO-like) states from inactive (DONE-like) ones; here, TODO and NEXT indicate ongoing work, while DONE and CANCELED mark resolution. Multiple sets of keywords can coexist in one file, such as a basic TODO | DONE alongside a workflow-specific REPORT BUG | FIXED, allowing diverse task types without global reconfiguration. Changes take effect after pressing C-c C-c on the settings line. State transitions occur by cycling through the defined keywords using the C-c C-t keybinding, which rotates forward (or backward with S-<left> or S-<right>); for direct access, prefix with a number like C-2 C-c C-t to jump to the second state. If fast selection is enabled via org-use-fast-todo-selection, a temporary interface prompts for keyword choice. To track changes, Org-mode supports logging: appending ! to a keyword (e.g., DONE!) records a timestamp upon transition, while @ (e.g., WAIT@) prompts for a note plus timestamp. These logs can be stored in a :LOGBOOK: drawer by setting org-log-into-drawer to "LOGBOOK", automatically inserting entries like CLOSED: [2025-11-10 Sun 14:30] when states change. Subtree-specific logging overrides via properties like :LOGGING: DONE(!). Tasks can include planning information through special properties like DEADLINE and SCHEDULED, which integrate timestamps directly under headings. A DEADLINE, inserted with C-c C-d, sets a due date (e.g., DEADLINE: <2025-11-10 Sun> for active or DEADLINE: [2025-11-10 Sun] for inactive, non-agenda-linked), warning in views like the agenda starting org-deadline-warning-days (default 7) days prior. SCHEDULED, via C-c C-s, marks a start date (e.g., SCHEDULED: <2025-11-10 Sun>), listing the task from that point until completion, with delays possible like SCHEDULED: <2025-11-10 Sun -2d>. These properties support active timestamps (angle brackets) for dynamic agenda interaction and inactive ones (square brackets) for static references. For further categorization, tags can be appended to headings in the form :tag1:tag2:, enabling flexible labeling such as :work:urgent: to group related tasks across the file. Tags inherit from parent headings by default (controlled by org-use-tag-inheritance), so a parent like * Project :boss: passes :boss: to all subentries, facilitating without repetition. Recurring tasks are handled via repeaters appended to SCHEDULED or DEADLINE timestamps, such as .+1d for daily shifts from completion (e.g., SCHEDULED: <2025-11-10 Sun .+1d>), ++1w for weekly on the same weekday, or +1m for fixed monthly intervals. Upon marking as DONE with C-c C-t, the timestamp advances automatically, resetting the state to TODO; org-log-repeat can log completions for each instance. This mechanism supports habitual tasks without manual rescheduling.

Agenda and Calendar Integration

Org-mode provides powerful agenda views that aggregate tasks from multiple files, offering dynamic overviews for and scheduling. The agenda , accessed via the keybinding C-c a, serves as the central entry point for generating these views. It includes options for a daily or weekly agenda, which displays scheduled tasks and deadlines in a calendar-like format; a global TODO list showing all unfinished items across agenda files; a timeline view that lists events in chronological order; and other specialized views like tag matches or text searches. These views are built upon basic TODO keywords and states to filter and present actionable items efficiently. Custom agenda commands allow users to tailor views to specific needs, such as filtering by tags or files. For instance, a command can match entries with tags like +work+today to show only relevant tasks. These are defined through the org-agenda-custom-commands , enabling the creation of user-defined buffers that combine multiple search criteria, such as TODO states, tags, or . Once configured, custom commands appear in the agenda , providing quick access to personalized overviews without repetitive manual filtering. Calendar integration in Org-mode facilitates synchronization with external systems, enhancing its utility for broader . The weekly and daily agenda views directly link to the and system, displaying holidays, anniversaries, and diary entries alongside Org tasks when org-agenda-include-diary is set to t. commands in the agenda buffer, such as SPC or RET, allow jumping to the underlying for , while insertions like i add new entries . For interoperability, Org-mode supports (.ics) export via backends like ox-icalendar, which converts headings with timestamps into VEVENT or VTODO entries; commands such as C-c C-e c f export the current , and C-c C-e c a handles agenda files. from .ics files is possible through third-party tools listed in the Org ecosystem, though built-in support focuses on export for compatibility with applications like or . Time tracking is integrated through clocking features, allowing precise measurement of effort on tasks. To start a on a heading, use C-c C-x C-i; stopping it with C-c C-x C-o records the interval in the entry's log drawer. This mechanism supports idle time detection and history of recently clocked tasks for quick resumption. Dynamic reports are generated using clocktables, inserted via #+BEGIN: clocktable in an file, which compute totals per subtree or scope, such as :scope file for overall project time. These tables update on refresh (e.g., C-u C-c C-u) and provide summaries like total hours spent, aiding in productivity analysis. Persistence across sessions is enabled by setting org-clock-persist to t. For efficient task entry and organization, Org-mode includes capture and refile mechanisms. The capture system, invoked with C-c c, uses predefined s from org-capture-templates to quickly insert new tasks, notes, or links into designated files without disrupting ; for example, a template might prompt for a TODO item and file it under a "Tasks" heading. Completion with C-c C-c saves the entry and returns to the original . Complementing this, refiling with C-c C-w (org-refile) moves existing entries or regions to target locations across files, using path for selection. Targets are configurable via org-refile-targets, and options like org-refile-allow-creating-parent-nodes permit hierarchical adjustments, ensuring tasks flow seamlessly from capture to structured agendas.

Literate Programming and Execution

Org-babel Overview

Org-babel, originally developed by Eric Schulte and Dan Davison, was first released in as an extension to Org-mode that integrates execution capabilities directly into Org documents. It enables by treating code blocks as first-class elements, allowing users to embed, evaluate, and manage executable code alongside documentation in a single plain-text file. This framework supports reproducible research and multi-language interoperability, where code from various programming languages can be woven into hierarchical outlines, with results captured and displayed inline. By activating embedded code blocks, Org-babel transforms static Org files into dynamic, executable documents, promoting clarity and verifiability in computational workflows. The core syntax for defining source code blocks in Org-babel uses the #+BEGIN_SRC and #+END_SRC delimiters, specifying the programming language and optional header arguments on the opening line. For example, a block might begin with #+BEGIN_SRC python :results output, followed by the code, and end with #+END_SRC. The :results header argument controls result capture, with options like output to include stdout or raw for unformatted insertion, ensuring flexible integration of computational outputs into the document structure. These blocks can be placed anywhere in an Org file, excluding comments or fixed-width areas, and support noweb-style references for modular code composition. Tangled extraction compiles dispersed code blocks into standalone source files, expanding variables, merging blocks with the same name, and applying transformations like adding comments or shebangs via header arguments such as :tangle or :comments. Conversely, weaving integrates code and results into documentation during Org's export process, generating formatted outputs like PDF or that interleave explanations with executed snippets. This dual mechanism supports both code generation for external use and document production for sharing analyses. Session management in Org-babel allows stateful interactions across multiple blocks using the :session header argument, which names a REPL-like (e.g., :session my-session) to preserve variables and state between evaluations. By default, sessions are isolated ("none"), but enabling them facilitates iterative computations, such as building on prior results in pipelines. Security features mitigate risks from executing untrusted code by requiring explicit user confirmation before evaluation, controlled via the org-confirm-babel-evaluate variable, which defaults to prompting for each block. Tangling is deliberate and user-initiated, preventing accidental execution of files, while variable insertion occurs safely through noweb references (e.g., <<block-name>>) that expand to literal code text or by linking results without direct injection. Users are advised to load only trusted Org files to avoid potential harm from malicious code. Org-babel supports over 70 programming languages through configurable loaders, enabling broad applicability without delving into specific execution details.

Code Block Execution

Code block execution in Org-mode is initiated by placing the cursor within a source block and pressing C-c C-c, which invokes the org-babel-execute-src-block function to evaluate the code. This command supports execution in over 70 languages, including , , , and shell scripts, with each language handled by dedicated ob-* Emacs Lisp packages such as ob-python or ob-R that must be loaded via the org-babel-load-languages variable. The results of execution are captured and inserted below the block in various formats depending on the :results header argument. Scalar values from the last expression are returned as simple text or numbers, while tabular data—such as data frames in or lists in —is formatted as an Org-mode table for seamless integration with document structure. Graphical outputs, like plots generated by in or ggplot in , are handled via the :file header argument to save images (e.g., :file output.png), producing a link to the in the results section. Raw HTML output can also be generated for web-compatible results, enclosed in an export block to preserve formatting. Header arguments provide fine-grained control over execution behavior. The :exports argument determines what is included during export: code for source only, results for output only, or both for both, allowing selective visibility of computations. The :eval argument governs whether and how the block is evaluated, with options like never to skip execution entirely, query to prompt the user, or an Emacs Lisp form for conditional evaluation such as (if (org-entry-get nil "EXECUTE" t) "yes" "no") to check a property drawer value. Variable passing via :var enables integration of Org-mode data into code; for instance, :var x=(+ 1 2) evaluates the Elisp expression and binds the result (here, 3) as x in the block's language environment, supporting scalars, tables, lists, or even results from other named blocks. Noweb references facilitate modular code by allowing inclusion of snippets from other blocks using the syntax <<reference>>, where reference matches a block's name or noweb-ref header. Expansion is controlled by the :noweb argument, set to yes for full integration during evaluation or tangling, enabling reusable code across blocks while preserving comments via :noweb-prefix yes. Error handling during execution prioritizes and ; by default, Org-mode prompts for before evaluating potentially untrusted code via the org-confirm-babel-evaluate function, which can be customized to always allow or deny. If an error occurs, such as a syntax issue in , the or output is inserted into the results as text, and Org-mode can link error messages directly to the offending line in the source block for quick . Conditional execution via :eval further mitigates risks by allowing blocks to self-assess before running.

Export and Publishing

Export Backends

Org-mode's export functionality is powered by a modular core engine consisting of ox- prefixed modules, which handle the conversion of Org documents into various structured output formats. These modules, such as ox-html for generation, ox-latex for and subsequent PDF compilation, ox-md for , ox-odt for Text, and ox-beamer for Beamer presentations, parse the Org syntax tree and apply backend-specific templates to produce the final output. Additional default backends include those for ASCII text, , , and man pages, providing broad compatibility without requiring external dependencies. As of Org-mode 9.8 (pre-release, November 2025), enhancements include preservation of link protocols in built-in exporters, custom non-numeric footnote anchors in output, and 5545-compliant line endings in exports. Global export settings are configured using the #+OPTIONS: keyword at the document's top level, allowing users to control elements like inclusion via toc (e.g., toc:3 to limit to three levels) and section numbering with num (e.g., num:t to enable automatic numbering of headlines). These options influence the output across backends, with corresponding Emacs variables such as org-export-with-toc and org-export-with-section-numbers providing programmatic equivalents for finer control. Supported formats extend to through additional packages like ox-epub, ensuring versatility for digital publishing needs. The system supports extensibility through custom backends, implemented as ox-NAME packages that can be installed via Emacs packaging or the org-contrib repository, enabling tailored outputs like specialized letter formats with ox-koma-letter. For fine-grained modifications, Org-mode employs filters and hooks, such as the org-export-filter-headline-functions variable, which allows pre- and post-export functions to alter elements like headlines during the translation process. Batch publishing is facilitated by the org-publish-project-alist variable, which defines projects for exporting entire directories of Org files to target sites, with built-in support for incremental updates to rebuild only changed files and improve efficiency. Styling and theming are integrated via backend-specific keywords, including #+HTML_HEAD: for injecting CSS or JavaScript into HTML outputs and #+LATEX_HEADER: for adding LaTeX preamble commands, such as class declarations, to customize document appearance without altering the core engine.

Customization Options

Org-mode provides extensive user-level configuration options for tailoring export outputs to specific needs, allowing customization through in-buffer keywords, global variables, and header arguments. These settings enable users to control metadata, structure, and content inclusion across various backends, ensuring precise formatting for documents like reports or publications. For instance, metadata keywords such as #+TITLE:, #+AUTHOR:, and #+DATE: define essential document properties that are embedded during export, with #+TITLE: supporting multi-line entries for complex headings and #+DATE: accepting timestamps formatted via the org-export-date-timestamp-format variable. Per-section customization is achieved using blocks like #+BEGIN_EXPORT html followed by backend-specific content and #+END_EXPORT, which insert raw HTML (or other format) elements only in the targeted export, bypassing other backends. Global and file-specific variables further refine export behavior, such as org-export-with-toc set to t to generate a , or org-export-headline-levels limited to 3 to control depth and prevent excessive nesting in outputs. These can be applied per-file via #+OPTIONS: toc:t H:3 for quick overrides without altering configuration. Practical examples illustrate their utility: a simple Org with headlines and lists can be exported to with navigation by enabling the table of contents, producing a structured webpage where users click through sections seamlessly. Similarly, a TODO agenda view can be customized and exported to a PDF report using the org-agenda-write command with the .pdf extension, requiring for PDF generation, and options such as (ps-landscape-mode t) for orientation or (org-agenda-remove-tags t) for cleaner layouts. In literate programming contexts, integrates customization during export and tangling. Header arguments like :exports results ensure only code block outputs are included in the exported document, omitting for concise reports, while :tangle yes extracts blocks to a target file, such as a script named from the Org file's base (e.g., document.py), with :comments link adding hyperlinks back to the original Org for . Tangling can include as comments around the extracted code (e.g., with :comments link), creating self-contained scripts with explanatory text, while weaving embeds code blocks and results within the surrounding in the exported document. handling is refined with arguments like :width 50% to scale images in outputs, applying to file results from code execution. Advanced features enhance cross-format consistency, such as inline image embedding in exports where links like [[file:img.jpg]] are processed into \includegraphics commands, customizable via attributes like :width 5cm or :float nil to avoid floating environments and integrate images directly into text flow. Hyperlinks are preserved across formats by default, with 's export engine converting internal references (e.g., [[*Headline]]) to appropriate anchors in or PDF, maintaining navigability without additional configuration. These options, drawn from 's core , allow users to adapt outputs for professional while leveraging the system's built-in backends.

Integrations and Ecosystem

Emacs Package Interactions

Org-mode has been integrated into Emacs as a built-in major mode since Emacs version 22.1, allowing seamless use within the editor without requiring external installation. This core integration enables Org-mode to leverage Emacs's extensible architecture, including hooks such as org-mode-hook, which runs functions after Org-mode activation to facilitate add-ons and customizations. For instance, developers commonly append functions to org-mode-hook to enable visual tweaks or workflow enhancements automatically upon entering an Org buffer. Popular extensions build on this foundation to enhance Org-mode's note-taking and organization capabilities. Org-roam, a package inspired by networked thought systems, implements Zettelkasten-style features like bidirectional backlinks and daily notes within Org-mode files, enabling users to create interconnected knowledge bases. Similarly, org-journal provides a structured approach to dated entries, automating the creation and management of journal files in Org format for reflective or chronological logging. Completion interfaces like Helm or Ivy further integrate with Org-mode's refile and capture commands, offering fuzzy searching and previewing of headings across files to streamline task relocation and quick note insertion. Capture templates in Org-mode extend through packages like org-protocol, which registers a custom URL scheme (org-protocol://) to pull content from browsers or the clipboard directly into Emacs for rapid entry creation. Deft complements this by indexing and searching directories of Org files, providing a lightweight interface for retrieving and editing notes based on content matches. Visual enhancements improve readability during editing. The org-bullets package replaces standard asterisk bullets with customizable UTF-8 icons, making Org hierarchies more visually distinct without altering the underlying plain-text structure. The org-modern package applies contemporary font locking and text properties to style headlines, keywords, tables, and source blocks for a more polished editing experience. Org-transclusion allows inserting copies of external text content via file or ID links, enabling dynamic inclusion of snippets from other Org files or sources. For focused writing sessions, writeroom-mode activates a full-screen, distraction-free environment that centers text and hides Emacs UI elements, often combined with Org-mode for composing long-form documents. Version control integration with Magit allows treating Org files as standard repositories, supporting commits, diffs, and branching directly in Emacs. Users can configure Git hooks via Magit to automate Org-specific actions, such as tangling source blocks to code files upon commit, ensuring derived outputs stay synchronized with the source documentation.

External Tool Compatibility

Org-mode extends its utility beyond the Emacs environment through compatibility with various external tools, enabling workflows across mobile, desktop, and web platforms. Mobile applications facilitate on-the-go editing and viewing of Org files. Orgzly Revived, a community-maintained Android outliner (fork of the original Orgzly, whose development halted around 2021), supports notebooks in Org format with synchronization via local directories, Dropbox, or WebDAV, allowing users to manage notes and to-do lists offline; it received updates as of October 2025. Similarly, beorg provides robust iOS support for viewing, searching, editing, and agenda management of Org files, with synchronization via iCloud, Dropbox, WebDAV, or other folder providers; it supports custom task states, priorities, tags, and local notifications. MobileOrg, a legacy iOS app last updated in 2020, offers basic viewing, searching, and partial editing using an asymmetric push-pull mechanism over WebDAV or Dropbox—users push agenda files from Emacs to a staging directory with org-mobile-push, capture notes on the device, and pull changes back into Emacs via org-mobile-pull—but may have compatibility limitations with current iOS and Org-mode versions. Desktop viewers and editors outside Emacs enhance accessibility for non-Emacs users. Pandoc, a universal document converter, fully supports Org-mode as an input format, enabling exports to HTML, PDF, Markdown, and other formats while preserving features like headings, lists, tables, and links. For syntax highlighting and basic outlining in Visual Studio Code, the vscode-org-mode extension emulates key Org-mode functionalities, such as folding headlines and TODO state management. Presentations can be created by exporting Org files to LaTeX Beamer or using tools like org-present within Emacs for minimalist slide decks, though external viewers rely on the resulting PDF or HTML outputs. Synchronization solutions bridge Org-mode with cloud services and calendars. File-level syncing with or is achieved by storing .org files in shared directories, often paired with mobile apps like Orgzly Revived or beorg for seamless updates across devices. For calendar integration, the org-caldav package enables bidirectional synchronization of Org-mode agendas and TODO items with servers like via (.ics) files, supporting deadlines, timestamps, and recurring events. Additionally, Org-mode's built-in export functionality generates .ics files from agendas, which can be imported into for viewing and sharing. Publishing workflows leverage exports for static site generation. Exported from Org files integrates with via the ox-hugo backend, which converts Org syntax to Hugo-compatible with front-matter for themes, taxonomies, and builds. Jekyll supports through plugins like jekyll-org, allowing posts in .org format to be processed into during site builds. For print-ready documents, 's export backend produces .tex files compilable to PDF using pdflatex, incorporating packages for bibliographies, indexes, and complex layouts. API and scripting capabilities allow external of Org-mode features. The org-element-parse-buffer parses the entire into a structured , enabling programmatic access to elements like headlines, links, and properties for custom tools or integrations. Org-protocol provides a URL scheme for external applications, such as browsers, to dispatch actions like capturing links or notes directly into Org via server.

References

  1. [1]
    Top (The Org Manual) - Org mode
    This manual is for Org version 9.7. Copyright © 2004–2025 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document.
  2. [2]
    Org mode for GNU Emacs
    A GNU Emacs major mode for keeping notes, authoring documents, computational notebooks, literate programming, maintaining to-do lists, planning projects, and ...
  3. [3]
    History and Acknowledgments (The Org Manual) - Org mode
    Bastien also invented Worg, helped establishing the Web presence of Org, and sponsored hosting costs for the orgmode.org website. Bastien stepped in as ...
  4. [4]
    Org mode syntax - GitHub
    #+begin_sidebar Org mode was first released by Carsten Dominik in 2004 as an outlining and project planning tool. Further development turned it into a ...
  5. [5]
    The Org Manual
    Org Mode is an authoring tool and a TODO lists manager for GNU Emacs. It relies on a lightweight plain-text markup language used in files with the ' .org ' ...
  6. [6]
    Old Release notes | Org mode
    Notes for the latest stable release are available on orgmode.org. 1. Version 9.6 1.1. Important announcements and breaking changes<|control11|><|separator|>
  7. [7]
    Release notes | Org mode
    Org mode now assumes tab width to be 8 characters, when calculating list and other indentation. tab-width is also set to 8 when Org major mode is loaded.
  8. [8]
    Org maintenance
    Bastien Guerry was the maintainer between 2011 and 2024. Volunteers who maintain resources adjacent to Org Mode. A team of Org users is moderating the ...Missing: handover 2013
  9. [9]
    Org Mode has a new maintainer - Bastien Guerry
    Dec 7, 2024 · Ihor Radchenko is the new Org Mode maintainer. He's been acting as such for a couple of years now, and I'm really glad he's finally agreed to take on the role ...Missing: handover 2013
  10. [10]
    Introducing Babel - Org mode
    Babel is about letting many different languages work together. Programming languages live in code blocks inside natural language Org documents.Missing: 2007 | Show results with:2007
  11. [11]
    Org-mode for developers
    Org development uses a two-branches git workflow. main: This branch contains the latest development for Org. Temporary feature branches (either local or ...Missing: integration | Show results with:integration
  12. [12]
    Org-roam development status, May 2025
    May 31, 2025 · Bug fixes; Performance improvements; Better test coverage; Documentation updates. And then start looking at new features. 1 Like.
  13. [13]
    A demo of AI for linking, writing, and thinking with org-roam. Should ...
    Dec 15, 2022 · Suggest relevant documents and nodes to link to while writing in org-mode. Automatically detect keywords and create links to other documents.<|control11|><|separator|>
  14. [14]
    200ok-ch/organice: An implementation of Org mode without ... - GitHub
    Sep 8, 2019 · organice is an implementation of Org mode without the dependency of Emacs. It is built for mobile and desktop browsers and syncs with Dropbox, GitLab, and ...<|separator|>
  15. [15]
    Document Structure (The Org Manual) - Org mode
    Org is an outliner. Outlines allow a document to be organized in a hierarchical structure, which, least for me, is the best representation of notes and thoughts ...Missing: syntax | Show results with:syntax
  16. [16]
    Org Syntax
    This document describes and comments on Org syntax as it is currently read by its parser ( org-element.el ) and, therefore, by the export framework. This is ...Terminology and conventions · General structure of Org... · Elements · Objects
  17. [17]
    Sparse Trees (The Org Manual) - Org mode
    An important feature of Org mode is the ability to construct sparse trees for selected information in an outline tree, so that the entire document is folded as ...
  18. [18]
    Markup for Rich Contents (The Org Manual) - Org mode
    Org is primarily about organizing and searching through your plain-text notes. However, it also provides a lightweight yet robust markup language for rich text ...Missing: elements | Show results with:elements
  19. [19]
    Link Format (The Org Manual)
    Org recognizes plain URIs, possibly wrapped within angle brackets 23 , and activate them as clickable links. The general link format, however, looks like this:
  20. [20]
    Handling Links (The Org Manual)
    Org provides methods to create a link in the correct syntax, to insert it into an Org file, and to follow the link.
  21. [21]
    Images (The Org Manual)
    Org mode displays inline images according to their actual width, but no wider than fill-column characters. You can customize the displayed image width.
  22. [22]
    Creating Footnotes (The Org Manual)
    Org mode extends the number-based syntax to named footnotes and optional inline definition. Here are the valid references: ' [fn:NAME] '. A named footnote ...
  23. [23]
    LaTeX fragments (The Org Manual)
    Org mode can contain LaTeX math fragments, and it supports ways to process these for several export backends. When exporting to LaTeX, the code is left as it is ...Missing: syntax | Show results with:syntax
  24. [24]
    Previewing LaTeX fragments (The Org Manual)
    LaTeX fragments can be processed to produce images of the typeset expressions to be used for inclusion while exporting to HTML.Missing: syntax | Show results with:syntax
  25. [25]
    Tables (The Org Manual) - Org mode
    Org comes with a fast and intuitive table editor. Spreadsheet-like calculations are supported using the Emacs Calc package (see GNU Emacs Calculator Manual).
  26. [26]
    Plain Lists (The Org Manual)
    Org supports editing such lists, and every exporter (see Exporting) can parse and format them. Org knows ordered lists, unordered lists, and description lists.
  27. [27]
    TODO Basics (The Org Manual)
    If TODO keywords have fast access keys (see Fast access to TODO states), prompt for a TODO keyword through the fast selection interface; this is the default ...
  28. [28]
    TODO Items (The Org Manual)
    With Org mode, simply mark any entry in a tree as being a TODO item. In ... Extended Use of TODO Keywords · Progress Logging · Priorities · Breaking Down ...
  29. [29]
    Per-file keywords (The Org Manual)
    5.2.5 Setting up keywords for individual files ¶. It can be very useful to use different aspects of the TODO mechanism in different files.
  30. [30]
    Workflow states (The Org Manual) - Org mode
    You can use TODO keywords to indicate different, possibly sequential states in the process of working on an item.
  31. [31]
    Tracking TODO state changes (The Org Manual)
    You not only define global TODO keywords and fast access keys, but also request that a time is recorded when the entry is set to ' DONE ', and that a note is ...<|control11|><|separator|>
  32. [32]
    Deadlines and Scheduling (The Org Manual) - Org mode
    In Org mode, scheduling means setting a date when you want to start working on an action item. You may use timestamps with repeaters in scheduling and deadline ...
  33. [33]
    Tags (The Org Manual)
    An excellent way to implement labels and contexts for cross-correlating information is to assign tags to headlines. Org mode has extensive support for tags.
  34. [34]
    Tag Inheritance (The Org Manual)
    Tags make use of the hierarchical structure of outline trees. If a heading has a certain tag, all subheadings inherit the tag as well.
  35. [35]
    Repeated tasks (The Org Manual)
    Org mode helps to organize such tasks using a so-called repeater in a ' DEADLINE ', ' SCHEDULED ', or plain timestamps.
  36. [36]
    Agenda Views (The Org Manual)
    ### Summary of Org-mode Agenda Dispatcher (Org-mode Manual)
  37. [37]
    Weekly/daily agenda (The Org Manual)
    The purpose of the weekly/daily agenda is to act like a page of a paper agenda, showing all the tasks for the current week or day.
  38. [38]
    iCalendar Export (The Org Manual)
    The iCalendar export backend takes calendar data from Org files and exports to the standard iCalendar format.
  39. [39]
    Clocking Work Time (The Org Manual)
    ### Summary of Clocking Work Time in Org-mode (Org-mode Manual)
  40. [40]
    Capture templates (The Org Manual)
    You fill in the task definition, press C-c C-c and Org returns you to the same place where you started the capture process. To define special keys to capture to ...
  41. [41]
    Refile and Copy (The Org Manual) - Org mode
    Refile (C-c C-w) moves an entry to a new location, while copy (C-c M-w) copies the entry without deleting the original.
  42. [42]
    [PDF] ACTIVE DOCUMENTS WITH ORG-MODE - UNM CS
    Eric Schulte is a doctoral student at the. University of new mexico, where he is a research assistant in the Adaptive Systems. Lab. His research interests ...Missing: 2007 | Show results with:2007
  43. [43]
    Active Documents with Org-Mode | IEEE Journals & Magazine
    Apr 25, 2011 · Active Documents with Org-Mode. Abstract: The paper discusses Org-mode. It is a simple, plain-text markup language for hierarchical documents ...
  44. [44]
    Features Overview (The Org Manual) - Org mode
    This interoperability among languages explains why Org's source code management facility was named Org Babel by its originators, Eric Schulte and Dan Davison.
  45. [45]
    Working with Source Code (The Org Manual)
    Source code blocks are one of many Org block types, which also include “center”, “comment”, “dynamic”, “example”, “export”, “quote”, “special”, and “verse”.
  46. [46]
    Results of Evaluation (The Org Manual)
    Default for most Babel libraries. Functional mode. Org gets the value by wrapping the code in a function definition in the language of the source block ...<|control11|><|separator|>
  47. [47]
    Extracting Source Code (The Org Manual) - Org mode
    Org provides extensive customization options for extracting source code. When Org tangles code blocks, it expands, merges, and transforms them.
  48. [48]
    Using Header Arguments (The Org Manual)
    Org comes with many header arguments common to all languages. New header arguments are added for specific languages as they become available for use in source ...<|control11|><|separator|>
  49. [49]
    Code Evaluation Security (The Org Manual)
    Org evaluates source code blocks in an Org file during export. Org also evaluates a source code block with the Cc Cc key chord.Missing: features | Show results with:features
  50. [50]
    Languages (The Org Manual)
    By default, only Emacs Lisp is enabled for evaluation. To enable or disable other languages, customize the org-babel-load-languages variable either through the ...
  51. [51]
    Evaluating Code Blocks (The Org Manual)
    Org can call the named code blocks from the current Org mode buffer or from the “Library of Babel” (see Library of Babel). The syntax for ' CALL ' keyword is:.
  52. [52]
    Babel: Languages
    ### Supported Languages for Org-babel Code Execution
  53. [53]
    Environment of a Code Block (The Org Manual)
    The following syntax is used to pass arguments to code blocks using the ' var ' header argument. :var NAME=ASSIGN. NAME is the name of the variable ...
  54. [54]
    Noweb Reference Syntax (The Org Manual)
    ### Summary of Noweb References in Org-mode Code Blocks
  55. [55]
    Exporting (The Org Manual)
    Org can convert and export documents to a variety of other formats while retaining as much structure (see Document Structure) and markup (see Markup for Rich ...Missing: 5.0 2008 engine
  56. [56]
    Export Settings (The Org Manual)
    ### Summary of Global Export Settings in Org-mode (#+OPTIONS Keyword)
  57. [57]
    Exporting Agenda Views (The Org Manual)
    Org mode can export custom agenda views as plain text, HTML, Postscript ... To create PDF output, the Ghostscript ps2pdf utility must be installed on the system.
  58. [58]
    Images in LaTeX export (The Org Manual)
    The LaTeX export backend processes image links in Org files that do not have descriptions, such as these links ' [[file:img.jpg]] ' or ' [[./img.jpg]] ', as ...<|control11|><|separator|>
  59. [59]
    Advanced Export Configuration (The Org Manual)
    Org mode export is a multi-step process that works on a temporary copy of the buffer. The export process consists of 4 major steps: ... Process temporary copy of ...
  60. [60]
    Hooks (The Org Manual) - Org Mode
    Org has a large number of hook variables for adding functionality. A complete list of hooks with documentation is maintained by the Worg project at https:// ...
  61. [61]
    Documentation for Org hooks, commands and options
    This page lists all hooks, commands and options of Org 9.0.9. Hooks: are options containing functions to be run before or after a function.
  62. [62]
    Rudimentary Roam replica with Org-mode - GitHub
    Org-roam is a plain-text knowledge management system. It brings some of Roam's more powerful features into the Org-mode ecosystem.
  63. [63]
    bastibe/org-journal: A simple org-mode based journaling mode
    Jun 4, 2013 · Functions to maintain a simple personal diary / journal using in Emacs. Feel free to use, modify and improve the code!
  64. [64]
    org-protocol.el – Trigger actions in Emacs via a custom URL scheme
    Org protocol (info "(org) Protocols") is a custom URL scheme ( org-protocol:// ) used to trigger actions in Emacs. A common use case for Org protocol is ...
  65. [65]
    jrblevin/deft: Deft for Emacs - GitHub
    Deft is an Emacs mode for quickly browsing, filtering, and editing directories of plain text notes, inspired by Notational Velocity.
  66. [66]
    sabof/org-bullets: utf-8 bullets for org-mode - GitHub
    Show org-mode bullets as UTF-8 characters. screenshot Installation Copy the file somewhere in your load-path, then add to your .emacs.
  67. [67]
    Writeroom-mode: distraction-free writing for Emacs. - GitHub
    writeroom-mode is a minor mode for Emacs that implements a distraction-free writing mode similar to the famous Writeroom editor for OS X. writeroom-mode is ...
  68. [68]
    Orgzly | Notes & To-Do Lists
    Notes and to-do list outliner for Android. Notebooks in org mode format, synced with a directory on your mobile device, Dropbox, or WebDAV.
  69. [69]
    Documentation - MobileOrg
    MobileOrg uses a WebDAV server or Dropbox to interact with your Org files. It downloads Org files from the server and uploads captured notes to a mobileorg.org ...
  70. [70]
    Org-mode features and differences - Pandoc
    Pandoc tries to be compatible with org-mode when exporting an org document. If you find some behavior confusing, please do refer to org-mode Export-Settings ...Export Options · Format-Specific Options · Other Options
  71. [71]
    VS Code Org Mode
    VS Code Org Mode is an extension for Visual Studio Code inspired by the venerable Org mode for Emacs. Org lets you keep notes, maintain TODO lists, and author ...
  72. [72]
    Ultra-minimalist presentation minor-mode for Emacs org-mode.
    An extremely minimalist presentation tool for Emacs org-mode. Simply layout your presentation with each slide under a top-level header.
  73. [73]
    Writing notes in Org-Mode - ℹ️ Support - the Nextcloud forums
    May 24, 2021 · Two questions: How can I add the .org extension to the list of possible note files? Can Nextcloud be enhanced with an Org-Mode parser?Error while syncing calendar with emacs orgmode - ℹ️ SupportNextcloud Clients on Linux and Windows: Conflicted VersionsMore results from help.nextcloud.com
  74. [74]
    dengste/org-caldav: Caldav sync for Emacs orgmode - GitHub
    Caldav sync for Emacs Orgmode. For documentation, see the manual at doc/org-caldav.org. The manual is also available at https://jackkamm.neocities.org/org- ...
  75. [75]
    ox-hugo - Org to Hugo exporter
    ox-hugo is an Org exporter backend that exports Org to Hugo-compatible Markdown (Blackfriday) and also generates the front-matter (in TOML or YAML format).
  76. [76]
    Using org to Blog with Jekyll
    It supports blogging and has many plugins. There is an org mode plugin by Manoj, which lets you write your posts in org and converts them to html suitable for ...Introduction · Creating an org File to be... · Blogging with Jekyll and Org
  77. [77]
    LaTeX Export (The Org Manual)
    ### Summary of LaTeX Export to PDF via pdflatex
  78. [78]
    Org Element API
    There are two ways to parse a buffer using this library: either locally or globally. Local parsing gives information about the structure at point. Depending on ...Parsing functions · Accessors · Setters · Types and Attributes
  79. [79]
    Protocols (The Org Manual) - Org mode
    Org protocol is a tool to trigger custom actions in Emacs from external applications. Any application that supports calling external programs with an URL as ...