Re: [PATCH worg 0/2] Cleanup of LoB file

2022-06-18 Thread Bastien
Hi Tim,

Tim Cross  writes:

> OK, thanks Bastien. Just out of interest, would you be able to send me a
> copy of the nginx config for worg? I'm working on improving the build
> process and I would like my local nginx to have a similar config. Also,
> just in case there are changes which I think might improve the
> experience from the server side, I would be good to know exactly what
> the orgmode.org settings are. 
>
> You can send that to me privately. 

Done, privately for now.

Thanks for any suggestions on how to also improve this configuration.

All best,

-- 
 Bastien



Re: [PATCH] Prefer "website" to "homepage"

2022-06-18 Thread Ihor Radchenko
Stefan Kangas  writes:

>> Could you please point out to the relevant discussion?
>
> This was uncontroversial so not really discussed, but see:
>
> https://git.savannah.gnu.org/gitweb/?p=emacs.git;a=commit;h=bcf59b99f43be4f

Thanks! So, Emacs now advises to use "website" and "URL:", right?
Mentioning this fact, and the relevant commit would improve the commit
message. (that is: please update the commit message explaining the
change by changed Emacs recommendations).

Best,
Ihor



Re: oc-basic: CSL-JSON year as number vs. string (nativecomp?)

2022-06-18 Thread David Lukeš
> I suspect that multiple json formats may be available in the wild. Some
> parsed as a list of strings and some parsed as a list of numbers.

> The JSON schema allows either:

Ah, thanks for looking this up! So (format "%s" (caar date)) instead
of (number-to-string (caar date))?

(That was actually my initial solution, purely out of being defensive
and trying to make sure it doesn't break in yet a different way should
other things than numbers turn up in date-parts, even nil or such.
Then I thought it was too hamfisted and didn't have the time to make a
case for being so defensive here. But since it's needed even just to
be *compliant*, the case seems quite clear now.)

> Can you provide an example json file demonstrating the problem?

Sure, I'm attaching a short sample.

Best,

David


sample.json
Description: application/json


Re: oc-basic: CSL-JSON year as number vs. string (nativecomp?)

2022-06-18 Thread Bruce D'Arcus
On Sat, Jun 18, 2022 at 9:43 PM Ihor Radchenko  wrote:
>
> David Lukeš  writes:
>
> > I recently started to get errors like the following:
> >
> > Error during redisplay: (jit-lock-function 544) signaled
> > (wrong-type-argument "Argument is not a string or a secondary string:
> > 2007")
> >
> > This patch makes them go away:
> >
> > -(caar date))
> > +(number-to-string (caar date)))
>
> Can you provide an example json file demonstrating the problem?
> I suspect that multiple json formats may be available in the wild. Some
> parsed as a list of strings and some parsed as a list of numbers.

The JSON schema allows either:

https://github.com/citation-style-language/schema/blob/5b8bbc824e026959417757d4ce4012a26b10e637/schemas/input/csl-data.json#L512

Bruce



Re: [BUG] org-agenda-skip fails in batch mode because comment-start-skip is nil

2022-06-18 Thread Ihor Radchenko
Asilata Bapat  writes:

> When org-scan-tags runs in a batch mode invocation, the value of the variable 
> comment-start-skip is nil even while scanning an org file. The function 
> org-scan-tags calls (org-agenda-skip), which in turn calls (looking-at 
> comment-start-skip). Since the value of comment-start-skip is nil, it 
> triggers the error (wrong-type-argument stringp nil).
> To fix this, the function org-agenda-skip should ensure that the variable 
> comment-start-skip is set to the appropriate value.

Could you please provide a detailed reproducer?

> 2. The issue can indeed be fixed, e.g., by changing the source of 
> org-agenda-skip to invoke (org-mode) immediately before the let statement. 
> Doing this presumably sets the variable comment-start-skip to the expected 
> value, and the invocation succeeds.

org-agenda-skip should be operating after org-agenda-prepare-buffers,
which, in turn, should call org-mode. org-mode calls
org-setup-comments-handling which must set comment-start-skip to
non-nil.

Best,
Ihor



Re: oc-basic: CSL-JSON year as number vs. string (nativecomp?)

2022-06-18 Thread Ihor Radchenko
David Lukeš  writes:

> I recently started to get errors like the following:
>
> Error during redisplay: (jit-lock-function 544) signaled
> (wrong-type-argument "Argument is not a string or a secondary string:
> 2007")
>
> This patch makes them go away:
>
> -(caar date))
> +(number-to-string (caar date)))

Can you provide an example json file demonstrating the problem?
I suspect that multiple json formats may be available in the wild. Some
parsed as a list of strings and some parsed as a list of numbers.

You patch may fix the former but break the latter.

Best,
Ihor



Re: [PATCH worg 0/2] Cleanup of LoB file

2022-06-18 Thread Tim Cross


Bastien Guerry  writes:

> ~theophilusx  writes:
>
>> These patches just perform some basic cleanup of the library-of-
>> babel.org file. It also moves a duplicate library-of-babel.org file into
>> the archive directory.  Note that I am working on a complete overhaul of
>> worg, which I will implement in a separate branch in my sourcehut clone
>> of the repo.
>
> Thank you very much!  I applied the patches on worg.
>
> I also added you as a contributor to https://git.sr.ht/~bzg/worg/ so
> that you can now push changes directly.
>

OK, thanks Bastien. Just out of interest, would you be able to send me a
copy of the nginx config for worg? I'm working on improving the build
process and I would like my local nginx to have a similar config. Also,
just in case there are changes which I think might improve the
experience from the server side, I would be good to know exactly what
the orgmode.org settings are. 

You can send that to me privately. It might even be worthwhile checking
it into the repository for reference. 




Re: Simplified Org mode for newcomer Emacs veterans (was: Org mode and Emacs (was: Convert README.org to plain text README while installing package))

2022-06-18 Thread Tim Cross


Ihor Radchenko  writes:

> Tom Gillespie  writes:
>
>> With regard to the key-bindings straw man. I guess I'm a bit of an
>> outsider on this one, because I started writing org documents by just
>> typing them in and only over time learning some of the bindings. Maybe
>> having an org-markup-mode or something like that would be a way to
>> provide a sandbox for the +recalcitrants+ newcomers? It might also be
>> a nice way to a/b test them on whether the Emacs editing commands
>> really are as good as they think they are (said the evil-mode user).
>
> It can be either a simplified org-markup-mode or a series of minor-modes
> that enable different sets of bindings. Something like:
> org-structure-edit-mode, org-table-edit-mode, org-babel-edit-mode, etc
>
> However, the tricky question is: What should be the default?
>
> If we have org-markup-mode (disabled by default), how would the
> newcomers know to enable it?
>
> If we have the alternative set of minor modes and disable them by
> default, will the existing Org mode users accept the need to adjust the
> configuration?
>
> Can we address the above concerns without dissatisfying neither the
> existing Org users nor the newcomers?
>

I'm not convinced we actually need to do anything (yet). Most of the
'issues' raised by Eli were IMO theoretical rather than real. WE see
few, if any, issues or bug reports relating to most of the points he
raised. I'm also not convinced regarding some of the arguments regarding
casual or 'seldom' users. For me, many of the issues felt somewhat
contrived and actively looking for reasons why increased use of org in
Emacs was a "bad thing". 

This is not to say some of his points don't warrant some consideration.
However, they do seem largely general 'theoretical' and based on a
preconception of what an emacs mode is. In many ways, Org is not a
'normal' emacs mode. In some ways, it is a collection of modes with glue
to make them interoperate a little better. It is therefore possible,
many of the normal 'best practices', especially with respect to key
bindings, may not apply. 

I'm not fond of the 'magic' approach whereby special modes get activated
because some specific data is 'seen' in the buffer. For example, only
loading table editing mode because a table was seen or when the user
enters a line which looks like the start of a table. I much prefer a
system which allows me to enable the modes I want - similar I guess to
how we handle babel languages. However, that could just be me. It would
be good though that if we do support some form of 'dynamic' loading if
Emacs first asks i.e. "It looks like your editing a table. Shal I load
org-table-minor-mode?" sort of thing. 

So my approach would be to break things up into their own minor modes,
but by default, load them all. This will deal with the issue of not
impacting existing users. Typically, those who will care about not
loading additional unwanted bindings or features will also be the same
set of people who will be willing to customise their setup and they can
easily remove/turn off the modes they don't want. 

The one big area which does concern me slightly with introducing this
sort of modularity is with debugging and support. For example, to
reproduce the environment where an issue is encountered, we may need to
also know more about exactly which set of minor modes as been enabled
and possibly the order they are enabled. Even just basic testing will
become more complex as you may need to test with different minor mode
permutations. We may need to add some additional debugging and reporting
functionality to assist in this area. 

Likewise, how does org deal with an org file which includes some feature
the user has turned off. Consider a babel minor mode. Do we allow the
user to edit the babel blocks without loading that mode? Doe we warn
them the mode is not being loaded due to personal configuration? Do we
just disable all babel support if they don't load babel minor mode? 

One area which might be worth starting with would be to create an org
minor mode which only provides basic org navigation, folding and
font-locking support - no babel, no export, no agenda. reduced task
management key bindings. Essentially a minor mode which would render org
files in a 'clean' readable format, allow basic navigation and editing
and some basic/simple todo management. This would be the preferred mode
for seldom/casual users not interested in the full org experience. 



Re: [BUG] ob-shell: cmdline and stdin broken when used with TRAMP

2022-06-18 Thread Bruno Barbier

"Felix Freeman" via "General discussions about Org-mode."
 writes:

> When using TRAMP, ob-shell's :cmdline and :stdin header options are
> broken on org-babel.
>

I can reproduce the problem (thanks for your nice MCE).

I'm using:
Org mode version 9.5.4 (release_9.5.4-32-g82036c)
GNU Emacs 29.0.50


>From what I understand, the function 'org-babel-sh-evaluate' relies on
'call-process'; and that function ignores file name handlers; as TRAMP
relies on those file name handlers, it just cannot do the right thing.

Using 'process-file' instead works for me.

See the attached patch.

I've also included a test, as the problem is reproducible with TRAMP
"/mock::" connection. But, that test will only work on GNU/Linux
systems.

Warning: that's my first attempt to write a patch, and I don't have
(yet) signed the copyright papers.


Bruno


>From 9e8c114b738ddc633b50ca48e828676b92be784f Mon Sep 17 00:00:00 2001
From: Bruno BARBIER 
Date: Sat, 18 Jun 2022 09:48:01 +0200
Subject: [PATCH] ob-shell: Use 'process-file' when stdin or cmdline

lib/ob-shell.el (org-babel-sh-evaluate): Use 'process-file' (instead
of 'call-process-shell-command') so that 'org-babel-sh-evaluate' will
invoke file name handlers based on 'default-directory', if needed,
like when using a remote directory.

testing/lisp/test-ob-shell.el (ob-shell/remote-with-stdin-or-cmdline):
New test.

testing/org-test.el (org-test-tramp-remote-dir): New constant.
---
 lisp/ob-shell.el  | 17 
 testing/lisp/test-ob-shell.el | 52 +++
 testing/org-test.el   |  4 +++
 3 files changed, 67 insertions(+), 6 deletions(-)

