This pad will serve for Org project during FSF40 hackathon this weekend
Ihor: I am back. Hanging around on IRC and Jitsi. Feel free to ask any questions about Org codebase.
REMINDER: Hackathon ended less than two hours 20 minutes, at 10am EST. Please submit your work, even unfinished, to the mailing list, if you want it to be evaluated. Of course, you are free to continue after the official end.
I published what I know of about the outcomes in https://orgmode.org/worg/fsf40-hackathon-org.html#org7c5ee4f
Congratulations to the team working on unarchive project for winning one of the prizes.
More details later, when FSF publishes the final list of the awardees.
Org mode source mirror: https://git.sr.ht/~bzg/org-mode
(gnu savannah is down) Update: savannah is back
Project 1 Unarchive Org Headlines
https://orgmode.org/worg/fsf40-hackathon-org.html
- Morgan is working on tests
- testing/lisp/test-org-archive.el
- David is working on MVP requirements
- Thomas has written some code for parsing archived headings and copying them back to the correct location
TASKS THAT ARE NEEDED
- Clean-up headline properties (remove all props added by org-archive-save-context-info)
- Sam (Crawfy) 1st attempt: https://git.sr.ht/~crawfy/org-unarchive/commit/deaf21e57bad0ca3a900c6b1d447b75976711639
- Possible through element API? Or do we need regex? (Element to get property nodes. RX to identify them as created by archiving)
- Do we delete in-situ before/after moving to unarchive destination (using `atomic-change-group`), or do we use a temp buffer? (Delete in-situ before moving)
- Temp buffer would require Org mode initialization. If you really want to go that way, may need to re-use temporary worker buffer. See with-work-buffer or org-element-with-buffer-copy
- Remove headline slashes from org headings in the OLPATH
- When unarchiving identify if heading OLPATH is a heading that is also archived
- Optionally ask user to unarchive both?
Work-In-Progress Code for unarchive-subtree:
https://git.sr.ht/~taingram/org-unarchive/tree/master/item/org-unarchive.el
Proposed increments from MVP to version 1
1. MVP: Restore a single headline.
1.a. DONE The headline is the first in the archive file whose ARCHIVE_OPATH matches the headline at point.
1.b. The headline is restored immediately below the headline at point. This implies that the headline is restored to its previous level in the document. E.g. If the headline at point is ** foo, then the restored headline will be *** bar.
WIP: we are trying to determine if org-refile is the best way to handle this. May need to do something more manual to avoid org-refile side effects.
After that works, we can
2. After successfully unarchiving a headline, remove the headline from the archive file
A consequence of 2 is that subsequent unarchiving restores the next suitable headline from the archive
After that, we can
3. Restore a headline whose ARCHIVE_OPATH matches the current headline, which may be upwards of point.
For all of these increments, unarchive should fail and leave the org and archive files unchanged if no headline matches ARCHIVE_OPATH.
3. Optionally give users a way to choose the heading they want to un-archive
Options:
Where to put a restored headline?
- As the first child of ARCHIVE_OPATH?
As last child of ARCHIVE_OPATH?
At point (if #3 is implemented)?
Restoring metadata:
Observation:
1. org-archive predates org-refile
2. If org-archive were to be written today, it would probably be written in terms of org-refile.
3. This is for further study.
Other Project Proposals:
Pedro: continue ox-latex.el.
1. DONE A must for me is add options to \usepackage{unicode-math}. This comes as a result of a comment in my lectures (yes, I've been using the feature branch for my lecture slides and notes for quite some time now).
1b. DONE Add tests for this
https://cgit.git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?h=feature/all-tex-fonts&id=6b3fa24cb2b7d327e84001ae3bbba5c0853b7fc8
2. DONE Factor out the code to handle the fontspec configuration, because that's used by fontspec and polyglossia.
I hope that by doing this, the code will be easier to read.
2b. DONE Check tests continue passing.
https://cgit.git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?h=feature/all-tex-fonts&id=4696ccc6e8daa69bc4dc1f6270d914dc232f4778
Kenny: looking into improving org table alignment performance.
Patches: https://list.orgmode.org/874iqlliik.fsf@mit.edu/T/#u
From Ihor:
- alignment goes line-by-line every single time
- look into caching to avoid repeated scans or avoid expensive operations like string comparisons
- profile with M-x profiler-start M-x profiler-report and see section "1.4 Feedback" in the org manual
OrgMettup 2025-10-08
Feel free to write here during or after the meetup (if you need to ask something afterwards). I will then add everything to the meeting notes.