/r/orgmode

Photograph via snooOG

Org-mode is an Emacs major mode for taking notes, managing to-do lists, planning projects, authoring documents, literate programming and devops, and more, using a fast and effective plain-text system.

About Org mode

Org mode is an Emacs major mode for taking notes, managing to-do lists, planning projects, authoring documents, literate programming and devops, and more, using a fast and effective plain-text system.

Support the Project

Donate via Liberapay

Resources

Related Subreddits

/r/orgmode

23,105 Subscribers

11

(Update) org-supertag 2.2.9: Added Tag Content Viewer

I've just added a convenient tag content viewer that makes it easier to see what's tagged with what.

New Feature: Tag Content Viewer

Run M-x org-supertag-view-tag to:

  • View all nodes related to a tag in a clean table format
  • Works directly when cursor is on a tag
  • Shows completion list when not on a tag
  • Supports both #tag and :tag: formats

Quick Example

NodeTypeDate
Project AlphaTODO2024-02-10
Meeting NotesNode2024-02-09

Why?

Just a small quality-of-life improvement to make tag navigation more intuitive. No more manual searching - just view all related content in one place.

As always, feedback and suggestions are welcome!

Happy organizing! 🚀

0 Comments
2025/02/03
15:14 UTC

10

Syncing org-mode reading list to reMarkable tablet

0 Comments
2025/02/01
18:09 UTC

15

Simpler task/agenda management? In PlainOrg even?

Is there a way to simply move scheduled tasks up/down in the agenda, without assigning them priorities, timestamps etc.?

I love org-mode for organizing notes, but I've moved away from it for task management because the workflow for making my daily plan is awkward, and that's pulled me away from it for notes too.

I do not value using an algorithm to schedule things for me, because there are many criteria, e.g. the urgency, impact, how long it's been postponed, anticipated enjoyment/reward, and particularly the anticipated willpower depletion (full article here) relative to the rest of my day. That's a lot of metadata to maintain, and an awkward algorithm even if you did (I tried using SkedPal for about a month and found the value-per-effort much worse than just using a text file).

Also, Dropbox syncing isn't great, beOrg is kinda shit for inserting new content which I really need to be able to do on the run, and mobile-org is not a fit for me at all.

So right now I'm just using check-lists in iOS "Notes". I copy-paste the full list into a new note each day (in the web UI), un-check the recurring routine tasks for reuse, delete the completed tasks, and pull up some amount of stuff I figure I could get done that day from the (categorized) backlog.

​​​​​​​It works really well for the daily planning workflow, and it syncs beautifully, but it gives up a lot from org-mode, chiefly:

  • in-context notes have to be sub-bullets, indentation is a PITA on mobile, and it murders formatting
  • can't easily scan history to see personal trendsI've noticed that I have a boom/bust cycle-- my org agendas for a few weeks will be CRUSHING IT, then I'll have a few weeks of burnout. If I notice that early I can reign it in and avoid the crash.
  • no grep'ing through all of history !!!

So I'm looking for that perfect thing, and considering trying out Todoist, but hesitating...

Meanwhile, I've just started using FlatHabits, and even as a standalone it's exactly what I needed-- just a very very simple list of "do this every single day and life is better" items, un-cluttered by current affairs. And it's in the org-mode ecosystem...

And I just learned about PlainOrg's existence...

So, before I adopt yet-another-fucking-tool, I'd just like to verify I can't achieve org-mode nirvana with . My basic requirement is that Org files need to be the canonical source. And then the finer requirements by context:

Mobile

  • Great syncing
    • via any means, I'll happily adopt a one-off for this
  • Better insertion of new notes/tasks than just raw editing a giant, un-folded text file

Agenda (all of these can be satisfied in Emacs, but must be reflected in Mobile)

  • Ability to view outstanding backlog items on PC by category/top-level bullet
    • I don't know if this is org-mode native in emacs, but I imagine it can be done with a bit of elisp
  • Ability to generate a skeleton agenda with recurring/daily stuff and anything left over from the prior day
  • Ability to trivially move items up/down in the agenda
    • must not require manual maintenance of priority/whatever metadata
    • resulting order must be respected in mobile agenda

