this-month-in-org/2021-04-26-Welcome.org.html

237 lines
14 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>2021-04-26-Welcome.org.html</title>
<style>
body { background: #fafafa; color: #2a2a2a; }
pre {
font-size: 1rem;
max-width: min(100rem, 100%);
width: max-content;
white-space: pre-wrap;
margin: auto; }
.ef-D {
color: #2a2a2a;
background-color: #fafafa;
font-weight: 400; }
.ef-k {
color: #3b6ea8; }
.ef-d {
color: #b6b6b6; }
.ef-t {
color: #9a7500; }
.ef-s {
color: #4f894c; }
.ef-w {
color: #9a7500; }
.ef-b {
color: #29838d; }
.ef-ct {
color: #b1b1b1; }
.ef-c {
color: #97365b; }
.ef-pp {
color: #3b6ea8;
font-weight: 700; }
.ef-nc {
color: #3b6ea8;
font-weight: 700; }
.ef-v {
color: #cb9aad; }
.ef-f {
color: #29838d; }
.ef-cd {
color: #b1b1b1; }
.ef-rc {
color: #3b6ea8;
font-weight: 700; }
.ef-rb {
color: #3b6ea8;
font-weight: 700; }
.ef-ob {
}
.ef-hn {
color: #97365b;
font-weight: 700; }
.ef-hq {
color: #3b6ea8; }
.ef-hs {
color: #9a7500; }
.ef-rdi {
color: #3b6ea8; }
.ef-rdii {
color: #97365b; }
.ef-rdiii {
color: #4f894c; }
.ef-rdiv {
color: #842879; }
.ef-rdv {
color: #29838d; }
.ef-rdvi {
color: #3b6ea8; }
.ef-rdvii {
color: #97365b; }
.ef-rdiix {
color: #4f894c; }
.ef-rdix {
color: #842879; }
</style>
</head>
<body>
<pre>
<span style="color: #9e9e9e;">#+title:</span> <span style="color: #29838d; font-weight: 700;">Welcome
</span><span style="color: #9e9e9e;">#+author:</span> <span style="color: #29838d;">TEC
</span><span style="color: #9e9e9e;">#+date:</span> <span style="color: #29838d;">2021-04-26
</span>
<span style="color: #3b6ea8; font-weight: 700;">* Introduction</span>
Org is an absolutely marvellous project. However, a quick glance at
<span style="color: #3b6ea8; font-weight: 700;">https://orgmode.org</span> 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 (<span style="font-weight: 700;">*bold*</span>, <span style="text-decoration: italic;">/italic/</span>, headlines, etc.) the syntax is very
much analogous<span style="color: #ac4426;">[fn:1]</span>, 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 <span style="text-decoration: italic;">/every
other plaintext markup editing experience to shame/</span>. <span style="font-weight: 700;">*This is a bold statement*</span>,
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 <span style="color: #3b6ea8; font-weight: 700;">[[https://github.com/marktext/marktext][popping]]</span> <span style="color: #3b6ea8; font-weight: 700;">[[https://github.com/ApostropheEditor/Apostrophe][up]]</span> <span style="color: #3b6ea8; font-weight: 700;">[[https://remarkableapp.github.io/linux.html][left]]</span>, <span style="color: #3b6ea8; font-weight: 700;">[[https://github.com/brrd/Abricotine][right]]</span>, <span style="color: #3b6ea8; font-weight: 700;">[[https://github.com/DaveJarvis/keenwrite][and]]</span> <span style="color: #3b6ea8; font-weight: 700;">[[https://znote.io/][centre]]</span> --- Org
has not languished. The <span style="color: #3b6ea8; font-weight: 700;">[[https://orgmode.org/list/][mailing list]]</span> 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<span style="color: #ac4426;">[fn:3]</span> 😢. So, to help keep
you abreast of the latest in Org, I'm starting a blog ✨. Like all good things,
it is <span style="color: #3b6ea8; font-weight: 700;">[[https://github.com/tecosaur/this-month-in-org/][written entirely in Org]]</span>.
Inspired by <span style="color: #3b6ea8; font-weight: 700;">[[https://pointieststick.com/category/this-week-in-kde/][This Week in KDE]]</span> I'm thrilled to announce <span style="text-decoration: italic;">/This Month in Org/</span> (we have
slightly less going on than a Desktop Environment<span style="color: #ac4426;">[fn:2]</span>). 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 <span style="color: #3b6ea8; font-weight: 700;">[[https://orgmode.org/community.html][get in touch]]</span>.
<span style="color: #3b6ea8; font-weight: 700;">* Catching up on lost time --- a year in review</span>
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.
<span style="color: #97365b; font-weight: 700;">** A new discussion tracker --- </span><span style="color: #3b6ea8; font-weight: 700;">[[https://updates.orgmode.org/][</span><span style="color: #3b6ea8; font-weight: 700;">updates.orgmode.org]</span><span style="color: #3b6ea8; font-weight: 700;">]</span>
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.
<span style="color: #b6b6b6;">#+caption:</span> <span class="ef-ob">A screenshot of [[https://updates.orgmode.org/][updates.orgmode.org]]</span>
<span style="color: #b6b6b6;">#+attr_html: :class invertible</span>
<span style="color: #3b6ea8; font-weight: 700;">[[file:figures/screenshot-of-updates-orgmode-org.png]]</span>
It's very slick, and Bastien built a <span style="color: #3b6ea8; font-weight: 700;">[[https://github.com/bzg/woof][mailbox monitor]]</span> 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 <span style="text-decoration: italic;">/Help requests/</span> 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 <span style="color: #3b6ea8; font-weight: 700;">[[https://tecosaur.github.io/emacs-config/config.html#development][an elisp function to fetch and
apply patches]]</span>.
<span style="color: #97365b; font-weight: 700;">** Inline display of remote images</span>
Ever gazed forlornly at a link like
<span style="color: #4f894c;">=</span><span style="color: #4f894c; font-weight: 700;">[[https://github.com/larsmagne/meme/raw/master/images/Grandma-Finds-The-Internet.jpg]]</span><span style="color: #4f894c;">=</span>
wishing you could see the image?
Wish no more! Thanks to Jack Kamm you can now look upon remote images in all
their glory!
<span style="color: #b6b6b6;">#+caption:</span> <span class="ef-ob">Org mode discovers the internet</span>
<span style="color: #b6b6b6;">#+attr_html: :style height:16em</span>
<span style="color: #b6b6b6;">#+attr_latex: :width 0.4\linewidth</span>
<span style="color: #3b6ea8; font-weight: 700;">[[https://github.com/larsmagne/meme/raw/master/images/Grandma-Finds-The-Internet.jpg]]</span>
To get this working, simply set <span style="color: #9e9e9e;">src_</span><span style="color: #b6b6b6;">elisp</span><span style="color: #9e9e9e;">{</span><span class="ef-ob">org-display-remote-inline-images</span><span style="color: #9e9e9e;">}</span> to
<span style="color: #9e9e9e;">src_</span><span style="color: #b6b6b6;">elisp</span><span style="color: #9e9e9e;">{</span><span class="ef-ob">'download</span><span style="color: #9e9e9e;">}</span> or <span style="color: #9e9e9e;">src_</span><span style="color: #b6b6b6;">elisp</span><span style="color: #9e9e9e;">{</span><span class="ef-ob">'cache</span><span style="color: #9e9e9e;">}</span>.
<span style="color: #97365b; font-weight: 700;">** Use </span><span style="color: #ac4426; font-weight: 700;">~org-edit-special~</span><span style="color: #97365b; font-weight: 700;"> (</span><span style="color: #4f894c; font-weight: 700;">=C-c '=</span><span style="color: #97365b; font-weight: 700;">) with LaTeX fragments</span>
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.
<span style="color: #b6b6b6;">#+caption:</span> <span class="ef-ob">Running ~org-edit-special~ on an inline LaTeX fragment</span>
<span style="color: #b6b6b6;">#+attr_html: :class invertible</span>
<span style="color: #3b6ea8; font-weight: 700;">[[file:figures/org-edit-special-latex-fragment.png]]</span>
<span style="color: #97365b; font-weight: 700;">** Control heading display on startup</span>
<span style="color: #4f894c;">=org-num-mode=</span> 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 <span style="color: #4f894c;">=#+startup: num=</span> by Bastien, you can set and forget
at last.
<span style="color: #b6b6b6;">#+caption:</span> <span class="ef-ob">Opening a buffer with the new =num= and =show2levels= startup options</span>
<span style="color: #b6b6b6;">#+attr_html: :class invertible</span>
<span style="color: #3b6ea8; font-weight: 700;">[[file:figures/org-startup-num-and-levels.png]]</span>
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 <span style="text-decoration: italic;">/another/</span> new option
<span style="color: #4f894c;">=#+startup: show&lt;n&gt;levels=</span> (where <span style="color: #4f894c;">=&lt;n&gt;=</span> is between 2 and 5, inclusive).
<span style="text-decoration: italic;">/NB: This is part of the upcoming 9.5 release/</span>
<span style="color: #97365b; font-weight: 700;">** Set permissions of tangled files</span>
Are you particular about your file permissions? If so you'll likely like John
Herrlin's new source block header argument <span style="color: #4f894c;">=:file-mode=</span> pertinent. The easiest way
to set a permission is with an <span style="color: #3b6ea8; font-weight: 700;">[[https://docs.nersc.gov/filesystems/unix-file-permissions/][octal value]]</span>, like so:
<span style="color: #b1b1b1;">#+begin_src org
</span><span class="ef-ob">,#+begin_src shell :results file :file script.sh :file-mode (identity #o755)
echo "#!/bin/bash"
echo "echo Hello World"
,#+end_src
</span><span style="color: #b1b1b1;">#+end_src
</span>
<span style="color: #97365b; font-weight: 700;">** A collection of improvements to source block header arguments</span>
These's been a whole set of these, so I'll just list them off.
+ <span style="color: #3b6ea8;">python, improved </span><span style="color: #3b6ea8;">=:return=</span><span style="color: #3b6ea8;"> ::</span> Now works with sessions and the <span style="color: #4f894c;">=:epilogue=</span>
argument (Jack Kamm)
+ <span style="color: #3b6ea8;">Java, new argument </span><span style="color: #3b6ea8;">=:cmdargs=</span><span style="color: #3b6ea8;"> ::</span> Add some command line arguments to be passed to
<span style="color: #ac4426;">~java~</span> (Jarmo Hurri)
+ <span style="color: #3b6ea8;">C/C++, non-system headers with </span><span style="color: #3b6ea8;">=:includes=</span><span style="color: #3b6ea8;"> ::</span> values that don't start with <span style="color: #4f894c;">=&lt;=</span>
will now be formatted as double-quoted <span style="color: #9e9e9e;">src_</span><span style="color: #b6b6b6;">C</span><span style="color: #9e9e9e;">{</span><span style="color: #3b6ea8; font-weight: 700;">#include</span><span style="color: #9e9e9e;">}</span> statements (Brandon
Guttersohn)
+ <span style="color: #3b6ea8;">Screen, new argument </span><span style="color: #3b6ea8;">=:screenrc=</span><span style="color: #3b6ea8;"> ::</span> For those of you who still haven't moved to
<span style="color: #4f894c;">=tmux=</span> (Kenneth D. Mankoff)
<span style="color: #97365b; font-weight: 700;">** A seven year old bug was fixed</span>
In 2013 <span style="color: #3b6ea8; font-weight: 700;">[[https://lists.gnu.org/archive/html/emacs-orgmode/2013-08/msg00072.html][it was reported]]</span> that an infinite loop could be triggered in
<span style="color: #ac4426;">~org-agenda-show-new-time~</span>. At long last, this has been fixed by Bastien.
<span style="color: #3b6ea8; font-weight: 700;">* Footnotes</span>
<span style="color: #ac4426;">[fn:1]</span> Aside from somewhat more <span style="color: #3b6ea8; font-weight: 700;">[[https://orgmode.org/quickstart.html][intuitive syntax]]</span> for emphasis and simple
structures, Org also has the advantage of not having <span style="color: #3b6ea8; font-weight: 700;">[[https://github.com/commonmark/commonmark-spec/wiki/markdown-flavors][40 functionally distinct
specifications]]</span>. 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 <span style="color: #3b6ea8; font-weight: 700;">[[https://github.com/wallyqs/org-ruby][org-ruby]]</span>. However, that's just an incomplete
implementation --- not a <span style="color: #3b6ea8; font-weight: 700;">[[https://orgmode.org/worg/dev/org-syntax.html][specification]]</span>.
<span style="color: #ac4426;">[fn:2]</span> That said, with <span style="text-decoration: italic;">/interesting/</span> projects like the <span style="color: #3b6ea8; font-weight: 700;">[[https://github.com/manateelazycat/emacs-application-framework][Emacs Application
Framework]]</span> and the <span style="color: #3b6ea8; font-weight: 700;">[[https://github.com/ch11ng/exwm][Emacs X Window Manager]]</span>, one could argue that Org is
(sometimes) a major component of a desktop environment...
<span style="color: #ac4426;">[fn:3]</span> There is <span style="color: #3b6ea8; font-weight: 700;">[[https://code.orgmode.org/bzg/org-mode/src/master/etc/ORG-NEWS][ORG-NEWS]]</span>, but do you <span style="text-decoration: italic;">/really/</span> check that? Besides, it doesn't even
have pictures.
</pre>
<body>
</html>