* Ignore Local Variables list in source blocks
@ 2024-12-18 4:12 Joseph Turner
0 siblings, 0 replies; 9+ messages in thread
From: Joseph Turner @ 2024-12-18 4:12 UTC (permalink / raw)
To: Org Mode Mailing List
Hello!
Is there a way to make Emacs ignore Local Variables lists which appear
inside of source blocks?
For example, is there a way to include the following content in an Org
file without Emacs attempting to locally set foo to bar?
#+BEGIN_EXAMPLE
# Local Variables:
# foo: 'bar
# End:
#+END_EXAMPLE
This issue first came up in org-srs:
https://github.com/bohonghuang/org-srs/issues/7
Thank you,
Joseph
^ permalink raw reply [flat|nested] 9+ messages in thread
* Ignore Local Variables list in source blocks
@ 2024-12-18 4:13 Joseph Turner
2024-12-18 17:16 ` Max Nikulin
0 siblings, 1 reply; 9+ messages in thread
From: Joseph Turner @ 2024-12-18 4:13 UTC (permalink / raw)
To: Org Mode Mailing List; +Cc: bohonghuang
Hello!
Is there a way to make Emacs ignore Local Variables lists which appear
inside of source blocks?
For example, is there a way to include the following content in an Org
file without Emacs attempting to locally set foo to bar?
#+BEGIN_EXAMPLE
# Local Variables:
# foo: 'bar
# End:
#+END_EXAMPLE
This issue first came up in org-srs:
https://github.com/bohonghuang/org-srs/issues/7
Thank you,
Joseph
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Ignore Local Variables list in source blocks
2024-12-18 4:13 Joseph Turner
@ 2024-12-18 17:16 ` Max Nikulin
2024-12-19 21:37 ` Joseph Turner via General discussions about Org-mode.
0 siblings, 1 reply; 9+ messages in thread
From: Max Nikulin @ 2024-12-18 17:16 UTC (permalink / raw)
To: Joseph Turner, emacs-orgmode; +Cc: bohonghuang
On 18/12/2024 11:13, Joseph Turner wrote:
>
> Is there a way to make Emacs ignore Local Variables lists which appear
> inside of source blocks?
>
> For example, is there a way to include the following content in an Org
> file without Emacs attempting to locally set foo to bar?
>
> #+BEGIN_EXAMPLE
> # Local Variables:
> # foo: 'bar
> # End:
> #+END_EXAMPLE
Have you tried to create a comment block below?
#+begin_comment
Deactivate local variables above in the example block:
Local Variables:
End:
#+end_comment
If it is not enough (and breaking the example into 2 parts is not
acceptable) then ask Emacs developers. I do not think, Org should (and
has a chance) to deal with this feature
(info "(emacs) Specifying File Variables")
<https://www.gnu.org/software/emacs/manual/html_node/emacs/Specifying-File-Variables.html>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Ignore Local Variables list in source blocks
2024-12-18 17:16 ` Max Nikulin
@ 2024-12-19 21:37 ` Joseph Turner via General discussions about Org-mode.
2024-12-20 14:46 ` Max Nikulin
0 siblings, 1 reply; 9+ messages in thread
From: Joseph Turner via General discussions about Org-mode. @ 2024-12-19 21:37 UTC (permalink / raw)
To: emacs-orgmode; +Cc: bohonghuang, Max Nikulin
Max Nikulin <manikulin@gmail.com> writes:
> On 18/12/2024 11:13, Joseph Turner wrote:
>> Is there a way to make Emacs ignore Local Variables lists which
>> appear
>> inside of source blocks?
>> For example, is there a way to include the following content in an
>> Org
>> file without Emacs attempting to locally set foo to bar?
>> #+BEGIN_EXAMPLE
>> # Local Variables:
>> # foo: 'bar
>> # End:
>> #+END_EXAMPLE
>
> Have you tried to create a comment block below?
>
> #+begin_comment
> Deactivate local variables above in the example block:
> Local Variables:
> End:
> #+end_comment
In my testing, in order to make Emacs ignore the `foo: bar' binding, the
empty Local Variables list actually needs to go first.
> If it is not enough (and breaking the example into 2 parts is not
> acceptable) then ask Emacs developers. I do not think, Org should (and
> has a chance) to deal with this feature
Yes, I agree that Org should not deal with this feature.
Splitting the example into two parts results in "File mode specification
error: (user-error Local variables entry is missing the prefix) " upon
opening the file. You can test with this:
--8<---------------cut here---------------start------------->8---
#+BEGIN_SRC org
# Local Variables:
#+END_SRC
#+BEGIN_SRC org
# org-srs-review-new-items-per-day: 30
# org-srs-review-max-reviews-per-day: 100
# End:
#+END_SRC
--8<---------------cut here---------------end--------------->8---
> (info "(emacs) Specifying File Variables")
By the way, is there a built-in command to copy that (info ...) sexp
when viewing that info page?
> <https://www.gnu.org/software/emacs/manual/html_node/emacs/Specifying-File-Variables.html>
Thanks, I just re-read that page more carefully, and I see this:
If some unrelated text might look to Emacs as a local variables
list, you can countermand that by inserting a form-feed character (a
page delimiter, *note Pages::) after that text. Emacs only looks for
file-local variables in the last page of a file, after the last page
delimiter.
In the org-srs README.org, I think we can just throw a \f at the bottom
of the file (or before a Local Variables list which we do want to use).
Problem solved! Thank you, Max!
Joseph
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Ignore Local Variables list in source blocks
2024-12-19 21:37 ` Joseph Turner via General discussions about Org-mode.
@ 2024-12-20 14:46 ` Max Nikulin
2024-12-20 14:53 ` Nikolaos Chatzikonstantinou
2024-12-21 2:11 ` Joseph Turner
0 siblings, 2 replies; 9+ messages in thread
From: Max Nikulin @ 2024-12-20 14:46 UTC (permalink / raw)
To: Joseph Turner, emacs-orgmode; +Cc: bohonghuang
On 20/12/2024 04:37, Joseph Turner wrote:
> Max Nikulin writes:
>> Have you tried to create a comment block below?
>>
>> #+begin_comment
>> Deactivate local variables above in the example block:
>> Local Variables:
>> End:
>> #+end_comment
>
> In my testing, in order to make Emacs ignore the `foo: bar' binding, the
> empty Local Variables list actually needs to go first.
Then it is more fragile in the case of complex documents, but still may
be viable for simple ones with single example.
> Splitting the example into two parts results in "File mode specification
> error: (user-error Local variables entry is missing the prefix) " upon
> opening the file.
I expected that the code looking up for local variables is reasonably shy.
> You can test with this:
> #+BEGIN_SRC org
> # Local Variables:
> #+END_SRC
>
> #+BEGIN_SRC org
> # org-srs-review-new-items-per-day: 30
> # org-srs-review-max-reviews-per-day: 100
> # End:
> #+END_SRC
Unfortunately
: # Local Variables:
#+BEGIN_EXAMPLE
# org-srs-review-new-items-per-day: 30
# org-srs-review-max-reviews-per-day: 100
# End:
#+END_EXAMPLE
Causes a warning as well:
"Local variables list is not properly terminated"
>> (info "(emacs) Specifying File Variables")
>
> By the way, is there a built-in command to copy that (info ...) sexp
> when viewing that info page?
A short answer "C-0 c" or "C-0 w". Maybe I will send a longer one,
dropping bohonghuang from Cc.
>> <https://www.gnu.org/software/emacs/manual/html_node/emacs/Specifying-File-Variables.html>
>
> Thanks, I just re-read that page more carefully, and I see this:
>
> If some unrelated text might look to Emacs as a local variables
> list, you can countermand that by inserting a form-feed character (a
> page delimiter, *note Pages::) after that text. Emacs only looks for
> file-local variables in the last page of a file, after the last page
> delimiter.
I do not like non-printable characters. E.g. Thunderbird rendered your
message with confusingly large vertical space in the middle. Outside of
Emacs, kludges like ";;; org.el ends here" are not common. I would not
be surprised by some issues on attempt to edit the README.org file on
the GitHub site directly.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Ignore Local Variables list in source blocks
2024-12-20 14:46 ` Max Nikulin
@ 2024-12-20 14:53 ` Nikolaos Chatzikonstantinou
2024-12-21 2:13 ` Joseph Turner
2024-12-21 2:13 ` Joseph Turner
2024-12-21 2:11 ` Joseph Turner
1 sibling, 2 replies; 9+ messages in thread
From: Nikolaos Chatzikonstantinou @ 2024-12-20 14:53 UTC (permalink / raw)
To: Joseph Turner, emacs-orgmode, bohonghuang
On Fri, Dec 20, 2024 at 9:46 AM Max Nikulin <manikulin@gmail.com> wrote:
>
> On 20/12/2024 04:37, Joseph Turner wrote:
> > Max Nikulin writes:
> >> Have you tried to create a comment block below?
> >>
> >> #+begin_comment
> >> Deactivate local variables above in the example block:
> >> Local Variables:
> >> End:
> >> #+end_comment
> >
> > In my testing, in order to make Emacs ignore the `foo: bar' binding, the
> > empty Local Variables list actually needs to go first.
>
> Then it is more fragile in the case of complex documents, but still may
> be viable for simple ones with single example.
>
> > Splitting the example into two parts results in "File mode specification
> > error: (user-error Local variables entry is missing the prefix) " upon
> > opening the file.
>
> I expected that the code looking up for local variables is reasonably shy.
>
> > You can test with this:
> > #+BEGIN_SRC org
> > # Local Variables:
> > #+END_SRC
> >
> > #+BEGIN_SRC org
> > # org-srs-review-new-items-per-day: 30
> > # org-srs-review-max-reviews-per-day: 100
> > # End:
> > #+END_SRC
>
> Unfortunately
>
> : # Local Variables:
> #+BEGIN_EXAMPLE
> # org-srs-review-new-items-per-day: 30
> # org-srs-review-max-reviews-per-day: 100
> # End:
> #+END_EXAMPLE
>
> Causes a warning as well:
> "Local variables list is not properly terminated"
>
> >> (info "(emacs) Specifying File Variables")
> >
> > By the way, is there a built-in command to copy that (info ...) sexp
> > when viewing that info page?
>
> A short answer "C-0 c" or "C-0 w". Maybe I will send a longer one,
> dropping bohonghuang from Cc.
>
> >> <https://www.gnu.org/software/emacs/manual/html_node/emacs/Specifying-File-Variables.html>
> >
> > Thanks, I just re-read that page more carefully, and I see this:
> >
> > If some unrelated text might look to Emacs as a local variables
> > list, you can countermand that by inserting a form-feed character (a
> > page delimiter, *note Pages::) after that text. Emacs only looks for
> > file-local variables in the last page of a file, after the last page
> > delimiter.
>
> I do not like non-printable characters. E.g. Thunderbird rendered your
> message with confusingly large vertical space in the middle. Outside of
> Emacs, kludges like ";;; org.el ends here" are not common. I would not
> be surprised by some issues on attempt to edit the README.org file on
> the GitHub site directly.
If I do something like
#+begin_comment
Local Variables:
End:
#+end_comment
#+begin_src
Local Variables:
foo: 40
End:
#+end_src
Then the variable is not set, as Emacs does not look for a Local
Variables list more than once.
Regards,
Nikolaos Chatzikonstantinou
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Ignore Local Variables list in source blocks
2024-12-20 14:46 ` Max Nikulin
2024-12-20 14:53 ` Nikolaos Chatzikonstantinou
@ 2024-12-21 2:11 ` Joseph Turner
1 sibling, 0 replies; 9+ messages in thread
From: Joseph Turner @ 2024-12-21 2:11 UTC (permalink / raw)
To: emacs-orgmode; +Cc: bohonghuang
Max Nikulin <manikulin@gmail.com> writes:
[...]
>>> (info "(emacs) Specifying File Variables")
>> By the way, is there a built-in command to copy that (info ...) sexp
>> when viewing that info page?
>
> A short answer "C-0 c" or "C-0 w". Maybe I will send a longer one,
> dropping bohonghuang from Cc.
Thanks! Very good to know about!
>>> <https://www.gnu.org/software/emacs/manual/html_node/emacs/Specifying-File-Variables.html>
>> Thanks, I just re-read that page more carefully, and I see this:
>> If some unrelated text might look to Emacs as a local variables
>> list, you can countermand that by inserting a form-feed character (a
>> page delimiter, *note Pages::) after that text. Emacs only looks for
>> file-local variables in the last page of a file, after the last page
>> delimiter.
>
> I do not like non-printable characters. E.g. Thunderbird rendered your
> message with confusingly large vertical space in the middle. Outside
> of Emacs, kludges like ";;; org.el ends here" are not common. I would
> not be surprised by some issues on attempt to edit the README.org file
> on the GitHub site directly.
Also good to know about.
Thanks!
Joseph
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Ignore Local Variables list in source blocks
2024-12-20 14:53 ` Nikolaos Chatzikonstantinou
@ 2024-12-21 2:13 ` Joseph Turner
2024-12-21 2:13 ` Joseph Turner
1 sibling, 0 replies; 9+ messages in thread
From: Joseph Turner @ 2024-12-21 2:13 UTC (permalink / raw)
To: Nikolaos Chatzikonstantinou; +Cc: emacs-orgmode, bohonghuang
Nikolaos Chatzikonstantinou <nchatz314@gmail.com> writes:
[...]
> If I do something like
>
> #+begin_comment
> Local Variables:
> End:
> #+end_comment
>
> #+begin_src
> Local Variables:
> foo: 40
> End:
> #+end_src
>
> Then the variable is not set, as Emacs does not look for a Local
> Variables list more than once.
Thanks! This approach is a bit fragile, though since Emacs only looks
at the last 3000 characters for "Local Variables:".
Joseph
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: Ignore Local Variables list in source blocks
2024-12-20 14:53 ` Nikolaos Chatzikonstantinou
2024-12-21 2:13 ` Joseph Turner
@ 2024-12-21 2:13 ` Joseph Turner
1 sibling, 0 replies; 9+ messages in thread
From: Joseph Turner @ 2024-12-21 2:13 UTC (permalink / raw)
To: Nikolaos Chatzikonstantinou; +Cc: emacs-orgmode, bohonghuang
Nikolaos Chatzikonstantinou <nchatz314@gmail.com> writes:
[...]
> If I do something like
>
> #+begin_comment
> Local Variables:
> End:
> #+end_comment
>
> #+begin_src
> Local Variables:
> foo: 40
> End:
> #+end_src
>
> Then the variable is not set, as Emacs does not look for a Local
> Variables list more than once.
Thanks! This approach is a bit fragile, since Emacs only looks at the
last 3000 characters for "Local Variables:".
Joseph
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2024-12-21 2:14 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-12-18 4:12 Ignore Local Variables list in source blocks Joseph Turner
-- strict thread matches above, loose matches on Subject: below --
2024-12-18 4:13 Joseph Turner
2024-12-18 17:16 ` Max Nikulin
2024-12-19 21:37 ` Joseph Turner via General discussions about Org-mode.
2024-12-20 14:46 ` Max Nikulin
2024-12-20 14:53 ` Nikolaos Chatzikonstantinou
2024-12-21 2:13 ` Joseph Turner
2024-12-21 2:13 ` Joseph Turner
2024-12-21 2:11 ` Joseph Turner
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).