ChatGPT has suggested sorting the agenda view on a custom property/tag and binding hotkeys in the agenda sub-mode to swapping items with the item above/below.... but I don't know if PlainOrg or any other mobile app will respect this.

  • Halp?
11 Comments
2025/02/01
15:57 UTC

3

Sort entries by todo order, priority, timestamp, alphabetically

I want to sort my org-mode entries by todo order, then priority, then by timestamp, then alphabetically. Then I'd like to do this on save, if the file is in org-agenda-files.

org-sort-entries only takes one SORTING-TYPE parameter. Has anyone implemented a sort with multiple types?

3 Comments
2025/02/01
15:52 UTC

39

Org-Dex 1.0 – A Browser Extension for Copying Tabs to Org Mode (for Org Capture in Emacs)

Org-Dex

It lets you copy open tabs to the clipboard in Org Mode format. This makes it easy to integrate with Org Capture in Emacs, allowing you to quickly save and organize your browsing sessions.

To complement this, I’ve also written two Elisp helper functions to:

  1. Load links from region – Extracts and opens all links from the selected region in Org Mode.
  2. Load links under a heading – Finds all links under a given Org heading and reopens them in the browser.

Future Plans

I’m experimenting with a version that will:

  • Save each tab as a SingleFile in the background.
  • Replace the org-link’s URL with a reference to an Org file.
  • Store both the original URL and the saved SingleFile page link, along with space for notes/annotations.
  • Allow adding tags directly from the extension.

It’s still very hacky and not ready yet, but I’d love feedback—how do you manage browser sessions with Emacs?

4 Comments
2025/01/31
07:26 UTC

10

(Update) org-supertag Implements Tag Completion

0 Comments
2025/01/30
04:20 UTC

12

Best org-protocol capture from browser recommendations

What do you recommend to share a tab (url, and possibly title/selection) to org-protocol?

Please specify a) browser and b) OS.

I tried a bunch of approaches over the years, but none were convincing and broke at some point. What's working right now? What's easy to configure?

(This is not a question about configuring org-protocol within emacs)

12 Comments
2025/01/29
10:14 UTC

1

How can I make org-log-note-clock-out t log into the entry not a drawer?

I want to use orgmode for kind of interstitial journaling and record what I did once I clock out of a task. I'd like to see these records or be able to collect them into a view e.g. during a weekly review.

Hence I have set org-log-note-clock-out t and also org-log-into-drawer nil. However my notes are still stored in the LOGBOOK drawer next to the clocked time and I can't seem to find a setting to change that. My elisp comprehension is not enough to understand the source code, I seem to get lost in the different functions being called.

Any advice how to change that or how I might follow the code?

Thanks a lot in advance!

2 Comments
2025/01/29
07:47 UTC

16

(Update) org-supertag now has a convenient way to set properties

I’m very proud to have developed org-supertag, but during my extensive usage recently, I’ve noticed quite a few details that detract from the experience. The most frustrating issue has been the cumbersome process of setting properties after adding tags.

Today, I finally resolved this problem, resulting in a significant improvement compared to before:

Single-key operation

Clear and intuitive interface

No excessive, annoying y-or-n prompts

I’m considering whether this method could be turned into a standalone package to offer convenience to those who frequently need to manage org-properties. Of course, you’re also welcome to try out org-supertag and share any feedback regarding issues you encounter during use. (I’m actively using it myself and continuously improving it based on any discomfort points I experience.)

Check out: https://github.com/yibie/org-supertag

https://i.redd.it/6nijakp0brfe1.gif

0 Comments
2025/01/28
15:47 UTC

1

Stopping a prompt to download a setup template

Hello. I am using Emacs 29.4 with my own vanilla setup, and in one of my org-mode files I am pulling in a template for prettier html output.

