emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* :eval yes use and documentation
       [not found] <599bf3cc-6dbe-4010-129c-a639ecd9ae70.ref@verizon.net>
@ 2021-12-17  2:19 ` Charles Millar
  2022-05-06  9:54   ` Ihor Radchenko
  0 siblings, 1 reply; 3+ messages in thread
From: Charles Millar @ 2021-12-17  2:19 UTC (permalink / raw)
  To: emacs-orgmode@gnu.org

Org mode version 9.5.1 (release_9.5.1-279-g8908fb @ 
/usr/local/share/org-mode/lisp/)
GNU Emacs 28.0.50 (build 344, x86_64-pc-linux-gnu, GTK+ Version 3.24.23, 
cairo version 1.16.0) of 2020-12-31

Here is a use case.

I have many files each with as many as 60 tables that are generated 
using ob -rec. So that the tables are not evaluated during export it is 
convenient for me to set a buffer wide

#+PROPERTY: header-args :eval never-export.

On other hand, each file may also include, under a sub-tree latex source 
code blocks for signature lines, letter heads, etc.

In another sub-tree, called correspondence, those source code blocks are 
called using :noweb yes, such as

   #+begin_src latex :noweb yes
   <<SomeLetterHead>>
   #+end_src

\begin{center}
\today
\end{center}

[Body of letter]

   #+begin_src latex :noweb yes
   <<SignatureLine>>
   #+end_src

If I include in the correspondence sub-tree
:PROPERTIES:
:header-args: :eval yes
:END:

the results are a complete letter, i.e. letterhead followed by the body 
and then signature line.

If I do not include the ":eval yes" property in the sub-tree, only the 
body of the letter results, as expected.

So after all that, here are some questions:

Is ":eval yes" officially allowed and, if so, why is it not documented?

Should it be?

May its use be inferred from other examples such as those from :cache or 
colnames?

I found the following discussion, but it is fairly old:

https://emacs.stackexchange.com/questions/2945/org-babel-eval-with-no-confirmation-is-explicit-eval-yes

Charlie Millar


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: :eval yes use and documentation
  2021-12-17  2:19 ` :eval yes use and documentation Charles Millar
@ 2022-05-06  9:54   ` Ihor Radchenko
  2022-10-08  4:27     ` [BUG?] :eval strip-export acts like :eval yes :noweb yes even during export (was: :eval yes use and documentation) Ihor Radchenko
  0 siblings, 1 reply; 3+ messages in thread
From: Ihor Radchenko @ 2022-05-06  9:54 UTC (permalink / raw)
  To: Charles Millar; +Cc: emacs-orgmode@gnu.org

Charles Millar <millarc@verizon.net> writes:

> Is ":eval yes" officially allowed and, if so, why is it not documented?
>
> Should it be?

Yes, it should be. Moreover, we have strip-export value undocumented.

Confirmed.

Best,
Ihor


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [BUG?] :eval strip-export acts like :eval yes :noweb yes even during export (was: :eval yes use and documentation)
  2022-05-06  9:54   ` Ihor Radchenko
@ 2022-10-08  4:27     ` Ihor Radchenko
  0 siblings, 0 replies; 3+ messages in thread
From: Ihor Radchenko @ 2022-10-08  4:27 UTC (permalink / raw)
  To: Charles Millar; +Cc: emacs-orgmode@gnu.org

Ihor Radchenko <yantar92@gmail.com> writes:

> Charles Millar <millarc@verizon.net> writes:
>
>> Is ":eval yes" officially allowed and, if so, why is it not documented?
>>
>> Should it be?
>
> Yes, it should be. Moreover, we have strip-export value undocumented.
>
> Confirmed.

Fixed on main.
https://git.savannah.gnu.org/cgit/emacs/org-mode.git/commit/?id=1966a7a8a8a2934443f24ca9c968a4eba09c3650

I documented ":eval yes".

strip-export value is actually used, but I feel that it is completely
wrong.

`org-babel-common-header-args-w-values' lists "strip-export" as an
allowed value of :eval argument. Further, `org-babel-noweb-p' returns
non-nil for ":eval strip-export".

The consequences for the callers of `org-babel-noweb-p' when ":eval
strip-export" are the following:

1. `org-babel-expand-noweb-references', `org-babel-execute-src-block',
   and `org-babel-expand-src-block' always expand noweb references.
2. `org-babel-lob-ingest' always expands noweb references.
3. `org-babel-exp-results' __always__ expands noweb references.

The (3) is certainly against intuition. `org-babel-exp-results' (which
is a part of export process) __does expand noweb references__ when
:eval is strip-export.

Not to mention that "strip-export" has nothing to do with evaluation
itself. Evaluation cannot be "stripped".

Should we remove :eval strip-export altogether? It is confusing and does
not yield expected results. Since it is also not documented, we should
not worry about breaking user configs.

-- 
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] 3+ messages in thread

end of thread, other threads:[~2022-10-08  4:27 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <599bf3cc-6dbe-4010-129c-a639ecd9ae70.ref@verizon.net>
2021-12-17  2:19 ` :eval yes use and documentation Charles Millar
2022-05-06  9:54   ` Ihor Radchenko
2022-10-08  4:27     ` [BUG?] :eval strip-export acts like :eval yes :noweb yes even during export (was: :eval yes use and documentation) Ihor Radchenko

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).