Publish update based on 42be4d0
This commit is contained in:
parent
9da369ed0d
commit
20a7d75e10
|
@ -1,7 +1,7 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- 2024-01-11 Thu 11:13 -->
|
||||
<!-- 2024-01-11 Thu 15:58 -->
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>January 2022</title>
|
||||
|
@ -18,7 +18,7 @@
|
|||
<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="2022-01-31T00:00:00+0800" />
|
||||
<meta property="og:article:modified_time" content="2022-02-01T00:29:24+0800" />
|
||||
<meta property="og:article:modified_time" content="2024-01-11T15:57:56+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">
|
||||
|
@ -66,7 +66,7 @@ improved there are still lingering bugs which need to be chased down. If you
|
|||
only take one thing away from the post, I'd like it to be this:
|
||||
</p>
|
||||
|
||||
<div class="info" id="orgd3f9c2d">
|
||||
<div class="info" id="org9639369">
|
||||
<div style="text-align: left; margin-left: 1rem;">
|
||||
<p>
|
||||
The cache is actively being developed now, for the first time in years, so:
|
||||
|
@ -83,11 +83,11 @@ The cache is actively being developed now, for the first time in years, so:
|
|||
<p>
|
||||
Cache warnings look something like this:
|
||||
</p>
|
||||
<details id='org0fb0803' class='code' open>
|
||||
<details id='org54cdfd9' class='code' open>
|
||||
<summary></summary>
|
||||
<div class='gutter'><a href='#org0fb0803'>#</a>
|
||||
<div class='gutter'><a href='#org54cdfd9'>#</a>
|
||||
<button title='Copy to clipboard' onclick='copyPreToClipbord(this)'>⎘</button></div>
|
||||
<pre class="example" id="org0fb0803">
|
||||
<pre class="example" id="org54cdfd9">
|
||||
Warning (org-element-cache): org-element--cache: Unregistered buffer modifications detected. Resetting.
|
||||
If this warning appears regularly, please report the warning text to Org mode mailing list (M-x org-submit-bug-report).
|
||||
The buffer is: config.org
|
||||
|
@ -161,7 +161,7 @@ to provide support for not just <span class='acr'>HTTPS</span> links but also tr
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="orga934733">
|
||||
<figure id="org82a2995">
|
||||
<img src="figures/ox-latex-image-link-localisation-demo.png" alt="ox-latex-image-link-localisation-demo.png" class="invertible">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 1: </span>A screenshot of a (compiled to <span class='acr'>PDF</span>) LaTeX export, with an <span class='acr'>HTTPS</span> and tramp images.</figcaption>
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Created 2024-01-11 Thu 11:13
|
||||
# Created 2024-01-11 Thu 15:58
|
||||
#+title: January 2022
|
||||
#+date: 2022-01-31
|
||||
#+author: TEC
|
||||
|
|
1
404.html
1
404.html
|
@ -1,7 +1,6 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- 2024-01-11 Thu 14:58 -->
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>404</title>
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- 2024-01-11 Thu 14:58 -->
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>Archive</title>
|
||||
|
|
17
index.html
17
index.html
|
@ -1,7 +1,6 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<!-- 2024-01-11 Thu 14:58 -->
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>This Month in Org</title>
|
||||
|
@ -123,14 +122,14 @@ kind enough to whip up some benchmarks.
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="orga23d521">
|
||||
<figure id="org6b3b64d">
|
||||
<img src="figures/org-fold-perf-shifttab-contents.svg" alt="org-fold-perf-shifttab-contents.svg" class="invertible">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 1: </span>The scaling of <code>org-shifttab</code> showing file contents, as file size increases, with and without org-fold.</figcaption>
|
||||
</figure>
|
||||
|
||||
|
||||
<figure id="orgb160857">
|
||||
<figure id="orgb84688b">
|
||||
<img src="figures/org-fold-perf-shifttab-showall.svg" alt="org-fold-perf-shifttab-showall.svg" class="invertible">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 2: </span>The scaling of <code>org-shifttab</code> showing the entire file, as file size increases, with and without org-fold.</figcaption>
|
||||
|
@ -217,7 +216,7 @@ difference with small–medium files, but if you a few large+ files this sh
|
|||
be a <i>fantastic</i> improvement. Once again, thanks Ihor!
|
||||
</p>
|
||||
|
||||
<div class="warning" id="org1c5c734">
|
||||
<div class="warning" id="orge201479">
|
||||
<p>
|
||||
The change to text properties instead of overlays breaks a number of third party
|
||||
packages like <kbd>evil-search</kbd> and <kbd>consult</kbd>'s <code>consult-line</code>.
|
||||
|
@ -254,7 +253,7 @@ exports in LaTeX.
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="orge84c6ba">
|
||||
<figure id="org32da257">
|
||||
<img src="figures/engraved-faces-sample.png" alt="engraved-faces-sample.png" class="invertible">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 3: </span>A screenshot of an Org code block, exported to a <span class='acr'>PDF</span>, using <kbd>engrave-faces</kbd> and the <kbd>doom-one-light</kbd> theme.</figcaption>
|
||||
|
@ -279,7 +278,7 @@ The theme can also be set on a per-block level using the LaTeX attribute
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="org678d8a5">
|
||||
<figure id="orgc6b18a4">
|
||||
<img src="figures/engraved-faces-multitheme.png" alt="engraved-faces-multitheme.png">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 4: </span>Seven code blocks exported to LaTeX, each with a different engrave-faces theme.</figcaption>
|
||||
|
@ -387,7 +386,7 @@ giving it a shot.
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="org76d363c">
|
||||
<figure id="orgc7aca12">
|
||||
<img src="figures/org-modern-readme-demo.gif" alt="org-modern-readme-demo.gif" class="invertible">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 5: </span>A demonstration of org-modern taken from the project <span class='acr'>README</span>.</figcaption>
|
||||
|
@ -642,7 +641,7 @@ this post.
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="org9e6fb14">
|
||||
<figure id="org6365dc8">
|
||||
<img src="figures/celebrate-citations.svg" alt="celebrate-citations.svg" class="org-svg">
|
||||
|
||||
</figure>
|
||||
|
@ -669,7 +668,7 @@ You'll just have to stick around to hear about those in a future edition of <spa
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="org4c5b4b8">
|
||||
<figure id="orgf5862b9">
|
||||
<img src="figures/dilbert-zenos-paradox.jpg" alt="dilbert-zenos-paradox.jpg" class="invertible">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 6: </span>It's right around the corner, I swear!</figcaption>
|
||||
|
|
650
rss.xml
650
rss.xml
|
@ -14,8 +14,8 @@
|
|||
<link>https://blog.tecosaur.net/tmio/</link>
|
||||
<description><![CDATA[]]></description>
|
||||
<language>en</language>
|
||||
<pubDate>Thu, 11 Jan 2024 14:58:28 +0800</pubDate>
|
||||
<lastBuildDate>Thu, 11 Jan 2024 14:58:28 +0800</lastBuildDate>
|
||||
<pubDate>Thu, 11 Jan 2024 15:58:17 +0800</pubDate>
|
||||
<lastBuildDate>Thu, 11 Jan 2024 15:58:17 +0800</lastBuildDate>
|
||||
<generator>Emacs 29.1 Org-mode 9.6</generator>
|
||||
<webMaster>contact.tmio@tecosaur.net (TEC)</webMaster>
|
||||
<image>
|
||||
|
@ -25,155 +25,308 @@
|
|||
</image>
|
||||
|
||||
<item>
|
||||
<title>May 2022</title>
|
||||
<link>https://blog.tecosaur.net/tmio/2022-05-31-folding.html</link>
|
||||
<title>January 2022</title>
|
||||
<link>https://blog.tecosaur.net/tmio/2022-01-31-caching.html</link>
|
||||
<author>contact.tmio@tecosaur.net (TEC)</author>
|
||||
<guid isPermaLink="false">https://blog.tecosaur.net/tmio/2022-05-31-folding.html</guid>
|
||||
<pubDate>Thu, 02 Jun 2022 00:00:00 +0800</pubDate>
|
||||
<guid isPermaLink="false">https://blog.tecosaur.net/tmio/2022-01-31-caching.html</guid>
|
||||
<pubDate>Thu, 11 Jan 2024 00:00:00 +0800</pubDate>
|
||||
|
||||
<description><![CDATA[<p>
|
||||
Finding time as of late has been more difficult than I anticipated, and on top
|
||||
of that, just as I was thinking of writing last month's post, I got distracted
|
||||
by an exciting patchset that has been in the works for over a year finally
|
||||
getting sorted out and landing. So, I hope that some of the fun developments in
|
||||
this post will make up the absense of the last one 🙂.
|
||||
There are less "obvious user-facing changes" this month, but a lot of good work
|
||||
has been happening 🙂.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Since it's been longer than I thought since the last standard post, we've got a
|
||||
fair few commits to catch up on --- about 200. Most of these are miscellaneous
|
||||
minor improvements and bugfixes, but a few notable changes have arrived too.
|
||||
The cache continues to make strides
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Folding
|
||||
Nine months ago, Ihor started working on the org-element cache. The cache has
|
||||
existed for a while now, but it used to be too buggy to be useful.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The fabulous new folding engine (<kbd>org-fold-core</kbd>) should noticeably improve Org's
|
||||
performance with large files. It contains a number of key optimisations to
|
||||
improve speed, namely:
|
||||
Deferring fontification of folded regions
|
||||
Using text properties (\(\mathcal{O}(n \log n)\)) instead of overlays (\(\mathcal{O}(n^2)\)) for folded regions
|
||||
A collection of aggressive optimisations available under <code>org-fold-core--optimise-for-huge-buffers</code>
|
||||
Convert text properties to overlays for <kbd>isearch</kbd> (which currently only supports overlays)
|
||||
This is no longer the case! We're finally confident enough to flip
|
||||
<code>org-element-use-cache</code>'s default from <code>nil</code> to <code>t</code>. I mentioned some of the
|
||||
improvements in <a href="https://blog.tecosaur.net/tmio/2021-11-30-element.html#orgcd93b38">November</a>, however Ihor has continued to make strides with the
|
||||
cache.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
How noticeable is the overall performance impact? Well, I poked Ihor and he was
|
||||
kind enough to whip up some benchmarks.
|
||||
Getting the cache right is tough though, and so while the situation is much
|
||||
improved there are still lingering bugs which need to be chased down. If you
|
||||
only take one thing away from the post, I'd like it to be this:
|
||||
</p>
|
||||
|
||||
|
||||
<figure id="orgcde4607">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/org-fold-perf-shifttab-contents.svg" alt="org-fold-perf-shifttab-contents.svg" class="org-svg">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 1: </span>The scaling of <code>org-shifttab</code> showing file contents, as file size increases, with and without org-fold.</figcaption>
|
||||
</figure>
|
||||
|
||||
|
||||
<figure id="orgbea5769">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/org-fold-perf-shifttab-showall.svg" alt="org-fold-perf-shifttab-showall.svg" class="org-svg">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 2: </span>The scaling of <code>org-shifttab</code> showing the entire file, as file size increases, with and without org-fold.</figcaption>
|
||||
</figure>
|
||||
<div class="info" id="org0a75f64">
|
||||
<div style="text-align: left; margin-left: 1rem;">
|
||||
<p>
|
||||
The cache is actively being developed now, for the first time in years, so:
|
||||
Ignore old advice (like <a href="https://emacs.stackexchange.com/questions/42006/trouble-with-org-mode">this</a>) which suggests disabling the cache
|
||||
Note that the cache will <i>not</i> stuff anything up, at worst it will emit a warning
|
||||
If you see an org-cache warning <i>please</i> report it to the Org mailing list ---
|
||||
<kbd>emacs-orgmode@gnu.org</kbd>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Well this looks very promising[fn:Note the difference in scale, org-fold makes
|
||||
the most difference in the graph where the times are an order of magnitude
|
||||
more.]! Let's see how much of an improvement this is overall.
|
||||
Cache warnings look something like this:
|
||||
</p>
|
||||
|
||||
<table>
|
||||
<caption class="t-above"><span class="table-number">Table 1:</span> Time to run <kbd>org-shifttab</kbd> twice, cycling through all three display modes (in seconds).</caption>
|
||||
|
||||
<colgroup>
|
||||
<col class="org-right">
|
||||
|
||||
<col class="org-right">
|
||||
|
||||
<col class="org-right">
|
||||
|
||||
<col class="org-right">
|
||||
|
||||
<col class="org-right">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="org-right">File size (Mb)</th>
|
||||
<th scope="col" class="org-right">Headings (thousands)</th>
|
||||
<th scope="col" class="org-right">Bugfix (no org-fold)</th>
|
||||
<th scope="col" class="org-right">Main (with org-fold)</th>
|
||||
<th scope="col" class="org-right">Improvement</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="org-right">18</td>
|
||||
<td class="org-right">36</td>
|
||||
<td class="org-right">115.31</td>
|
||||
<td class="org-right">0.89</td>
|
||||
<td class="org-right">99%</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">8.8</td>
|
||||
<td class="org-right">24</td>
|
||||
<td class="org-right">19.03</td>
|
||||
<td class="org-right">0.48</td>
|
||||
<td class="org-right">97%</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">4.4</td>
|
||||
<td class="org-right">5</td>
|
||||
<td class="org-right">3.79</td>
|
||||
<td class="org-right">0.13</td>
|
||||
<td class="org-right">97%</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">2.2</td>
|
||||
<td class="org-right">2</td>
|
||||
<td class="org-right">1.29</td>
|
||||
<td class="org-right">0.08</td>
|
||||
<td class="org-right">94%</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">1.1</td>
|
||||
<td class="org-right">1</td>
|
||||
<td class="org-right">0.50</td>
|
||||
<td class="org-right">0.045</td>
|
||||
<td class="org-right">91%</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<pre class="example" id="org20005ac">
|
||||
Warning (org-element-cache): org-element--cache: Unregistered buffer modifications detected. Resetting.
|
||||
If this warning appears regularly, please report the warning text to Org mode mailing list (M-x org-submit-bug-report).
|
||||
The buffer is: config.org
|
||||
Current command: (some-buggy-command)
|
||||
Chars modified: 483
|
||||
Buffer modified: 330957
|
||||
Backtrace:
|
||||
...some possibly long backtrace...
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
To be clear, even the smallest file in this data --- a 1.1 Mb Org file with around
|
||||
a thousand headings, is fairly large. So, it's unlikely you'll notice much of a
|
||||
difference with small--medium files, but if you a few large+ files this should
|
||||
be a <i>fantastic</i> improvement. Once again, thanks Ihor!
|
||||
</p>
|
||||
|
||||
<div class="warning" id="orgbef505f">
|
||||
<p>
|
||||
The change to text properties instead of overlays breaks a number of third party
|
||||
packages like <kbd>evil-search</kbd> and <kbd>consult</kbd>'s <code>consult-line</code>.
|
||||
If you are involved in any packages affected by this, you'll either want to
|
||||
consider supporting invisible text, or look at <code>isearch-filter-predicate</code> and
|
||||
<code>isearch-mode-end-hook</code>, which <kbd>org-fold</kbd> now uses.
|
||||
If you're an end-user, perhaps politely make an issue on the repo for a project
|
||||
<i>if no issue currently exists</i>, and either:
|
||||
Stay off Org's bleeding edge till the package ecosystem has adapted to this change
|
||||
Help the packages you use adapt to this change
|
||||
Set <code>org-fold-core-style</code> to <code>overlays</code> to restore the old behaviour
|
||||
A good way to start is by copying this to your clipboard and then trying <kbd>M-x
|
||||
org-submit-bug-report</kbd>. Regardless of whether you're using an Emacs mail client,
|
||||
this will collect all the important information (org-mode version, etc.) and
|
||||
populate a buffer with it. Add the warning text, and that will be a great help!
|
||||
After all, it's quite hard to fix bugs we don't know about 😆.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<p>
|
||||
As of October 2021, "bulk" heading promotion/demotion operations are now faster
|
||||
thanks to the cache, and there have now been further improvements relating to
|
||||
headings. It used to be the case that every time heading properties changed the
|
||||
entire heading (and contents) were re-parsed. Now, cache heuristics prevent the
|
||||
content from being entirely re-parsed (see
|
||||
<code>org-element--cache-avoid-synchronous-headline-re-parsing</code> for a bit more
|
||||
information). This improvement is particularly noticeable when refiling and
|
||||
archiving headings.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Persisting data
|
||||
</p>
|
||||
|
||||
<p>
|
||||
In October, Ihor started work on <kbd>org-persist.el</kbd> --- a way to <i>persist</i> data across
|
||||
Emacs sessions. You may wonder what sort of data is being persisted. Well,
|
||||
initially org-persist was written to record variable values associated with
|
||||
particular files or buffers --- such as the org-element cache. This allows
|
||||
org-mode to load the cache for an Org file and avoid re-parsing much of the
|
||||
content.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Over the past month, Ihor has <i>doubled</i> the total number of commits applied to
|
||||
<kbd>org-persist.el</kbd> and now more kinds of data can be persisted, such as remote files
|
||||
(via. tramp) and online resources. This opens up a lot of new possibilities, and
|
||||
we can begin to see what this will allow for in the next highlight.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Exporting documents with remote resources
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Ever linked to an online image like
|
||||
<kbd>https://orgmode.org/resources/img/org-mode-unicorn.svg</kbd> in an Org document, seen
|
||||
it look nice in the HTML export and then be disappointed to just see a link in
|
||||
LaTeX? Well I have. Thankfully this is no longer the case though, thanks to a
|
||||
helper function <code>org-export-link-localise</code> that's just been added to <kbd>ox.el</kbd>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Using <kbd>org-persist.el</kbd> this acquires a local copy of the remote resource and
|
||||
substitutes it in for the remote link. This is currently utilised in <kbd>ox-latex.el</kbd>
|
||||
to provide support for not just HTTPS links but also tramp files!
|
||||
</p>
|
||||
|
||||
|
||||
<figure id="org6780764">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/ox-latex-image-link-localisation-demo.png" alt="ox-latex-image-link-localisation-demo.png">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 1: </span>A screenshot of a (compiled to PDF) LaTeX export, with an HTTPS and tramp images.</figcaption>
|
||||
</figure>
|
||||
|
||||
<p>
|
||||
While this is currently only implemented for <kbd>ox-latex</kbd>, this can be applied
|
||||
generally, and so there's a good chance you'll hear more about this in the future.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
There are also thoughts of moving this to the links file (<kbd>ol.el</kbd>) which would
|
||||
make this functionality more broadly accessible (e.g. using cached/local
|
||||
versions of a resource in other places, and defining custom downloaders for
|
||||
custom link types).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Other improvements
|
||||
Produce less native-comp warnings <span class="underline">Ihor Radchenko</span>
|
||||
Add a header to the clock report table <span class="underline">Samim Pezeshki</span>
|
||||
More verbose test failure summary <span class="underline">Max Nikulin</span>
|
||||
Parallelise <kbd>make</kbd>ing the docs <span class="underline">Marco Wahl</span>
|
||||
More org-element tests <span class="underline">Ihor Radchenko</span>
|
||||
Bugfixes
|
||||
Fix formatting in elisp-link prompt <span class="underline">TEC</span>
|
||||
Correct some checkdoc and compiler warnings <span class="underline">Ihor Radchenko</span>
|
||||
Correct signature for <code>org-element-at-point</code> <span class="underline">Mark A. Hershberger</span>
|
||||
Fix the LaTeX macron accent in org-entities <span class="underline">TEC</span>
|
||||
Ignore narrowing when tangling a file <span class="underline">Nicolas Goaziou</span>
|
||||
</p>
|
||||
]]></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>May 2022</title>
|
||||
<link>https://blog.tecosaur.net/tmio/2022-05-31-folding.html</link>
|
||||
<author>contact.tmio@tecosaur.net (TEC)</author>
|
||||
<guid isPermaLink="false">https://blog.tecosaur.net/tmio/2022-05-31-folding.html</guid>
|
||||
<pubDate>Thu, 02 Jun 2022 00:00:00 +0800</pubDate>
|
||||
|
||||
<description><![CDATA[<p>
|
||||
Finding time as of late has been more difficult than I anticipated, and on top
|
||||
of that, just as I was thinking of writing last month's post, I got distracted
|
||||
by an exciting patchset that has been in the works for over a year finally
|
||||
getting sorted out and landing. So, I hope that some of the fun developments in
|
||||
this post will make up the absense of the last one 🙂.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Since it's been longer than I thought since the last standard post, we've got a
|
||||
fair few commits to catch up on --- about 200. Most of these are miscellaneous
|
||||
minor improvements and bugfixes, but a few notable changes have arrived too.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Folding
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The fabulous new folding engine (<kbd>org-fold-core</kbd>) should noticeably improve Org's
|
||||
performance with large files. It contains a number of key optimisations to
|
||||
improve speed, namely:
|
||||
Deferring fontification of folded regions
|
||||
Using text properties (\(\mathcal{O}(n \log n)\)) instead of overlays (\(\mathcal{O}(n^2)\)) for folded regions
|
||||
A collection of aggressive optimisations available under <code>org-fold-core--optimise-for-huge-buffers</code>
|
||||
Convert text properties to overlays for <kbd>isearch</kbd> (which currently only supports overlays)
|
||||
</p>
|
||||
|
||||
<p>
|
||||
How noticeable is the overall performance impact? Well, I poked Ihor and he was
|
||||
kind enough to whip up some benchmarks.
|
||||
</p>
|
||||
|
||||
|
||||
<figure id="orgd512bbb">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/org-fold-perf-shifttab-contents.svg" alt="org-fold-perf-shifttab-contents.svg" class="org-svg">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 2: </span>The scaling of <code>org-shifttab</code> showing file contents, as file size increases, with and without org-fold.</figcaption>
|
||||
</figure>
|
||||
|
||||
|
||||
<figure id="org56ebae9">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/org-fold-perf-shifttab-showall.svg" alt="org-fold-perf-shifttab-showall.svg" class="org-svg">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 3: </span>The scaling of <code>org-shifttab</code> showing the entire file, as file size increases, with and without org-fold.</figcaption>
|
||||
</figure>
|
||||
|
||||
<p>
|
||||
Well this looks very promising[fn:Note the difference in scale, org-fold makes
|
||||
the most difference in the graph where the times are an order of magnitude
|
||||
more.]! Let's see how much of an improvement this is overall.
|
||||
</p>
|
||||
|
||||
<table>
|
||||
<caption class="t-above"><span class="table-number">Table 1:</span> Time to run <kbd>org-shifttab</kbd> twice, cycling through all three display modes (in seconds).</caption>
|
||||
|
||||
<colgroup>
|
||||
<col class="org-right">
|
||||
|
||||
<col class="org-right">
|
||||
|
||||
<col class="org-right">
|
||||
|
||||
<col class="org-right">
|
||||
|
||||
<col class="org-right">
|
||||
</colgroup>
|
||||
<thead>
|
||||
<tr>
|
||||
<th scope="col" class="org-right">File size (Mb)</th>
|
||||
<th scope="col" class="org-right">Headings (thousands)</th>
|
||||
<th scope="col" class="org-right">Bugfix (no org-fold)</th>
|
||||
<th scope="col" class="org-right">Main (with org-fold)</th>
|
||||
<th scope="col" class="org-right">Improvement</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td class="org-right">18</td>
|
||||
<td class="org-right">36</td>
|
||||
<td class="org-right">115.31</td>
|
||||
<td class="org-right">0.89</td>
|
||||
<td class="org-right">99%</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">8.8</td>
|
||||
<td class="org-right">24</td>
|
||||
<td class="org-right">19.03</td>
|
||||
<td class="org-right">0.48</td>
|
||||
<td class="org-right">97%</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">4.4</td>
|
||||
<td class="org-right">5</td>
|
||||
<td class="org-right">3.79</td>
|
||||
<td class="org-right">0.13</td>
|
||||
<td class="org-right">97%</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">2.2</td>
|
||||
<td class="org-right">2</td>
|
||||
<td class="org-right">1.29</td>
|
||||
<td class="org-right">0.08</td>
|
||||
<td class="org-right">94%</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="org-right">1.1</td>
|
||||
<td class="org-right">1</td>
|
||||
<td class="org-right">0.50</td>
|
||||
<td class="org-right">0.045</td>
|
||||
<td class="org-right">91%</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<p>
|
||||
To be clear, even the smallest file in this data --- a 1.1 Mb Org file with around
|
||||
a thousand headings, is fairly large. So, it's unlikely you'll notice much of a
|
||||
difference with small--medium files, but if you a few large+ files this should
|
||||
be a <i>fantastic</i> improvement. Once again, thanks Ihor!
|
||||
</p>
|
||||
|
||||
<div class="warning" id="orgb9edafc">
|
||||
<p>
|
||||
The change to text properties instead of overlays breaks a number of third party
|
||||
packages like <kbd>evil-search</kbd> and <kbd>consult</kbd>'s <code>consult-line</code>.
|
||||
If you are involved in any packages affected by this, you'll either want to
|
||||
consider supporting invisible text, or look at <code>isearch-filter-predicate</code> and
|
||||
<code>isearch-mode-end-hook</code>, which <kbd>org-fold</kbd> now uses.
|
||||
If you're an end-user, perhaps politely make an issue on the repo for a project
|
||||
<i>if no issue currently exists</i>, and either:
|
||||
Stay off Org's bleeding edge till the package ecosystem has adapted to this change
|
||||
Help the packages you use adapt to this change
|
||||
Set <code>org-fold-core-style</code> to <code>overlays</code> to restore the old behaviour
|
||||
</p>
|
||||
|
||||
</div>
|
||||
]]></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>Special Announcement</title>
|
||||
<link>https://blog.tecosaur.net/tmio/2022-04-01-confluence.html</link>
|
||||
|
@ -201,10 +354,10 @@
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="org6a4f901">
|
||||
<figure id="org0df714a">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/org-markup-to-confluence.svg" alt="org-markup-to-confluence.svg" class="org-svg">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 3: </span>Translation between Org's syntax and our new Confluence overlords's equivalents</figcaption>
|
||||
<figcaption><span class="figure-number">Figure 4: </span>Translation between Org's syntax and our new Confluence overlords's equivalents</figcaption>
|
||||
</figure>
|
||||
|
||||
<p>
|
||||
|
@ -382,8 +535,8 @@
|
|||
Besides parsing, I had a few more challenges to overcome:
|
||||
</p>
|
||||
<div id="outline-container-understanding-orgmode-syntax" class="outline-3">
|
||||
<h3 id="understanding-orgmode-syntax"><span class="section-number-3">3.1.</span> Understanding the OrgMode syntax and all the functionality</h3>
|
||||
<div class="outline-text-3" id="text-3-1">
|
||||
<h3 id="understanding-orgmode-syntax"><span class="section-number-3">4.1.</span> Understanding the OrgMode syntax and all the functionality</h3>
|
||||
<div class="outline-text-3" id="text-4-1">
|
||||
<p>
|
||||
This is still the biggest challenge. I didn't have any idea how big and robust
|
||||
OrgMode is. If I would know it at that time, I wouldn't even jump on this train.
|
||||
|
@ -393,8 +546,8 @@
|
|||
</div>
|
||||
</div>
|
||||
<div id="outline-container-remote-editing" class="outline-3">
|
||||
<h3 id="remote-editing"><span class="section-number-3">3.2.</span> Remote editing</h3>
|
||||
<div class="outline-text-3" id="text-3-2">
|
||||
<h3 id="remote-editing"><span class="section-number-3">4.2.</span> Remote editing</h3>
|
||||
<div class="outline-text-3" id="text-4-2">
|
||||
<p>
|
||||
By remote editing, I mean automatically updating content in the current
|
||||
or any other file. Few examples: adding/updating properties, managing
|
||||
|
@ -417,8 +570,8 @@
|
|||
</div>
|
||||
</div>
|
||||
<div id="outline-container-working-with-dates" class="outline-3">
|
||||
<h3 id="working-with-dates"><span class="section-number-3">3.3.</span> Working with dates</h3>
|
||||
<div class="outline-text-3" id="text-3-3">
|
||||
<h3 id="working-with-dates"><span class="section-number-3">4.3.</span> Working with dates</h3>
|
||||
<div class="outline-text-3" id="text-4-3">
|
||||
<p>
|
||||
From my experience, dates are challenging in all areas of programming,
|
||||
so this is not so surprising. There are some Lua plugins for dates, but
|
||||
|
@ -430,8 +583,8 @@
|
|||
</div>
|
||||
</div>
|
||||
<div id="outline-container-highlighting-mostly-agenda" class="outline-3">
|
||||
<h3 id="highlighting-mostly-agenda"><span class="section-number-3">3.4.</span> Highlighting, mostly in Agenda view</h3>
|
||||
<div class="outline-text-3" id="text-3-4">
|
||||
<h3 id="highlighting-mostly-agenda"><span class="section-number-3">4.4.</span> Highlighting, mostly in Agenda view</h3>
|
||||
<div class="outline-text-3" id="text-4-4">
|
||||
<p>
|
||||
Vim's syntax engine is fairly old, but still very much used, especially
|
||||
in the Vim community. Implementation of tree-sitter slightly improved
|
||||
|
@ -450,8 +603,8 @@
|
|||
</div>
|
||||
</div>
|
||||
<div id="outline-container-keeping-configuration-simple" class="outline-3">
|
||||
<h3 id="keeping-configuration-simple"><span class="section-number-3">3.5.</span> Keeping configuration simple and familiar to Emacs OrgMode</h3>
|
||||
<div class="outline-text-3" id="text-3-5">
|
||||
<h3 id="keeping-configuration-simple"><span class="section-number-3">4.5.</span> Keeping configuration simple and familiar to Emacs OrgMode</h3>
|
||||
<div class="outline-text-3" id="text-4-5">
|
||||
<p>
|
||||
Vim-dotoo configuration was mostly Vim style, through some global
|
||||
variables. I wanted to have a configuration that is familiar to an Emacs
|
||||
|
@ -654,159 +807,6 @@
|
|||
</div>
|
||||
]]></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>January 2022</title>
|
||||
<link>https://blog.tecosaur.net/tmio/2022-01-31-caching.html</link>
|
||||
<author>contact.tmio@tecosaur.net (TEC)</author>
|
||||
<guid isPermaLink="false">https://blog.tecosaur.net/tmio/2022-01-31-caching.html</guid>
|
||||
<pubDate>Tue, 01 Feb 2022 00:00:00 +0800</pubDate>
|
||||
|
||||
<description><![CDATA[<p>
|
||||
There are less "obvious user-facing changes" this month, but a lot of good work
|
||||
has been happening 🙂.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The cache continues to make strides
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Nine months ago, Ihor started working on the org-element cache. The cache has
|
||||
existed for a while now, but it used to be too buggy to be useful.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
This is no longer the case! We're finally confident enough to flip
|
||||
<code>org-element-use-cache</code>'s default from <code>nil</code> to <code>t</code>. I mentioned some of the
|
||||
improvements in <a href="https://blog.tecosaur.net/tmio/2021-11-30-element.html#org5ee96ff">November</a>, however Ihor has continued to make strides with the
|
||||
cache.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Getting the cache right is tough though, and so while the situation is much
|
||||
improved there are still lingering bugs which need to be chased down. If you
|
||||
only take one thing away from the post, I'd like it to be this:
|
||||
</p>
|
||||
|
||||
<div class="info" id="org10a59c3">
|
||||
<div style="text-align: left; margin-left: 1rem;">
|
||||
<p>
|
||||
The cache is actively being developed now, for the first time in years, so:
|
||||
Ignore old advice (like <a href="https://emacs.stackexchange.com/questions/42006/trouble-with-org-mode">this</a>) which suggests disabling the cache
|
||||
Note that the cache will <i>not</i> stuff anything up, at worst it will emit a warning
|
||||
If you see an org-cache warning <i>please</i> report it to the Org mailing list ---
|
||||
<kbd>emacs-orgmode@gnu.org</kbd>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Cache warnings look something like this:
|
||||
</p>
|
||||
<pre class="example" id="org1d32da3">
|
||||
Warning (org-element-cache): org-element--cache: Unregistered buffer modifications detected. Resetting.
|
||||
If this warning appears regularly, please report the warning text to Org mode mailing list (M-x org-submit-bug-report).
|
||||
The buffer is: config.org
|
||||
Current command: (some-buggy-command)
|
||||
Chars modified: 483
|
||||
Buffer modified: 330957
|
||||
Backtrace:
|
||||
...some possibly long backtrace...
|
||||
</pre>
|
||||
|
||||
<p>
|
||||
A good way to start is by copying this to your clipboard and then trying <kbd>M-x
|
||||
org-submit-bug-report</kbd>. Regardless of whether you're using an Emacs mail client,
|
||||
this will collect all the important information (org-mode version, etc.) and
|
||||
populate a buffer with it. Add the warning text, and that will be a great help!
|
||||
After all, it's quite hard to fix bugs we don't know about 😆.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<p>
|
||||
As of October 2021, "bulk" heading promotion/demotion operations are now faster
|
||||
thanks to the cache, and there have now been further improvements relating to
|
||||
headings. It used to be the case that every time heading properties changed the
|
||||
entire heading (and contents) were re-parsed. Now, cache heuristics prevent the
|
||||
content from being entirely re-parsed (see
|
||||
<code>org-element--cache-avoid-synchronous-headline-re-parsing</code> for a bit more
|
||||
information). This improvement is particularly noticeable when refiling and
|
||||
archiving headings.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Persisting data
|
||||
</p>
|
||||
|
||||
<p>
|
||||
In October, Ihor started work on <kbd>org-persist.el</kbd> --- a way to <i>persist</i> data across
|
||||
Emacs sessions. You may wonder what sort of data is being persisted. Well,
|
||||
initially org-persist was written to record variable values associated with
|
||||
particular files or buffers --- such as the org-element cache. This allows
|
||||
org-mode to load the cache for an Org file and avoid re-parsing much of the
|
||||
content.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Over the past month, Ihor has <i>doubled</i> the total number of commits applied to
|
||||
<kbd>org-persist.el</kbd> and now more kinds of data can be persisted, such as remote files
|
||||
(via. tramp) and online resources. This opens up a lot of new possibilities, and
|
||||
we can begin to see what this will allow for in the next highlight.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Exporting documents with remote resources
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Ever linked to an online image like
|
||||
<kbd>https://orgmode.org/resources/img/org-mode-unicorn.svg</kbd> in an Org document, seen
|
||||
it look nice in the HTML export and then be disappointed to just see a link in
|
||||
LaTeX? Well I have. Thankfully this is no longer the case though, thanks to a
|
||||
helper function <code>org-export-link-localise</code> that's just been added to <kbd>ox.el</kbd>.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Using <kbd>org-persist.el</kbd> this acquires a local copy of the remote resource and
|
||||
substitutes it in for the remote link. This is currently utilised in <kbd>ox-latex.el</kbd>
|
||||
to provide support for not just HTTPS links but also tramp files!
|
||||
</p>
|
||||
|
||||
|
||||
<figure id="org967b2b5">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/ox-latex-image-link-localisation-demo.png" alt="ox-latex-image-link-localisation-demo.png">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 4: </span>A screenshot of a (compiled to PDF) LaTeX export, with an HTTPS and tramp images.</figcaption>
|
||||
</figure>
|
||||
|
||||
<p>
|
||||
While this is currently only implemented for <kbd>ox-latex</kbd>, this can be applied
|
||||
generally, and so there's a good chance you'll hear more about this in the future.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
There are also thoughts of moving this to the links file (<kbd>ol.el</kbd>) which would
|
||||
make this functionality more broadly accessible (e.g. using cached/local
|
||||
versions of a resource in other places, and defining custom downloaders for
|
||||
custom link types).
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Other improvements
|
||||
Produce less native-comp warnings <span class="underline">Ihor Radchenko</span>
|
||||
Add a header to the clock report table <span class="underline">Samim Pezeshki</span>
|
||||
More verbose test failure summary <span class="underline">Max Nikulin</span>
|
||||
Parallelise <kbd>make</kbd>ing the docs <span class="underline">Marco Wahl</span>
|
||||
More org-element tests <span class="underline">Ihor Radchenko</span>
|
||||
Bugfixes
|
||||
Fix formatting in elisp-link prompt <span class="underline">TEC</span>
|
||||
Correct some checkdoc and compiler warnings <span class="underline">Ihor Radchenko</span>
|
||||
Correct signature for <code>org-element-at-point</code> <span class="underline">Mark A. Hershberger</span>
|
||||
Fix the LaTeX macron accent in org-entities <span class="underline">TEC</span>
|
||||
Ignore narrowing when tangling a file <span class="underline">Nicolas Goaziou</span>
|
||||
</p>
|
||||
]]></description>
|
||||
</item>
|
||||
<item>
|
||||
<title>December 2021</title>
|
||||
<link>https://blog.tecosaur.net/tmio/2021-12-31-retrospection.html</link>
|
||||
|
@ -980,7 +980,7 @@
|
|||
<p>
|
||||
Now, if you have a line like:
|
||||
</p>
|
||||
<pre class="example" id="orge364d21">
|
||||
<pre class="example" id="org7f4fb98">
|
||||
#+cite_export: FORMAT ...
|
||||
</pre>
|
||||
<p>
|
||||
|
@ -1014,7 +1014,7 @@
|
|||
<p>
|
||||
This means the following forms are now all equivalent:
|
||||
</p>
|
||||
<pre class="example" id="org4757f3e">
|
||||
<pre class="example" id="orgba6a40b">
|
||||
:tangle-mode (identity #o755)
|
||||
:tangle-mode o755
|
||||
:tangle-mode a=rx,u+w
|
||||
|
@ -1074,7 +1074,7 @@
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="org333e404">
|
||||
<figure id="org00a6529">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/inline-src-block-fontified-vs-code.png" alt="inline-src-block-fontified-vs-code.png">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 5: </span>Side-by-side comparison of a identical paragraphs using code (<code>~</code>) markup and inline source blocks (<code>src_</code>).</figcaption>
|
||||
|
@ -1089,7 +1089,7 @@
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="orgbee9f94">
|
||||
<figure id="org772265f">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/inline-src-block-julia-demo.png" alt="inline-src-block-julia-demo.png">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 6: </span>A paragraph making use of <i>evaluated</i> inline source blocks. Note that the <kbd>⟨11⟩</kbd> is a prettified results macro (using a potential future org-mode patch).</figcaption>
|
||||
|
@ -1199,7 +1199,7 @@
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="orgf602d0c">
|
||||
<figure id="orgbf0f3bc">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/proportional-image-width.png" alt="proportional-image-width.png">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 7: </span>A containing with an image set to half of the accesible text width</figcaption>
|
||||
|
@ -1459,7 +1459,7 @@
|
|||
</div>
|
||||
|
||||
|
||||
<figure id="orga9366dd">
|
||||
<figure id="orgdf7cb8c">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/org-verses-example-poem-dream-within-dream.png" alt="org-verses-example-poem-dream-within-dream.png">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 8: </span>A short Poe-em</figcaption>
|
||||
|
@ -1615,7 +1615,7 @@
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="orgb8a0254">
|
||||
<figure id="orgb2a09fb">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/citation-structure-full.svg" alt="citation-structure-full.svg" class="org-svg">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 9: </span>The full citation syntax</figcaption>
|
||||
|
@ -1629,7 +1629,7 @@
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="orgbe06549">
|
||||
<figure id="org33d79d2">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/org-citar-insertion.png" alt="org-citar-insertion.png">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 10: </span>Inserting a citation with the <i>citar</i> package</figcaption>
|
||||
|
@ -1671,7 +1671,7 @@
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="org6ba6175">
|
||||
<figure id="org6fc45a1">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/ob-julia-latexify-rendered.png" alt="ob-julia-latexify-rendered.png">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 11: </span>Rendered LaTeX representations of some Julia values</figcaption>
|
||||
|
@ -1777,7 +1777,7 @@
|
|||
give it a shot!
|
||||
</p>
|
||||
|
||||
<div class="info" id="org5863410">
|
||||
<div class="info" id="orgbd6c4cd">
|
||||
<p>
|
||||
<b>Ways you can contribute to the project</b>
|
||||
</p>
|
||||
|
@ -1958,7 +1958,7 @@
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="org63df673">
|
||||
<figure id="org51cf8b5">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/celebrate-citations.svg" alt="celebrate-citations.svg" class="org-svg">
|
||||
|
||||
</figure>
|
||||
|
@ -2057,7 +2057,7 @@
|
|||
<kbd>.bib</kbd>, <kbd>.bibtex</kbd>, or <kbd>.json</kbd> extension), which we do either via the <kbd>#+bibliography</kbd>
|
||||
keyword, or the variable <code>org-cite-global-bibliography</code>.
|
||||
</p>
|
||||
<pre class="example" id="orgf6cc135">
|
||||
<pre class="example" id="orgfeefa44">
|
||||
#+bibliography: orgcite.bib
|
||||
</pre>
|
||||
|
||||
|
@ -2067,7 +2067,7 @@
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="orgd425d14">
|
||||
<figure id="org80f806a">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/citation-structure-basic.svg" alt="citation-structure-basic.svg" class="org-svg">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 12: </span>The new citation syntax, for simple citations</figcaption>
|
||||
|
@ -2083,11 +2083,11 @@
|
|||
<kbd>#+print_bibliography</kbd> keyword, like so:
|
||||
</p>
|
||||
|
||||
<pre class="example" id="orgb7491d3">
|
||||
<pre class="example" id="org7de9f8e">
|
||||
#+print_bibliography:
|
||||
</pre>
|
||||
|
||||
<div class="info" id="orgdfbc55a">
|
||||
<div class="info" id="org3d05349">
|
||||
<style>.csl-entry{text-indent: -1.5em; margin-left: 1.5em;}</style><div class="csl-bib-body">
|
||||
</div>
|
||||
|
||||
|
@ -2096,7 +2096,7 @@
|
|||
<p>
|
||||
So, to summarise, all one needs to get started is:
|
||||
</p>
|
||||
<pre class="example" id="orgc99c4c7">
|
||||
<pre class="example" id="orgd85a5d4">
|
||||
#+bibliography: references.bib
|
||||
[cite:@key]
|
||||
#+print_bibliography:
|
||||
|
@ -2116,7 +2116,7 @@
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="org565d659">
|
||||
<figure id="org0380fc8">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/citation-structure-full.svg" alt="citation-structure-full.svg" class="org-svg">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 13: </span>The new citations syntax, in full</figcaption>
|
||||
|
@ -2420,7 +2420,7 @@
|
|||
on a per-document basis via the <kbd>#+cite_export</kbd> keyword. Here, I shall use the <kbd>csl</kbd>
|
||||
processor,
|
||||
</p>
|
||||
<pre class="example" id="org8eb4c7b">
|
||||
<pre class="example" id="orgce34f87">
|
||||
#+cite_export: csl
|
||||
</pre>
|
||||
|
||||
|
@ -2429,7 +2429,7 @@
|
|||
style by giving a triplet of parameters <code class="src src-elisp">(PROCESSOR BIBLIOGRAPHY-STYLE CITATION-STYLE)</code> instead of just the processor. You can also use this triplet of
|
||||
values with the <kbd>#+cite_export</kbd> keyword
|
||||
</p>
|
||||
<pre class="example" id="org5ebbfda">
|
||||
<pre class="example" id="org725589d">
|
||||
#+cite_export: processor bibliography-style citation-style
|
||||
</pre>
|
||||
|
||||
|
@ -2440,7 +2440,7 @@
|
|||
options to a <code class="src src-LaTeX"><span class="org-keyword">\printbibliography</span></code> command, allowing for the
|
||||
following:
|
||||
</p>
|
||||
<pre class="example" id="org2e559f3">
|
||||
<pre class="example" id="org7b1e687">
|
||||
#+print_bibliography: :section 2 :heading subbibliography
|
||||
#+print_bibliography: :keyword abc,xyz :title "Primary Sources"
|
||||
</pre>
|
||||
|
@ -2486,7 +2486,7 @@
|
|||
either absolute or relative to <code>org-cite-csl-styles-dir</code>. For example, if I
|
||||
download <kbd>apa.csl</kbd> I can use it like so:
|
||||
</p>
|
||||
<pre class="example" id="org85d3e0c">
|
||||
<pre class="example" id="org95875d4">
|
||||
#+cite_export: csl ~/Downloads/apa.csl
|
||||
</pre>
|
||||
|
||||
|
@ -2515,14 +2515,14 @@
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="orgf67316e">
|
||||
<figure id="org5920f47">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/zotero-export-library.png" alt="zotero-export-library.png">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 14: </span>Zotero library right click context menu, showing the export option</figcaption>
|
||||
</figure>
|
||||
|
||||
|
||||
<figure id="org99c846a">
|
||||
<figure id="orgee18766">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/zotero-export-options-prompt.png" alt="zotero-export-options-prompt.png">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 15: </span>Zotero collection export dialog</figcaption>
|
||||
|
@ -2534,7 +2534,7 @@
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="org4827996">
|
||||
<figure id="org2eb3ade">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/zotero-cite-styles-menu.png" alt="zotero-cite-styles-menu.png">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 16: </span>Zotero CSL style management within preferences</figcaption>
|
||||
|
@ -2554,7 +2554,7 @@
|
|||
To then use the citation style defined by <kbd>~/Zotero/styles/apa.csl</kbd> one can then
|
||||
simply refer to <kbd>apa.csl</kbd> when using the <kbd>#+cite_export</kbd> keyword.
|
||||
</p>
|
||||
<pre class="example" id="org6f23d37">
|
||||
<pre class="example" id="org8f421dc">
|
||||
#+cite_export: csl apa.csl
|
||||
</pre>
|
||||
</div>
|
||||
|
@ -2643,7 +2643,7 @@
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="orge02d862">
|
||||
<figure id="orgfae7781">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/org-roam-graph-2d-overview.png" alt="org-roam-graph-2d-overview.png">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 17: </span>org-roam-ui's 2D overview.</figcaption>
|
||||
|
@ -2664,7 +2664,7 @@
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="org71abeb7">
|
||||
<figure id="org48ab00d">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/org-roam-ui-in-emacs.png" alt="org-roam-ui-in-emacs.png">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 18: </span>Embed org-roam-ui in Emacs using xwidget-webkit.</figcaption>
|
||||
|
@ -2749,7 +2749,7 @@
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="org5f99ef8">
|
||||
<figure id="orgc767572">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/dilbert-zenos-paradox.jpg" alt="dilbert-zenos-paradox.jpg">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 19: </span>It's right around the corner, I swear!</figcaption>
|
||||
|
@ -2766,7 +2766,7 @@
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="orgaf79b56">
|
||||
<figure id="org7fbf9bc">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/org-latex-default-reference-to-sec.png" alt="org-latex-default-reference-to-sec.png">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 20: </span>A LaTeX export of a simple document with a reference to both the first and second section. "2" what? Section 2, Table 2, Figure 2, ...</figcaption>
|
||||
|
@ -2779,7 +2779,7 @@
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="org3e9e74b">
|
||||
<figure id="orgdd7bb5a">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/org-latex-cref-reference-to-sec.png" alt="org-latex-cref-reference-to-sec.png">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 21: </span>A LaTeX export of the same document, but now using <code>cleveref</code>. Note the change from "1" and "2" to "Section 1" and "Section 2".</figcaption>
|
||||
|
@ -2861,7 +2861,7 @@
|
|||
keyword, this works nicely in HTML too 🙂.
|
||||
</p>
|
||||
|
||||
<figure id="org12b3ab5">
|
||||
<figure id="orge27eb21">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/salvador-dali-persistence-of-memory.jpg" alt="salvador-dali-persistence-of-memory.jpg">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 22: </span>A famous surrealist painting</figcaption>
|
||||
|
@ -2923,7 +2923,7 @@
|
|||
Org is nice and does the right thing<sup>TM</sup> by including the caption at the top.
|
||||
</p>
|
||||
|
||||
<figure id="org17bce8d">
|
||||
<figure id="org6b96778">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/org-table-to-latex-example.png" alt="org-table-to-latex-example.png">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 23: </span>Look ma, I put the caption in the right place.</figcaption>
|
||||
|
@ -3206,7 +3206,7 @@
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="orgbe2c92e">
|
||||
<figure id="org500f0ee">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/screenshot-of-updates-orgmode-org.png" alt="screenshot-of-updates-orgmode-org.png">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 24: </span>A screenshot of <a href="https://updates.orgmode.org/">updates.orgmode.org</a></figcaption>
|
||||
|
@ -3240,7 +3240,7 @@
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="orgd5283f0">
|
||||
<figure id="orgc9e1286">
|
||||
<img src="https://github.com/larsmagne/meme/raw/master/images/Grandma-Finds-The-Internet.jpg" alt="Grandma-Finds-The-Internet.jpg">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 25: </span>Org mode discovers the internet</figcaption>
|
||||
|
@ -3261,7 +3261,7 @@
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="org25e0649">
|
||||
<figure id="org233a034">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/org-edit-special-latex-fragment.png" alt="org-edit-special-latex-fragment.png">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 26: </span>Running <code>org-edit-special</code> on an inline LaTeX fragment</figcaption>
|
||||
|
@ -3279,7 +3279,7 @@
|
|||
</p>
|
||||
|
||||
|
||||
<figure id="org4421f16">
|
||||
<figure id="org4a2c3ee">
|
||||
<img src="https://blog.tecosaur.net/tmio/figures/org-startup-num-and-levels.png" alt="org-startup-num-and-levels.png">
|
||||
|
||||
<figcaption><span class="figure-number">Figure 27: </span>Opening a buffer with the new <kbd>num</kbd> and <kbd>show2levels</kbd> startup options</figcaption>
|
||||
|
|
Loading…
Reference in New Issue