* Org Babel "swallows" table column groups
@ 2024-06-28 12:43 Rudolf Adamkovič
2024-06-28 15:28 ` Ihor Radchenko
2024-06-28 17:42 ` S. Sajad Hosseini Balef
0 siblings, 2 replies; 9+ messages in thread
From: Rudolf Adamkovič @ 2024-06-28 12:43 UTC (permalink / raw)
To: emacs-orgmode
Given the source block
#+BEGIN_SRC emacs-lisp
(list (list 1 2) (list "/" "<>") 'hline (list 3 4) (list 5 6))
#+END_SRC
Org Babel outputs
#+RESULTS:
| 1 | 2 |
|---+---|
| 3 | 4 |
| 5 | 6 |
with the second element of the list
(list "/" "<>")
swallowed, without a word.
Why would Org Babel do this?
And, how can one output tables with column groups?
Rudy
--
"I do not fear death. I had been dead for billions and billions of years
before I was born, and had not suffered the slightest inconvenience from it."
--- Mark Twain, paraphrased
Rudolf Adamkovič <rudolf@adamkovic.org> [he/him]
http://adamkovic.org
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Org Babel "swallows" table column groups
2024-06-28 12:43 Org Babel "swallows" table column groups Rudolf Adamkovič
@ 2024-06-28 15:28 ` Ihor Radchenko
2024-06-30 8:53 ` Rudolf Adamkovič
2024-07-08 12:05 ` Ihor Radchenko
2024-06-28 17:42 ` S. Sajad Hosseini Balef
1 sibling, 2 replies; 9+ messages in thread
From: Ihor Radchenko @ 2024-06-28 15:28 UTC (permalink / raw)
To: Rudolf Adamkovič; +Cc: emacs-orgmode
Rudolf Adamkovič <rudolf@adamkovic.org> writes:
> Given the source block
>
> #+BEGIN_SRC emacs-lisp
> (list (list 1 2) (list "/" "<>") 'hline (list 3 4) (list 5 6))
> #+END_SRC
>
> Org Babel outputs
> ...
> with the second element of the list
>
> (list "/" "<>")
>
> swallowed, without a word.
>
> Why would Org Babel do this?
>
> And, how can one output tables with column groups?
This is because of how `orgtbl-to-generic' is implemented. It is taking
pieces from the full ox.el exporter, hard-coding certain things. For
example, it always removes special table lines:
;; Since we are going to export using a low-level mechanism,
;; ignore special column and special rows manually.
ox.el used to do the same recently, until I added a feature to keep
special lines in tables during export (for ox-org purposes).
See also https://list.orgmode.org/orgmode/87bkjy9tew.fsf@mat.ucm.es/
--
Ihor Radchenko // yantar92,
Org mode contributor,
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>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Org Babel "swallows" table column groups
2024-06-28 12:43 Org Babel "swallows" table column groups Rudolf Adamkovič
2024-06-28 15:28 ` Ihor Radchenko
@ 2024-06-28 17:42 ` S. Sajad Hosseini Balef
2024-06-30 8:13 ` Rudolf Adamkovič
1 sibling, 1 reply; 9+ messages in thread
From: S. Sajad Hosseini Balef @ 2024-06-28 17:42 UTC (permalink / raw)
To: rudolf; +Cc: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 9847 bytes --]
From mboxrd@z Thu Jan 1 00:00:00 1970
Return-Path: <emacs-orgmode-bounces+larch=yhetil.org@gnu.org>
Received: from mp2.migadu.com ([2001:41d0:403:58f0::])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
by ms13.migadu.com with LMTPS
id QIBcKZmwfmY+JwAAe85BDQ:P1
(envelope-from <emacs-orgmode-bounces+larch=yhetil.org@gnu.org>)
for <larch@yhetil.org>; Fri, 28 Jun 2024 12:46:17 +0000
Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
by mp2.migadu.com with LMTPS
id QIBcKZmwfmY+JwAAe85BDQ
(envelope-from <emacs-orgmode-bounces+larch=yhetil.org@gnu.org>)
for <larch@yhetil.org>; Fri, 28 Jun 2024 14:46:17 +0200
X-Envelope-To: larch@yhetil.org
Authentication-Results: aspmx1.migadu.com;
dkim=pass header.d=adamkovic.org header.s=fm3 header.b="U/f6NnaG";
dkim=pass header.d=messagingengine.com header.s=fm2 header.b=FpL7cHAz;
dmarc=pass (policy=none) header.from=adamkovic.org;
spf=pass (aspmx1.migadu.com: domain of
"emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates
209.51.188.17 as permitted sender)
smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org;
s=key1; t=1719578777;
h=from:from:sender:sender:reply-to:subject:subject:date:date:
message-id:message-id:to:to:cc:mime-version:mime-version:
content-type:content-type:
content-transfer-encoding:content-transfer-encoding:list-id:list-help:
list-unsubscribe:list-subscribe:list-post:dkim-signature;
bh=C2cE9CoSnYYr2BGJev1QhmuB1Z+39WbbFyxYuCDvrCk=;
b=mYHAOOLr3cUA4aYA3SU7IsKHuxaclFCk27AU1SZiRUgLyiT1lDhE9/uXwoM+BE/Bl12TCy
O67TZgZoPmHAS9aUo6HFawsZiTKqzGBnRn3T0p8RVVta6m8VDiaJ08NZxDkGHfx1CWbvAb
dB+LT58cjfNpyI7UNPzUP1hyTg0uJ5xcXwFff623wk7IvYAFvhlrgNahZlB4V9Jq5DA8f2
6NnHeWEtw2FAS6kWCUaxnfM3wFB+e6UhoJONlS0dQSQprJt1N6FAXQjUfMZMmOvjD9Y7+1
5C3fybFY2ItmnDgFRRX5tOosLuUZ4jSPDwCdTK6GmU2utoBBJ0fe5+qjiF8uvQ==
ARC-Seal: i=1; s=key1; d=yhetil.org; t=1719578777; a=rsa-sha256; cv=none;
b=XAkAEOoaYm+MQAgT66QHfA9rSiEjaFRNPhAjUf2dAkGq0UrAhJxN7VCUZYzXEJNJTTrkoH
kq+r336QjJb0zqAz0iVXpAJ+O0awc9x9KBPrqUnKoLWpsk41I1QuOR9mrak7XLUJbLYOri
QnhQ+L5h5uNEYW+Or2Q5J9YXP/QxiCCe/CK+7yqPBxGj21i4sxkP3St2wNN304tlbWKFk8
b+69YfUiMQirKk0+f3rQ7O6z9ZIUKKTAhpC0UWOG9EFZLqzMKMezs+DTyDnM/tlAJ4BPpJ
xyZjm5m5ScvCFFFEYBwKgQes/SAeNwa6aylpmclNLr+0PegBkiJAcQk84LPuEA==
ARC-Authentication-Results: i=1;
aspmx1.migadu.com;
dkim=pass header.d=adamkovic.org header.s=fm3 header.b="U/f6NnaG";
dkim=pass header.d=messagingengine.com header.s=fm2 header.b=FpL7cHAz;
dmarc=pass (policy=none) header.from=adamkovic.org;
spf=pass (aspmx1.migadu.com: domain of
"emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates
209.51.188.17 as permitted sender)
smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"
Received: from lists.gnu.org (lists.gnu.org [209.51.188.17])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
(No client certificate requested)
by aspmx1.migadu.com (Postfix) with ESMTPS id 1ED15631B9
for <larch@yhetil.org>; Fri, 28 Jun 2024 14:46:16 +0200 (CEST)
Received: from localhost ([::1] helo=lists1p.gnu.org)
by lists.gnu.org with esmtp (Exim 4.90_1)
(envelope-from <emacs-orgmode-bounces@gnu.org>)
id 1sNAy0-0007BS-8n; Fri, 28 Jun 2024 08:44:40 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.90_1) (envelope-from <rudolf@adamkovic.org>)
id 1sNAx3-00055r-TL
for emacs-orgmode@gnu.org; Fri, 28 Jun 2024 08:43:42 -0400
Received: from fhigh2-smtp.messagingengine.com ([103.168.172.153])
by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.90_1) (envelope-from <rudolf@adamkovic.org>)
id 1sNAx1-0005sX-40
for emacs-orgmode@gnu.org; Fri, 28 Jun 2024 08:43:40 -0400
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43])
by mailfhigh.nyi.internal (Postfix) with ESMTP id 0EF6F114029B
for <emacs-orgmode@gnu.org>; Fri, 28 Jun 2024 08:43:36 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
by compute3.internal (MEProxy); Fri, 28 Jun 2024 08:43:36 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adamkovic.org;
h=cc:content-transfer-encoding:content-type:content-type:date
:date:from:from:in-reply-to:message-id:mime-version:reply-to
:subject:subject:to:to; s=fm3; t=1719578616; x=1719665016; bh=C2
cE9CoSnYYr2BGJev1QhmuB1Z+39WbbFyxYuCDvrCk=; b=U/f6NnaGxnB/sGWrY2
Y5n0EJ0AyjVkricdpx83GBawskrgGOkGl9phajOEiIzXBaSPmlxydFv41FpYI8O2
jB87FxiuDYC4rGcfLvaAbQnN/Oy7jj1ckhb8mLABGWFufKgr4SPsQqw7TtoevQcQ
d4DAMPkelQev/OeGp0qplQcRYe5f74amOE2e8ejig126BbzWGnBZX+FeyFqFjJoq
XD7kGtvljKS0NFSADZqBHfhHr3WSJv+DpgT1YC8WvPGZTNzDwXl9nPSvp99Ytw+l
2F4WIlUavjhu6qWHrZZS/xj+04FzJizRc1taS/+zWlqBhPkYh0Vv6/ndJED/lhR2
kDlw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
messagingengine.com; h=cc:content-transfer-encoding:content-type
:content-type:date:date:feedback-id:feedback-id:from:from
:in-reply-to:message-id:mime-version:reply-to:subject:subject:to
:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
fm2; t=1719578616; x=1719665016; bh=C2cE9CoSnYYr2BGJev1QhmuB1Z+3
9WbbFyxYuCDvrCk=; b=FpL7cHAzSzzkCurGnmXT8VggmSV5JB4dkWmFjy00+QAn
UVMCvaedhVIxr8T2vC44AFAmwV0ifJqp0/2AwJWZEbTb9+IJEyDB5ugJhmOyEAAL
vXnj/s/XRxeUeqFX+lAT3zgOUMrJlPfZM66DVQF/JrvWiupvSkBsWmhE0JB7kLe/
lthxqaSHTy3OnXgK1QN97QjrhfCx/Ubu511muQM1YVEGNuleHJH4Xw3coXpy8D56
iW6GlDjzzBu+y0RhmHqSTNw+s0ZJVvNMrBWFVed+Moo3mFy0doAhQVI4OHzNBJbM
Wl67brZMWhGuCKoz/9Yw3k1oDLCzGs/QzJUHRcb9rA==
X-ME-Sender: <xms:969-ZkDJVQhDE-_azZm_eD_fZ9qkRmCrNUEJrazGy16MlCyZS9-9YA>
<xme:969-ZmhMTO6Y43v1vnSXyXImAPR7GmctpeQ27vr_6CuHXju-6cQ7A_d7ZigwVD6TY
Eckl0vzNwwjEQATvGE>
X-ME-Received:
<xmr:969-ZnlQYprvVdAUJ07CFcNxy-zbuumnsKpptGp-FxnE5GRMQc0VO54U4vaNGfvAzIuHc-Fq4cziuVf4Eg>
X-ME-Proxy-Cause:
gggruggvucftvghtrhhoucdtuddrgeeftddrtdeigdehhecutefuodetggdotefrodftvf
curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
uegrihhlohhuthemuceftddtnecunecujfgurhephffvufffkfggtgfgsehtqhertddttd
ejnecuhfhrohhmpeftuhguohhlfhcutegurghmkhhovhhitgcuoehruhguohhlfhesrggu
rghmkhhovhhitgdrohhrgheqnecuggftrfgrthhtvghrnhepkeelkeevtdeiudevvedtff
eghfdvgffhkeeileehtefhudeiueetudegheffvdffnecuffhomhgrihhnpegruggrmhhk
ohhvihgtrdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilh
hfrhhomheprhhuugholhhfsegruggrmhhkohhvihgtrdhorhhg
X-ME-Proxy: <xmx:969-ZqxlmHIW5aG7HfF88IRUA1iVIs3at80dC05XI2WnWVEP27BTIA>
<xmx:969-ZpSWD9UJjYp8JJ_lCBelL0U8OgF1diQbjELcfDLmoXQu9NZmmw>
<xmx:969-ZlaxQmK47xtHjGvAGrgDU2ITq4Sz7E-yI_JrRqXa10aXbFKRgQ>
<xmx:969-ZiRXnkN4w8N3yk3TM09yE425hbpn6Vx8BwJm0ilF8pNd6ejt5Q>
<xmx:-K9-ZoL6_Q2ROQKMrLOnrs3mYrUdKk9yP5HBpLy-BT8i0PBuagsQNaCt>
Feedback-ID: i88214938:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA for
<emacs-orgmode@gnu.org>; Fri, 28 Jun 2024 08:43:34 -0400 (EDT)
From: =?utf-8?Q?Rudolf_Adamkovi=C4=8D?= <rudolf@adamkovic.org>
To: emacs-orgmode@gnu.org
Subject: Org Babel "swallows" table column groups
Date: Fri, 28 Jun 2024 14:43:31 +0200
Message-ID: <m2h6dd9r0s.fsf@adamkovic.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass client-ip=103.168.172.153;
envelope-from=rudolf@adamkovic.org; helo=fhigh2-smtp.messagingengine.com
X-Spam_score_int: -27
X-Spam_score: -2.8
X-Spam_bar: --
X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001,
SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-BeenThere: emacs-orgmode@gnu.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "General discussions about Org-mode." <emacs-orgmode.gnu.org>
List-Unsubscribe: <https://lists.gnu.org/mailman/options/emacs-orgmode>,
<mailto:emacs-orgmode-request@gnu.org?subject=unsubscribe>
List-Archive: <https://lists.gnu.org/archive/html/emacs-orgmode>
List-Post: <mailto:emacs-orgmode@gnu.org>
List-Help: <mailto:emacs-orgmode-request@gnu.org?subject=help>
List-Subscribe: <https://lists.gnu.org/mailman/listinfo/emacs-orgmode>,
<mailto:emacs-orgmode-request@gnu.org?subject=subscribe>
Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org
Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org
X-Migadu-Flow: FLOW_IN
X-Migadu-Country: US
X-Migadu-Spam-Score: -7.56
X-Spam-Score: -7.56
X-Migadu-Queue-Id: 1ED15631B9
X-Migadu-Scanner: mx11.migadu.com
X-TUID: NeUcjxz0HfbD
> Given the source block
>
> #+BEGIN_SRC emacs-lisp
> (list (list 1 2) (list "/" "<>") 'hline (list 3 4) (list 5 6))
> #+END_SRC
>
> Org Babel outputs
>
> #+RESULTS:
> | 1 | 2 |
> |---+---|
> | 3 | 4 |
> | 5 | 6 |
>
> with the second element of the list
>
> (list "/" "<>")
>
> swallowed, without a word.
>
> Why would Org Babel do this?
>
> And, how can one output tables with column groups?
>
> Rudy
> --=20
> "I do not fear death. I had been dead for billions and billions of years
> before I was born, and had not suffered the slightest inconvenience
from it=
> ."
> --- Mark Twain, paraphrased
>
> Rudolf Adamkovi=C4=8D <rudolf@adamkovic.org> [he/him]
> http://adamkovic.org
It's seems related to the "<>" bacuse with any other strings I haven't
such issue. I tried to fix ob-emacs-lisp.el but there was no success at
the moment.
S. Sajad Hosseini Balef
shosseinib@ut.ac.ir
[-- Attachment #2: Org-Babel-swallows-table-column-groups.txt --]
[-- Type: text/plain, Size: 9185 bytes --]
From mboxrd@z Thu Jan 1 00:00:00 1970
Return-Path: <emacs-orgmode-bounces+larch=yhetil.org@gnu.org>
Received: from mp2.migadu.com ([2001:41d0:403:58f0::])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
by ms13.migadu.com with LMTPS
id QIBcKZmwfmY+JwAAe85BDQ:P1
(envelope-from <emacs-orgmode-bounces+larch=yhetil.org@gnu.org>)
for <larch@yhetil.org>; Fri, 28 Jun 2024 12:46:17 +0000
Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits))
by mp2.migadu.com with LMTPS
id QIBcKZmwfmY+JwAAe85BDQ
(envelope-from <emacs-orgmode-bounces+larch=yhetil.org@gnu.org>)
for <larch@yhetil.org>; Fri, 28 Jun 2024 14:46:17 +0200
X-Envelope-To: larch@yhetil.org
Authentication-Results: aspmx1.migadu.com;
dkim=pass header.d=adamkovic.org header.s=fm3 header.b="U/f6NnaG";
dkim=pass header.d=messagingengine.com header.s=fm2 header.b=FpL7cHAz;
dmarc=pass (policy=none) header.from=adamkovic.org;
spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org;
s=key1; t=1719578777;
h=from:from:sender:sender:reply-to:subject:subject:date:date:
message-id:message-id:to:to:cc:mime-version:mime-version:
content-type:content-type:
content-transfer-encoding:content-transfer-encoding:list-id:list-help:
list-unsubscribe:list-subscribe:list-post:dkim-signature;
bh=C2cE9CoSnYYr2BGJev1QhmuB1Z+39WbbFyxYuCDvrCk=;
b=mYHAOOLr3cUA4aYA3SU7IsKHuxaclFCk27AU1SZiRUgLyiT1lDhE9/uXwoM+BE/Bl12TCy
O67TZgZoPmHAS9aUo6HFawsZiTKqzGBnRn3T0p8RVVta6m8VDiaJ08NZxDkGHfx1CWbvAb
dB+LT58cjfNpyI7UNPzUP1hyTg0uJ5xcXwFff623wk7IvYAFvhlrgNahZlB4V9Jq5DA8f2
6NnHeWEtw2FAS6kWCUaxnfM3wFB+e6UhoJONlS0dQSQprJt1N6FAXQjUfMZMmOvjD9Y7+1
5C3fybFY2ItmnDgFRRX5tOosLuUZ4jSPDwCdTK6GmU2utoBBJ0fe5+qjiF8uvQ==
ARC-Seal: i=1; s=key1; d=yhetil.org; t=1719578777; a=rsa-sha256; cv=none;
b=XAkAEOoaYm+MQAgT66QHfA9rSiEjaFRNPhAjUf2dAkGq0UrAhJxN7VCUZYzXEJNJTTrkoH
kq+r336QjJb0zqAz0iVXpAJ+O0awc9x9KBPrqUnKoLWpsk41I1QuOR9mrak7XLUJbLYOri
QnhQ+L5h5uNEYW+Or2Q5J9YXP/QxiCCe/CK+7yqPBxGj21i4sxkP3St2wNN304tlbWKFk8
b+69YfUiMQirKk0+f3rQ7O6z9ZIUKKTAhpC0UWOG9EFZLqzMKMezs+DTyDnM/tlAJ4BPpJ
xyZjm5m5ScvCFFFEYBwKgQes/SAeNwa6aylpmclNLr+0PegBkiJAcQk84LPuEA==
ARC-Authentication-Results: i=1;
aspmx1.migadu.com;
dkim=pass header.d=adamkovic.org header.s=fm3 header.b="U/f6NnaG";
dkim=pass header.d=messagingengine.com header.s=fm2 header.b=FpL7cHAz;
dmarc=pass (policy=none) header.from=adamkovic.org;
spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"
Received: from lists.gnu.org (lists.gnu.org [209.51.188.17])
(using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits))
(No client certificate requested)
by aspmx1.migadu.com (Postfix) with ESMTPS id 1ED15631B9
for <larch@yhetil.org>; Fri, 28 Jun 2024 14:46:16 +0200 (CEST)
Received: from localhost ([::1] helo=lists1p.gnu.org)
by lists.gnu.org with esmtp (Exim 4.90_1)
(envelope-from <emacs-orgmode-bounces@gnu.org>)
id 1sNAy0-0007BS-8n; Fri, 28 Jun 2024 08:44:40 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10])
by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.90_1) (envelope-from <rudolf@adamkovic.org>)
id 1sNAx3-00055r-TL
for emacs-orgmode@gnu.org; Fri, 28 Jun 2024 08:43:42 -0400
Received: from fhigh2-smtp.messagingengine.com ([103.168.172.153])
by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
(Exim 4.90_1) (envelope-from <rudolf@adamkovic.org>)
id 1sNAx1-0005sX-40
for emacs-orgmode@gnu.org; Fri, 28 Jun 2024 08:43:40 -0400
Received: from compute3.internal (compute3.nyi.internal [10.202.2.43])
by mailfhigh.nyi.internal (Postfix) with ESMTP id 0EF6F114029B
for <emacs-orgmode@gnu.org>; Fri, 28 Jun 2024 08:43:36 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163])
by compute3.internal (MEProxy); Fri, 28 Jun 2024 08:43:36 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=adamkovic.org;
h=cc:content-transfer-encoding:content-type:content-type:date
:date:from:from:in-reply-to:message-id:mime-version:reply-to
:subject:subject:to:to; s=fm3; t=1719578616; x=1719665016; bh=C2
cE9CoSnYYr2BGJev1QhmuB1Z+39WbbFyxYuCDvrCk=; b=U/f6NnaGxnB/sGWrY2
Y5n0EJ0AyjVkricdpx83GBawskrgGOkGl9phajOEiIzXBaSPmlxydFv41FpYI8O2
jB87FxiuDYC4rGcfLvaAbQnN/Oy7jj1ckhb8mLABGWFufKgr4SPsQqw7TtoevQcQ
d4DAMPkelQev/OeGp0qplQcRYe5f74amOE2e8ejig126BbzWGnBZX+FeyFqFjJoq
XD7kGtvljKS0NFSADZqBHfhHr3WSJv+DpgT1YC8WvPGZTNzDwXl9nPSvp99Ytw+l
2F4WIlUavjhu6qWHrZZS/xj+04FzJizRc1taS/+zWlqBhPkYh0Vv6/ndJED/lhR2
kDlw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=
messagingengine.com; h=cc:content-transfer-encoding:content-type
:content-type:date:date:feedback-id:feedback-id:from:from
:in-reply-to:message-id:mime-version:reply-to:subject:subject:to
:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=
fm2; t=1719578616; x=1719665016; bh=C2cE9CoSnYYr2BGJev1QhmuB1Z+3
9WbbFyxYuCDvrCk=; b=FpL7cHAzSzzkCurGnmXT8VggmSV5JB4dkWmFjy00+QAn
UVMCvaedhVIxr8T2vC44AFAmwV0ifJqp0/2AwJWZEbTb9+IJEyDB5ugJhmOyEAAL
vXnj/s/XRxeUeqFX+lAT3zgOUMrJlPfZM66DVQF/JrvWiupvSkBsWmhE0JB7kLe/
lthxqaSHTy3OnXgK1QN97QjrhfCx/Ubu511muQM1YVEGNuleHJH4Xw3coXpy8D56
iW6GlDjzzBu+y0RhmHqSTNw+s0ZJVvNMrBWFVed+Moo3mFy0doAhQVI4OHzNBJbM
Wl67brZMWhGuCKoz/9Yw3k1oDLCzGs/QzJUHRcb9rA==
X-ME-Sender: <xms:969-ZkDJVQhDE-_azZm_eD_fZ9qkRmCrNUEJrazGy16MlCyZS9-9YA>
<xme:969-ZmhMTO6Y43v1vnSXyXImAPR7GmctpeQ27vr_6CuHXju-6cQ7A_d7ZigwVD6TY
Eckl0vzNwwjEQATvGE>
X-ME-Received: <xmr:969-ZnlQYprvVdAUJ07CFcNxy-zbuumnsKpptGp-FxnE5GRMQc0VO54U4vaNGfvAzIuHc-Fq4cziuVf4Eg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrtdeigdehhecutefuodetggdotefrodftvf
curfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfghnecu
uegrihhlohhuthemuceftddtnecunecujfgurhephffvufffkfggtgfgsehtqhertddttd
ejnecuhfhrohhmpeftuhguohhlfhcutegurghmkhhovhhitgcuoehruhguohhlfhesrggu
rghmkhhovhhitgdrohhrgheqnecuggftrfgrthhtvghrnhepkeelkeevtdeiudevvedtff
eghfdvgffhkeeileehtefhudeiueetudegheffvdffnecuffhomhgrihhnpegruggrmhhk
ohhvihgtrdhorhhgnecuvehluhhsthgvrhfuihiivgeptdenucfrrghrrghmpehmrghilh
hfrhhomheprhhuugholhhfsegruggrmhhkohhvihgtrdhorhhg
X-ME-Proxy: <xmx:969-ZqxlmHIW5aG7HfF88IRUA1iVIs3at80dC05XI2WnWVEP27BTIA>
<xmx:969-ZpSWD9UJjYp8JJ_lCBelL0U8OgF1diQbjELcfDLmoXQu9NZmmw>
<xmx:969-ZlaxQmK47xtHjGvAGrgDU2ITq4Sz7E-yI_JrRqXa10aXbFKRgQ>
<xmx:969-ZiRXnkN4w8N3yk3TM09yE425hbpn6Vx8BwJm0ilF8pNd6ejt5Q>
<xmx:-K9-ZoL6_Q2ROQKMrLOnrs3mYrUdKk9yP5HBpLy-BT8i0PBuagsQNaCt>
Feedback-ID: i88214938:Fastmail
Received: by mail.messagingengine.com (Postfix) with ESMTPA for
<emacs-orgmode@gnu.org>; Fri, 28 Jun 2024 08:43:34 -0400 (EDT)
From: =?utf-8?Q?Rudolf_Adamkovi=C4=8D?= <rudolf@adamkovic.org>
To: emacs-orgmode@gnu.org
Subject: Org Babel "swallows" table column groups
Date: Fri, 28 Jun 2024 14:43:31 +0200
Message-ID: <m2h6dd9r0s.fsf@adamkovic.org>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
Received-SPF: pass client-ip=103.168.172.153;
envelope-from=rudolf@adamkovic.org; helo=fhigh2-smtp.messagingengine.com
X-Spam_score_int: -27
X-Spam_score: -2.8
X-Spam_bar: --
X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1,
RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_PASS=-0.001,
SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-BeenThere: emacs-orgmode@gnu.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: "General discussions about Org-mode." <emacs-orgmode.gnu.org>
List-Unsubscribe: <https://lists.gnu.org/mailman/options/emacs-orgmode>,
<mailto:emacs-orgmode-request@gnu.org?subject=unsubscribe>
List-Archive: <https://lists.gnu.org/archive/html/emacs-orgmode>
List-Post: <mailto:emacs-orgmode@gnu.org>
List-Help: <mailto:emacs-orgmode-request@gnu.org?subject=help>
List-Subscribe: <https://lists.gnu.org/mailman/listinfo/emacs-orgmode>,
<mailto:emacs-orgmode-request@gnu.org?subject=subscribe>
Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org
Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org
X-Migadu-Flow: FLOW_IN
X-Migadu-Country: US
X-Migadu-Spam-Score: -7.56
X-Spam-Score: -7.56
X-Migadu-Queue-Id: 1ED15631B9
X-Migadu-Scanner: mx11.migadu.com
X-TUID: NeUcjxz0HfbD
Given the source block
#+BEGIN_SRC emacs-lisp
(list (list 1 2) (list "/" "<>") 'hline (list 3 4) (list 5 6))
#+END_SRC
Org Babel outputs
#+RESULTS:
| 1 | 2 |
|---+---|
| 3 | 4 |
| 5 | 6 |
with the second element of the list
(list "/" "<>")
swallowed, without a word.
Why would Org Babel do this?
And, how can one output tables with column groups?
Rudy
--=20
"I do not fear death. I had been dead for billions and billions of years
before I was born, and had not suffered the slightest inconvenience from it=
."
--- Mark Twain, paraphrased
Rudolf Adamkovi=C4=8D <rudolf@adamkovic.org> [he/him]
http://adamkovic.org
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Org Babel "swallows" table column groups
2024-06-28 17:42 ` S. Sajad Hosseini Balef
@ 2024-06-30 8:13 ` Rudolf Adamkovič
2024-06-30 8:35 ` S. Sajad Hosseini Balef
0 siblings, 1 reply; 9+ messages in thread
From: Rudolf Adamkovič @ 2024-06-30 8:13 UTC (permalink / raw)
To: S. Sajad Hosseini Balef; +Cc: emacs-orgmode
"S. Sajad Hosseini Balef" <shosseinib@ut.ac.ir> writes:
> It's seems related to the "<>" bacuse with any other strings I haven't
> such issue.
From what I see, the culprit is the "/" because, as soon as it appears,
Org Babel drops the row from the output. Then, when I replace the "/"
with something different, such as "xyz", the row is back.
> I tried to fix ob-emacs-lisp.el but there was no success at the
> moment.
I stumbled upon the problem when using Scheme. The bug report uses
Emacs Lisp only to ease reproduction. (I should have probably mentioned
that.) In other words, the problem does not seem to be specific to
Emacs Lisp.
Rudy
--
"It is far better to have a question that can't be answered than an
answer that can't be questioned." --- Carl Sagan
Rudolf Adamkovič <rudolf@adamkovic.org> [he/him]
http://adamkovic.org
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Org Babel "swallows" table column groups
2024-06-30 8:13 ` Rudolf Adamkovič
@ 2024-06-30 8:35 ` S. Sajad Hosseini Balef
0 siblings, 0 replies; 9+ messages in thread
From: S. Sajad Hosseini Balef @ 2024-06-30 8:35 UTC (permalink / raw)
To: Rudolf Adamkovič; +Cc: emacs-orgmode
It's weird because with swapping "<>" and "/" with escape-syntax character has no problem in the table:
#+BEGIN_SRC emacs-lisp
(list (list 1 2) (list "\<>" "\/") 'hline (list 3 4) (list 5 6))
#+end_src
#+RESULTS:
| 1 | 2 |
| <> | / |
|----+---|
| 3 | 4 |
| 5 | 6 |
On 6/30/24 11:43 AM, Rudolf Adamkovič wrote:
> "S. Sajad Hosseini Balef" <shosseinib@ut.ac.ir> writes:
>
>> It's seems related to the "<>" bacuse with any other strings I haven't
>> such issue.
> From what I see, the culprit is the "/" because, as soon as it appears,
> Org Babel drops the row from the output. Then, when I replace the "/"
> with something different, such as "xyz", the row is back.
>
>> I tried to fix ob-emacs-lisp.el but there was no success at the
>> moment.
> I stumbled upon the problem when using Scheme. The bug report uses
> Emacs Lisp only to ease reproduction. (I should have probably mentioned
> that.) In other words, the problem does not seem to be specific to
> Emacs Lisp.
>
> Rudy
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Org Babel "swallows" table column groups
2024-06-28 15:28 ` Ihor Radchenko
@ 2024-06-30 8:53 ` Rudolf Adamkovič
2024-07-08 12:05 ` Ihor Radchenko
1 sibling, 0 replies; 9+ messages in thread
From: Rudolf Adamkovič @ 2024-06-30 8:53 UTC (permalink / raw)
To: Ihor Radchenko; +Cc: emacs-orgmode
Ihor Radchenko <yantar92@posteo.net> writes:
> Rudolf Adamkovič <rudolf@adamkovic.org> writes:
>
> This is because of how `orgtbl-to-generic' is implemented. It is taking
> pieces from the full ox.el exporter, hard-coding certain things. For
> example, it always removes special table lines:
>
> ;; Since we are going to export using a low-level mechanism,
> ;; ignore special column and special rows manually.
>
> ox.el used to do the same recently, until I added a feature to keep
> special lines in tables during export (for ox-org purposes).
Bummer!
I wrote a little Scheme program to generate truth tables for my notes on
mathematical logic and also to aid future explorations. It works well,
but without table separators, truth tables are harder to read.
Rudy
--
"We shall not cease from exploration
And the end of all our exploring
Will be to arrive where we started
And know the place for the first time"
--- T. S. Eliot, Little Gidding, Four Quarters, 1943
Rudolf Adamkovič <rudolf@adamkovic.org> [he/him]
http://adamkovic.org
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Org Babel "swallows" table column groups
2024-06-28 15:28 ` Ihor Radchenko
2024-06-30 8:53 ` Rudolf Adamkovič
@ 2024-07-08 12:05 ` Ihor Radchenko
2024-07-10 13:33 ` Rudolf Adamkovič
1 sibling, 1 reply; 9+ messages in thread
From: Ihor Radchenko @ 2024-07-08 12:05 UTC (permalink / raw)
To: Rudolf Adamkovič; +Cc: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 900 bytes --]
Ihor Radchenko <yantar92@posteo.net> writes:
>> #+BEGIN_SRC emacs-lisp
>> (list (list 1 2) (list "/" "<>") 'hline (list 3 4) (list 5 6))
>> #+END_SRC
>>
>> Org Babel outputs
>> ...
>> with the second element of the list
>>
>> (list "/" "<>")
>>
>> swallowed, without a word.
>>
>> Why would Org Babel do this?
>>
>> And, how can one output tables with column groups?
>
> This is because of how `orgtbl-to-generic' is implemented. It is taking
> pieces from the full ox.el exporter, hard-coding certain things. For
> example, it always removes special table lines:
>
> ;; Since we are going to export using a low-level mechanism,
> ;; ignore special column and special rows manually.
I refactored `orgtbl-to-generic', so that it does not have to duplicate
`org-export-as'. Now, things should be more consistent with the normal
export.
May you try the attached tentative patch set?
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: 0001-ox-New-custom-option-to-disable-macro-replacement.patch --]
[-- Type: text/x-patch, Size: 4113 bytes --]
From f1ff68920c417343fda4c5a6450567d703ccf9b6 Mon Sep 17 00:00:00 2001
Message-ID: <f1ff68920c417343fda4c5a6450567d703ccf9b6.1720440129.git.yantar92@posteo.net>
From: Ihor Radchenko <yantar92@posteo.net>
Date: Mon, 8 Jul 2024 13:52:32 +0200
Subject: [PATCH 1/2] ox: New custom option to disable macro replacement
* lisp/ox.el (org-export-replace-macros): New custom option
controlling macro replacement.
(org-export--annotate-info): Honor it, except when processing inline
code block results and their {{{results...}}} macro.
* etc/ORG-NEWS (Allow disabling macro replacement during export):
Announce the new option.
* doc/org-manual.org (Macro Replacement):
(Summary of the export process): Document the new option.
---
doc/org-manual.org | 11 +++++++----
etc/ORG-NEWS | 9 +++++++++
lisp/ox.el | 13 +++++++++++--
3 files changed, 27 insertions(+), 6 deletions(-)
diff --git a/doc/org-manual.org b/doc/org-manual.org
index d30c18e0c..5f5104f91 100644
--- a/doc/org-manual.org
+++ b/doc/org-manual.org
@@ -12682,9 +12682,11 @@ ** Macro Replacement
#+cindex: @samp{MACRO}, keyword
#+vindex: org-export-global-macros
-Macros replace text snippets during export. Macros are defined
-globally in ~org-export-global-macros~, or document-wise with the
-following syntax:
+#+vindex: org-export-replace-macros
+Macros replace text snippets during export[fn::The macro replacement
+can be disabled by setting ~org-export-replace-macros~ to nil (default
+is t).]. Macros are defined globally in ~org-export-global-macros~,
+or document-wise with the following syntax:
: #+MACRO: name replacement text; $1, $2 are arguments
@@ -16702,7 +16704,8 @@ *** Summary of the export process
3. Remove commented subtrees in the whole buffer (see [[*Comment
Lines]]);
-4. Replace macros in the whole buffer (see [[*Macro Replacement]]);
+4. Replace macros in the whole buffer (see [[*Macro Replacement]]),
+ unless ~org-export-replace-macros~ is nil;
5. When ~org-export-use-babel~ is non-nil (default), process code
blocks:
diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
index 0c3b14128..dcd324115 100644
--- a/etc/ORG-NEWS
+++ b/etc/ORG-NEWS
@@ -43,6 +43,15 @@ or newer.
# adding new customizations, or changing the interpretation of the
# existing customizations.
+*** Allow disabling macro replacement during export
+
+New custom option ~org-export-replace-macros~ controls whether Org
+mode replaces macros in the buffer before export. Set it to nil to
+disable macro replacement.
+
+This variable has no effect on the ={{{results...}}}= macros for inline
+code block results.
+
*** Allow headline/olp target in ~org-capture-templates~ to be a function/variable
The variable ~org-capture-templates~ accepts a target specification as
diff --git a/lisp/ox.el b/lisp/ox.el
index 6fa21be90..902c9f089 100644
--- a/lisp/ox.el
+++ b/lisp/ox.el
@@ -860,6 +860,14 @@ (defcustom org-export-expand-links t
:package-version '(Org . "9.7")
:type 'boolean)
+(defcustom org-export-replace-macros t
+ "When non-nil, replace macros before export.
+This variable does not affect {{{results}}} macros when processing
+code block results."
+ :group 'org-export-general
+ :package-version '(Org . "9.8")
+ :type 'boolean)
+
(defcustom org-export-snippet-translation-alist nil
"Alist between export snippets backends and exporter backends.
@@ -3048,8 +3056,9 @@ (defun org-export--annotate-info (backend info &optional subtreep visible-only e
(org-export-backend-name backend))
(org-export-expand-include-keyword nil nil nil nil (plist-get info :expand-links))
(org-export--delete-comment-trees)
- (org-macro-initialize-templates org-export-global-macros)
- (org-macro-replace-all org-macro-templates parsed-keywords)
+ (when org-export-replace-macros
+ (org-macro-initialize-templates org-export-global-macros)
+ (org-macro-replace-all org-macro-templates parsed-keywords))
;; Refresh buffer properties and radio targets after previous
;; potentially invasive changes.
(org-set-regexps-and-options)
--
2.45.2
[-- Attachment #3: 0002-orgtbl-to-generic-Retain-special-rows-in-code-block-.patch --]
[-- Type: text/x-patch, Size: 10632 bytes --]
From 3e0a5164661153d41a89ce984c9282273c54a3de Mon Sep 17 00:00:00 2001
Message-ID: <3e0a5164661153d41a89ce984c9282273c54a3de.1720440129.git.yantar92@posteo.net>
In-Reply-To: <f1ff68920c417343fda4c5a6450567d703ccf9b6.1720440129.git.yantar92@posteo.net>
References: <f1ff68920c417343fda4c5a6450567d703ccf9b6.1720440129.git.yantar92@posteo.net>
From: Ihor Radchenko <yantar92@posteo.net>
Date: Mon, 8 Jul 2024 13:54:14 +0200
Subject: [PATCH 2/2] orgtbl-to-generic: Retain special rows in code block
table output
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* lisp/org-table.el (orgtbl--skip):
(orgtbl--skipcols): New helper functions.
(orgtbl-to-generic): Use `org-export-as' machinery to setup table
export instead of duplicating ox.el internals. Retain special rows in
tables when exporting to Org. Org export is used by ob-core to format
the code block output and will thus retain special rows.
* testing/lisp/test-org-table.el (test-org-table/to-generic): Adjust
test to expect special rows to be exported.
* etc/ORG-NEWS (~orgtbl-to-generic~ retains special rows when
exporting to Org): Announce the breaking change.
Reported-by: Rudolf Adamkovič <rudolf@adamkovic.org>
Link: https://orgmode.org/list/87r0ch6q9h.fsf@localhost
---
etc/ORG-NEWS | 11 +++
lisp/org-table.el | 151 +++++++++++++++++----------------
testing/lisp/test-org-table.el | 2 +-
3 files changed, 89 insertions(+), 75 deletions(-)
diff --git a/etc/ORG-NEWS b/etc/ORG-NEWS
index dcd324115..9780b53a6 100644
--- a/etc/ORG-NEWS
+++ b/etc/ORG-NEWS
@@ -110,6 +110,17 @@ to dynamically generate the content of the resulting ~<head>~ tag in
the resulting HTML document.
** Miscellaneous
+*** ~orgtbl-to-generic~ retains special rows when exporting to Org
+
+Previously, special table rows were unconditionally removed when
+export to Org. Now, the defaults follow what ox-org does - to retain
+special rows by default. See [[*=ox-org= now exports special table rows
+by default]].
+
+To retain the old behaviour, add ~:with-special-rows nil~ to PARAMS argument:
+
+: (orgtbl-to-generic table '(:with-special-rows nil)
+
*** Trailing =-= is now allowed in plain links
Previously, plain links like
diff --git a/lisp/org-table.el b/lisp/org-table.el
index 4a2623b55..641f2b5f3 100644
--- a/lisp/org-table.el
+++ b/lisp/org-table.el
@@ -5654,6 +5654,42 @@ (defun orgtbl-insert-radio-table ()
(insert txt)
(goto-char pos)))
+(defun orgtbl--skip (ast _ info)
+ "Extract first X table rows from AST.
+X is taken from :skip property in INFO plist.
+Return the modified AST."
+ (when-let ((skip (plist-get info :skip)))
+ (unless (wholenump skip) (user-error "Wrong :skip value"))
+ (let ((n 0))
+ (org-element-map ast 'table-row
+ (lambda (row)
+ (if (>= n skip) t
+ (org-element-extract row)
+ (cl-incf n)
+ nil))
+ nil t)))
+ ast)
+
+(defun orgtbl--skipcols (ast _ info)
+ "Extract first X table columns from AST.
+X is taken from :skipcols property in INFO plist.
+Special columns are always ignored.
+Return the modified AST."
+ (when-let ((skipcols (plist-get info :skipcols)))
+ (unless (consp skipcols) (user-error "Wrong :skipcols value"))
+ (org-element-map ast 'table
+ (lambda (table)
+ (let ((specialp (org-export-table-has-special-column-p table)))
+ (dolist (row (org-element-contents table))
+ (when (eq (org-element-property :type row) 'standard)
+ (let ((c 1))
+ (dolist (cell (nthcdr (if specialp 1 0)
+ (org-element-contents row)))
+ (when (memq c skipcols)
+ (org-element-extract cell))
+ (cl-incf c)))))))))
+ ast)
+
;;;###autoload
(defun orgtbl-to-generic (table params)
"Convert the `orgtbl-mode' TABLE to some other format.
@@ -5665,7 +5701,8 @@ (defun orgtbl-to-generic (table params)
line. PARAMS is a property list of parameters that can
influence the conversion.
-Valid parameters are:
+Valid parameters are all the export options understood by the export
+backend and also:
:backend, :raw
@@ -5774,84 +5811,50 @@ (defun orgtbl-to-generic (table params)
;; regular backend has a transcoder for them. We
;; provide one so they are not ignored, but displayed
;; as-is instead.
- (macro . (lambda (m c i) (org-element-macro-interpreter m nil))))))
- data info)
+ (macro . (lambda (m c i) (org-element-macro-interpreter m nil)))
+ ;; Only export the actual table. Do nothing with the
+ ;; containing section regardless what backend think about
+ ;; it. (It is somewhat like BODY-ONLY argument in
+ ;; `org-export-as', but skips not only transcoding the
+ ;; full document, but also section containing the table.
+ (section . (lambda (_ contents _) contents))))))
;; Store TABLE as Org syntax in DATA. Tolerate non-string cells.
;; Initialize communication channel in INFO.
(with-temp-buffer
+ (let ((standard-output (current-buffer)))
+ (dolist (e table)
+ (cond ((eq e 'hline) (princ "|--\n"))
+ ((consp e)
+ (princ "| ") (dolist (c e) (princ c) (princ " |"))
+ (princ "\n")))))
(let ((org-inhibit-startup t)) (org-mode))
- (org-fold-core-ignore-modifications
- (let ((standard-output (current-buffer))
- (org-element-use-cache nil))
- (dolist (e table)
- (cond ((eq e 'hline) (princ "|--\n"))
- ((consp e)
- (princ "| ") (dolist (c e) (princ c) (princ " |"))
- (princ "\n")))))
- (org-element-cache-reset)
- ;; Add backend specific filters, but not user-defined ones. In
- ;; particular, make sure to call parse-tree filters on the
- ;; table.
- (setq info
- (let ((org-export-filters-alist nil))
- (org-export-install-filters
- (org-combine-plists
- (org-export-get-environment backend nil params)
- `(:back-end ,(org-export-get-backend backend))))))
- (setq data
- (org-export-filter-apply-functions
- (plist-get info :filter-parse-tree)
- (org-element-map (org-element-parse-buffer) 'table
- #'identity nil t)
- info))
+ (defvar org-export-before-processing-functions) ; ox.el
+ (defvar org-export-process-citations) ; ox.el
+ (defvar org-export-expand-links) ; ox.el
+ (defvar org-export-filter-parse-tree-functions) ; ox.el
+ (defvar org-export-filters-alist) ; ox.el
+ (declare-function
+ org-export-as "ox"
+ (backend &optional subtreep visible-only body-only ext-plist))
+ ;; We disable the usual pre-processing and post-processing,
+ ;; i.e., hooks, Babel code evaluation, and macro expansion.
+ ;; Only backend specific filters are retained.
+ (let ((org-export-before-processing-functions nil)
+ (org-export-replace-macros nil)
+ (org-export-use-babel nil)
+ (org-export-before-parsing-functions nil)
+ (org-export-process-citations nil)
+ (org-export-expand-links nil)
+ (org-export-filter-parse-tree-functions
+ '(orgtbl--skip orgtbl--skipcols))
+ (org-export-filters-alist
+ '((:filter-parse-tree . org-export-filter-parse-tree-functions))))
+ (when (or (not backend) (plist-get params :raw)) (require 'ox-org))
(when (and backend (symbolp backend) (not (org-export-get-backend backend)))
- (user-error "Unknown :backend value"))))
- (when (or (not backend) (plist-get info :raw)) (require 'ox-org))
- ;; Handle :skip parameter.
- (let ((skip (plist-get info :skip)))
- (when skip
- (unless (wholenump skip) (user-error "Wrong :skip value"))
- (let ((n 0))
- (org-element-map data 'table-row
- (lambda (row)
- (if (>= n skip) t
- (org-element-extract row)
- (cl-incf n)
- nil))
- nil t))))
- ;; Handle :skipcols parameter.
- (let ((skipcols (plist-get info :skipcols)))
- (when skipcols
- (unless (consp skipcols) (user-error "Wrong :skipcols value"))
- (org-element-map data 'table
- (lambda (table)
- (let ((specialp (org-export-table-has-special-column-p table)))
- (dolist (row (org-element-contents table))
- (when (eq (org-element-property :type row) 'standard)
- (let ((c 1))
- (dolist (cell (nthcdr (if specialp 1 0)
- (org-element-contents row)))
- (when (memq c skipcols)
- (org-element-extract cell))
- (cl-incf c))))))))))
- ;; Since we are going to export using a low-level mechanism,
- ;; ignore special column and special rows manually.
- (let ((special? (org-export-table-has-special-column-p data))
- ignore)
- (org-element-map data (if special? '(table-cell table-row) 'table-row)
- (lambda (datum)
- (when (if (org-element-type-p datum 'table-row)
- (org-export-table-row-is-special-p datum nil)
- (org-export-first-sibling-p datum nil))
- (push datum ignore))))
- (setq info (plist-put info :ignore-list ignore)))
- ;; We use a low-level mechanism to export DATA so as to skip all
- ;; usual pre-processing and post-processing, i.e., hooks, Babel
- ;; code evaluation, include keywords and macro expansion. Only
- ;; backend specific filters are retained.
- (let ((output (org-export-data-with-backend data custom-backend info)))
- ;; Remove final newline.
- (if (org-string-nw-p output) (substring-no-properties output 0 -1) ""))))
+ (user-error "Unknown :backend value: %S" backend))
+ (let ((output (org-export-as custom-backend nil nil 'body-only params)))
+ ;; Remove final newline.
+ (if (org-string-nw-p output) (substring-no-properties output 0 -1) ""))))))
(defun org-table--generic-apply (value name &optional with-cons &rest args)
(cond ((null value) nil)
diff --git a/testing/lisp/test-org-table.el b/testing/lisp/test-org-table.el
index df63a65fc..b5d2d157b 100644
--- a/testing/lisp/test-org-table.el
+++ b/testing/lisp/test-org-table.el
@@ -1596,7 +1596,7 @@ (ert-deftest test-org-table/to-generic ()
(orgtbl-to-generic
(org-table-to-lisp "| a | b |\n| c | d |") '(:skipcols (2)))))
(should
- (equal "a\nc"
+ (equal "<c>\na\nc"
(orgtbl-to-generic
(org-table-to-lisp
"| / | <c> | <c> |\n| # | a | b |\n|---+---+---|\n| | c | d |")
--
2.45.2
[-- Attachment #4: Type: text/plain, Size: 224 bytes --]
--
Ihor Radchenko // yantar92,
Org mode contributor,
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>
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: Org Babel "swallows" table column groups
2024-07-08 12:05 ` Ihor Radchenko
@ 2024-07-10 13:33 ` Rudolf Adamkovič
2024-07-10 13:58 ` Ihor Radchenko
0 siblings, 1 reply; 9+ messages in thread
From: Rudolf Adamkovič @ 2024-07-10 13:33 UTC (permalink / raw)
To: Ihor Radchenko; +Cc: emacs-orgmode
Ihor Radchenko <yantar92@posteo.net> writes:
> May you try the attached tentative patch set?
With the two patches applied, the bug is gone. Yay!
Thank you!
I have noticed two issues during testing:
- a warning on 'make':
Compiling single /Users/salutis/src/org-mode/lisp/org-table.el...
In orgtbl-to-generic:
org-table.el:5843:14: Warning: Unused lexical variable ‘org-export-replace-macros’
- a failure on 'make test':
FAILED test-org-table/to-generic "Undefined Org macro: macro; aborting"
Thank you, again, Ihor!
Rudy
--
"All you have to do is write one true sentence. Write the truest
sentence that you know." --- Ernest Miller Hemingway (1899-1961)
Rudolf Adamkovič <rudolf@adamkovic.org> [he/him]
http://adamkovic.org
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Org Babel "swallows" table column groups
2024-07-10 13:33 ` Rudolf Adamkovič
@ 2024-07-10 13:58 ` Ihor Radchenko
0 siblings, 0 replies; 9+ messages in thread
From: Ihor Radchenko @ 2024-07-10 13:58 UTC (permalink / raw)
To: Rudolf Adamkovič; +Cc: emacs-orgmode
Rudolf Adamkovič <rudolf@adamkovic.org> writes:
> Ihor Radchenko <yantar92@posteo.net> writes:
>
>> May you try the attached tentative patch set?
>
> With the two patches applied, the bug is gone. Yay!
Fixed, onto main.
https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=90d4ae92e
https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=e0924db3c
> I have noticed two issues during testing:
>
> - a warning on 'make':
>
> Compiling single /Users/salutis/src/org-mode/lisp/org-table.el...
> In orgtbl-to-generic:
> org-table.el:5843:14: Warning: Unused lexical variable ‘org-export-replace-macros’
Yup.
> - a failure on 'make test':
>
> FAILED test-org-table/to-generic "Undefined Org macro: macro; aborting"
This is what warning is telling about.
--
Ihor Radchenko // yantar92,
Org mode contributor,
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>
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2024-07-10 13:58 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-06-28 12:43 Org Babel "swallows" table column groups Rudolf Adamkovič
2024-06-28 15:28 ` Ihor Radchenko
2024-06-30 8:53 ` Rudolf Adamkovič
2024-07-08 12:05 ` Ihor Radchenko
2024-07-10 13:33 ` Rudolf Adamkovič
2024-07-10 13:58 ` Ihor Radchenko
2024-06-28 17:42 ` S. Sajad Hosseini Balef
2024-06-30 8:13 ` Rudolf Adamkovič
2024-06-30 8:35 ` S. Sajad Hosseini Balef
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).