Dear all, Here are the meeting notes.
TL;DR: timezone support; search support in HTML export; proposal to switch to lualatex as default pdf export engine; exporting non-latin documents to pdf without config headache; nested special blocks; parser-based fontification; elisp inspector; inline special blocks; org-special-block-extras; noweb reference as macro equivalent inside src blocks; Captee - native macOS support for org-protocol and org-capture; breadcrumb-mode - As usual, we started from the latest Emacs News https://sachachua.com/blog/2025/04/2025-04-07-emacs-news/ - davemq asked about timezone support in Org mode - We have discussed timezone support in the past and decided that Org should eventually support timezones - I even consolidated the discussion, proposing detailed timestamp syntax with timezone support back in 2023 https://list.orgmode.org/orgmode/87tu063ox2.fsf@localhost/ - The syntax was inspired by various ISO standards (including https://www.rfc-editor.org/rfc/rfc3339.html), together with Org-specific considerations. Feel free to dive into the long discussion preceding my proposal (in the above link). The link summarizes the most important points though; it is not necessary to read all those 300+ emails in the thread. - However, I simply do not have enough time to do everything I want and have to prioritize (especially now, when I can only allocate weekends for Org development) - My main priority in terms of new major features is large Org codebase refactor; timezone support comes later - So, *if one wants to get timezone support, please go ahead and* *work on the patch*. The first step will be adding the discussed syntax into org-element.el. Please write to Org mailing list if you are interested. See https://orgmode.org/worg/org-contribute.html - we then went through some recently proposed new Org features - In https://list.orgmode.org/orgmode/87a5ev31ul....@k-7.ch/, Sรฉbastien Gendre expressed interest in adding search engine support to Org HTML export - In particular, he proposed using https://pagefind.app/ to generate static search index, thus keeping exported HTML static - Although we discussed generalization: if we are to add such a feature we should ideally allow arbitrary search engines; not just pagefind - In https://list.orgmode.org/cao48bk__cbr-acgyyes6buo3od8+wafehst9yuy84rhgv0n...@mail.gmail.com/T/#m132726826a7348203288342c7cdf7bef82b9cbe9 Pedro Andres Aranda Gutierrez opened a discussion about changing the default latex engine from pdflatex to lualatex - This discussion originated from long-standing issue with pdflatex when exporting non-latin characters - pdflatex cannot easily export arbitrary languages; once it encounters Chinese, Japanese, Cyrillic, Farci, etc, default settings cannot produce correct pdf - same for emoji and generally UTF8 symbols - There are various workarounds for pdflatex for specific languages, but 1. These workarounds require knowing language in advance 2. Workarounds work poorly or require explicitly marking specific language in the Org source when several languages are used in the same document 3. From Org perspective, it is a disaster, because it is basically impossible to export arbitrary non-English org files to pdf with pdflatex. We have to tell users figure out things themselves for the most part - Moreover, pdflatex is officially superseded by lualatex and will be slowly deprecated in future (no feature parity with lualatex in future releases) https://www.texdev.net/2024/11/05/engine-news-from-the-latex-project - xelatex is also officially the dead end and lualatex should be preferred - However, lualatex is much slower compared to pdflatex - Karthink (the author of the new latex preview system) commented that lualatex is so prohibitedly slow that we cannot practical do live previews of latex formulas (mostly because preamble pre-compilation is technically not possible with lualatex) https://list.orgmode.org/cao48bk__cbr-acgyyes6buo3od8+wafehst9yuy84rhgv0n...@mail.gmail.com/T/#m379a3c41134c82a6b33da5474930b2fc7ef30898 - Although, with some Lua surgery, we may theoretically implement preview server making lualatex spit preview pages on demand (but who is going to write the patch?) https://list.orgmode.org/cao48bk__cbr-acgyyes6buo3od8+wafehst9yuy84rhgv0n...@mail.gmail.com/T/#ma96cfcc80710fbbf3f169e2fe396d03dd0aa3b7a - Still, Pedro suggested that we can improve things at least when lualatex is explicitly selected and latex compiler - In lualatex, we are not limited by the font choice and can use full UTF8 support, reducing complexity of non-English document export - Still, some configuration is necessary on the user side Emoji + Chinese (also, https://tex.stackexchange.com/questions/395941/insert-an-emoticon-using-xelatex/395943#395943): https://tex.stackexchange.com/questions/304156/how-would-i-go-about-adding-unicode-emoji-into-latex/728116#728116 #+begin_src org ,#+latex_compiler: lualatex ,#+latex_header: \usepackage[AUTO]{polyglossia} ,#+latex_header: \setmainfont{Sarasa Mono HC} % Replace with your desired UTF-8 font ,#+latex_header_extra: \newfontfamily\emojifont{Noto Color Emoji} % Emoji support ,* ไฝ ๅท. ๐ผ And mix with english. #+end_src Russian config from artsi0m (https://github.com/artsi0m/emacs-organizer/blob/bb6626c6346881c0ec260a12859701f0c5961c36/ru-xelatex-template.org): #+begin_src org # -*- mode: org; -*- ,#+latex_compiler: xelatex ,#+latex_header: \usepackage[AUTO]{polyglossia} ,#+latex_header: \setmainfont{Noto Sans} ,#+latex_header: \setmonofont{Iosevka} ,#+latex_header: \setdefaultlanguage{russian} ,#+latex_header: \usepackage{geometry} ,#+latex_header: \geometry{left=15mm, top=15mm, right=20mm, bottom=20mm} #+end_src - We are currently discussing whether we can somehow configure things automatically for lualatex (even if it is not the default, such automatic configuration will be useful) https://list.orgmode.org/cao48bk_m9wv9vag5he8n_fpqgxszx3ete259n7hqe_ajfvh...@mail.gmail.com/T/#t - Steve Downey pointed that pandoc does something similar with fallback fonts https://pandoc.org/MANUAL.html#fonts:~:text=mainfontfallback%2C%20sansfontfallback,with%20lualatex - During the meetup, I demoed exporting multi-language document, but using xelatex - for some reason, lualatex took very long time and never finished compiling - (after the fact, I figured that lualatex was updating font cache, which is why it took so long during the meetup) - Zororg also suggested =\usepackage{emoji}= - this is slightly different story though - This package is working around UTF8 problem by adding special commands to introduce emoji into pdf output: each emoji must be written as =\emoji{emoji_name}= command rather than actual emoji symbol - (I may not recall this correctly) Someone pointed that nested special blocks do not get highlighted in Org - This is a known problem of Org fontification - I hope that it will be eventually addressed when we switch to parser-based fontification See https://git.sr.ht/~yantar92/org-mode/log/feature/org-font-lock-element/item/lisp - The parser recognized nested special blocks just fine - I demoed this by calling M-: (org-element-parse-buffer) and examining results with https://elpa.gnu.org/packages/inspector.html - I have a custom command bound to M-: to inspect the return value with inspector when called with prefix argument https://github.com/yantar92/emacs-config/blob/master/config.org#inspecting-objects-inside-profiler-or-evaluation-results - Steve Downey asked about customizing special block export for different export backends - There is https://github.com/alhassy/org-special-block-extras package that does exactly this - I also hope to provide custom export mechanism akin what we have for links but for special blocks in future - Also, there is a proposal (and initial patch) to implement a new markup to Org - inline special blocks https://list.orgmode.org/orgmode/875xwqj4tl.fsf@localhost/ - This markup will, among other things allow custom export (see my linked message with all the details) - Zororg asked whether there is a plan to allow Org macros inside src blocks - There is no such plan because we already have noweb references serving similar purpose - noweb references are somewhat more powerful, but not the same with macros - One can use the following noweb reference block that directly uses macro definition #+begin_src org ,#+options: d:nil ,#+macro: foo test test 2 {{{foo}}} :noexport: ,#+name: fooname {{{foo}}} :end: ,#+name: noweb-foo ,#+begin_src emacs-lisp :var x=fooname[] :eval export :exports results (message x) ,#+end_src ,#+RESULTS: : {{{foo}}} ,#+begin_src emacs-lisp :noweb yes :exports code <<noweb-foo()>> ,#+end_src #+end_src - kickingvegas showcased his new app he is developing to support Org capture and Org protocol on macOS - https://fosstodon.org/@kickingvegas@sfba.social/114314588128977624 https://github.com/kickingvegas/Captee - There is a need in special app because macOS now forbids arbitrary apps from using URL protocols and a code signed app must be used instead of emacsclient (which is not code signed and will likely never be) - That's annoying, but Apple does not care - The app also integrates with browser and can be used in place of Org capture extensions (AFAIU) - The app basically re-implements emacsclient (which is a tiny wrapper around socket communication protocol) - We discussed the protocol. It is really simple and can be examined in Emacs source code - The protocol did not change since forever, so the app should work in all reasonable Emacs versions - Zororg asked about outline path displayed in my Emacs header line inside Org files - I am using https://github.com/joaotavora/breadcrumb :chat: The latest Emacs News: https://sachachua.com/blog/2025/04/2025-04-07-emacs-news/ 18:06 me says:If you have any questions about Org mode, or a topic you want to discuss, feel free 18:09 davemq davemq says:The question of timezones in timestamps comes up again and again. I suspect it would be major surgery to support timezones. Any thoughts? 18:12 davemq says:(Of course, I haven't read the code to try to figure it out) 18:13 me says: https://list.orgmode.org/orgmode/87tu063ox2.fsf@localhost/ 18:16 me says:This this timezone feature discussion 18:16 davemq davemq says:At least some of the syntax is in line with ISO-8601, looks like 18:18 davemq says:A small matter of programming 18:18 davemq says:Thanks! 18:18 me says: https://list.orgmode.org/orgmode/87a5ev31ul....@k-7.ch/ 18:25 SD Steve Downey Steve Downey says: https://www.rfc-editor.org/rfc/rfc3339.html is a profile of ISO-8601 that you don't have to pay for to look at. 18:25 me says: https://pagefind.app/ 18:25 me says:static search engine for Org HTML export 18:25 me says: https://list.orgmode.org/cao48bk__cbr-acgyyes6buo3od8+wafehst9yuy84rhgv0n...@mail.gmail.com/T/#m132726826a7348203288342c7cdf7bef82b9cbe9 18:27 me says:on changing default latex export engine 18:27 SD Steve Downey Steve Downey says:Not having good support for emoji in pdflatex turns out to be a problem surprisingly often. 18:31 A artsi0m artsi0m says:I have my own template for writing org with xelatex https://github.com/artsi0m/emacs-organizer/blob/master/ru-xelatex-template.org 18:36 artsi0m says:\usepackage[AUTO]{polyglossia} 18:38 artsi0m says: https://tex.stackexchange.com/a/395943 18:40 Zororg Zororg says:I got emoji working with \usepackage{emoji} then \emoji{ANY_NAME} 18:45 A artsi0m artsi0m says:Nice 18:45 braam76 (Ilgar Gamidov) braam76 (Ilgar Gamidov) says:I'm sorry. Do anyone talks right now? 18:46 braam76 (Ilgar Gamidov) says:like at all 18:46 A artsi0m artsi0m says:I found another answer, that sujject using separate font for emojis, declaring it with fontspec https://tex.stackexchange.com/a/728116 \newfontface\emojifont{Segoe UI Emoji}[Renderer=Harfbuzz] The quick brown fox {\emojifont ๐บ๐ ๐ฉ๐ฝโ๐๐ฉ๐ผโ๐} jumps over the lazy dog 18:47 K kickingvegas kickingvegas says:ngl, seems like every emoji solution for *TeX is unnatural 18:47 Zororg Zororg says:ok i got emoji with normal way. 18:48 Zororg says:use this both lines somewhere ,#+latex_header: \newfontface\emojifont{Noto Color Emoji}[Renderer=Harfbuzz] \emojifont{} 18:49 Zororg says:for me it showed emoji in pdf 18:49 A artsi0m artsi0m says:Idk. It seems pretty normal to just set separate font in XeLaTeX. Although it would be much handy set it like main font with \setemojifont. XeLaTeX is good with Unicode. It was developed specifically to support it 18:50 SD Steve Downey Steve Downey says:The downside is getting locked in to both a particular export format (latex) and the special markup for some characters. Pandoc does some extra work to support fallback fonts, but I don't know the code they are emitting. https://pandoc.org/MANUAL.html#fonts:~:text=mainfontfallback%2C%20sansfontfallback,with%20lualatex . 18:50 Zororg Zororg says:no, just insert empty \emojifont{} and you can have emoji anywhere 18:51 avatar chaw chaw says:That is good to know, in general; thanks! 18:53 me says: https://www.texdev.net/2024/11/05/engine-news-from-the-latex-project 18:53 me says:LuaLaTex is the official future of tex 18:53 me says:xelatex is going to be obsoleted 18:53 me says:pdflatex is legacy (and all UTF problems) 18:53 braam76 (Ilgar Gamidov) braam76 (Ilgar Gamidov) says:i dont think jeff is talking to us ๐ฎ 18:55 SD Steve Downey Steve Downey says: https://isocpp.org/files/papers/P3514R0.html#org1792942 18:57 Z Zororg Zororg says:May i know what was that inspector? 18:59 me says: https://git.sr.ht/~yantar92/org-mode/log/feature/org-font-lock-element/item/lisp 19:01 V visuwesh visuwesh says:zororg: https://elpa.gnu.org/packages/inspector.html ? I wasn't in the meeting when you asked the qn 19:02 Z Zororg Zororg says:it supports org as well? 19:03 me says: https://github.com/mmontone/emacs-inspector 19:03 me says: https://github.com/alhassy/org-special-block-extras 19:06 me says:on exporting custom markup 19:06 Z Zororg Zororg says:Is there any thoughts/plan on using org macro inside src blocks? Last time I wanted to use them for my site exporting 19:06 me says: https://list.orgmode.org/orgmode/875xwqj4tl.fsf@localhost/ 19:10 me says:on custom markup for Org with custom export, fontification, etc 19:11 me says:#+options: d:nil #+macro: foo test test 2 {{{foo}}} :noexport: #+name: fooname {{{foo}}} ๐ #+name: noweb-foo #+begin_src emacs-lisp :var x=fooname[] :eval export :exports results (message x) #+end_src #+RESULTS: : {{{foo}}} #+begin_src emacs-lisp :noweb yes :exports code <<noweb-foo()>> #+end_src 19:15 Z Zororg Zororg says:Ok got it. Thank you for showcasing similar workflow 19:15 K kickingvegas kickingvegas says:can give a demo of some pre-release work I've been doing to support org-protocol on macOS 19:17 Z Zororg Zororg says:yantar, why is your notes.org having less lines? I'm sure it must be narrowed. Last time it was about 18K lines And whats with breadcrumb showing "Topics > Software" ? Is it any custom package/code you wrote? 19:18 JT Jeff Trull Jeff Trull says:โค๏ธ 19:19 Z Zororg Zororg says:whoa, the sound! Funny ๐ 19:18 JT Jeff Trull Jeff Trull says:I didn't expect that sorry 19:19 Jeff Trull says:So much for the discreet emoji on my icon 19:19 Jeff Trull says:Anyway derived exporters FTW ๐ 19:20 me says: https://github.com/joaotavora/breadcrumb 19:20 V visuwesh visuwesh says:yes 19:21 Carlo Tambuatco Carlo Tambuatco says:clear as mud 19:25 chaw chaw says:There is no way to add exceptions to the security policy? 19:25 CT Carlo Tambuatco Carlo Tambuatco says:This Scrim is a code signed app? 19:28 artsi0m artsi0m says:I am sorry, I have to leave. Thanks for the meetup 19:29 CT Carlo Tambuatco Carlo Tambuatco says:Cool 19:33 V visuwesh visuwesh says:there are some ugly details wrt finding the socket filename in linux 19:34 visuwesh says:that sounds awfully restrictive 19:37 visuwesh says:disallowing unix sockets that is 19:37 CT Carlo Tambuatco Carlo Tambuatco says:restrictive is the whole point 19:37 V visuwesh visuwesh says:yea, i dont get this whole security theatre in the end; maybe someday 19:38 visuwesh says:oh yea, do you support multiple servers/non-default server name 19:39 visuwesh says:makes sense to me 19:41 visuwesh says:for some reason i decided to use a non-defaulat server name c: 19:41 CT Carlo Tambuatco Carlo Tambuatco says:Is there a minimum version of emacs necessary? 19:41 Carlo Tambuatco says:You're using emacs 30.1 is that the minimum version? 19:42 Carlo Tambuatco says:Cool. I'm using 29.3 19:43 V visuwesh visuwesh says:i don't think it has been touched recently (except the whole "where do we keep the socket file in linux" fiasco) 19:45 CT Carlo Tambuatco Carlo Tambuatco says:Could you demo markdown? 19:49 Carlo Tambuatco says:Okay nevermind 19:49 JT Jeff Trull Jeff Trull says:Thanks @kickingvegas I will refrain from emoji use but great presentation :end: -- Ihor Radchenko // yantar92, Org mode maintainer, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92>