Re: [PATCH worg 0/2] Cleanup of LoB file
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"
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?)
> 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?)
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
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?)
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
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))
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
"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
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
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
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
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/
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/
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
~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?
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"
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
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/
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))
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"
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/
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
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/
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
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
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"
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/
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/
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
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
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
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/
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
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