From: William Rankin via "General discussions about Org-mode." <emacs-orgmode@gnu.org>
To: emacs-orgmode@gnu.org, emacs-devel@gnu.org
Subject: Re Org 9.4 is out. Can you help? // breaking apart Org Mode
Date: Tue, 15 Sep 2020 20:05:20 +1000 [thread overview]
Message-ID: <m2imcfmk2n.fsf@bydasein.com> (raw)
Hello,
At the request of Bastien I'm sending on these ideas regarding the
future of Org Mode development. I'm also copying emacs-devel since they
might be interested too.
Org Mode and Emacs would benefit greatly from the codebase being broken
apart, not unlike how an antitrust suit breaks apart a big company for
the good of society!
It is my view that many parts of Org code could be implemented as minor
modes or independent libraries. This would encourage cleaner, more
modular and more easy to understand code. It would provide an
exponential benefit for other elisp programs. And by splitting up the
codebase you allow contributors more a sense of ownership and emotional
investment in the things to which they provide their time/effort.
A few suggestions...
* outline
Org Mode builds on top of outline, but those improvements are isolated
to Org, e.g. Org has wonderful outline cycling, but if someone wants
outline cycling in another major mode they need to implement this again
(likely just duplicating Org's existing code). Ideally all of this could
be ported back to outline itself. This would slim down the Org codebase
while benefiting all other outline-based major modes.
* orgtbl-mode
This is a good attempt at implementing some of Org's functionality as a
minor mode. Ideally orgtbl could be ported back to table and enough
flexibility added to make it compatible with Markdown Mode tables
(currently implemented with its own table stuff).
* source blocks
Org's source block functionality could be spun off into its own library.
In theory it could work just like outline (where a major mode defines
its own heading regexp). A major mode would define its own source block
delimiter regexpes.
Ideally any major mode writing for a plain text markup format would
just:
(require 'source-blocks)
then have all the same functionality of Org source blocks. Any
improvements would then benefit everyone.
* org-toggle-time-stamp-overlays / org-toggle-link-display
This functionality, although small within Org, could be very nice as
their own minor modes. Displaying dates/times with custom format is easy
enough... URLs a bit harder.
I went so far as to try this with varying degrees of success:
https://github.com/rnkn/prettify-date-time-mode
https://github.com/rnkn/prettify-url-mode
* org-link
I see a lot of interest for that Zettelkasten method, with many
different implementations. What's stopping Org's cross-linking being
implemented as its own global minor mode, independent of .org files?
* electric-pair-mode
Org currently uses org-emphasize for its emphasis pairs, but could it
just use electric-pair-mode? Would this prompt some improvements to
electric-pair-mode? This would benefit everyone.
I don't mean to suggest that the above ideas are things I'm particularly
hanging out for, I'm just trying to sketch an ideas of beneficial ways
Org could be broken apart.
Finally, I'm pretty sure breaking apart Org will mean it will be much
easier to maintain -- it will be far easier to find one or two people
passionate about maintaining perhaps a source-blocks library than the
entirety of Org. If Org's development takes this more modular direction,
where libraries are designed to work independently of the rest of the
code, then it won't need an elite few people who understand the whole
codebase.
I hope some of these ideas were either valuable or provide valuable
discussion.
--
William Rankin
https://bydasein.com
~ The single best thing you can do for the world is to delete your
social media accounts.
next reply other threads:[~2020-09-15 10:19 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-09-15 10:05 William Rankin via General discussions about Org-mode. [this message]
2020-09-15 13:00 ` Re Org 9.4 is out. Can you help? // breaking apart Org Mode Nicholas Savage
2020-09-15 13:49 ` Russell Adams
2020-09-23 8:28 ` Bastien
2020-09-23 14:44 ` Dr. Arne Babenhauserheide
2020-09-23 8:25 ` Bastien
2020-09-23 8:21 ` Bastien
2020-09-23 13:03 ` arthur miller
2020-09-23 13:27 ` Ihor Radchenko
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=m2imcfmk2n.fsf@bydasein.com \
--to=emacs-orgmode@gnu.org \
--cc=emacs-devel@gnu.org \
--cc=william@bydasein.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).