302 lines
15 KiB
HTML
302 lines
15 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<!-- 2024-09-08 Sun 15:20 -->
|
|
<meta charset="utf-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<title>Welcome</title>
|
|
<meta name="author" content="TEC" />
|
|
<meta name="generator" content="org mode" />
|
|
<meta name="theme-color" content="#77aa99" />
|
|
<meta property="og:type" content="article" />
|
|
<meta property="og:title" content="Welcome" />
|
|
<meta property="og:image" content="https://blog.tecosaur.net/tmio/org-icon.png" />
|
|
<meta property="og:image:type" content="image/png" />
|
|
<meta property="og:image:width" content="464" />
|
|
<meta property="og:image:height" content="512" />
|
|
<meta property="og:image:alt" content="Org unicorn logo" />
|
|
<meta property="og:article:author:first_name" content="TEC" />
|
|
<meta property="og:article:published_time" content="2021-04-26T00:00:00+0800" />
|
|
<meta property="og:article:modified_time" content="2021-04-27T02:12:21+0800" />
|
|
<link rel="alternate" type="application/atom+xml" title="This Month in Org" href="rss.xml" />
|
|
<link rel="icon" type="image/ico" href="favicon.ico?v=3">
|
|
<link rel="stylesheet" type="text/css" href="org-style.css">
|
|
<link rel="stylesheet" type="text/css" href="blog.css">
|
|
<script src="org-style.js"></script>
|
|
</head>
|
|
<body>
|
|
<input type='checkbox' id='theme-switch'><div id='page'><label id='switch-label' for='theme-switch'></label><div id="preamble" class="status">
|
|
<header>
|
|
<h4><a href="https://orgmode.org" class="orgicorn"><img src="org-icon-monochrome.svg" class="invertible"></a>
|
|
<a href="https://blog.tecosaur.net/tmio/" class="title">
|
|
This Month in Org</a>
|
|
<a href="rss.xml" title="RSS Feed" type="application/rss+xml" class="rss">
|
|
<img src="rss.svg" alt="RSS icon" />
|
|
</a></h4>
|
|
</header>
|
|
</div>
|
|
<div id="content">
|
|
<header class="page-header"><div class="page-meta">2021-04-26, <span class='acr'>TEC</span></div>
|
|
|
|
<h1 class="title">Welcome</h1>
|
|
</header><div id="outline-container-introduction" class="outline-2">
|
|
<h2 id="introduction">Introduction<a aria-hidden="true" href="#introduction">#</a> </h2>
|
|
<div class="outline-text-2" id="text-introduction">
|
|
<p>
|
|
Org is an absolutely marvellous project. However, a quick glance at
|
|
<a href="https://orgmode.org">https://orgmode.org</a> 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:
|
|
</p>
|
|
<ul class="org-ul">
|
|
<li>While for simple constructs (<b>bold</b>, <i>italic</i>, headlines, etc.) the syntax is very
|
|
much analogous<sup><a id="fnr.1" class="footref" href="#fn.1" role="doc-backlink">1</a></sup>, Org scales to much more powerful forms that are a
|
|
headache to replicate in Markdown</li>
|
|
<li>Org mode was developed in Emacs, for Emacs. The integrations for Org put <i>every
|
|
other plaintext markup editing experience to shame</i>. <b>This is a bold statement</b>,
|
|
and I stand by it.</li>
|
|
</ul>
|
|
|
|
<p>
|
|
This blog exists because of the second point. The world does not stand still,
|
|
while new Markdown editors et al. are <a href="https://github.com/marktext/marktext">popping</a> <a href="https://github.com/ApostropheEditor/Apostrophe">up</a> <a href="https://remarkableapp.github.io/linux.html">left</a>, <a href="https://github.com/brrd/Abricotine">right</a>, <a href="https://github.com/DaveJarvis/keenwrite">and</a> <a href="https://znote.io/">centre</a> — Org
|
|
has not languished. The <a href="https://orgmode.org/list/">mailing list</a> is active, as is development, and the
|
|
number of things you can do with Org is only increasing.
|
|
</p>
|
|
|
|
<p>
|
|
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<sup><a id="fnr.2" class="footref" href="#fn.2" role="doc-backlink">2</a></sup> 😢. So, to help keep
|
|
you abreast of the latest in Org, I’m starting a blog ✨. Like all good things,
|
|
it is <a href="https://github.com/tecosaur/this-month-in-org/">written entirely in Org</a>.
|
|
</p>
|
|
|
|
<p>
|
|
Inspired by <a href="https://pointieststick.com/category/this-week-in-kde/">This Week in <span class='acr'>KDE</span></a> I’m thrilled to announce <i>This Month in Org</i> (we have
|
|
slightly less going on than a Desktop Environment<sup><a id="fnr.3" class="footref" href="#fn.3" role="doc-backlink">3</a></sup>). Each month I shall
|
|
endeavour to present the highlights of Org development.
|
|
</p>
|
|
|
|
<p>
|
|
Who knows, perhaps you might see something you’d like to help out with or
|
|
suggest improvements too. We’d love you to <a href="https://orgmode.org/community.html">get in touch</a>.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-catching-up-lost" class="outline-2">
|
|
<h2 id="catching-up-lost">Catching up on lost time — a year in review<a aria-hidden="true" href="#catching-up-lost">#</a> </h2>
|
|
<div class="outline-text-2" id="text-catching-up-lost">
|
|
<p>
|
|
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.
|
|
</p>
|
|
|
|
<p>
|
|
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.
|
|
</p>
|
|
</div>
|
|
<div id="outline-container-new-discussion-tracker" class="outline-3">
|
|
<h3 id="new-discussion-tracker">A new discussion tracker — <a href="https://updates.orgmode.org/">updates.orgmode.org</a><a aria-hidden="true" href="#new-discussion-tracker">#</a> </h3>
|
|
<div class="outline-text-3" id="text-new-discussion-tracker">
|
|
<p>
|
|
Mid last year Bastien rolled out tracker for
|
|
</p>
|
|
<ul class="org-ul">
|
|
<li>Upcoming changes</li>
|
|
<li>Help requests</li>
|
|
<li>Bugs</li>
|
|
<li>Patches</li>
|
|
</ul>
|
|
|
|
<p>
|
|
This should help ensure nothing slips through the cracks of the <span class='acr'>ML</span>.
|
|
</p>
|
|
|
|
|
|
<figure id="org831b850">
|
|
<img src="figures/screenshot-of-updates-orgmode-org.png" alt="screenshot-of-updates-orgmode-org.png" class="invertible">
|
|
|
|
<figcaption><span class="figure-number">Figure 1: </span>A screenshot of <a href="https://updates.orgmode.org/">updates.orgmode.org</a></figcaption>
|
|
</figure>
|
|
|
|
<p>
|
|
It’s very slick, and Bastien built a <a href="https://github.com/bzg/woof">mailbox monitor</a> 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 <i>Help requests</i> section in particular.
|
|
</p>
|
|
|
|
<p>
|
|
You can also get <span class='acr'>RSS</span> feeds for individual sections, or get the information as
|
|
<span class='acr'>JSON</span> to work into your own projects, for example <a href="https://tecosaur.github.io/emacs-config/config.html#development">an elisp function to fetch and
|
|
apply patches</a>.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-inline-display-remote" class="outline-3">
|
|
<h3 id="inline-display-remote">Inline display of remote images<a aria-hidden="true" href="#inline-display-remote">#</a> </h3>
|
|
<div class="outline-text-3" id="text-inline-display-remote">
|
|
<p>
|
|
Ever gazed forlornly at a link like
|
|
<kbd>[[https://github.com/larsmagne/meme/raw/master/images/Grandma-Finds-The-Internet.jpg]]</kbd>
|
|
wishing you could see the image?
|
|
</p>
|
|
|
|
<p>
|
|
Wish no more! Thanks to Jack Kamm you can now look upon remote images in all
|
|
their glory!
|
|
</p>
|
|
|
|
|
|
<figure id="orge4ae9d8">
|
|
<img src="https://github.com/larsmagne/meme/raw/master/images/Grandma-Finds-The-Internet.jpg" alt="Grandma-Finds-The-Internet.jpg" style="height:16em">
|
|
|
|
<figcaption><span class="figure-number">Figure 2: </span>Org mode discovers the internet</figcaption>
|
|
</figure>
|
|
|
|
<p>
|
|
To get this working, simply set <code class="src src-elisp">org-display-remote-inline-images</code> to
|
|
<code class="src src-elisp">'download</code> or <code class="src src-elisp">'cache</code>.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-use-org-edit" class="outline-3">
|
|
<h3 id="use-org-edit">Use <code>org-edit-special</code> (<kbd>C-c '</kbd>) with LaTeX fragments<a aria-hidden="true" href="#use-org-edit">#</a> </h3>
|
|
<div class="outline-text-3" id="text-use-org-edit">
|
|
<p>
|
|
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.
|
|
</p>
|
|
|
|
|
|
<figure id="org55fc940">
|
|
<img src="figures/org-edit-special-latex-fragment.png" alt="org-edit-special-latex-fragment.png" class="invertible">
|
|
|
|
<figcaption><span class="figure-number">Figure 3: </span>Running <code>org-edit-special</code> on an inline LaTeX fragment</figcaption>
|
|
</figure>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-control-heading-display" class="outline-3">
|
|
<h3 id="control-heading-display">Control heading display on startup<a aria-hidden="true" href="#control-heading-display">#</a> </h3>
|
|
<div class="outline-text-3" id="text-control-heading-display">
|
|
<p>
|
|
<kbd>org-num-mode</kbd> 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 <kbd>#+startup: num</kbd> by Bastien, you can set and forget
|
|
at last.
|
|
</p>
|
|
|
|
|
|
<figure id="org3600dcb">
|
|
<img src="figures/org-startup-num-and-levels.png" alt="org-startup-num-and-levels.png" class="invertible">
|
|
|
|
<figcaption><span class="figure-number">Figure 4: </span>Opening a buffer with the new <kbd>num</kbd> and <kbd>show2levels</kbd> startup options</figcaption>
|
|
</figure>
|
|
|
|
<p>
|
|
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 <i>another</i> new option
|
|
<kbd>#+startup: show<n>levels</kbd> (where <kbd><n></kbd> is between 2 and 5, inclusive).
|
|
<i><span class='acr'>NB</span>: This is part of the upcoming 9.5 release</i>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-set-permissions-tangled" class="outline-3">
|
|
<h3 id="set-permissions-tangled">Set permissions of tangled files<a aria-hidden="true" href="#set-permissions-tangled">#</a> </h3>
|
|
<div class="outline-text-3" id="text-set-permissions-tangled">
|
|
<p>
|
|
Are you particular about your file permissions? If so you’ll likely like John
|
|
Herrlin’s new source block header argument <kbd>:file-mode</kbd> pertinent. The easiest way
|
|
to set a permission is with an <a href="https://docs.nersc.gov/filesystems/unix-file-permissions/">octal value</a>, like so:
|
|
</p>
|
|
<details id='set-permissions-tangled,code--1' class='code' open><summary><span class="lang">Org mode</span></summary>
|
|
<div class='gutter'>
|
|
<a href='#set-permissions-tangled,code--1'>#</a>
|
|
<button title='Copy to clipboard' onclick='copyPreToClipbord(this)'>⎘</button></div>
|
|
<div class="org-src-container">
|
|
<pre class="src src-org"><span class="org-org-block-begin-line">#+begin_src shell :results file :file script.sh :file-mode (identity #o755)</span>
|
|
<span class="org-org-block"><span class="org-builtin">echo</span></span><span class="org-org-block"> </span><span class="org-org-block"><span class="org-string">"#!/bin/bash"</span></span>
|
|
<span class="org-org-block"><span class="org-builtin">echo</span></span><span class="org-org-block"> </span><span class="org-org-block"><span class="org-string">"echo Hello World"</span></span>
|
|
<span class="org-org-block-end-line">#+end_src</span>
|
|
</pre>
|
|
</div>
|
|
</details>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-collection-improvements-source" class="outline-3">
|
|
<h3 id="collection-improvements-source">A collection of improvements to source block header arguments<a aria-hidden="true" href="#collection-improvements-source">#</a> </h3>
|
|
<div class="outline-text-3" id="text-collection-improvements-source">
|
|
<p>
|
|
These’s been a whole set of these, so I’ll just list them off.
|
|
</p>
|
|
<dl class="org-dl">
|
|
<dt>python, improved <kbd>:return</kbd></dt><dd>Now works with sessions and the <kbd>:epilogue</kbd>
|
|
argument (Jack Kamm)</dd>
|
|
<dt>Java, new argument <kbd>:cmdargs</kbd></dt><dd>Add some command line arguments to be passed to
|
|
<code>java</code> (Jarmo Hurri)</dd>
|
|
<dt>C/C++, non-system headers with <kbd>:includes</kbd></dt><dd>values that don’t start with <kbd><</kbd>
|
|
will now be formatted as double-quoted <code class="src src-C"><span class="org-preprocessor">#include</span></code> statements (Brandon
|
|
Guttersohn)</dd>
|
|
<dt>Screen, new argument <kbd>:screenrc</kbd></dt><dd>For those of you who still haven’t moved to
|
|
<kbd>tmux</kbd> (Kenneth D. Mankoff)</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
<div id="outline-container-seven-year-old" class="outline-3">
|
|
<h3 id="seven-year-old">A seven year old bug was fixed<a aria-hidden="true" href="#seven-year-old">#</a> </h3>
|
|
<div class="outline-text-3" id="text-seven-year-old">
|
|
<p>
|
|
In 2013 <a href="https://lists.gnu.org/archive/html/emacs-orgmode/2013-08/msg00072.html">it was reported</a> that an infinite loop could be triggered in
|
|
<code>org-agenda-show-new-time</code>. At long last, this has been fixed by Bastien.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div id="footnotes">
|
|
<h2 class="footnotes">Footnotes: </h2>
|
|
<div id="text-footnotes">
|
|
|
|
<div class="footdef"><sup><a id="fn.1" class="footnum" href="#fnr.1" role="doc-backlink">1</a></sup> <div class="footpara" role="doc-footnote"><p class="footpara">
|
|
Aside from somewhat more <a href="https://orgmode.org/quickstart.html">intuitive syntax</a> for emphasis and simple
|
|
structures, Org also has the advantage of not having <a href="https://github.com/commonmark/commonmark-spec/wiki/markdown-flavors">40 functionally distinct
|
|
specifications</a>. There is only one Org. <br>
|
|
<span class='acr'>NB</span>: If you attempt to be pedantic you may say that there are multiple Orgs
|
|
because, for example, GitHub uses <a href="https://github.com/wallyqs/org-ruby">org-ruby</a>. However, that’s just an incomplete
|
|
implementation — not a <a href="https://orgmode.org/worg/dev/org-syntax.html">specification</a>.
|
|
</p></div></div>
|
|
|
|
<div class="footdef"><sup><a id="fn.2" class="footnum" href="#fnr.2" role="doc-backlink">2</a></sup> <div class="footpara" role="doc-footnote"><p class="footpara">
|
|
There is <a href="https://code.orgmode.org/bzg/org-mode/src/master/etc/ORG-NEWS"><span class='acr'>ORG</span>-<span class='acr'>NEWS</span></a>, but do you <i>really</i> check that? Besides, it doesn’t even
|
|
have pictures.
|
|
</p></div></div>
|
|
|
|
<div class="footdef"><sup><a id="fn.3" class="footnum" href="#fnr.3" role="doc-backlink">3</a></sup> <div class="footpara" role="doc-footnote"><p class="footpara">
|
|
That said, with <i>interesting</i> projects like the <a href="https://github.com/manateelazycat/emacs-application-framework">Emacs Application
|
|
Framework</a> and the <a href="https://github.com/ch11ng/exwm">Emacs X Window Manager</a>, one could argue that Org is
|
|
(sometimes) a major component of a desktop environment…
|
|
</p></div></div>
|
|
|
|
|
|
</div>
|
|
</div></div>
|
|
<div id="postamble" class="status">
|
|
<footer>
|
|
<p xmlns:dct="http://purl.org/dc/terms/" xmlns:vcard="http://www.w3.org/2001/vcard-rdf/3.0#">
|
|
<a rel="license" class="external" rel="nofollow" href="http://creativecommons.org/publicdomain/zero/1.0/">
|
|
<img src="cc0.svg" alt="CC0" class="invertible" style="position:relative;bottom:-0.2em"/>
|
|
</a>
|
|
To the extent possible under law,
|
|
<a rel="dct:publisher"
|
|
href="https://blog.tecosaur.net/">
|
|
<span property="dct:title">TEC</span></a>
|
|
has waived all copyright and related or neighboring rights to
|
|
<span property="dct:title" style="font-style:italic">This Month in Org</span>.
|
|
</p>
|
|
</footer>
|
|
|
|
<script src="theme-switcher.js"></script>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|