diff --git a/lisp/ob-shell.el b/lisp/ob-shell.el
index 4454e3b5d..515095f9b 100644
--- a/lisp/ob-shell.el
+++ b/lisp/ob-shell.el
@@ -249,12 +249,17 @@ (defun org-babel-sh-evaluate (session body &optional params stdin cmdline)
 	  (set-file-modes script-file #o755)
 	  (with-temp-file stdin-file (insert (or stdin "")))
 	  (with-temp-buffer
-		(call-process-shell-command
-		 (concat (if shebang script-file
-			   (format "%s %s" shell-file-name script-file))
-			 (and cmdline (concat " " cmdline)))
-		 stdin-file
-		 (current-buffer))
+(with-connection-local-variables
+ (apply #'process-file
+(if shebang (file-local-name script-file)
+  shell-file-name)
+		stdin-file
+(current-buffer)
+nil
+(if shebang (when cmdline (list cmdline))
+  (list shell-command-switch
+(concat (file-local-name script-file)  " " cmdline)))
+		))
 		(buffer-string
 	   (session			; session evaluation
 	(mapconcat
diff --git a/testing/lisp/test-ob-shell.el b/testing/lisp/test-ob-shell.el
index 2f346f699..05ee810a0 100644
--- a/testing/lisp/test-ob-shell.el
+++ b/testing/lisp/test-ob-shell.el
@@ -106,6 +106,58 @@ (ert-deftest ob-shell/simple-list ()
 	   "#+BEGIN_SRC sh :results output :var l='(1 2)\necho ${l}\n#+END_SRC"
 	   (org-trim (org-babel-execute-src-block))
 
+(ert-deftest ob-shell/remote-with-stdin-or-cmdline ()
+  "Test :stdin and :cmdline with a remote directory."
+  ;; We assume 'default-directory' is a local directory.
+  (dolist (spec `( ()
+   (:dir ,org-test-tramp-remote-dir)
+   (:dir ,org-test-tramp-remote-dir :cmdline t)
+   (:dir ,org-test-tramp-remote-dir :stdin   t)
+   (:dir ,org-test-tramp-remote-dir :cmdline t :shebang t)
+   (:dir ,org-test-tramp-remote-dir :stdin   t :shebang t)
+   (:dir ,org-test-tramp-remote-dir :cmdline t :stdin t :shebang t)
+   (:cmdline t)
+   (:stdin   t)
+   (:cmdline t :shebang t)
+   (:stdin   t :shebang t)
+   (:cmdline t :stdin t :shebang t)
+   ))
+(let ((default-directory (or (plist-get :dir spec) default-directory))
+  (org-confirm-babel-evaluate nil)
+  (params-line "")
+  (who-line "  export who=tramp")
+  (args-line "  echo ARGS: --verbose 23 71")
+  )
+  (when-let ((dir (plist-get :dir spec)))
+(setq params-line (concat params-line " " ":dir " dir)))
+  (when (plist-get :stdin spec)
+(setq who-line "  read -r who")
+(setq params-line (concat params-line " :stdin input")))
+  (when (plist-get :cmdline spec)
+(setq args-line "  echo \"ARGS: $*\"")
+(setq params-line (concat params-line " :cmdline \"--verbose 23 71\"")))
+  (when (plist-get :shebang spec)
+(setq params-line (concat params-line " :shebang \"#!/bin/sh\"")))
+  (let* ((result (org-test-with-temp-text
+ (mapconcat #'identity
+(list "#+name: input"
+ 

[BUG] org-auto-repeat-maybe: error "Can’t expand minibuffer to full frame" and missing log note

2022-06-18 Thread Bhavin Gandhi
On Mon, 13 Jun 2022 at 23:01, Bhavin Gandhi  wrote:
> > 1. emacs -Q
> > 2. Create test.org with following content
> >
> > * TODO Repeating entry
> > SCHEDULED: <2022-05-01 Mon ++2d>
> >
> > 3. C-c C-t on the entry, shows the above error. And shifts the scheduled
> >date correctly.
>
> When this error appears, the log note entry about state change is not
> added. I found this issue for the first time when I saw the state
> change log notes were missing.
>
> If I do C-c C-t again on the same entry, we get the note.
> - State "DONE"   from "TODO"   [2022-06-13 Mon 22:48]
>
> This is missing when we hit the error mentioned in the first mail.

Confirmed.
Trying to change the subject for Woof! for the first time, I hope I get
it right.

I remember reading this code around a year back, where we were fixing
two bugs.
1. Bug: Duplicate logbook entry for repeated tasks:
   
https://list.orgmode.org/orgmode/CAOn=hbcaW1R6vtun-E2r4LS=j3dp=vjqmjgtzy8uc1sypar...@mail.gmail.com/
2. Bug: org-agenda-undo does not work with repeated tasks [9.4]:
   https://list.orgmode.org/87v98a8mes@gnu.org/

Currently, when we call `org-auto-repeat-maybe', it adds
`org-add-log-note' to post-command-hook using `org-add-log-setup'. As
soon as we reach the question about 10 repeater intervals (the call to
`y-or-n-p' from `org-auto-repeat-maybe'), the post-command-hook gets
executed.[1]

So, we end up calling `delete-other-windows' while we are waiting for
the user to respond with y/n. And this causes error "Can’t expand
minibuffer to full frame".

I don't know how to fix this issue yet, but I'm planning to add a test
case for completing repeating tasks which need 10+ repeating intervals
to shift the date.

Maybe this is off-topic:
I'm not sure why [1] happens, my assumption was Emacs will wait till all
the functions finish executing, and then run the post-command-hooks.
this-command remains org-todo (C-c C-t) throughout all the other calls
done by org-todo as long as they are not commands
i.e. org-auto-repeat-maybe etc. So, I tried following snippet:

(defun my-test-command ()
  (interactive)
  (message "my-test-command: setting post-command-hook")
  (add-hook 'post-command-hook 'my-own-hook)
  (y-or-n-p "Some question: ")
  (message "my-test-command: message after setting the hook")
)
(defun my-own-hook ()
  (remove-hook 'post-command-hook 'my-own-hook)
  (message "my-own-hook: hopefully executing at the end")
)

In this case as well, as soon as it calls y-or-n-p, I can see
"my-own-hook: hopefully executing at the end" in the minibuffer (while
it is still waiting for user input). Is it expected? I read (info
"(elisp)Command Overview") but couldn't understand this behavior.

-- 
Bhavin Gandhi (bhavin192) | https://geeksocket.in



Re: Proposal: 'executable' org-capture-templaes

2022-06-18 Thread Arthur Miller
Max Nikulin  writes:

> On 11/06/2022 12:26, Ihor Radchenko wrote:
>> Max Nikulin writes:
>> 
>>> However if two org-protocol handlers are launched without specified
>>> template then behavior of Org becomes confusing. I meant this case.
>>> Currently reading key from minibuffer serves as a kind of
>>> synchronization tool.
>>>
>>> Imagine what would happen if Emacs decided to show several capture menus
>>> with keymap non-blocking interface in different virtual desktops.
>>> Capture data should be saved somewhere till the user would discover
>>> initially hidden menu.
>> Note that there is not much happening when capture menu is called. Only
>> the link is stored into link ting. Otherwise, no capture data is
>> altered. All the fragile staff is happening after selecting capture
>> template.
>
> Ihor, magic is impossible. If several captures may be requested in parallel 
> then
> snapshot of data required to fill capture template should be stored somewhere 
> at
> the moment when capture is initiated. Otherwise the user may kill the buffer 
> she
> is going to capture before selecting particular template.
>
> There are enough side band communication channels in Org. I did not remember a
> variable from which properties are obtained. Before I have realized that it is
> `org-store-link-plist', I noticed at least `org-overriding-default-time',
> `org-capture-initial'. Unsure that the list is complete.

I have a question here: what is meant by this:

>>> Imagine what would happen if Emacs decided to show several capture menus
>>> with keymap non-blocking interface in different virtual desktops.

Different Emacs processes, or just different Emacs frames?

In case of different Emacs processes, there is no way to guarantee consistence
unless one locks file in the file system. Windows can do it, I am not sure what
is Linux API to do this, don't know if Emacs exposes this functionality, have
never tried.

Otherewise, if it is only different Emacs frames/clients, the capture should
always find the capture buffer and return that one instead of creating new
ones. That way there is only one capture buffer, so multiple captures should not
be possible, i.el, it creates same effect as locking the input to minibuffer. I
am not sure how org-capture does, I haven't studied the code in-depth yet, but
what I see currently a user cancels it with C-c C-k. org-capture buffer could
setup hooks to clean everything, even if user kills buffer by other means, c-x
k, or whatever. It maybe already does, as said I haven't looked at those
details.

I just haven't done that in demo yet, so that is why I said when I posted the
code, I haven't implemented that "correctly", bit I am quite sure it is not very
hard to do.

Am I correct about the principle? If not, than I will have to rething about it.




[Tip] Screenshots as org links with EMMS and socat

2022-06-18 Thread Juan Manuel Macías
Hi all,

I’m writing an article about a movie, and I needed to get some
screenshots as image links inside Org. I know some package for those
things, like org-media-note, a nice library but for me it has two
drawbacks: it has, for what I need, too many bells and whistles; and
uses the mpv.el package in the background. I use the mpv player, but
through EMMS. In fact, I have all my multimedia setup in Emacs around
EMMS, and I'm too lazy to use something else. What I am looking for is,
therefore, something much simpler, EMMS-centric and "homemade". If
someone is in the same situation as me and also uses EMMS with mpv, I’m
sharing my solution here, in case it’s useful (I’ve taken some ideas
from org-media-note and mpv.el):

Socat needs to be installed first, to communicate with the mpv process
via the command line. In Arch it is in the official repositories:

┌
│ sudo pacman -S socat
└

My EMMS configuration:

┌
│ (require 'emms-setup)
│ (emms-all)
│ (emms-default-players)
│ (setq emms-player-list '(emms-player-mpv))
└

And these two variables are for socat communication:

┌
│ (setq emms-player-mpv-ipc-method 'ipc-server)
│ (setq emms-player-mpv-ipc-socket "~/.emacs.d/emms/mpv-ipc.sock")
└

The directory to save the screenshots:

┌
│ (defvar my-screenshot-dir "/path/to/screenshot/dir/")
└

This function returns the formatted timestamp and path of the current
mpv process:

┌
│ (require 'org-timer)
│ (defun my-mpv-format-timestamp-and-path ()
│   (let* ((timestamp-command (shell-command-to-string
│ "echo '{ \"command\": [\"get_property\", \"playback-time\"] }' | 
socat - ~/.emacs.d/emms/mpv-ipc.sock"))
│(path-command (shell-command-to-string
│   "echo '{ \"command\": [\"get_property\", \"path\"] }' | socat - 
~/.emacs.d/emms/mpv-ipc.sock"))
│(timestamp (org-timer-secs-to-hms (round
│   (cdr
│(car
│ (json-read-from-string 
timestamp-command))
│(path (cdr
│   (car
│(json-read-from-string path-command)
│ (format "%s --- %s" path timestamp)))
└

And, finally, the function that inserts the screenshot at point as an
org image link:

┌
│ (defun my-mpv-put-screenshot-on-org ()
│   (let* ((time (format-time-string "%d-%m-%y-%H-%M-%S"))
│(screenshot-file-name (format "fotograma-%s.png" time))
│(screenshot-final (expand-file-name screenshot-file-name 
my-screenshot-dir)))
│ (start-process-shell-command 
│  "screenshot" nil
│  (format
│   "echo \"screenshot-to-file %s\" | socat - 
\"~/.emacs.d/emms/mpv-ipc.sock\""
│   screenshot-final))
│ (insert (format "#+media: %s\n" (my-mpv-format-timestamp-and-path)))
│ (insert (format "[[file:%s]]" screenshot-final
└

A short demo video: https://cloud.disroot.org/s/6zrGYxkKT67kFGx

Best regards,

Juan Manuel



Re: Links to javascript-based websites from orgmode.org: Paypal and Github

2022-06-18 Thread Bastien
Hi Ihor,

Ihor Radchenko  writes:

> I have been recently exploring Liberapay and stumbled upon
> https://liberapay.com/about/teams.
>
> It is possible to create a "team" and distribute the donations across
> multiple developers. I believe that it is one of a simple (from
> perspective of user) ways to direct donations to the willing Org
> contributors without creating confusion among donors on where to donate.

Yes, good idea.  Can you create an account on https://liberapay.com
and sent me the email you used in private?

I have created a liberapay team, I will invite you there.  

Then there are a few settings to discuss before we can switch the link
on orgmode.org, but I think it will be an easy step forward.

Thanks,

-- 
 Bastien



Re: [BUG] ERR_CERT_DATE_INVALID for https://list.orgmode.org/

2022-06-18 Thread Bastien
Hi Kyle,

Kyle Meyer  writes:

> Anyway, based on how the expiration dates for various domains line up,
> it's usually okay if I don't act on that for a day or two, but in this
> case it bumped right against the list.orgmode.org expiration.

Great certificates expire alike :)

> Sorry about that (but you can't get your money back :>)

Thanks for restarting the server - I took this opportunity to refresh
the list of certificates for *.orgmode.org, we shall be all set until
Sept. 16th.

-- 
 Bastien



Re: [BUG] ERR_CERT_DATE_INVALID for https://list.orgmode.org/

2022-06-18 Thread Kyle Meyer
Bastien Guerry writes:

> Kyle, do you have any clue?

Yes.  The SSL certs on my end are wired up to be automatically
refreshed.  In order for them to be in effect, though, I need to
manually restart nginx.  There's probably a better way to handle this,
but I just have a reminder.

Anyway, based on how the expiration dates for various domains line up,
it's usually okay if I don't act on that for a day or two, but in this
case it bumped right against the list.orgmode.org expiration.

Sorry about that (but you can't get your money back :>)



Re: [PATCH worg 0/2] Cleanup of LoB file

2022-06-18 Thread Bastien Guerry
~theophilusx  writes:

> These patches just perform some basic cleanup of the library-of-
> babel.org file. It also moves a duplicate library-of-babel.org file into
> the archive directory.  Note that I am working on a complete overhaul of
> worg, which I will implement in a separate branch in my sourcehut clone
> of the repo.

Thank you very much!  I applied the patches on worg.

I also added you as a contributor to https://git.sr.ht/~bzg/worg/ so
that you can now push changes directly.

Thanks,

-- 
 Bastien



Mastodon link type for capturing toots?

2022-06-18 Thread Christian Moe


Hi,

Has anyone written a link type for Mastodon that would allow you to
org-capture the post/status ("toot") at point?

I'm referring to mastodon.el
(https://codeberg.org/martianh/mastodon.el), which is available via
install-packages.

Yours,
Christian



Re: [PATCH] Prefer "website" to "homepage"

2022-06-18 Thread Stefan Kangas
Ihor Radchenko  writes:

> > ... Emacs was recently
> > updated to list the "URL" header comment before "Homepage".
>
> Could you please point out to the relevant discussion?

This was uncontroversial so not really discussed, but see:

https://git.savannah.gnu.org/gitweb/?p=emacs.git;a=commit;h=bcf59b99f43be4f



Re: Proposal: 'executable' org-capture-templaes

2022-06-18 Thread Max Nikulin

On 06/06/2022 06:05, Tim Cross wrote:


One very big warning I would like to raise to ensure it is taken into
consideration is accessibility. This can have two significant effects
with respect to the types of things you are doing -


Out of curiosity, you mentioned export menu. Would it help if if only 
top-level were presented at first (settings, HTML, LaTeX&PDF, ODT)? E.g. 
some custom variable would control how many options may be presented 
before hierarchical representation is activated.


For web pages I have seen recommendations to use ARIA (Web Accessibility 
Initiative – Accessible Rich Internet Applications) attributes like 
aria-role="button" or aria-ignore="true". Is there something similar in 
Emacs, e.g. text properties that helps Emacspeak to filter content and 
to "explain" its meaning?





Re: [BUG] ERR_CERT_DATE_INVALID for https://list.orgmode.org/

2022-06-18 Thread Bastien
Ihor Radchenko  writes:

> Side note: Regexp here is probably the reason why
> https://orgmode.org/list (without trailing slash) gives 404.

This should be fixed.

-- 
 Bastien



Simplified Org mode for newcomer Emacs veterans (was: Org mode and Emacs (was: Convert README.org to plain text README while installing package))

2022-06-18 Thread Ihor Radchenko
Tom Gillespie  writes:

> With regard to the key-bindings straw man. I guess I'm a bit of an
> outsider on this one, because I started writing org documents by just
> typing them in and only over time learning some of the bindings. Maybe
> having an org-markup-mode or something like that would be a way to
> provide a sandbox for the +recalcitrants+ newcomers? It might also be
> a nice way to a/b test them on whether the Emacs editing commands
> really are as good as they think they are (said the evil-mode user).

It can be either a simplified org-markup-mode or a series of minor-modes
that enable different sets of bindings. Something like:
org-structure-edit-mode, org-table-edit-mode, org-babel-edit-mode, etc

However, the tricky question is: What should be the default?

If we have org-markup-mode (disabled by default), how would the
newcomers know to enable it?

If we have the alternative set of minor modes and disable them by
default, will the existing Org mode users accept the need to adjust the
configuration?

Can we address the above concerns without dissatisfying neither the
existing Org users nor the newcomers?

Best,
Ihor



Re: [PATCH] Prefer "website" to "homepage"

2022-06-18 Thread Ihor Radchenko
Stefan Kangas  writes:

> These days, a "home page" is understood to be only "the main web page
> of a website" or "landing page", whereas a "website" is "a collection
> of web pages and related content" (Wikipedia).

Thanks for the patch!

> ... Emacs was recently
> updated to list the "URL" header comment before "Homepage".

Could you please point out to the relevant discussion?

Best,
Ihor



Re: [BUG] ERR_CERT_DATE_INVALID for https://list.orgmode.org/

2022-06-18 Thread Max Nikulin

On 18/06/2022 15:33, Bastien Guerry wrote:

Ihor Radchenko writes:

The last line rewrites requests like
   https://orgmode.org/list/875ynnojvf.fsf@localhost
to
   https://list.orgmode.org/875ynnojvf.fsf@localhost
which is supposed to be handled by the CNAME alias.

This is the configuration that used to work so far, I don't understand
why it doesn't work anymore as I didn't change anything.  Certificates
for orgmode.org and yhetil.org are OK.


orgmode.yhetil.org, list.orgmode.org and yhetil.org sites have 
independent TLS certificates each one for 1 hostname.


Unless certificate for yhetil.org is renewed, it will have the same 
problem a week later.





Re: Links to javascript-based websites from orgmode.org: Paypal and Github

2022-06-18 Thread Ihor Radchenko
Dear All,

Please drop c.bu...@posteo.jp from the CC list in the future replies. (I
am asking on behalf of c.bu...@posteo.jp)

Best,
Ihor




Re: [BUG] ERR_CERT_DATE_INVALID for https://list.orgmode.org/

2022-06-18 Thread Ihor Radchenko
Bastien Guerry  writes:

> Ihor Radchenko  writes:
>
>> Certificate for list.orgmode.org appears to be expired:
>> My browser is giving me ERR_CERT_DATE_INVALID
>
> There is a CNAME record (handled by digitalocean.com) making the
> "list.orgmode.org" domain name an alias for "orgmode.yhetil.org",
> hosted by Kyle, which works fine.
> ...
> This is the configuration that used to work so far, I don't understand
> why it doesn't work anymore as I didn't change anything.  Certificates
> for orgmode.org and yhetil.org are OK.

I am not 100% sure if it is relevant, but
https://stackoverflow.com/questions/9935229/cname-ssl-certificates
appears to say that list.orgmode.org should also have a valid
certificate.

Looking at the certificate of list.orgmode.org, I see the following:

Common Name list.orgmode.org
 ...
 Validity
 Not Before Sun, 20 Mar 2022 05:49:24 GMT
 Not After Sat, 18 Jun 2022 05:49:23 GMT
 ...
 SHA-1 7E:25:A8:B5:1A:DE:BF:67:F8:DD:22:C1:1B:E5:ED:7E:50:D0:D5:38

 Clearly, the certificate for list.orgmode.org expired today.

 Best,
 Ihor



Re: LoB elsipgantt sample input table

2022-06-18 Thread Fraga, Eric
Tim,

updated org file which invokes the code to create the GANTT chart (also
attached as a screenshot for illustration).

-- 
Eric S Fraga, @ericsfraga:matrix.org, GnuPG: 0xc89193d8fffcf67d


GANTT.org
Description: GANTT.org


Re: Creating animated gif from latex src blocks

2022-06-18 Thread Fraga, Eric
On Saturday, 18 Jun 2022 at 00:26, Edouard Debry wrote:
> As a matter of fact, you can, but I will check out the latex package you 
> mentioned
>
> "Fraga, Eric"  writes:
>
>> Check out the animate LaTeX package.  I don't believe you can create
>> such the actual animation from tikz itself.

Clarification: I believe(d) that you cannot generate an animated GIF;
animation is possible, of course.  But if you can generate an animated
GIF directly from tikz, please let me know how as it would be useful in
some cases.

Thank you,
eric

-- 
: Eric S Fraga, with org release_9.5.4-564-g811dea in Emacs 29.0.50


[PATCH] Prefer "website" to "homepage"

2022-06-18 Thread Stefan Kangas
These days, a "home page" is understood to be only "the main web page
of a website" or "landing page", whereas a "website" is "a collection
of web pages and related content" (Wikipedia).  Emacs was recently
updated to list the "URL" header comment before "Homepage".

Please see the attached patch.
From 56ffe1256c4bdcc48d465c536c5bedcdb94d341e Mon Sep 17 00:00:00 2001
From: Stefan Kangas 
Date: Sun, 26 Sep 2021 09:44:29 +0200
Subject: [PATCH] Prefer "website" to "homepage"

These days, a "home page" is understood to be only "the main web page
of a website" or "landing page", whereas a "website" is "a collection
of web pages and related content" (Wikipedia).  Emacs was recently
updated to list the "URL" header comment before "Homepage".

* README:
* README_ELPA:
* doc/org-guide.org (Creating Footnotes):
* doc/org-manual.org (Creating Footnotes):
* etc/styles/README (URL): Prefer "website" to "homepage".

* lisp/*.el:
* mk/org-fixup.el: Replace the "Homepage" header comment with "URL".
---
 README_ELPA|  2 +-
 doc/org-guide.org  |  2 +-
 doc/org-manual.org |  4 ++--
 etc/styles/README  |  2 +-
 lisp/ob-C.el   |  2 +-
 lisp/ob-R.el   |  2 +-
 lisp/ob-awk.el |  2 +-
 lisp/ob-calc.el|  2 +-
 lisp/ob-clojure.el |  2 +-
 lisp/ob-comint.el  |  2 +-
 lisp/ob-core.el|  2 +-
 lisp/ob-css.el |  2 +-
 lisp/ob-ditaa.el   |  2 +-
 lisp/ob-dot.el |  2 +-
 lisp/ob-emacs-lisp.el  |  2 +-
 lisp/ob-eshell.el  |  2 +-
 lisp/ob-eval.el|  2 +-
 lisp/ob-exp.el |  2 +-
 lisp/ob-forth.el   |  2 +-
 lisp/ob-fortran.el |  2 +-
 lisp/ob-gnuplot.el |  2 +-
 lisp/ob-groovy.el  |  2 +-
 lisp/ob-haskell.el |  2 +-
 lisp/ob-java.el|  2 +-
 lisp/ob-js.el  |  2 +-
 lisp/ob-julia.el   |  2 +-
 lisp/ob-latex.el   |  2 +-
 lisp/ob-lilypond.el|  2 +-
 lisp/ob-lisp.el|  2 +-
 lisp/ob-lob.el |  2 +-
 lisp/ob-lua.el |  2 +-
 lisp/ob-makefile.el|  2 +-
 lisp/ob-matlab.el  |  2 +-
 lisp/ob-maxima.el  |  2 +-
 lisp/ob-ocaml.el   |  2 +-
 lisp/ob-octave.el  |  2 +-
 lisp/ob-org.el |  2 +-
 lisp/ob-perl.el|  2 +-
 lisp/ob-plantuml.el|  2 +-
 lisp/ob-processing.el  |  2 +-
 lisp/ob-python.el  |  2 +-
 lisp/ob-ref.el |  2 +-
 lisp/ob-ruby.el|  2 +-
 lisp/ob-sass.el|  2 +-
 lisp/ob-scheme.el  |  2 +-
 lisp/ob-screen.el  |  2 +-
 lisp/ob-shell.el   |  2 +-
 lisp/ob-sql.el |  2 +-
 lisp/ob-sqlite.el  |  2 +-
 lisp/ob-table.el   |  2 +-
 lisp/ob-tangle.el  |  2 +-
 lisp/ob.el |  2 +-
 lisp/ol-bbdb.el|  2 +-
 lisp/ol-docview.el |  2 +-
 lisp/ol-eww.el |  2 +-
 lisp/ol-gnus.el|  2 +-
 lisp/ol-info.el|  2 +-
 lisp/ol-man.el |  2 +-
 lisp/ol-mhe.el |  2 +-
 lisp/ol-rmail.el   |  2 +-
 lisp/ol-w3m.el |  2 +-
 lisp/org-agenda.el |  2 +-
 lisp/org-archive.el|  2 +-
 lisp/org-capture.el|  2 +-
 lisp/org-clock.el  |  2 +-
 lisp/org-colview.el|  2 +-
 lisp/org-compat.el |  2 +-
 lisp/org-cycle.el  |  2 +-
 lisp/org-datetree.el   |  2 +-
 lisp/org-element.el|  2 +-
 lisp/org-entities.el   |  2 +-
 lisp/org-faces.el  |  2 +-
 lisp/org-feed.el   |  2 +-
 lisp/org-fold-core.el  |  2 +-
 lisp/org-fold.el   |  2 +-
 lisp/org-footnote.el   |  2 +-
 lisp/org-habit.el  |  2 +-
 lisp/org-id.el |  2 +-
 lisp/org-indent.el |  2 +-
 lisp/org-inlinetask.el |  2 +-
 lisp/org-list.el   |  2 +-
 lisp/org-macs.el   |  2 +-
 lisp/org-mobile.el |  2 +-
 lisp/org-pcomplete.el  |  2 +-
 lisp/org-plot.el   |  2 +-
 lisp/org-src.el|  2 +-
 lisp/org-table.el  |  2 +-
 lisp/org-tempo.el  |  2 +-
 lisp/org-timer.el  |  2 +-
 lisp/org.el| 10 +-
 lisp/ox-icalendar.el   |  2 +-
 lisp/ox-odt.el |  2 +-
 mk/org-fixup.el|  2 +-
 93 files changed, 98 insertions(+), 98 deletions(-)

diff --git a/README_ELPA b/README_ELPA
index c1ff5e282..c916fbe75 100644
--- a/README_ELPA
+++ b/README_ELPA
@@ -1,6 +1,6 @@
 This is the Emacs Org project, an Emacs library for organizing your life.
 
-The homepage of Org is at:
+The Org website is at:
   https://orgmode.org
 
 Installations instructions are at:
diff --git a/doc/org-guide.org b/doc/org-guide.org
index 4d53e4bfb..e23b2efa7 100644
--- a/doc/org-guide.org
+++ b/doc/org-guide.org
@@ -2066,7 +2066,7 @@ footnote reference is simply the marker in square brackets, inside
 text.  For example:
 
 #+begin_example
-The Org homepage[fn:1] now looks a lot better than it used to.
+The Org website[fn:1] now looks a lot better than it used to.
 ...
 [fn:1] The link is: https://orgmode.org
 #+end_example
diff --git a/doc/org-manual.org b/doc/org-manual.org
index cb2405ec7..07f151837 100644
--- a/doc/org-manual.org
+++ b/doc/org-manual.org
@@ -11346,7 +11346,7 @@ footnote reference is simply th

Re: [BUG] ERR_CERT_DATE_INVALID for https://list.orgmode.org/

2022-06-18 Thread Ihor Radchenko
Bastien Guerry  writes:

>   rewrite ^/list/(.*) https://list.orgmode.org/$1 permanent;

Side note: Regexp here is probably the reason why
https://orgmode.org/list (without trailing slash) gives 404.

Best,
Ihor
 



Re: [BUG] ERR_CERT_DATE_INVALID for https://list.orgmode.org/

2022-06-18 Thread Bastien Guerry
Ihor Radchenko  writes:

> Certificate for list.orgmode.org appears to be expired:
> My browser is giving me ERR_CERT_DATE_INVALID

There is a CNAME record (handled by digitalocean.com) making the
"list.orgmode.org" domain name an alias for "orgmode.yhetil.org",
hosted by Kyle, which works fine.

On the nginx config, there is:

  server {
  server_name orgmode.org;
  listen 443 ssl; # managed by Certbot
  ssl_certificate /etc/letsencrypt/live/xxx/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/xxx/privkey.pem;
  include /etc/letsencrypt/options-ssl-nginx.conf;
  ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
  rewrite ^/list/(.*) https://list.orgmode.org/$1 permanent;
  }
  
The last line rewrites requests like

  https://orgmode.org/list/875ynnojvf.fsf@localhost

to 

  https://list.orgmode.org/875ynnojvf.fsf@localhost 

which is supposed to be handled by the CNAME alias.

This is the configuration that used to work so far, I don't understand
why it doesn't work anymore as I didn't change anything.  Certificates
for orgmode.org and yhetil.org are OK.

Kyle, do you have any clue?

-- 
 Bastien



Re: Proposal: 'executable' org-capture-templaes

2022-06-18 Thread Ihor Radchenko
Max Nikulin  writes:

>> Note that there is not much happening when capture menu is called. Only
>> the link is stored into link ting. Otherwise, no capture data is
>> altered. All the fragile staff is happening after selecting capture
>> template.
>
> Ihor, magic is impossible. If several captures may be requested in 
> parallel then snapshot of data required to fill capture template should 
> be stored somewhere at the moment when capture is initiated. Otherwise 
> the user may kill the buffer she is going to capture before selecting 
> particular template.

Sure. That somewhere can be buffer-local variable inside the capture
menu buffer. Or global variable. Or closure. How is it relevant to the
capture menu?

Of course, using global variables will limit things to a single capture,
but it just means that if a user starts capture, leaves the capture menu
buffer, and then starts another capture, only the last capture will be
handled. Just like we have now.

Best,
Ihor



Re: Proposal: 'executable' org-capture-templaes

2022-06-18 Thread Max Nikulin

On 11/06/2022 12:26, Ihor Radchenko wrote:

Max Nikulin writes:


However if two org-protocol handlers are launched without specified
template then behavior of Org becomes confusing. I meant this case.
Currently reading key from minibuffer serves as a kind of
synchronization tool.

Imagine what would happen if Emacs decided to show several capture menus
with keymap non-blocking interface in different virtual desktops.
Capture data should be saved somewhere till the user would discover
initially hidden menu.


Note that there is not much happening when capture menu is called. Only
the link is stored into link ting. Otherwise, no capture data is
altered. All the fragile staff is happening after selecting capture
template.


Ihor, magic is impossible. If several captures may be requested in 
parallel then snapshot of data required to fill capture template should 
be stored somewhere at the moment when capture is initiated. Otherwise 
the user may kill the buffer she is going to capture before selecting 
particular template.


There are enough side band communication channels in Org. I did not 
remember a variable from which properties are obtained. Before I have 
realized that it is `org-store-link-plist', I noticed at least 
`org-overriding-default-time', `org-capture-initial'. Unsure that the 
list is complete.





Re: [PATCH] Remove XEmacs and ancient Emacs compat code

2022-06-18 Thread Ihor Radchenko
Stefan Kangas  writes:

> Ihor Radchenko  writes:
>
>> Stefan Kangas  writes:
>>
>> > The attached patch removes some compat code for XEmacs, and Emacs 21/22.
>>
>> Thanks! And sorry for the late reply.
>> The patch does not apply onto current main anymore.
>> Would you mind updating the patch?
>
> Please see the attached.

Thanks!
Applied onto main via 45174d62b.

Best,
Ihor



[BUG] ERR_CERT_DATE_INVALID for https://list.orgmode.org/

2022-06-18 Thread Ihor Radchenko
Certificate for list.orgmode.org appears to be expired:
My browser is giving me ERR_CERT_DATE_INVALID

Best,
Ihor



Re: [PATCH] Remove XEmacs and ancient Emacs compat code

2022-06-18 Thread Stefan Kangas
Ihor Radchenko  writes:

> Stefan Kangas  writes:
>
> > The attached patch removes some compat code for XEmacs, and Emacs 21/22.
>
> Thanks! And sorry for the late reply.
> The patch does not apply onto current main anymore.
> Would you mind updating the patch?

Please see the attached.
From 58a7d4275e2bdff7359ba3ac7b8d89a859d0c242 Mon Sep 17 00:00:00 2001
From: Stefan Kangas 
Date: Sun, 26 Sep 2021 21:29:25 +0200
Subject: [PATCH] Remove XEmacs and ancient Emacs compat code

* lisp/org-colview.el (org-columns-remove-overlays):
* lisp/org-ctags.el (org-ctags-find-tag-interactive):
* lisp/org-macs.el (org-fit-window-to-buffer):
* lisp/org-mouse.el (org-mouse-show-context-menu):
* lisp/org-table.el (org-table-fedit-lisp-indent):
* lisp/org.el (org-version, org-reload):
* lisp/ox-html.el (org-html-template, org-html--build-meta-info):
Remove Emacs 21 and 22 compat code.

* lisp/ol-eww.el (org-eww-copy-for-org-mode):
* lisp/ol-w3m.el (org-w3m-copy-for-org-mode):
* lisp/org-clock.el (org-clock-select-task):
* lisp/org-macs.el (org-fit-window-to-buffer):
* lisp/org-refile.el (org-refile):
* lisp/org.el (org-change-tag-in-region): Remove XEmacs compat code.

* lisp/org-goto.el (org-goto--set-map):
* lisp/org-macs.el (org-fit-window-to-buffer):
* lisp/org-table.el (orgtbl-mode):
* lisp/org.el (org-setup-filling): Remove XEmacs or Emacs 19 or 20
compat code.  (It is one of these; not clear which.)
---
 lisp/ol-eww.el   |  2 +-
 lisp/ol-w3m.el   |  2 +-
 lisp/org-clock.el|  1 -
 lisp/org-colview.el  |  3 +--
 lisp/org-ctags.el|  5 +
 lisp/org-goto.el |  6 ++
 lisp/org-macs.el | 13 ++---
 lisp/org-mouse.el|  5 +
 lisp/org-protocol.el |  1 +
 lisp/org-refile.el   |  2 +-
 lisp/org-table.el| 12 
 lisp/org.el  | 19 ---
 lisp/ox-html.el  |  3 +--
 13 files changed, 28 insertions(+), 46 deletions(-)

diff --git a/lisp/ol-eww.el b/lisp/ol-eww.el
index 23ba8b377..722e2c716 100644
--- a/lisp/ol-eww.el
+++ b/lisp/ol-eww.el
@@ -107,7 +107,7 @@ keep the structure of the Org file."
   (setq transform-start (region-beginning))
   (setq transform-end (region-end))
   ;; Deactivate mark if current mark is activate.
-  (when (fboundp 'deactivate-mark) (deactivate-mark)))
+  (deactivate-mark))
 (message "Transforming links...")
 (save-excursion
   (goto-char transform-start)
diff --git a/lisp/ol-w3m.el b/lisp/ol-w3m.el
index 517329889..80d6811a5 100644
--- a/lisp/ol-w3m.el
+++ b/lisp/ol-w3m.el
@@ -72,7 +72,7 @@ so that it can be yanked into an Org  buffer with links working correctly."
   (setq transform-start (region-beginning))
   (setq transform-end (region-end))
   ;; Deactivate mark if current mark is activate.
-  (when (fboundp 'deactivate-mark) (deactivate-mark)))
+  (deactivate-mark))
 (message "Transforming links...")
 (save-excursion
   (goto-char transform-start)
diff --git a/lisp/org-clock.el b/lisp/org-clock.el
index b94c79baa..fbbda3b47 100644
--- a/lisp/org-clock.el
+++ b/lisp/org-clock.el
@@ -661,7 +661,6 @@ there is no recent clock to choose from."
 		 (if (< i 10)
 			 (+ i ?0)
 		   (+ i (- ?A 10))) m))
-	(if (fboundp 'int-to-char) (setf (car s) (int-to-char (car s
 	(push s sel-list)))
 	(run-hooks 'org-clock-before-select-task-hook)
 	(goto-char (point-min))
diff --git a/lisp/org-colview.el b/lisp/org-colview.el
index c8443c135..ca64b11aa 100644
--- a/lisp/org-colview.el
+++ b/lisp/org-colview.el
@@ -513,8 +513,7 @@ for the duration of the command.")
 (defun org-columns-remove-overlays ()
   "Remove all currently active column overlays."
   (interactive)
-  (when (and (fboundp 'face-remap-remove-relative)
-	 org-columns-header-line-remap)
+  (when org-columns-header-line-remap
 (face-remap-remove-relative org-columns-header-line-remap)
 (setq org-columns-header-line-remap nil))
   (when org-columns-overlays
diff --git a/lisp/org-ctags.el b/lisp/org-ctags.el
index 59a08d0b5..ccc2dfa22 100644
--- a/lisp/org-ctags.el
+++ b/lisp/org-ctags.el
@@ -509,10 +509,7 @@ Uses `ido-mode' if available.
 If the user enters a string that does not match an existing tag, create
 a new topic."
   (interactive)
-  (let* ((completing-read-fn (if (fboundp 'ido-completing-read)
- 'ido-completing-read
-   'completing-read))
- (tag (funcall completing-read-fn "Topic: " org-ctags-tag-list
+  (let* ((tag (ido-completing-read "Topic: " org-ctags-tag-list
nil 'confirm nil 'org-ctags-find-tag-history)))
 (when tag
   (cond
diff --git a/lisp/org-goto.el b/lisp/org-goto.el
index cd537..6162b7dde 100644
--- a/lisp/org-goto.el
+++ b/lisp/org-goto.el
@@ -110,10 +110,8 @@ When nil, you can use these keybindings to navigate the buffer:
 	  (org-defkey map [(down)] 'outline-next-visible-heading)
 	  (org-defkey map [(up)] 'outline-previous-visible-heading)
 	  (if o