```

#+SETUPFILE: https://fniessen.github.io/org-html-themes/org/theme-readtheorg.setup

```

While this works well, it also results in this when I start Emacs:

"An org-mode document would like to download https://fniessen.github.io/org-html-themes/org/theme-readtheorg.setup, which is not considered safe.

Do you want to download this? You can type

! to download this resource, and permanently mark it as safe.

d to download this resource, and mark the domain (https://fniessen.github.io) as safe.

y to download this resource, just this once.

n to skip this resource."

I have selected ! many times, it just asks again the next time.

So, any advice on getting it to stop asking? I can download the template and put it into source control and mess with all of the paths to make it work at load time, and deliver multiple files, but I would prefer to deliver the one file and let the browser pull in the others. It's certainly doable but before I do I thought I'd check if there was a way to suppress the prompt.

Thanks,

Mike

1 Comment
2025/01/28
12:08 UTC

115

I created a tutorial for Org Mode Tables that contains lots of practical examples, check it out

After seeing a recent post asking questions about table formulas in org mode, I decided to clean up all of my notes and organize them into something other people might find useful. I've included detailed examples that cover:

  • auto incrementing records
  • sorting by column
  • summing across rows and columns
  • performing calculations on sections
  • calculating the mean, median, and standard deviation
  • formatting numbers
  • creating random numbers

I'd like feedback to make sure the examples are clear as well as suggestions for any common spreadsheet manipulations that I might have missed.

Org Mode Table Tutorial

8 Comments
2025/01/27
01:18 UTC

1

Beamer title command, need some help

Hi there! I'm trying to create a derived export backend from beamer in order to apply some customisation. I would like to change the title command to \titlepage in a plain frame. Any idea why this isn't working?

Thanks

(defvar org-beamer-title-format "\\frame[plain]{\\titlepage}")

(defun org-framed-export-to-pdf
;; copied from ox-beamer, using my derived backend
    (&optional async subtreep visible-only body-only ext-plist)
  (interactive)
  (let ((file (org-export-output-file-name ".tex" subtreep)))
    (org-export-to-file 'framed-ex file
      async subtreep visible-only body-only ext-plist
      #'org-latex-compile)))


(org-export-define-derived-backend 'framed-ex 'beamer
  :menu-entry
  '(?l 1
       ((?h "As PDF file (Beamer)" org-framed-export-to-pdf)
        (?H "As PDF file and open (Beamer)"
            (lambda (a s v b)
              (if a (org-framed-export-to-pdf t s v b)
    	        (org-open-file (org-framed-export-to-pdf nil s v b)))))))
  :options-alist
  '((:latex-title-command nil org-beamer-title-format t)))

As a temporary work around I apply this filter

  (defun my-beamer-maketitle-filter (output backend info)
    "Filter to modify \\maketitle for Beamer exports in Org mode."
    (if (org-export-derived-backend-p backend 'beamer)
        (replace-regexp-in-string
         "\\\\maketitle"
         "\\\\begin{frame}[plain]\n\\\\titlepage\n\\\\end{frame}"
         output)
      output))

  (add-to-list 'org-export-filter-final-output-functions
               'my-beamer-maketitle-filter)

But seems like a clunky solution

0 Comments
2025/01/26
15:41 UTC

3

Problems with bibtex citing and bibliography while exporting to docx and html

This issue has now been solved (I had an old org version).


Hi,

I have the simplest setup with a .bib file and a .org file, and I want to be able to export to .docx via org-pandoc-export-to-docxso that the citation only uses the author's last name and the years of the publication, and the bibliography list entry includes the bib address field.

For example, in a .bib file:

@book{Levy-1984,
author = {Steven Levy},
year = "1984",
title = "Hackers: Heroes of the Computer Revolution",
publisher = "Anchor Press",
address = "New York",
}

And for example, in a .org file:

#+BIBLIOGRAPHY: mybib.bib

* Some header

Some text comes here, and then [cite:@Levy-1984].

#+print_bibliography:

But when I do this, the citation becomes "(Steven Levy, 1984)" -- I want it to be "(Levy 1984)". And the bibliography entry becomes "Steven Levy (1984). Hackers: Heroes of the Computer Revolution, Anchor Press." -- I want it to be something like "Levy, Steven (1984). Hackers: Heroes of the Computer Revolution, New York: Anchor Press."

For some reason, it seems to make little difference what I put as bibliography style and citation style in the #+CITE_EXPORT: specification. For example, it makes no difference between authordate and acm as bibliography style. The only think I can seem to affect is the difference between authordate and author as citation style. Do I have to install or point to a repository of styles or something?

Please help!

C

10 Comments
2025/01/25
08:56 UTC

12

What's status of org-fold "upgrade"?

When 9.6 came out I remember reading about new org-fold, better, more performent, etc. But now I see some packages when bugs arise saying set org-fold-core-style to overlays.

1 Comment
2025/01/24
14:07 UTC

2

Weird Org Bug - Agenda Breaks (kind of?)

Ok so I've recently had this happen a few times in the past and thought maybe it was an isolated issue but it's happened enough now randomly that its' getting annoying to have to completely restart emacs to get working again.

The problem:

Randomly while using org I do something and the agenda breaks unrecoverabley, as far as I can tell. The issue:

  1. The agenda is still displaying and I can switch views; I have two personal views and two work views (one with agenda and "projects list" and one with just projects. I also have a "day view" that combines work and personal into a single day rather than a week.

  2. When I try to use a command such as "f" to go forward a day or week or to change from day to week or month view I get "No Org agenda currently displayed". Yet if I go to an entry and hit tab it opens as usual. And if I turn on follow mode it moves around no issue.

I tried org-mode restart to get things back and working and this does not work.

My command history is below. Note the restart command was when it started having issues. Obviously this only shows major commands but all I did was set an org doc to column view. I feel like this issue has occured before when I wasn't using column view at all.

While writing this I tried to reload my config via load-file and org told me to submit a bug report to the mailing list (which I did). The error that msg highlighted is the second block.

===Error below=== (execute-extended-command nil "org-mode-restart" "org-mode")

(org-columns nil)

(find-file "~/Orgfiles/Productivity/Goals/Goals.org" t)

(empv-play-file "~/Music/Sufjan Stevens.m3u")

(empv-play-file "~/Music/Sufjan Stevens.m3u")

⛔ Warning (org-element-cache): org-element--cache: Org parser error in Command History::299. Resetting.

The error was: (error "rx ‘**’ range error")

Backtrace:

" backtrace-to-string(nil)

org-element-at-point(nil cached)

org-before-first-heading-p()

org-columns-goto-top-level()

org-columns(nil)

funcall-interactively(org-columns nil)

command-execute(org-columns record)

execute-extended-command(nil "org-columns" "org-col")

funcall-interactively(execute-extended-command nil "org-columns" "org-col")

command-execute(execute-extended-command)

recursive-edit()

debug(error (void-variable This))

(progn This)

(let ((print-level nil) (print-length nil)) (progn This))

(setq elisp--eval-defun-result (let ((print-level nil) (print-length nil)) (progn This)))

elisp--eval-defun()

eval-defun(nil)

funcall-interactively(eval-defun nil)

command-execute(eval-defun)

"

Please report this to Org mode mailing list (M-x org-submit-bug-report).

⛔ Warning (emacs): vertico-multiform must not be toggled from recursive minibuffers

7 Comments
2025/01/23
20:32 UTC

51

Happy to release: org-numbering, a flexible and customizable numbering system for Org mode headings, supporting various international numbering schemes.

Check out: https://github.com/yibie/org-numbering

org-numbering

A flexible and customizable numbering system for Org mode headings, supporting various international numbering schemes.

https://i.redd.it/7rkekm9d6ree1.gif

Features

  • Multiple numbering schemes:
    • Basic: Decimal (1, 2, 3...), Alphabetic (a, b, c...), Roman numerals (I, II, III...)
    • CJK: Chinese numerals (一、二、三...), Katakana (ア、イ、ウ...), Iroha order (イ、ロ、ハ...)
    • Symbols: Circled numbers (①, ②, ③...), Bullet points (•), Squares (□)
    • Special: Greek letters (α, β, γ...), Parenthesized formats ((1), (i), (一))
    • Extended: Chapter style (第一章), White circled (○1)
  • Flexible configuration:
    • Independent numbering scheme for each heading level
    • Support for combined numbering (e.g., 1.1, 1.1.1)
    • Customizable separator for combined numbers

Installation

Manual Installation

  1. Clone this repository:git clone https://github.com/yibie/org-numbering.git
  2. Add the following to your Emacs configuration:(add-to-list 'load-path "/path/to/org-numbering") (require 'org-numbering)

Usage

Basic Commands

  • M-x org-numbering-number: Apply numbering based on context
    • On a heading: Number the current subtree
    • With active region: Number headings in the region
    • Blank line: Number all headings in the buffer

Configuration Examples

  1. Academic Paper Style (English):

    (setq org-numbering-level-scheme '((1 . ((scheme . decimal) ; (scheme . decimal) means decimal numbering (combine . nil))) ; <= here nil means not combine (2 . ((scheme . decimal) ; 1.1 (combine . t))) ; <= here t means combine (3 . ((scheme . decimal) ; 1.1.1 (combine . t))) ; <= here t means combine (4 . ((scheme . alpha) ; a) (combine . nil))) (5 . ((scheme . paren-num) ; (1) (combine . nil)))))

  2. German Style:

    (setq org-numbering-level-scheme '((1 . ((scheme . decimal) ; 1. (combine . nil))) (2 . ((scheme . upper-alpha) ; A. (combine . nil))) (3 . ((scheme . alpha) ; a) (combine . nil))) (4 . ((scheme . greek) ; α) (combine . nil))) (5 . ((scheme . dash) ; - (combine . nil)))))

  3. Chinese Academic Style:

    (setq org-numbering-level-scheme '((1 . ((scheme . chapter) ; 第一章 (combine . nil))) (2 . ((scheme . decimal) ; 1.1 (combine . t))) (3 . ((scheme . paren-chinese) ; (一) (combine . nil))) (4 . ((scheme . extended-circled) ; ⑴ (combine . nil))) (5 . ((scheme . decimal) ; 1. (combine . nil)))))

  4. Japanese Document Style:

    (setq org-numbering-level-scheme '((1 . ((scheme . decimal) ; 1. (combine . nil))) (2 . ((scheme . katakana) ; ア、 (combine . nil))) (3 . ((scheme . circled) ; ① (combine . nil))) (4 . ((scheme . iroha) ; イ、 (combine . nil))) (5 . ((scheme . square) ; □ (combine . nil)))))

Available Numbering Schemes

Scheme NameExampleDescription
decimal1, 2, 3Arabic numerals
alphaa, b, cLowercase letters
romanI, II, IIIRoman numerals
chinese一、二、三Chinese numerals
upper-alphaA, B, CUppercase letters
circled①, ②, ③Circled numbers
parenthesized⒜, ⒝, ⒞Parenthesized letters
bulletBullet points
dash-Dashes
squareSquares
greekα, β, γGreek letters
paren-num(1), (2), (3)Parenthesized numbers
paren-roman(i), (ii), (iii)Parenthesized roman
katakanaア、イ、ウKatakana
irohaイ、ロ、ハIroha order
chapter第一章Chapter style
paren-chinese(一)、(二)Parenthesized Chinese
extended-circled⑴, ⑵, ⑶Extended circled
white-circled○1、○2White circled

Customization

Separator for Combined Numbers

You can customize the separator used in combined numbers:

(setq org-numbering-separator ".")  ; Default is "."
7 Comments
2025/01/23
14:23 UTC

1

Where is the syntax `$$` and `@@` defined?

Where is the syntax for table formulas $$ and @@ defined in the manual? https://orgmode.org/org.html

There are examples: https://orgmode.org/org.html#Field-coordinates-in-formulas-1

But I couldn't find any definition. Can anyone provide guidance?

4 Comments
2025/01/23
13:28 UTC

1

Help with customizing org-agenda

I have a simple question regarding customizing org-agenda. I am trying to create a custom agenda command using org-agenda-custom-commands that shows tasks with deadlines (past due or upcoming), except for tasks that have been scheduled in the future. This is done by using

(org-agenda-skip-function '(org-agenda-skip-entry-if 'notdeadline))

as part of the custom command to show only tasks with deadlines. To hide tasks scheduled in the future, I thought setting the variable org-agenda-todo-ignore-scheduled to future would work, but it does not seem to do that.

Example: say I have the following TODO items and today's date is January 20, 2025.

* TODO Task scheduled in the past and overdue
DEADLINE: <2025-01-15 Wed> SCHEDULED: <2025-01-13 Mon>
* TODO Task scheduled in the past with due date in the future
DEADLINE: <2025-01-24 Fri> SCHEDULED: <2024-01-13 Mon>
* TODO Upcoming scheduled task with due date in future
DEADLINE: <2025-01-31 Fri> SCHEDULED: <2025-01-27 Mon>
* TODO Task with due date in future
DEADLINE: <2025-01-30 Thu>

If I invoke the custom agenda command, the agenda shows all these items:

  gtd-agenda-test: 6 d. ago:  TODO Task scheduled in the past and overdue
  gtd-agenda-test:In   3 d.:  TODO Task scheduled in the past with due date in the future
  gtd-agenda-test:In   9 d.:  TODO Task with due date in future
  gtd-agenda-test:In  10 d.:  TODO Upcoming scheduled task with due date in future

The last item should not be there, since it has been scheduled in the future.

Any ideas on how to resolve this? It would seem difficult to add additional conditions to `org-agenda-skip-entry-if` because according to the documentation, it does a boolean-OR of the conditions, so even if I could construct a condition for future scheduled tasks, this function does not seem to be the one to add that condition.

4 Comments
2025/01/21
15:08 UTC

53

Happy to release: org-luhmann, implements Luhmann's numbering system for Org-mode

Checkout: https://github.com/yibie/org-luhmann

Overview

org-luhmann provides a systematic way to organize your notes using Luhmann's numbering system in Org mode. This system enables:

  • Hierarchical numbering (e.g., 1, 1.1, 1.2)
  • Branch sequences with letters (e.g., 1a, 1b, 1c)
  • Infinite insertion between existing notes
  • Automatic number generation based on context

https://i.redd.it/32frxp72nbee1.gif

How It Works

org-luhmann is designed to work incrementally, helping you build your note structure one node at a time. Unlike automatic outline numbering, it:

  • Does not automatically number all headings at once
  • Generates numbers based on existing context (siblings and parents)
  • Lets you choose the relationship of new nodes to existing ones
  • Preserves the semantic meaning of your note structure

When you add a new number, org-luhmann analyzes:

  1. Current heading's level
  2. Previous sibling's number (if any)
  3. Parent's number (if any)
  4. Existing branch sequences

Then offers appropriate numbering options like:

  • Next main sequence number (1, 2, 3, ...)
  • Next branch letter (1a, 1b, 1c, ...)
  • Next sub-number (1.1, 1.2, ...)
  • Next parent branch (2.1, 2.2, ...)

This approach ensures that your note structure grows organically and maintains meaningful relationships between notes.

Installation

With use-package and straight.el

(use-package org-luhmann
  :straight (:host github :repo "yibie/org-luhmann")
  :after org
  :config
  (org-luhmann-setup))
8 Comments
2025/01/21
10:08 UTC

16

Simple Guide To Spreadsheets

I have a bunch of excel files that could easily be org-mode files if I could just have simple formulas to add values over a column, or do some simple code.

Is there an easy to understand tutorial on using tables in org mode that you can recommend?

I tried the manual but it's more of a reference than a tutorial.

Does anyone have examples of

  • Summing all the values of a column except for the header
  • Making a column for which each cell is a conditional (if cell on the left has value == "x" then value should be true, false otherwise.

And things like these?

4 Comments
2025/01/19
22:16 UTC

3

Noob having trouble executing code in src blocks

I'm pretty new to Emacs and brand new to Org. I just discovered that I can write my whole Emacs config in Org and decided that that sounds like a Good Idea. However, I'm trying to evaluate code in the src blocks for testing, and it doesn't seem to work. I just get a message that says org-babel-get-src-block-info: Symbol’s function definition is void: org-element--property. The block that I'm trying to test isn't even config code.

#+begin_src 
(+ 2 6)
#+end_src

Both C-c C-c and C-c C-v e return the same error and no other output. I'm sure this is something obvious to more experienced Emacs/Org users, but I'm at a loss.

6 Comments
2025/01/19
16:26 UTC

2

Capture Template for 30 minute meeting

I have a capture template that adds an event to my calendar.org file.

I would like to make a special capture template for a 30 min meeting: where I only have to put in the start time and it automatically adds the +0:30 to the end time.

Is there a simple way to do this?

2 Comments
2025/01/17
18:53 UTC

5

tiny (lost!) enhancement for bullets

I came across a lovely snippet of config, and then lost it. It had the effect of changing org bullets to various sizes of horizontal and vertical arrows, with the vertical form being displayed when a heading is expanded. Something like:

everything closed:

> an item

> another item

> yet another item

the middle item expanded

> an item

V another item

V a subheading

>a sub-sub heading that hasn't been expanded yet.

> yet another item

In the snippet I saw, the arrows where of different sizes depending on the nesting level.

If this rings a bell for anyone, I'd be grateful for a pointer (hah!)

2 Comments
2025/01/17
14:20 UTC

30

Happy to release: Org-supertag 2.0.0

Check out: https://github.com/yibie/org-supertag/

All things considered the most important, I also refactored the README in the hope that it would be more approachable.

Features

Behavior: Added schedule trigger and deadline management system

Implemented cron-style scheduling for behaviors

  • Format: “minute hour day month weekday”
  • Examples:
    • “0 9 * * 1-5” (weekdays at 9:00)
    • “30 * * * *” (every hour at :30)
    • “0 0 1 * *” (first day of each month)

Added native org-mode timestamp integration

  • Support for SCHEDULED and DEADLINE timestamps
  • Support for absolute timestamps (<2024-03-20 Wed>)
  • Support for relative time expressions (now+2h, now-1d)
  • Support for property-based timing (${prop:DEADLINE}-2h)

Added deadline check behavior (@deadline-check)

Added derived behaviors for deadline management:

  • u/overdue-urgent: Set high priority for overdue tasks
  • u/upcoming-deadline: Mark tasks due in next 3 days
  • u/overdue-archive: Archive overdue completed tasks

Field: Enhanced timestamp handling

  • Improved org-mode timestamp format support
  • Date fields now use active timestamps (<…>) for agenda visibility
  • Timestamp fields use inactive timestamps ([…]) for historical records
  • Added automatic format conversion between different timestamp styles

Behavior Template: Added template variable system for behaviors

Added support for dynamic variable expansion

  • ${input:prompt} for user input
  • ${date:format} for date operations
  • ${prop:name} for property access
  • ${context:key} for shared data

Added conditional execution with {if:condition}

Added relative date calculations (now+1d, now-1w)

Added simple context object for data sharing

Node Management: Added new node operations

  • Added org-supertag-move-node-and-link command for node relocation with reference
  • Added org-supertag-delete-node command for complete node cleanup
  • Added flexible node movement behaviors
  • Support for keeping links at original location
  • Interactive target selection

Sync: Added automatic synchronization system

  • Added file state tracking
  • Added buffer modification monitoring
  • Added automatic sync with conflict detection
  • Added state persistence and error recovery
  • Added node-level conflict analysis command
  • Added file analysis tools for debugging sync issues

Query: Enhanced query system

  • Added cursor-based node insertion in query buffer
  • Added history support for query keywords
  • Added customizable history size
  • Preserved last used keywords

Reference: Improved reference system

  • Added reference type tracking (ref-from)
  • Added reference count tracking

Tag: Added improved tag change functionality

Performance: Added asynchronous face refresh mechanism

Bug Fixes

Fixed tag prefix matching issues (#9)

  • Improved tag completion with custom completion function
  • Added TAB completion support

Fixed field type options insertion

Fixed behavior system event handling

Improved error handling in node operations

Enhanced synchronization stability

Refactoring

Query: Rewritten query results display using ewoc for better performance

Query: Implemented query buffer reuse for cursor insertion

Behavior: Improved behavior system architecture with detach support

Sync: Enhanced file synchronization architecture

Internal Changes

  • Added scheduler system with task management
  • Added robust file synchronization mechanism
  • Optimized reference handling with better metadata tracking
  • Optimized query result caching
  • Improved node deletion with comprehensive cleanup
  • Enhanced query system with history management
  • Improved code organization and modularity
  • Enhanced documentation and examples
6 Comments
2025/01/17
04:08 UTC

6

org-roam package for easy/lazy creation of new nodes?

Does anyone know of a package that allows for lazy creation and linking of nodes in org-roam? I found this old thread for v1 that has a UX that gets at what I would like.

Thanks!

11 Comments
2025/01/16
16:55 UTC

2

Exporting org to md with yaml front matter

What's the quickest way to export an org file with #+ properties to an md file with yaml front matter? Is there a guide I could follow to set up templates so that

#+TITLE: foo
#+SUBTITLE: bar
Some content

can get output into a markdown file as

---
title: foo
subtitle: bar
---
Some content

How would I proceed to define a global template that would achieve this through e.g. C-c C-e?

Any help is appreciated!

4 Comments
2025/01/15
06:38 UTC

9

Filtering a list of first-level headlines so that only those containing a keyword are visible

I have a single simple list of "first-level" headlines which describe a set of books, with one book per headline. Some, but not all, of these headlines have sub-headlines or text under them.

What I want is to view that file seeing only those headlines that contain a keyword that I am searching for.

For example, the structure of my books.org file starts off with these four lines (with the descriptions being in several sentences, but still within the headline):

* Moby Dick - (description of book)
* Jane Eyre - (description of book)
* Captain Hook - (description of book)
* Captain's Courageous - (description of book)

(The full file of course would contain many more books, thus the need to search by headlines to find particular books in a long file.)

And I want to issue a command that searches for "Captain" and the other two entries that do not contain "captain" are hidden / temporarily disappear so I can work with the descriptions of the last two books. But I want to stay in the same buffer (like I am in a spreadsheet with non-matching lines hidden) so I can eventually remove this restriction and see the full list again.

This would seem like a simple thing to do (and I feel sure it is), but I can't figure out an easy way to do it. I can't get a sparse-tree command to do it (apparently since I am not searching within a single tree).

I essentially want to treat my file almost like a spreadsheet or todo.txt file, and "filter" it so that I only see the headings that contain the desired search term. I don't want to jump from found headline to found headline in the existing layout, I want all the non-matching headlines completely hidden.

And to be clear I'd like to stay in the same buffer so that I am essentially looking in one window all the time, just seeing the headings (and their subheadings) that I am looking for, so i can focus on those.

This last might be asking too much, but i would really like a "DEFT" like effect. Deft brings up a list of files, then incrementally and interactively reduces the list as you time a word into it. That's what I'd really like to do within a single Org file.

Are there packages are techniques for doing this? I have been using emacs/org-mode for about 90 days and have a l-o-n-g way to go. thanks in advance

4 Comments
2025/01/14
12:53 UTC

Back To Top