Interested in Org but not enough to monitor the mailing list? In this blog I digest developments, and each month regurgitate what I consider the highlights, along with anything else Org-related I consider nifty.
Posts are published in .html, .org, .org.html, .txt, and .pdf forms — because why not 😛
A discussion on contributor support
Concerns were raised about some contributors’ patches languishing, and it not being made clear how long it might take to get a response from someone.
In response to this, a the new role of Contributor Steward has been created to: help ensure contributors get a timely response, help out with preliminary patch feedback, and keep updates.orgmode.org up to date.
Org now has three Contributor Stewards to ease the process for patch submitters and core maintainers:
- Timothy / TEC
- Tim Cross
- John Corless
If you’ve been thinking about getting involved with Org, now is a great time to give it a shot!
*Ways you can contribute to the project
Test patches, improve documentation, translate pages, confirm bugs, feedback on a proposed feature, and more…
Org plot improvements
Over the past month org-plot.el has received some attention, my two favourite changes are:
- You can now call
org-plot/gnuplotwith C-c C-c on a #+plot: line TEC
- When an image is regenerated, all instances of the image in the buffer are refreshed TEC
Other than a few minor tweaks and bug fixes, that’s it for April. However, over the last year there have been some rather nice improvements that I didn’t mention in the initial blog post, so let’s go over them now.
- The inbuilt plot types have been abstracted out into a new structure:
org-plot/preset-plot-types. This means if you have a gnuplot template you find yourself using a lot, you can now turn it into a custom plot type 😀 TEC
- A new plot type has been added: a radar / spider plot TEC
- Some new plot keywords have arrived too TEC
- transpose: (trans:) — The plot internally does something very similar to M-x org-table-transpose-table-at-point before using the table data.
- ymin: (min:), ymax: (max:), xmin:, xmax: — Four new keywords (and two aliases) to set the bounds of a plot. Partially supported by the default types.
- ticks: — The number of axis ticks to use along the axis. A good value is guessed based on a prime factorisation based heuristic (welcome to improvements).
- Some new customisation functions — The new variables
org-plot/gnuplot-script-preambleopen up new ways to tweak plots to your liking. For example, I use this to set line and background colours based on my current Emacs theme.
If you haven’t used Org plot before, I think it’s a great way to quickly visualise data in a table. To get started, all you need is a #+plot line above the table, with a certain type: specified (e.g. type:2d for a 2d line plot). Then, if you can specify a certain columns as the independent variable (x-values) with ind:, and list dependant variables (y-values) with deps:.
You can see these parameters set in the figure above,
| Xval | Red | Blue | Green | |------+-----+------+-------| | 0 | 1 | 2 | 3 | | 1 | 2 | 3 | 4 |
This will call gnuplot and a window showing the plot will appear. If you want to save the plot to a file, just use the file: parameter, e.g. file:"demoplot.svg" (note the quotes).
As displays become more high-res, lines of text which span the whole screen become … long. So long that it genuinely makes it harder to read the text. A small tweak to the default style and lines are now capped at 60em wide and centred in the page — much better 🙂. TEC
Also, the HTML export now:
- has a slightly nicer source block style
- labels authinfo blocks
A collection of export improvements
- Verbatim in headings no longer breaks LaTeX exports TEC
- Make the top level class for exported HTML customisable via
org-html-content-class/ #+HTML_CONTENT_CLASS Sameer Rahmani
- Use <img> tags for SVGs with ox-html, for better behaviour and W3C compliance TEC
- Remove redundant
<script>elements Bastien Guerry
- ox-texinfo now generates better headlines, menus, and footnotes Nicolas Goaziou
- Parsing during exporting no longer aborts as soon as an #+option key without a value is encountered, instead that key is skipped over Nicolas Goaziou
org-html-style-defaulthave been changed from constants to configurable values TEC
- eval macros #+macro: ? (eval ...) are now a little bit faster Stefan Monnier
org-link-descriptiveis now buffer-local, to avoid interfering with other buffers Kyle Meyer
- org-colview no longer chokes when a special property is updated Nicolas Goaziou
- Now coderefs have their whitespace cleaned up during tangling Tom Gillespie
- Allow for multiple %(expressions) in
- Code cleanup and refactoring Nicolas Savage, Aaron L. Zeng, Nicolas Goaziou, Bastien Guerry, Stefa Monnier, Arne Babenhauserheid
- Documentation improvements Jorge Neto, Erik Hetzner, Cheong Yiu Fung, Kyle Meyer
- New ob-sqlite maintainer — Nick Savage
- Make lilypond header arguments user-configurable Jamie Bayne
- Fix ob-C regression which mixed up
char*. Fix another regression with table parameters tbanel
- Fix indentation of list items and new logbook drawer notes Bastien Guerry
- Notice when theme changes with LaTeX previews Yuri Lensky
- Iron out a few edge cases in ol.el (Org links) Nicolas Goaziou
- Some new tests for org-protocol Maxim Nikulin
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, Org scales to much more powerful forms that are a headache to replicate in Markdown