Comment by Derbasti
21 hours ago
Expressing complex HTML or LaTeX constructs in org-mode is more complicated than writing the raw HTML or LaTeX. So for complex things, I'll always fall back to writing HTML or LaTeX directly. Markdown, instead, just falls back to HTML. Whatever I can't express in markdown, I can simply insert the HTML by hand. These markup languages are always fine for simple things, but have a hard time expressing more complicated things.
Perhaps some kind of escape mechanism, like typst, would solve this. But org-mode doesn't.
That said, org-mode-the-program (not org-mode-the-syntax) is just fantastic, and nothing else comes close. For me, this doesn't outweigh its problems. Obsidian is a good-enough alternative.
I've recently converted my blog from org-mode to markdown. 1000 lines of elisp, replaced with 200 lines of Python, and a 50x speedup. Last year, I did the same for my journal. I'm a bit sad to "leave", but it does simplify things.
Opposite day! I moved from markdown (hugo) to org plaintext built and rendered using a hand-rolled pandoc + bash site maker. No Emacs needed.
~350 lines of Bash, and it hot-builds, and it hot-reloads :)
https://github.com/adityaathalye/shite (README has GIF demos, and explains the design of the code)
Also, I use literal HTML exports in my org files, like this:
Which is neat, because when I `C-'` (M-x org-edit-special), it opens a temporary buffer with just the HTML, with the relevant syntax-aware editing mode turned on. This has been a killer feature for me, because there are many places where I want /specific/ HTML, and neither org-export nor pandoc will compile org plaintext the way I want (not unless I invest inordinate amounts of time futzing with templating systems). So I just hand-code HTML using those export blocks, and I'm /fine/.
There are also a couple of places where I use org-babel to call a shell script that updates an exported HTML block in-line. I use this trick to tweak a common HTML fragment (like email form) in one place and expand it into custom HTML, wherever I need to.
Ditto LaTeX, although I confess, I'm not a heavy user, so I almost certainly haven't faced the troubles you have. With HTML, however, I think what I have is just cromulent.
You can use code blocks for this and even specify the language so Emacs can provide proper syntax highlighting:
#+BEGIN_SRC html
#+END_SRC
If you are writing a technical document with a lot of code blocks you can have yasnippet to create the blocks for you by keyboard shortcut.
> Expressing complex HTML or LaTeX constructs in org-mode is more complicated than writing the raw HTML or LaTeX.
Eh? This makes no sense! You can embed any HTML and LaTeX easily in the doc. And you could since I encountered org over 15 years ago.
Since 2009 all my LaTeX and Beamer docs have been written in org. I lose nothing by using org.
> I've recently converted my blog from org-mode to markdown. 1000 lines of elisp, replaced with 200 lines of Python, and a 50x speedup.
I use Pelican which uses rst. But it was pretty trivial to write a plugin in Python to have it support org files.
>I've recently converted my blog from org-mode to markdown.
Me too. I went to Jekyll and I thought I'd miss org but it turns out I don't. Plus I still get a slow lisp-like language (ruby) just like elisp.
Org is a neat idea but nothing supports it. You can get a jupyter-like experience with src blocks but have fun sharing it with anyone unless you only interact with other emacs users.
Markdown is merely acceptable, IMHO, but everything supports it, so it's the clear choice in my book.
Its completely trivial to export orgmode to markdown either as a process or just whenever you copy to the clipboard.
Completely trivial isn't a big barrier to interoperation.
Sure but each "completely trivial" step adds complexity to the overall process, which makes it brittle.
I'd rather just write in markdown than have to spend hours upon hours reading the awful emacs docs. I have a thousand things to do and no time.
Org might be better, but it's not better enough.