228 lines
8.6 KiB
Plaintext
228 lines
8.6 KiB
Plaintext
━━━━━━━━━
|
||
WELCOME
|
||
|
||
TEC
|
||
━━━━━━━━━
|
||
|
||
|
||
2021-04-26
|
||
|
||
|
||
Introduction
|
||
════════════
|
||
|
||
Org is an absolutely marvellous project. However, a quick glance at
|
||
<https://orgmode.org> can lead one to think “so… it’s an Emacs version
|
||
of Markdown? What’s the big deal?”. While it’s easy to understand how
|
||
someone might think that at first, that impression misses two crucial
|
||
points:
|
||
⁃ While for simple constructs (*bold*, /italic/, headlines, etc.) the
|
||
syntax is very much analogous[1], Org scales to much more powerful
|
||
forms that are a headache to replicate in Markdown
|
||
⁃ Org mode was developed in Emacs, for Emacs. The integrations for Org
|
||
put /every other plaintext markup editing experience to
|
||
shame/. *This is a bold statement*, and I stand by it.
|
||
|
||
This blog exists because of the second point. The world does not stand
|
||
still, while new Markdown editors et al. are [popping] [up] [left],
|
||
[right], [and] [centre] — Org has not languished. The [mailing list]
|
||
is active, as is development, and the number of things you can do with
|
||
Org is only increasing.
|
||
|
||
However, if one doesn’t want to receive tens to hundreds of emails a
|
||
week, it can be all too easy to miss out on exciting developments[2]
|
||
😢. So, to help keep you abreast of the latest in Org, I’m starting a
|
||
blog ✨. Like all good things, it is [written entirely in Org].
|
||
|
||
Inspired by [This Week in KDE] I’m thrilled to announce /This Month in
|
||
Org/ (we have slightly less going on than a Desktop
|
||
Environment[3]). Each month I shall endeavour to present the
|
||
highlights of Org development.
|
||
|
||
Who knows, perhaps you might see something you’d like to help out with
|
||
or suggest improvements too. We’d love you to [get in touch].
|
||
|
||
|
||
[popping] <https://github.com/marktext/marktext>
|
||
|
||
[up] <https://github.com/ApostropheEditor/Apostrophe>
|
||
|
||
[left] <https://remarkableapp.github.io/linux.html>
|
||
|
||
[right] <https://github.com/brrd/Abricotine>
|
||
|
||
[and] <https://github.com/DaveJarvis/keenwrite>
|
||
|
||
[centre] <https://znote.io/>
|
||
|
||
[mailing list] <https://orgmode.org/list/>
|
||
|
||
[written entirely in Org]
|
||
<https://github.com/tecosaur/this-month-in-org/>
|
||
|
||
[This Week in KDE]
|
||
<https://pointieststick.com/category/this-week-in-kde/>
|
||
|
||
[get in touch] <https://orgmode.org/community.html>
|
||
|
||
|
||
Catching up on lost time — a year in review
|
||
═══════════════════════════════════════════
|
||
|
||
I joined the Org mailing list in May last year, it’s almost been a
|
||
year since then and we’ve seen the release of Org 9.4, and its
|
||
inclusion in Emacs 27.
|
||
|
||
I’m not going to do 12 months of work for just this one post, but I’d
|
||
like to give you a sample of what’s changed over the last year.
|
||
|
||
|
||
A new discussion tracker — [updates.orgmode.org]
|
||
────────────────────────────────────────────────
|
||
|
||
Mid last year Bastien rolled out tracker for
|
||
⁃ Upcoming changes
|
||
⁃ Help requests
|
||
⁃ Bugs
|
||
⁃ Patches
|
||
|
||
This should help ensure nothing slips through the cracks of the ML.
|
||
|
||
<file:figures/screenshot-of-updates-orgmode-org.png>
|
||
|
||
It’s very slick, and Bastien built a [mailbox monitor] just for it —
|
||
so be sure to check it out. This should make it easier to see what
|
||
needs doing. If you feel inclined to help out with Org check out the
|
||
/Help requests/ section in particular.
|
||
|
||
You can also get RSS feeds for individual sections, or get the
|
||
information as JSON to work into your own projects, for example [an
|
||
elisp function to fetch and apply patches].
|
||
|
||
|
||
[updates.orgmode.org] <https://updates.orgmode.org/>
|
||
|
||
[mailbox monitor] <https://github.com/bzg/woof>
|
||
|
||
[an elisp function to fetch and apply patches]
|
||
<https://tecosaur.github.io/emacs-config/config.html#development>
|
||
|
||
|
||
Inline display of remote images
|
||
───────────────────────────────
|
||
|
||
Ever gazed forlornly at a link like
|
||
`[[https://github.com/larsmagne/meme/raw/master/images/Grandma-Finds-The-Internet.jpg]]'
|
||
wishing you could see the image?
|
||
|
||
Wish no more! Thanks to Jack Kamm you can now look upon remote images
|
||
in all their glory!
|
||
|
||
<https://github.com/larsmagne/meme/raw/master/images/Grandma-Finds-The-Internet.jpg>
|
||
|
||
To get this working, simply set `org-display-remote-inline-images' to
|
||
`'download' or `'cache'.
|
||
|
||
|
||
Use `org-edit-special' (`C-c '') with LaTeX fragments
|
||
─────────────────────────────────────────────────────
|
||
|
||
It’s great how in Org you can jump into a LaTeX-mode minibuffer for
|
||
LaTeX environments, but why leave inline LaTeX fragments out? We’ll,
|
||
they’re now in.
|
||
|
||
<file:figures/org-edit-special-latex-fragment.png>
|
||
|
||
|
||
Control heading display on startup
|
||
──────────────────────────────────
|
||
|
||
`org-num-mode' is great for when you’re keeping an eye on section
|
||
numbers, but it’s not fun to find yourself enabling it every time you
|
||
open a file where you want it. With the new option `#+startup: num' by
|
||
Bastien, you can set and forget at last.
|
||
|
||
<file:figures/org-startup-num-and-levels.png>
|
||
|
||
Should you want to set the number of levels you see on opening a file,
|
||
there’s now an option for that too. Gustav Wikström has added
|
||
/another/ new option `#+startup: show<n>levels' (where `<n>' is
|
||
between 2 and 5, inclusive). /NB: This is part of the upcoming 9.5
|
||
release/
|
||
|
||
|
||
Set permissions of tangled files
|
||
────────────────────────────────
|
||
|
||
Are you particular about your file permissions? If so you’ll likely
|
||
like John Herrlin’s new source block header argument `:file-mode'
|
||
pertinent. The easiest way to set a permission is with an [octal
|
||
value], like so:
|
||
┌────
|
||
│ #+begin_src shell :results file :file script.sh :file-mode (identity #o755)
|
||
│ echo "#!/bin/bash"
|
||
│ echo "echo Hello World"
|
||
│ #+end_src
|
||
└────
|
||
|
||
|
||
[octal value]
|
||
<https://docs.nersc.gov/filesystems/unix-file-permissions/>
|
||
|
||
|
||
A collection of improvements to source block header arguments
|
||
─────────────────────────────────────────────────────────────
|
||
|
||
These’s been a whole set of these, so I’ll just list them off.
|
||
python, improved `:return'
|
||
Now works with sessions and the `:epilogue' argument (Jack Kamm)
|
||
Java, new argument `:cmdargs'
|
||
Add some command line arguments to be passed to `java' (Jarmo
|
||
Hurri)
|
||
C/C++, non-system headers with `:includes'
|
||
values that don’t start with `<' will now be formatted as
|
||
double-quoted `#include' statements (Brandon Guttersohn)
|
||
Screen, new argument `:screenrc'
|
||
For those of you who still haven’t moved to `tmux' (Kenneth
|
||
D. Mankoff)
|
||
|
||
|
||
A seven year old bug was fixed
|
||
──────────────────────────────
|
||
|
||
In 2013 [it was reported] that an infinite loop could be triggered in
|
||
`org-agenda-show-new-time'. At long last, this has been fixed by
|
||
Bastien.
|
||
|
||
|
||
[it was reported]
|
||
<https://lists.gnu.org/archive/html/emacs-orgmode/2013-08/msg00072.html>
|
||
|
||
|
||
|
||
Footnotes
|
||
─────────
|
||
|
||
[1] Aside from somewhat more [intuitive syntax]
|
||
(<https://orgmode.org/quickstart.html>) for emphasis and simple
|
||
structures, Org also has the advantage of not having [40 functionally
|
||
distinct specifications]
|
||
(<https://github.com/commonmark/commonmark-spec/wiki/markdown-flavors>). There
|
||
is only one Org.
|
||
NB: If you attempt to be pedantic you may say that there are multiple
|
||
Orgs because, for example, GitHub uses [org-ruby]
|
||
(<https://github.com/wallyqs/org-ruby>). However, that’s just an
|
||
incomplete implementation — not a [specification]
|
||
(<https://orgmode.org/worg/dev/org-syntax.html>).
|
||
|
||
[2] There is [ORG-NEWS]
|
||
(<https://code.orgmode.org/bzg/org-mode/src/master/etc/ORG-NEWS>), but
|
||
do you /really/ check that? Besides, it doesn’t even have pictures.
|
||
|
||
[3] That said, with /interesting/ projects like the [Emacs Application
|
||
Framework]
|
||
(<https://github.com/manateelazycat/emacs-application-framework>) and
|
||
the [Emacs X Window Manager] (<https://github.com/ch11ng/exwm>), one
|
||
could argue that Org is (sometimes) a major component of a desktop
|
||
environment…
|