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>

Reply via email to