* Problems with C-c C-e file.org @ 2022-12-17 20:57 andre duarte bueno 2022-12-18 14:55 ` Ihor Radchenko 2022-12-20 16:56 ` Problems with C-c C-e file.org Jean Louis 0 siblings, 2 replies; 43+ messages in thread From: andre duarte bueno @ 2022-12-17 20:57 UTC (permalink / raw) To: emacs-orgmode, André Duarte Bueno [-- Attachment #1: Type: text/plain, Size: 1160 bytes --] When I try to export file.org using C-c C-e the window with the list of possibilities appears. But it appears incomplete(visualization), so I try to use the mouse to view the other export options and the system is completely blocked. Every mouse click is captured and displayed in the command window. And it doesn't allow you to do anything else. I am forced to cancel the command without completing it. Apparently C-c C-e is capturing all events and not just keyboard events! *André Duarte Bueno* *Professor Associado LENEP/CCT/UENF* *Chefe Setor Modelagem Matemática e Computacional* *UENF* - Universidade Estadual do Norte Fluminense - Darcy Ribeiro *CCT* - Centro de Ciências e Tecnologias *LENEP* - Laboratório de Engenharia e Exploração de Petróleo Rodovia Amaral Peixoto, km 163, Avenida Brenand S/N CEP: 27925-310 - Imboassica - Macaé - RJ - Brasil Fone: +55 (22) 2765-6500 geral / *(22) 2765-6563 *sala / (22) 99954-2635 cel Fax: +55 (22) 2765-6565 e-mail: <andreduartebueno@gmail.com> e-mail institucional: <bueno@lenep.uenf.br> Site do Professor: https://sites.google.com/view/professorandreduartebueno/ [-- Attachment #2: Type: text/html, Size: 1654 bytes --] ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Problems with C-c C-e file.org 2022-12-17 20:57 Problems with C-c C-e file.org andre duarte bueno @ 2022-12-18 14:55 ` Ihor Radchenko 2022-12-19 21:10 ` Export Org with Org concept -- Re: Problems with C-c C-e file.org, Jean Louis 2022-12-20 16:56 ` Problems with C-c C-e file.org Jean Louis 1 sibling, 1 reply; 43+ messages in thread From: Ihor Radchenko @ 2022-12-18 14:55 UTC (permalink / raw) To: andre duarte bueno; +Cc: emacs-orgmode andre duarte bueno <bueno@lenep.uenf.br> writes: > When I try to export file.org using C-c C-e the window with the list of > possibilities appears. But it appears incomplete(visualization), so I try > to use the mouse to view the other export options and the system is > completely blocked. Every mouse click is captured and displayed in the > command window. And it doesn't allow you to do anything else. I am forced > to cancel the command without completing it. > Apparently C-c C-e is capturing all events and not just keyboard events! This is because we use `read-char-exclusive'. Another option could be `read-char', but that would make clicking work as C-g. Alternative menu designs have been discussed in https://list.orgmode.org/orgmode/AM9PR09MB497743D21FA1C908392413F496D99@AM9PR09MB4977.eurprd09.prod.outlook.com/ ... but they are not easy to implement. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 43+ messages in thread
* Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2022-12-18 14:55 ` Ihor Radchenko @ 2022-12-19 21:10 ` Jean Louis 2022-12-25 12:06 ` Ihor Radchenko 2022-12-31 1:08 ` Eduardo Ochs 0 siblings, 2 replies; 43+ messages in thread From: Jean Louis @ 2022-12-19 21:10 UTC (permalink / raw) To: Ihor Radchenko; +Cc: andre duarte bueno, emacs-orgmode * Ihor Radchenko <yantar92@posteo.net> [2022-12-18 17:57]: > andre duarte bueno <bueno@lenep.uenf.br> writes: > > > When I try to export file.org using C-c C-e the window with the list of > > possibilities appears. But it appears incomplete(visualization), so I try > > to use the mouse to view the other export options and the system is > > completely blocked. Every mouse click is captured and displayed in the > > command window. And it doesn't allow you to do anything else. I am forced > > to cancel the command without completing it. > > Apparently C-c C-e is capturing all events and not just keyboard > > events! That is not first complaint, right? I would say it is obvious that such interface is not user friendly. > This is because we use `read-char-exclusive'. Don't use what is blocking Emacs. Apart from Org mode I have never seen a package that blocks Emacs that I cannot even inspect keys. > Alternative menu designs have been discussed in > https://list.orgmode.org/orgmode/AM9PR09MB497743D21FA1C908392413F496D99@AM9PR09MB4977.eurprd09.prod.outlook.com/ I did not find anything on that link. You have the Org menu, right? You can export it from menu, it could be so simple. Here is the concept of using Org similar buffers to export Org buffers: GNU Emacs package: rcd-org-export.el -- use Org to export Org: https://gnu.support/gnu-emacs/packages/GNU-Emacs-package-rcd-org-export-el-use-Org-to-export-Org-76272.html It is made for you, as concept, as I have already mentioned the concept before months. In general, this is Org mode, so why not use Org mode to export Org mode? See the video demonstration: https://gnu.support/files/emacs/packages/rcd-org-export/2022-12-19-23:36:10.ogv Package is made for you Ihor, as a concept of non-blocking export, it is not functional. You can now make automatic discovery of export packages and implement it in Org if you wish. As if not, I am sure that I can finish it and have that export working well for my export backends. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/ ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2022-12-19 21:10 ` Export Org with Org concept -- Re: Problems with C-c C-e file.org, Jean Louis @ 2022-12-25 12:06 ` Ihor Radchenko 2022-12-25 15:43 ` Jean Louis 2022-12-31 1:08 ` Eduardo Ochs 1 sibling, 1 reply; 43+ messages in thread From: Ihor Radchenko @ 2022-12-25 12:06 UTC (permalink / raw) To: Jean Louis; +Cc: andre duarte bueno, emacs-orgmode Jean Louis <bugs@gnu.support> writes: >> > Apparently C-c C-e is capturing all events and not just keyboard >> > events! > > That is not first complaint, right? I would say it is obvious that > such interface is not user friendly. Yes and no. Some users do not like it. Some users prefer the existing one. Conclusion: even if we implement something better, it should be backwards compatible. >> This is because we use `read-char-exclusive'. > > Don't use what is blocking Emacs. Apart from Org mode I have never > seen a package that blocks Emacs that I cannot even inspect keys. gnus, reftex, ediff. (I do not mean that we should not improve Org in this regard) >> Alternative menu designs have been discussed in >> https://list.orgmode.org/orgmode/AM9PR09MB497743D21FA1C908392413F496D99@AM9PR09MB4977.eurprd09.prod.outlook.com/ > > I did not find anything on that link. There is code prototype down in the thread. https://list.orgmode.org/orgmode/AM9PR09MB49770F57F33859770649C7C896AF9@AM9PR09MB4977.eurprd09.prod.outlook.com/ > Here is the concept of using Org similar buffers to export Org > buffers: > > GNU Emacs package: rcd-org-export.el -- use Org to export Org: > https://gnu.support/gnu-emacs/packages/GNU-Emacs-package-rcd-org-export-el-use-Org-to-export-Org-76272.html > > It is made for you, as concept, as I have already mentioned the > concept before months. > > In general, this is Org mode, so why not use Org mode to export Org > mode? > > See the video demonstration: > > https://gnu.support/files/emacs/packages/rcd-org-export/2022-12-19-23:36:10.ogv Thanks for the effort, but I'm afraid that it is not something we want in Org core from maintenance perspective. Would be welcome as a third-party package though. Why: 1. Your package is introducing a new formatting for menus and new interaction paradigm. This is not backwards-compatible. If we add the package like yours into Org core, it will mean maintaining yet another piece of menu code in Org. Org is already huge and maintaining a separate menu package _in addition_ to all the existing staff is not a good idea. 2. We are moving towards removing menu-specific code from Org in general in favour of the existing menu frameworks. In particular, we plan to change Org menus to use transient. See https://orgmode.org/list/8c364693bf6856e60cdd3e8b63ab0c9284d16733.camel@heagren.com Note that transient allows menu buffer navigation (C-s) 3. Ideally, we should also adopt the existing menu layouts using transient. If not possible, we should consolidate the menu code into a separate simple library. Something just enough to replicate the existing functionality. With minimal maintenance. The thread I linked is one of such efforts. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2022-12-25 12:06 ` Ihor Radchenko @ 2022-12-25 15:43 ` Jean Louis 2022-12-26 10:04 ` Ihor Radchenko 0 siblings, 1 reply; 43+ messages in thread From: Jean Louis @ 2022-12-25 15:43 UTC (permalink / raw) To: Ihor Radchenko; +Cc: andre duarte bueno, emacs-orgmode * Ihor Radchenko <yantar92@posteo.net> [2022-12-25 15:07]: > Jean Louis <bugs@gnu.support> writes: > > >> > Apparently C-c C-e is capturing all events and not just keyboard > >> > events! > > > > That is not first complaint, right? I would say it is obvious that > > such interface is not user friendly. > > Yes and no. Some users do not like it. Some users prefer the existing > one. Conclusion: even if we implement something better, it should be > backwards compatible. Remember, one cannot prefer something without having a choice! User preferring existing functions have basically more or less how many choices? One. So that is why they "prefer" it. QUESTION: You said that improvement to Org should be backwards compatible, but what exactly and specifically you mean in this case? The solution I have offered to you is the concept. Not the package. In that concept, by observing the code, you could see that it is possible: - to setup key bindings to emulate what org-export-dispatch does; it is up to you to set the key bindings to make it "backwards" compatible, and finally, (QUESTION) why should a new improvement to interface be backwards compatible? The underlying functions should be backwards compatible. - that it is possible to turn on/off necessary variables for export by single key or by mouse clicks or using cursor and ENTER; now if you wish to keep it "backwards compatible" use those IMHO complicated key bindings such as C-b C-s C-a, etc. - interface does NOT block Emacs and buffer can remain for as long until it is invoked new time. User can freely keep the Org Export Dispatch buffer on screen and keep exporting various versions in the breeze. Any key may be inspected. User may switch to other buffers and come back what one cannot do with org-export-dispatch interface. So what exactly has to be backwards compatiable? Is there anything you think it can't be made backwards compatible? > >> This is because we use `read-char-exclusive'. > > > > Don't use what is blocking Emacs. Apart from Org mode I have never > > seen a package that blocks Emacs that I cannot even inspect keys. > > gnus, reftex, ediff. > (I do not mean that we should not improve Org in this regard) gnus -- does not have that function inside, but how I remember me of using Gnus, it never blocked the Emacs user interface, anything I used allowed me to switch to other buffers. Thus I cannot see the similarity to blocking user-unfriendly org-export-dispatch interface. reftex -- function is inside, but when invoked it does not block the Emacs user interface. I cannot see similarity to the blocking Org Export interface. ediff -- function `read-char-exclusive' is not inside and I have options which I can use without Emacs being blocked. I can switch from frame to frame, I can inspect every key. 😎 Sorry, but none of your examples is equivalent to blocking Org dispatch or Org agenda. The concept offered to you from my side is equivalent to ediff concept of using keys which is: 1. make a new derived mode (for any kind of mode) 2. define keys in that derived mode 3. remember which buffer is to be exported by using local variables 4. display options menu for Org Export export, to switch or toggle global variables in the buffer itself, which are necessary to modify exporting functions 5. use mouse, and ENTER, SPC, whatever keys you wish to choose options and make it freely backwards compatible 6. Help Emacs user not to get blocked while Emacs is waiting for keys. User shall be in control and be able to inspect keys and switch from buffer to buffer even during the exporting. To help Emacs user be able to get "out of Org Export" is important as export deals with files, and files need be inspected. It is so much faster to export Org file by using RCD Org Export than by common interface. Using `ediff' interface is the same concept, it is non-blocking, user-liberating concept, which is taken for granted in Emacs, but disabled in Org Export and Org Agenda, and where else. > There is code prototype down in the thread. > https://list.orgmode.org/orgmode/AM9PR09MB49770F57F33859770649C7C896AF9@AM9PR09MB4977.eurprd09.prod.outlook.com/ I have downloaded org-select.el and tried demo1, demo2, demo3, and that is what we are talking about. It does the job well. I would just not use text mode but for Org export I would use Org mode as that is what users of Org are used to. > > Here is the concept of using Org similar buffers to export Org > > buffers: > > > > GNU Emacs package: rcd-org-export.el -- use Org to export Org: > > https://gnu.support/gnu-emacs/packages/GNU-Emacs-package-rcd-org-export-el-use-Org-to-export-Org-76272.html > > > > It is made for you, as concept, as I have already mentioned the > > concept before months. > > > > In general, this is Org mode, so why not use Org mode to export Org > > mode? > > > > See the video demonstration: > > > > https://gnu.support/files/emacs/packages/rcd-org-export/2022-12-19-23:36:10.ogv > > Thanks for the effort, but I'm afraid that it is not something we > want in Org core from maintenance perspective. Would be welcome as a > third-party package though. If you are the one among few responsible to modify Org and figure out how and where to modify it, then I understand it is large burden on you. Instead of talking of the burden, why not tackle accessibility and then let other people tell about needed accessibility (they tell but due to burden is difficult to follow) and make it so that it is non-blocking interface. > Why: > > 1. Your package is introducing a new formatting for menus and new > interaction paradigm. This is not backwards-compatible. The concept of non-blocking interface was obviously offered by Arthur Miller and now by me. Formatting is not important, format it as you wish. Myself I prefer it formatted in Org style as it is Org Export and using Org buffers as menus is just fine. There is no "new" interaction paradigm in using "keys" or "mouse". That is Emacs built-in way of doing things. Almost 11 years ago, January 5th 2012, Nicolas Goaziou added those new functions like org-export-dispatch how I see it in the commit aeb1ee1c662cd2243c17cc99f6205a15fb3d9283. For 11 years Org Mode remained same, using blocking Org Export functions. No mouse? One cannot even switch buffer? Strange and weird to me. When user comes complaining think that there are other 100 users complaining. With the publicly expressed attitude "it is burden for us" -- of course people will not even complain. My suggestion: involve more people into development. > If we add the package like yours into Org core, it will mean > maintaining yet another piece of menu code in Org. That was not my suggestion, but that you adopt the concept. Arthur Miller gave you enough clues. You mentioned ediff, those are concepts. The core concept that is missing in Org Export and Agenda is following: 1. Make it non-blocking, so that user can switch from buffer to buffer how one wants. This includes inspecting keys, functions, etc. You tear down the "self-documenting" part of Emacs if you disallow me as user to inspect keys. 2. Make interface stay there in existence as buffer which remembers which buffer is to be exported, until quit or kill. This is useful because it is non-repetitive. There are no I guess already more than hundred of different Org exports. Let us use standard interface in Emacs, which is "keys" on keyboard, arrow keys, movements, mouse, SPC, RET, etc. This will minimize your burden because you do not need to demand from package developers to include new key bindings for their exports or to figure out yourself which key for which export function. You do not need any key, you have Emacs buttons, or Org links, let users use Org to export Org. Click or invoke the button. 3. Allow using mouse to activate links. Doug Engelbart would turn around in his grave watching how mouse compatible Emacs interface cannot use mouse. > Org is already huge and maintaining a separate menu package _in > addition_ to all the pp existing staff is not a good idea. Then make it smaller by utilizing smarter methods. > 2. We are moving towards removing menu-specific code from Org in general > in favour of the existing menu frameworks. In particular, we plan to > change Org menus to use transient. See > https://orgmfode.org/list/8c364693bf6856e60cdd3e8b63ab0c9284d16733.camel@heagren.com > > Note that transient allows menu buffer navigation (C-s) We were speaking of "backwards compatible" and now I hear how menu-specific code is to be replaced by menu framework. Sorry, but I am getting confused. Though it is very good proposal to switch to user friendly interface. I hope that one can inspect keys, switch buffers, and remain in freedom as user. > 3. Ideally, we should also adopt the existing menu layouts using > transient. If not possible, we should consolidate the menu code into > a separate simple library. Something just enough to replicate the > existing functionality. With minimal maintenance. The thread I linked > is one of such efforts. The next day I figured out that I will need functionality many times, so here is the RCD Dashboard that has features to toggle global variables by using mouse and keys. GNU Emacs package: rcd-dashboard.el -- Tool to build Emacs dashboards: https://gnu.support/gnu-emacs/packages/GNU-Emacs-package-rcd-dashboard-el-Tool-to-build-Emacs-dashboards-76668.html and here is the RCD Org Agenda Dashboard built with it: GNU Emacs package: rcd-org-agenda-dashboard.el -- RCD Org Agenda Dashboard: https://gnu.support/gnu-emacs/packages/GNU-Emacs-package-rcd-org-agenda-dashboard-el-RCD-Org-Agenda-Dashboard-76669.html all based on the concept from: GNU Emacs package: rcd-org-export.el -- use Org to export Org: https://gnu.support/gnu-emacs/packages/GNU-Emacs-package-rcd-org-export-el-use-Org-to-export-Org-76272.html and for next 10 years of Org accessibility, good reference about user interface designs: Humanize accessibility | UX design | Accessibility for Teams: https://accessibility.digital.gov/ux/humanize-accessibility/ -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/ ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2022-12-25 15:43 ` Jean Louis @ 2022-12-26 10:04 ` Ihor Radchenko 2022-12-26 15:58 ` Jean Louis 0 siblings, 1 reply; 43+ messages in thread From: Ihor Radchenko @ 2022-12-26 10:04 UTC (permalink / raw) To: Jean Louis; +Cc: andre duarte bueno, emacs-orgmode Jean Louis <bugs@gnu.support> writes: >> > That is not first complaint, right? I would say it is obvious that >> > such interface is not user friendly. >> >> Yes and no. Some users do not like it. Some users prefer the existing >> one. Conclusion: even if we implement something better, it should be >> backwards compatible. > > Remember, one cannot prefer something without having a choice! > > User preferring existing functions have basically more or less how > many choices? One. So that is why they "prefer" it. I vaguely recall some people voicing against new menu frameworks in the past. That's why I said that some people prefer the existing one. In any case, breaking the way existing menu works is not something we can do without proposing a fallback. https://bzg.fr/en/the-software-maintainers-pledge/ > QUESTION: You said that improvement to Org should be backwards > compatible, but what exactly and specifically you mean in this case? It means that we need to either keep the old menu code around and provide an option to switch to it, or, better, implement the new menu code in such a way that it does not change the current menu layouts and bindings. > The solution I have offered to you is the concept. Not the package. > In that concept, by observing the code, you could see that it is > possible: > ... > So what exactly has to be backwards compatiable? > Is there anything you think it can't be made backwards compatible? Layout mostly. I do not think that you can re-create the existing menu layout if you use Org buffer as menu. >> >> This is because we use `read-char-exclusive'. >> > >> > Don't use what is blocking Emacs. Apart from Org mode I have never >> > seen a package that blocks Emacs that I cannot even inspect keys. >> >> gnus, reftex, ediff. >> (I do not mean that we should not improve Org in this regard) > > gnus -- does not have that function inside, but how I remember me of > using Gnus, it never blocked the Emacs user interface, anything I used > allowed me to switch to other buffers. Thus I cannot see the > similarity to blocking user-unfriendly org-export-dispatch interface. > > reftex -- function is inside, but when invoked it does not block the > Emacs user interface. I cannot see similarity to the blocking Org > Export interface. > > ediff -- function `read-char-exclusive' is not inside and I have > options which I can use without Emacs being blocked. I can switch from > frame to frame, I can inspect every key. I found these packages by searching the latest Emacs master. read-char-exclusive is inside all of them. In any case, I do not see much point arguing about this. As I said, I am not against improving the menus in principle. We just have constrains on how we can improve the existing menus. >> There is code prototype down in the thread. >> https://list.orgmode.org/orgmode/AM9PR09MB49770F57F33859770649C7C896AF9@AM9PR09MB4977.eurprd09.prod.outlook.com/ > > I have downloaded org-select.el and tried demo1, demo2, demo3, and > that is what we are talking about. It does the job well. Yup. The discussion hanged at trying to write the existing menus with that package. If someone™ volunteers to finish that part, it will be welcome. >> Thanks for the effort, but I'm afraid that it is not something we >> want in Org core from maintenance perspective. Would be welcome as a >> third-party package though. > > If you are the one among few responsible to modify Org and figure out > how and where to modify it, then I understand it is large burden on > you. > > Instead of talking of the burden, why not tackle accessibility and > then let other people tell about needed accessibility (they tell but > due to burden is difficult to follow) and make it so that it is > non-blocking interface. Can you please elaborate on the second paragraph? I feel that I am missing the point you wanted to explain there. >> 1. Your package is introducing a new formatting for menus and new >> interaction paradigm. This is not backwards-compatible. > > The concept of non-blocking interface was obviously offered by Arthur > Miller and now by me. In the video, you are using Org mode commands inside menu, which is a new concept for me. > Almost 11 years ago, January 5th 2012, Nicolas Goaziou added those new > functions like org-export-dispatch how I see it in the commit > aeb1ee1c662cd2243c17cc99f6205a15fb3d9283. > > For 11 years Org Mode remained same, using blocking Org Export > functions. > > No mouse? One cannot even switch buffer? > > Strange and weird to me. > > When user comes complaining think that there are other 100 users > complaining. I did not say that your concern is not a valid concern. I only objected the concrete concept prototype you provided. As I said, the ideal would be using transient for menus. > With the publicly expressed attitude "it is burden for us" -- of > course people will not even complain. I think you get me wrongly. "It is a burden" also refers to "lets not complicate Org code even further". Implementing and maintaining non-trivial menu backends is not something that should be a part of Org, if we have choice. Regardless how many code contributors Org has. So, moving in the direction of having _more_ menu backends as part of Org is not a good idea. > My suggestion: involve more people into development. Volunteers welcome! We don't have a magic want to involve more people. Just trying to do our best to help the new contributors. >> Org is already huge and maintaining a separate menu package _in >> addition_ to all the pp existing staff is not a good idea. > > Then make it smaller by utilizing smarter methods. Patches welcome! Please remember that Org is actively developed by a handful of active contributors. In the last 3 years, >100 commits are just from me, Bastien, Nicolas, Kyle, and Timothy. Refactoring menus has been in my todo list for a while, but it is not the top-priority item for me, for example. Timothy had some plans to implement transient support, but our time is not infinite. >> 2. We are moving towards removing menu-specific code from Org in general >> in favour of the existing menu frameworks. In particular, we plan to >> change Org menus to use transient. See >> https://orgmfode.org/list/8c364693bf6856e60cdd3e8b63ab0c9284d16733.camel@heagren.com >> >> Note that transient allows menu buffer navigation (C-s) > > We were speaking of "backwards compatible" and now I hear how > menu-specific code is to be replaced by menu framework. Sorry, but I > am getting confused. Transient interaction model is the same with the existing Org menus: a buffer is displayed explaining different options and user can toggle various options before the main command is executed. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2022-12-26 10:04 ` Ihor Radchenko @ 2022-12-26 15:58 ` Jean Louis 2022-12-27 10:46 ` Ihor Radchenko 0 siblings, 1 reply; 43+ messages in thread From: Jean Louis @ 2022-12-26 15:58 UTC (permalink / raw) To: Ihor Radchenko; +Cc: andre duarte bueno, emacs-orgmode * Ihor Radchenko <yantar92@posteo.net> [2022-12-26 13:05]: > In any case, breaking the way existing menu works is not something we > can do without proposing a fallback. > https://bzg.fr/en/the-software-maintainers-pledge/ I have never said anything about "breaking the way existing menu works". The concept offered does not "break anything". If you mean key bindings, then retain key bindings. That is a choice. That was not part of the concept. I have defined the concept well and expressed me clear with points one by one. If you mean formatting of the text, how it looks like, then retain formatting of text. That is choice. That is not part of the offered concept. The concept is about usability related to non-blocking interface and mouse usage, speed and easy, and not about changing keybindings or formatting of text. > > QUESTION: You said that improvement to Org should be backwards > > compatible, but what exactly and specifically you mean in this case? > > It means that we need to either keep the old menu code around and > provide an option to switch to it, or, better, implement the new menu > code in such a way that it does not change the current menu layouts and > bindings. Good that you say that. I never talked about changing key bindings and menu layout, so that is something you may keep. > > The solution I have offered to you is the concept. Not the package. > > > In that concept, by observing the code, you could see that it is > > possible: > > ... > > So what exactly has to be backwards compatiable? > > Is there anything you think it can't be made backwards compatible? > > Layout mostly. > I do not think that you can re-create the existing menu layout if you > use Org buffer as menu. I can do, I see no problem there. What changes is that the menu would become liberated, non-blocking, and that user may use mouse to turn off/on the necessary options, and may move away from the Org Export buffer to other buffers and come back, no need to re-invoke and re-invoke the export buffer over and over again. It can remain on left side, right side, and by using mouse or keys it can export so many times faster than the existing ordinary org dispatch interface. So I guess we have misunderstanding, you think of layout and key bindings, and me I think of non-blocking interface. QUESTION: Should I now add the ordinary layout and keybindings and show you how it works? From your side I expect that you tell me how do you use Org functions to discover new exports as to see how to automatically include such. > > ediff -- function `read-char-exclusive' is not inside and I have > > options which I can use without Emacs being blocked. I can switch from > > frame to frame, I can inspect every key. > > I found these packages by searching the latest Emacs master. > read-char-exclusive is inside all of them. OK, but it is not related to the problem explained by original poster, and that was explained by me in past. DEFINITION OF PROBLEM: Problem is related to blocking interface and lack of usability: user cannot use keys to freely move inside of buffer and select options, cannot switch buffers, need to re-invoke the org export dispatcher each time for each export, and cannot use mouse. > In any case, I do not see much point arguing about this. > As I said, I am not against improving the menus in principle. We just > have constrains on how we can improve the existing menus. You have defined constraints to be the formatting (layout) and key bindings. Is there anything else? I believe there is something in org that recognizes various export options and implements menu, is it? > > Instead of talking of the burden, why not tackle accessibility and > > then let other people tell about needed accessibility (they tell but > > due to burden is difficult to follow) and make it so that it is > > non-blocking interface. > > Can you please elaborate on the second paragraph? I feel that I am > missing the point you wanted to explain there. You may read the original post about the lack of usability (this is correct word I wanted to use instead of accessibility). You should not by using "burden" prevent people to freely say what they think about usability. And problems of maintenance are there many, I am sure, and it takes your time -- but such problems need not be expressed on this list for purpose not to prevent people reporting and improving Org. Person working in significant position in university complained about it. I am confident that professor has reason related to usability and that is what has to be discussed. Subject of discussion is not the burden in maintenance, make it different thread and ask people to contribute and delegate your tasks to other contributors. Promote contributing widely over website. The actual problem is there at hand, it is well defined. > >> 1. Your package is introducing a new formatting for menus and new > >> interaction paradigm. This is not backwards-compatible. > > > > The concept of non-blocking interface was obviously offered by Arthur > > Miller and now by me. > > In the video, you are using Org mode commands inside menu, which is a > new concept for me. I can't understand what you mean. Which Org mode command do you mean? Is it on this first video: https://gnu.support/files/emacs/packages/rcd-org-export/2022-12-19-23:36:10.ogv or on this second one: https://gnu.support/files/emacs/packages/rcd-org-export/2022-12-20-19:33:59.ogv I made peculiar way to use Emacs buttons in Org derived mode, so you can click by mouse or ENTER, I could add SPACE, and one can fold options, also turn on/off global variables before export. Regarding formatting: I don't think that formatting and layouts were pretty dependant on the interface in the manner how it began in past, and then programmers kept using that concept for the sake of the interface, not for sake of users. If you are bound to foundation lacking usability, of course programmers must stick to that foundation. However, that does not help users become swift in exporting. And thus it is not bad to escape the formatting for something better. > I did not say that your concern is not a valid concern. > I only objected the concrete concept prototype you provided. > As I said, the ideal would be using transient for menus. Obviously there is misunderstanding. It was said how it works. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/ ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2022-12-26 15:58 ` Jean Louis @ 2022-12-27 10:46 ` Ihor Radchenko 0 siblings, 0 replies; 43+ messages in thread From: Ihor Radchenko @ 2022-12-27 10:46 UTC (permalink / raw) To: Jean Louis; +Cc: andre duarte bueno, emacs-orgmode Jean Louis <bugs@gnu.support> writes: > If you mean formatting of the text, how it looks like, then retain > formatting of text. That is choice. That is not part of the offered > concept. Yes, that's what I was referring to. I am not against non-blocking interface per se. > QUESTION: Should I now add the ordinary layout and keybindings and > show you how it works? It will be a good first step forward, yes. If we move in this direction, we will need to find some way to replace all the menus, like agenda menu, attach menu, clock menu, capture menu, export menu, tag menu, etc. We have one shared interface in `org-mks', which might be tweaked a starting point. > From your side I expect that you tell me how do you use Org functions > to discover new exports as to see how to automatically include such. For export menu, the relevant function is `org-export--dispatch-ui'. > You have defined constraints to be the formatting (layout) and key > bindings. > > Is there anything else? I don't think so. The basic idea is to not break workflows that worked in the past. > I believe there is something in org that recognizes various export > options and implements menu, is it? Mostly a collection of ad-hoc code all across Org. See the above. >> In the video, you are using Org mode commands inside menu, which is a >> new concept for me. > > I can't understand what you mean. Which Org mode command do you mean? > > Is it on this first video: > https://gnu.support/files/emacs/packages/rcd-org-export/2022-12-19-23:36:10.ogv Here. <RET> on the menus toggling the checklist. The approach used in the existing menus is entering a dedicated key or key sequence to select/unselect options. > Regarding formatting: I don't think that formatting and layouts were > pretty dependant on the interface in the manner how it began in past, > and then programmers kept using that concept for the sake of the > interface, not for sake of users. If you are bound to foundation > lacking usability, of course programmers must stick to that > foundation. However, that does not help users become swift in > exporting. And thus it is not bad to escape the formatting for > something better. You may be right, but, as stated in the article I referenced, "I won't lecture you [the user] on why the new experience is better." If you think that we need to throw that existing approach away completely and use the one you proposed, I'd suggest implementing the better menu framework as independent package instead, allow plugging it into Org, and then maybe switch to it in future if many users use the alternative framework instead of the default one. Combining the two is better though. IMHO. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2022-12-19 21:10 ` Export Org with Org concept -- Re: Problems with C-c C-e file.org, Jean Louis 2022-12-25 12:06 ` Ihor Radchenko @ 2022-12-31 1:08 ` Eduardo Ochs 2022-12-31 6:19 ` Jean Louis 2023-01-01 14:02 ` Ihor Radchenko 1 sibling, 2 replies; 43+ messages in thread From: Eduardo Ochs @ 2022-12-31 1:08 UTC (permalink / raw) To: Ihor Radchenko, andre duarte bueno, emacs-orgmode On Mon, 19 Dec 2022 at 18:13, Jean Louis <bugs@gnu.support> wrote: > > * Ihor Radchenko <yantar92@posteo.net> [2022-12-18 17:57]: > > andre duarte bueno <bueno@lenep.uenf.br> writes: > > > > > When I try to export file.org using C-c C-e the window with the list of > > > possibilities appears. But it appears incomplete(visualization), so I try > > > to use the mouse to view the other export options and the system is > > > completely blocked. Every mouse click is captured and displayed in the > > > command window. And it doesn't allow you to do anything else. I am forced > > > to cancel the command without completing it. > > > Apparently C-c C-e is capturing all events and not just keyboard > > > events! > > That is not first complaint, right? I would say it is obvious that > such interface is not user friendly. > > > This is because we use `read-char-exclusive'. > > Don't use what is blocking Emacs. Apart from Org mode I have never > seen a package that blocks Emacs that I cannot even inspect keys. Hi Jean Louis, did you solve your problem? Did you find a way to replace the blocking code by something else? I stumbled on exactly the same problem some months ago, and it drove me nuts: https://lists.gnu.org/archive/html/emacs-orgmode/2021-12/msg00674.html Edrx 1 https://lists.gnu.org/archive/html/emacs-orgmode/2022-02/msg00098.html Ihor 2 https://lists.gnu.org/archive/html/emacs-orgmode/2022-02/msg00106.html Edrx 3 https://lists.gnu.org/archive/html/emacs-orgmode/2022-02/msg00111.html Ihor 4 http://angg.twu.net/e/org.e.html#org-export-dispatch My conclusion was that Org is much harder to learn than I thought. It's easy to learn if: 1) you're a "user", or 2) you know a lot about debugging Emacs, or 3) the developers like your questions. My holidays have just started, and I'm planning to work on (2). Btw, at some point I gave up trying to find the functions that the dispatcher calls, and I just defined this "function with a very short name" that [c]ompiles the current .org file to HTML: (defun c () (interactive) (eek "C-c C-e h h")) Refs: (find-eev-quick-intro "3. Elisp hyperlinks" "eek") (find-eev-quick-intro "7.4. Commands with very short names") http://angg.twu.net/eev-intros/find-eev-quick-intro.html#3 http://angg.twu.net/eev-intros/find-eev-quick-intro.html#7.4 Cheers, Eduardo Ochs http://angg.twu.net/eepitch.html http://angg.twu.net/2021-org-for-non-users.html ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2022-12-31 1:08 ` Eduardo Ochs @ 2022-12-31 6:19 ` Jean Louis 2023-01-01 14:02 ` Ihor Radchenko 1 sibling, 0 replies; 43+ messages in thread From: Jean Louis @ 2022-12-31 6:19 UTC (permalink / raw) To: Eduardo Ochs; +Cc: Ihor Radchenko, andre duarte bueno, emacs-orgmode * Eduardo Ochs <eduardoochs@gmail.com> [2022-12-31 04:11]: > Hi Jean Louis, > > did you solve your problem? Did you find a way to replace the > blocking code by something else? Of course, for me personally, I have fully solved it, you can see video here: https://gnu.support/files/emacs/packages/rcd-org-export/2022-12-20-19:33:59.ogv And I will add over time the detection of any possible export backend that I may find. What export backends is available, it will be detected and then automatically expanded like Org headings for it, and what user does not want, shall be detected and not shown. I think that original code for Org came into existance before 10+ years as back then there were maybe just few keybindings, maybe just 2-3 keybindings. So it was all about pure export. Over the time Org developed the need for toggling of options such as: ** Export Options - [ ] Export body only - [b] - [ ] Export only current subtree - [s] - [ ] Export asynchronously - [a] - [ ] Export visible only - [v] - [ ] Force publishing - [f] then other backends appeared. And that caused over time that users did not have any more just 2-3 keys, but it became a full screen now, with variables to be toggled. By the way, the above heading "Export Options" I could freely copy from the RCD Org Export interface, while something like that is impossible when using M-x org-export-dispatch function or "C-c C-e" Nobody in 10 years looked how it can be improved, so people just kept adopting it. really does not and cannot fit in the primary frame where there was only few keys to export Org. The arguments that come up are that user has to toggle variables shortly before export, maintenance problems, etc. Ihor mentioned few possible modes like ediff, that is similar or blocking to Org Export dispatch screen -- but in reality is not. I have inspected ediff menu buffer and found I can inspect any key, I can move to other windows, my Emacs with ediff was not blocked. It was not relevant comparison. > I stumbled on exactly the same problem some months ago, and it drove > me nuts: > > https://lists.gnu.org/archive/html/emacs-orgmode/2021-12/msg00674.html Edrx 1 > https://lists.gnu.org/archive/html/emacs-orgmode/2022-02/msg00098.html Ihor 2 > https://lists.gnu.org/archive/html/emacs-orgmode/2022-02/msg00106.html Edrx 3 > https://lists.gnu.org/archive/html/emacs-orgmode/2022-02/msg00111.html Ihor 4 > http://angg.twu.net/e/org.e.html#org-export-dispatch Yes, and when there is one of users speaking about it, there are maybe hundreds of others who stumble upon it and probably never come back. > My conclusion was that Org is much harder to learn than I thought. > It's easy to learn if: > > 1) you're a "user", or > 2) you know a lot about debugging Emacs, or > 3) the developers like your questions. I know that Eli does not use Org. And many people using Org are not developers, apparently they master Org useful functions. We could say there are very simply Org functions and more complex. Simplicity lies in this example: * My heading My text ** DONE My subheading CLOSED: [2022-12-31 Sat 08:44] ** TODO My subheading - [ ] My task - [ ] My task When just few Org elements are used it is simple. Org documentation talks about all the other more complex functions. Back to export, why use a buffer for export that does not even look like Org bufer? When we list the now available number of Org export backends, it is already huge list. It simply is not any more compatible to the idea before 10 years when somebody used 2-3 keys to export Org. And the code complexity is unbelievable to me. It is tangled in the manner how I am personally not used to when using Lisp or Scheme. My I like shorter functions, each doing something, but Org functions like `org-export--dispatch-ui' is 176 lines. That function tries to add functionality to Org that already exists when user defines derived modes with key bindings. You can inspect the package I made for that: GNU Emacs package: rcd-org-export.el -- use Org to export Org: https://gnu.support/gnu-emacs/packages/GNU-Emacs-package-rcd-org-export-el-use-Org-to-export-Org-76272.html But then later I made RCD Dashboard that generalizes the concepts from that package: GNU Emacs package: rcd-dashboard.el -- Tool to build Emacs dashboards: https://gnu.support/gnu-emacs/packages/GNU-Emacs-package-rcd-dashboard-el-Tool-to-build-Emacs-dashboards-76668.html Then I started making similarly RCD Org Agenda interface: GNU Emacs package: rcd-org-agenda-dashboard.el -- RCD Org Agenda Dashboard: https://gnu.support/gnu-emacs/packages/GNU-Emacs-package-rcd-org-agenda-dashboard-el-RCD-Org-Agenda-Dashboard-76669.html I can add options to it later. > My holidays have just started, and I'm planning to work on (2). There could be eev buffer to export Org, and such buffer need not be blocking. Solving toggling of variables is easy: - it should be derived mode, it could also be Org mode Instead of following: ** Export Options - [ ] Export body only - [b] - [ ] Export only current subtree - [s] - [ ] Export asynchronously - [a] - [ ] Export visible only - [v] - [ ] Force publishing - [f] ** Export Options (ee-org-export-body-only) ➜ ON (ee-org-export-only-current-subtree) ➜ SUBTREE (ee-org-export-asynchronouse) ➜ OFF (ee-org-export-visible) ➜ OFF (ee-org-export-force-publishing) ➜ ON And for those above toggles you would or could make it so that there is visual replacement of the text such as "ON/OFF" or "SUBTREE/BODY". Then other functions such as these below, could be replaced with eev functions. ** Export to Org *** Export as Org buffer *** Export as Org file and open *** Export as Org file ** Export to HTML *** Export as HTML buffer *** Export as HTML file and open *** Export as HTML file My solution in RCD Org Export is not purely Org based, it uses Emacs buttons directly. This is for reason of updating options visually, like you can see on video. However, all of the options may be implemented in Emacs Lisp that is embedded in Org mode Elisp links, including the options to update visually and demonstrate what has been toggled and what not. > Btw, at some point I gave up trying to find the functions that the > dispatcher calls, and I just defined this "function with a very short > name" that [c]ompiles the current .org file to HTML: > > (defun c () (interactive) (eek "C-c C-e h h")) You can't easily inspect Org Agenda or Org Dispatch Interface because interfaces are blocking. It means you cannot invoke `C-h k' to inspect any key. This defeats the purpose of Emacs to be self-documenting, as user is prevented to quickly find the function on key. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/ ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2022-12-31 1:08 ` Eduardo Ochs 2022-12-31 6:19 ` Jean Louis @ 2023-01-01 14:02 ` Ihor Radchenko 2023-01-02 5:58 ` Eduardo Ochs 1 sibling, 1 reply; 43+ messages in thread From: Ihor Radchenko @ 2023-01-01 14:02 UTC (permalink / raw) To: Eduardo Ochs; +Cc: andre duarte bueno, emacs-orgmode Eduardo Ochs <eduardoochs@gmail.com> writes: > My conclusion was that Org is much harder to learn than I thought. > It's easy to learn if: > > 1) you're a "user", or > 2) you know a lot about debugging Emacs, or > 3) the developers like your questions. I hope that (3) is not your experience with Org ML. If it is, I'd rather say "developers understand questions". At least from my perspective. Your approach is rather unusual for me, making it difficult to follow even after detailed explanations. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-01 14:02 ` Ihor Radchenko @ 2023-01-02 5:58 ` Eduardo Ochs 2023-01-02 11:07 ` Jean Louis ` (2 more replies) 0 siblings, 3 replies; 43+ messages in thread From: Eduardo Ochs @ 2023-01-02 5:58 UTC (permalink / raw) To: Ihor Radchenko; +Cc: andre duarte bueno, emacs-orgmode On Sun, 1 Jan 2023 at 11:02, Ihor Radchenko <yantar92@posteo.net> wrote: > > Eduardo Ochs <eduardoochs@gmail.com> writes: > > > My conclusion was that Org is much harder to learn than I thought. > > It's easy to learn if: > > > > 1) you're a "user", or > > 2) you know a lot about debugging Emacs, or > > 3) the developers like your questions. > > I hope that (3) is not your experience with Org ML. If it is, I'd rather > say "developers understand questions". At least from my perspective. > Your approach is rather unusual for me, making it difficult to follow > even after detailed explanations. Hi Ihor, (3) _is_ my experience with the Org mailing list. What I meant by "the developers like your questions" was roughly: "recognizing that that person deserves help, and giving him tools that would let him solve his problems in hours instead of in months or years". For example, in this thread https://lists.gnu.org/archive/html/emacs-orgmode/2021-12/msg00674.html no one considered that if I was asking that then maybe it would be a good idea to make `org-export-dispatch' more hackeable by beginners... For example, someone could have said "can you try this? Copy that function to other file, replace its lines foo and bar by the lines plic and bletch, and use the ideas in these two blog posts to debug and inspect its data structures"... but no, that didn't happen - I've asked lots of technical questions here over the years and never got detailed answers like that, only answers whose technical details _were kept as short as possible_, and whose explanations were much closer to "in English" than to "in Lisp". A few days ago I added subtitles to my video about "Org for Non-Users". The links are here, http://angg.twu.net/2021-org-for-non-users.html and some people will prefer to just read this: http://angg.twu.net/eev-videos/2021-org-for-non-users.vtt http://angg.twu.net/SUBTITLES/2021-org-for-non-users.lua.html It explains with examples how a "non-user" thinks, and it shows what I mean by "explanations in Lisp". Cheers =/, Eduardo ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-02 5:58 ` Eduardo Ochs @ 2023-01-02 11:07 ` Jean Louis 2023-01-03 9:48 ` Ihor Radchenko 2023-01-04 16:53 ` Jean Louis 2 siblings, 0 replies; 43+ messages in thread From: Jean Louis @ 2023-01-02 11:07 UTC (permalink / raw) To: Eduardo Ochs; +Cc: emacs-orgmode I was reading about Orgdown, Karl, please keep the name, and don't mind the group. * Eduardo Ochs <eduardoochs@gmail.com> [2023-01-02 09:01]: > (3) _is_ my experience with the Org mailing list. > > What I meant by "the developers like your questions" was roughly: > "recognizing that that person deserves help, and giving him tools that > would let him solve his problems in hours instead of in months or > years". > > For example, in this thread > > https://lists.gnu.org/archive/html/emacs-orgmode/2021-12/msg00674.html > > no one considered that if I was asking that then maybe it would be a > good idea to make `org-export-dispatch' more hackeable by > beginners... By the way, I have idea to make Org Export in 3 different ways more, one that is very hackable and introspective and one that can be edited as plain text file how users wish and want, then they can reuse the file to have their menu. Imagine. > For example, someone could have said "can you try this? Copy that > function to other file, replace its lines foo and bar by the lines > plic and bletch, and use the ideas in these two blog posts to debug > and inspect its data structures"... but no, that didn't happen - I've > asked lots of technical questions here over the years and never got > detailed answers like that, only answers whose technical details _were > kept as short as possible_, and whose explanations were much closer to > "in English" than to "in Lisp". The Org manual is there with pointers. Let me know links to your questions, maybe we find some more pointers to it. > A few days ago I added subtitles to my video about "Org for > Non-Users". The links are here, > > http://angg.twu.net/2021-org-for-non-users.html Where is the eev file of the page? -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/ ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-02 5:58 ` Eduardo Ochs 2023-01-02 11:07 ` Jean Louis @ 2023-01-03 9:48 ` Ihor Radchenko 2023-01-03 10:01 ` Eduardo Ochs 2023-01-04 16:53 ` Jean Louis 2 siblings, 1 reply; 43+ messages in thread From: Ihor Radchenko @ 2023-01-03 9:48 UTC (permalink / raw) To: Eduardo Ochs; +Cc: andre duarte bueno, emacs-orgmode Eduardo Ochs <eduardoochs@gmail.com> writes: > (3) _is_ my experience with the Org mailing list. > > What I meant by "the developers like your questions" was roughly: > "recognizing that that person deserves help, and giving him tools that > would let him solve his problems in hours instead of in months or > years". > > For example, in this thread > > https://lists.gnu.org/archive/html/emacs-orgmode/2021-12/msg00674.html To be fair, your another message copy got some replies: https://list.orgmode.org/CADs++6j+oPnSA8pO7_sbCTmhOg5v_BEzkr6vBB1ECfHBprKmFQ@mail.gmail.com/ > no one considered that if I was asking that then maybe it would be a > good idea to make `org-export-dispatch' more hackeable by beginners... In any case, we are here now, after the discussion resurfaced. > For example, someone could have said "can you try this? Copy that > function to other file, replace its lines foo and bar by the lines > plic and bletch, and use the ideas in these two blog posts to debug > and inspect its data structures"... but no, that didn't happen - I've > asked lots of technical questions here over the years and never got > detailed answers like that, only answers whose technical details _were > kept as short as possible_, and whose explanations were much closer to > "in English" than to "in Lisp". I recommend following up on the replies if you find them incomplete. There are no guarantees that exhaustive detailed replies will be given - they take a lot of time to write and are often not necessary. > A few days ago I added subtitles to my video about "Org for > Non-Users". The links are here, > > http://angg.twu.net/2021-org-for-non-users.html > > and some people will prefer to just read this: > > http://angg.twu.net/eev-videos/2021-org-for-non-users.vtt > http://angg.twu.net/SUBTITLES/2021-org-for-non-users.lua.html > > It explains with examples how a "non-user" thinks, and it shows what I > mean by "explanations in Lisp". I get it, but you cannot force me to reply like this. I simply do not think this way - when I try to reply to questions on ML, I do it the way I can. I cannot adapt the explanation style that is foreign to me. If you find something in mine (or other's) replies not clear, just ask to clarify. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-03 9:48 ` Ihor Radchenko @ 2023-01-03 10:01 ` Eduardo Ochs 2023-01-03 12:15 ` Max Nikulin 2023-01-04 17:51 ` Jean Louis 0 siblings, 2 replies; 43+ messages in thread From: Eduardo Ochs @ 2023-01-03 10:01 UTC (permalink / raw) To: Ihor Radchenko; +Cc: andre duarte bueno, emacs-orgmode On Tue, 3 Jan 2023 at 06:47, Ihor Radchenko <yantar92@posteo.net> wrote: > > Eduardo Ochs <eduardoochs@gmail.com> writes: > > > (3) _is_ my experience with the Org mailing list. > > > > What I meant by "the developers like your questions" was roughly: > > "recognizing that that person deserves help, and giving him tools that > > would let him solve his problems in hours instead of in months or > > years". > > > > For example, in this thread > > > > https://lists.gnu.org/archive/html/emacs-orgmode/2021-12/msg00674.html > > To be fair, your another message copy got some replies: > https://list.orgmode.org/CADs++6j+oPnSA8pO7_sbCTmhOg5v_BEzkr6vBB1ECfHBprKmFQ@mail.gmail.com/ > > > no one considered that if I was asking that then maybe it would be a > > good idea to make `org-export-dispatch' more hackeable by beginners... > > In any case, we are here now, after the discussion resurfaced. > > > For example, someone could have said "can you try this? Copy that > > function to other file, replace its lines foo and bar by the lines > > plic and bletch, and use the ideas in these two blog posts to debug > > and inspect its data structures"... but no, that didn't happen - I've > > asked lots of technical questions here over the years and never got > > detailed answers like that, only answers whose technical details _were > > kept as short as possible_, and whose explanations were much closer to > > "in English" than to "in Lisp". > > I recommend following up on the replies if you find them incomplete. > > There are no guarantees that exhaustive detailed replies will be given - > they take a lot of time to write and are often not necessary. > > > A few days ago I added subtitles to my video about "Org for > > Non-Users". The links are here, > > > > http://angg.twu.net/2021-org-for-non-users.html > > > > and some people will prefer to just read this: > > > > http://angg.twu.net/eev-videos/2021-org-for-non-users.vtt > > http://angg.twu.net/SUBTITLES/2021-org-for-non-users.lua.html > > > > It explains with examples how a "non-user" thinks, and it shows what I > > mean by "explanations in Lisp". > > I get it, but you cannot force me to reply like this. I simply do not > think this way - when I try to reply to questions on ML, I do it the way > I can. I cannot adapt the explanation style that is foreign to me. > > If you find something in mine (or other's) replies not clear, just ask > to clarify. Ok, let me try something else. Can you send to me - here to the mailing list - a version of `org-export-dispatch', and also of other functions if needed, in which the parts that call `read-char-exclusive' are replaced by something non-blocking? Thanks in advance =), Eduardo Ochs ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-03 10:01 ` Eduardo Ochs @ 2023-01-03 12:15 ` Max Nikulin 2023-01-03 12:36 ` Eduardo Ochs ` (2 more replies) 2023-01-04 17:51 ` Jean Louis 1 sibling, 3 replies; 43+ messages in thread From: Max Nikulin @ 2023-01-03 12:15 UTC (permalink / raw) To: emacs-orgmode On 03/01/2023 17:01, Eduardo Ochs wrote: > > Can you send to me - here to the mailing list - a version of > `org-export-dispatch', and also of other functions if needed, in which > the parts that call `read-char-exclusive' are replaced by something > non-blocking? Eduardo, I am sorry, but from my opinion it is too much. Perhaps you are just not realizing that resources of developers are rather limited. Getting rid of `read-char-exclusive' in Org menus requires significant amount of work. Nobody argues that it would be a great improvement, but it is necessary to make changes that are not obvious at first glance. It would lead to confusing behavior otherwise. Jean might be happy with the posted mock-up. Unfortunately that code is too far from been ready to be used for all users. E.g. it does not use `org-export-registered-backends', not to mention that all menus in the package should be consistent. It is OK to have a bunch of repetitive code for a demo, but it can not be taken as is. Ihor dedicates a lot of time for development and maintaining of Org. Other developers are significantly less active last months. Often authors of code are not participating in discussions because several years have been passed since that time and they are busy with other projects. So your questions may noticeable efforts from other persons unfamiliar with some code to "read" it for you. Org code is not ideal, but it is rarely too obscure. Nobody intentionally adds obstacles that hamper readability. Sometimes it is necessary to make decisions not realizing actual consequences just to move forward. If you need code friendly for beginners then find a friend who can rewrite the code in the style you like (of course, it should be maintainable as well). At first I believed that on your own way you are just avoiding reading comments and docstring in ox.el that are helpful to discover actual functions in export backends that do the job. E.g. docstring of `org-export-define-backend' and its usage in other files is rather informative. I am lost what is your actual needs after your request to rewrite the export dispatcher for you. After all, if you can not figure out which function is called by the dispatcher, instrument for debugging some transcoder function and export some file. You will get call stack. Be realistic, time and experience are limited resources, not all code deserves blog posts. Source code is a communication channel as well. ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-03 12:15 ` Max Nikulin @ 2023-01-03 12:36 ` Eduardo Ochs 2023-01-05 11:07 ` Ihor Radchenko 2023-01-04 11:08 ` Jean Louis 2023-01-04 18:03 ` Jean Louis 2 siblings, 1 reply; 43+ messages in thread From: Eduardo Ochs @ 2023-01-03 12:36 UTC (permalink / raw) To: Max Nikulin; +Cc: Org Mode [-- Attachment #1: Type: text/plain, Size: 2951 bytes --] On Tue, 3 Jan 2023, 09:23 Max Nikulin, <manikulin@gmail.com> wrote: > On 03/01/2023 17:01, Eduardo Ochs wrote: > > > > Can you send to me - here to the mailing list - a version of > > `org-export-dispatch', and also of other functions if needed, in which > > the parts that call `read-char-exclusive' are replaced by something > > non-blocking? > > Eduardo, I am sorry, but from my opinion it is too much. Perhaps you are > just not realizing that resources of developers are rather limited. > Getting rid of `read-char-exclusive' in Org menus requires significant > amount of work. Nobody argues that it would be a great improvement, but > it is necessary to make changes that are not obvious at first glance. It > would lead to confusing behavior otherwise. > > Jean might be happy with the posted mock-up. Unfortunately that code is > too far from been ready to be used for all users. E.g. it does not use > `org-export-registered-backends', not to mention that all menus in the > package should be consistent. It is OK to have a bunch of repetitive > code for a demo, but it can not be taken as is. > > Ihor dedicates a lot of time for development and maintaining of Org. > Other developers are significantly less active last months. Often > authors of code are not participating in discussions because several > years have been passed since that time and they are busy with other > projects. So your questions may noticeable efforts from other persons > unfamiliar with some code to "read" it for you. Org code is not ideal, > but it is rarely too obscure. Nobody intentionally adds obstacles that > hamper readability. Sometimes it is necessary to make decisions not > realizing actual consequences just to move forward. If you need code > friendly for beginners then find a friend who can rewrite the code in > the style you like (of course, it should be maintainable as well). > > At first I believed that on your own way you are just avoiding reading > comments and docstring in ox.el that are helpful to discover actual > functions in export backends that do the job. E.g. docstring of > `org-export-define-backend' and its usage in other files is rather > informative. > > I am lost what is your actual needs after your request to rewrite the > export dispatcher for you. > > After all, if you can not figure out which function is called by the > dispatcher, instrument for debugging some transcoder function and export > some file. You will get call stack. > > Be realistic, time and experience are limited resources, not all code > deserves blog posts. Source code is a communication channel as well. > Hi Max, sorry, I thought that that would be something like a 5-line change... =( A few messages again I mentioned that one of my plans for these holidays was to learn several techniques for debugging elisp that I've postponing learning for ages. I'll do that and then I'll try solving this problem again. Cheers =/, Eduardo [-- Attachment #2: Type: text/html, Size: 3852 bytes --] ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-03 12:36 ` Eduardo Ochs @ 2023-01-05 11:07 ` Ihor Radchenko 2023-01-05 14:41 ` Alain.Cochard 2023-01-05 15:43 ` Eduardo Ochs 0 siblings, 2 replies; 43+ messages in thread From: Ihor Radchenko @ 2023-01-05 11:07 UTC (permalink / raw) To: Eduardo Ochs; +Cc: Max Nikulin, Org Mode Eduardo Ochs <eduardoochs@gmail.com> writes: > sorry, I thought that that would be something like a 5-line change... =( > > A few messages again I mentioned that one of my plans for these holidays > was to learn several techniques for debugging elisp that I've postponing > learning for ages. I'll do that and then I'll try solving this problem > again. One way could be M-x debug-on-entry <RET> read-char-exclusive <RET> and then running the dispatcher. This will pause Elisp execution and leave the export menu buffer actionable. However, I doubt that you can make much use of the buffer itself - it is nothing but text. You need to read the source to understand the logic. You can use the source code links Jean provided. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-05 11:07 ` Ihor Radchenko @ 2023-01-05 14:41 ` Alain.Cochard 2023-01-05 15:00 ` Max Nikulin 2023-01-05 18:50 ` Jean Louis 2023-01-05 15:43 ` Eduardo Ochs 1 sibling, 2 replies; 43+ messages in thread From: Alain.Cochard @ 2023-01-05 14:41 UTC (permalink / raw) To: Org Mode Ihor Radchenko writes on Thu 5 Jan 2023 11:07: > However, I doubt that you can make much use of the buffer itself - > it is nothing but text. Without my suggesting that anything at all should be done, I am commenting that sometimes one might need that text, if only for personal notes, and it would be convenient if one could access all buffers just like we can for (say) the *Messages* buffer. For example, I recently needed what is seen in the *Org Select* buffer. I wasted a bit of time trying, then an extra bit of time managing otherwise. -- EOST (École et Observatoire des Sciences de la Terre) ITE (Institut Terre & Environnement) | alain.cochard@unistra.fr 5 rue René Descartes [bureau 110] | Phone: +33 (0)3 68 85 50 44 F-67084 Strasbourg Cedex, France | [ slot available for rent ] ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-05 14:41 ` Alain.Cochard @ 2023-01-05 15:00 ` Max Nikulin 2023-01-05 15:18 ` Alain.Cochard 2023-01-05 18:50 ` Jean Louis 1 sibling, 1 reply; 43+ messages in thread From: Max Nikulin @ 2023-01-05 15:00 UTC (permalink / raw) To: emacs-orgmode On 05/01/2023 21:41, Alain.Cochard wrote: > > I am > commenting that sometimes one might need that text, if only for > personal notes, and it would be convenient if one could access all > buffers just like we can for (say) the *Messages* buffer. For example, > I recently needed what is seen in the *Org Select* buffer. I wasted a > bit of time trying, then an extra bit of time managing otherwise. Sometimes I start emacs in a terminal application to copy some "special" text (holding [Shift]). I do not like that in a Gtk window I can not select text appeared in the echo area using mouse. ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-05 15:00 ` Max Nikulin @ 2023-01-05 15:18 ` Alain.Cochard 2023-01-05 20:37 ` Eduardo Ochs 0 siblings, 1 reply; 43+ messages in thread From: Alain.Cochard @ 2023-01-05 15:18 UTC (permalink / raw) To: emacs-orgmode Max Nikulin writes on Thu 5 Jan 2023 22:00: > Sometimes I start emacs in a terminal application to copy some > "special" text (holding [Shift]). Great! It worked for the *Org Select* buffer. I did not know that trick. Thanks. -- EOST (École et Observatoire des Sciences de la Terre) ITE (Institut Terre & Environnement) | alain.cochard@unistra.fr 5 rue René Descartes [bureau 110] | Phone: +33 (0)3 68 85 50 44 F-67084 Strasbourg Cedex, France | [ slot available for rent ] ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-05 15:18 ` Alain.Cochard @ 2023-01-05 20:37 ` Eduardo Ochs 0 siblings, 0 replies; 43+ messages in thread From: Eduardo Ochs @ 2023-01-05 20:37 UTC (permalink / raw) To: alain.cochard; +Cc: emacs-orgmode On Thu, 5 Jan 2023 at 12:19, <Alain.Cochard@unistra.fr> wrote: > > Max Nikulin writes on Thu 5 Jan 2023 22:00: > > > Sometimes I start emacs in a terminal application to copy some > > "special" text (holding [Shift]). > > Great! It worked for the *Org Select* buffer. > > I did not know that trick. Hi Alain, here is what I am doing to try to understand those buffers using eev-isms. I am keeping this in one part of my notes, (org-mode) (debug-on-entry 'read-char-exclusive) (eek "C-c C-e") (cancel-debug-on-entry 'read-char-exclusive) (fundamental-mode) and to make the "*Org Export Dispatcher*" appear I run the first three sexps with my favorite variant of `C-e C-x C-e'. Then I did this to pretty-print the buffer-list, (find-eppp (buffer-list)) and this to save the contents of that buffer in a variable: (with-current-buffer "*Org Export Dispatcher*" (setq o (buffer-string))) Cheers, Eduardo Ochs http://angg.twu.net/#eev ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-05 14:41 ` Alain.Cochard 2023-01-05 15:00 ` Max Nikulin @ 2023-01-05 18:50 ` Jean Louis 1 sibling, 0 replies; 43+ messages in thread From: Jean Louis @ 2023-01-05 18:50 UTC (permalink / raw) To: Alain.Cochard; +Cc: Org Mode * Alain.Cochard@unistra.fr <Alain.Cochard@unistra.fr> [2023-01-05 17:46]: > Ihor Radchenko writes on Thu 5 Jan 2023 11:07: > > > However, I doubt that you can make much use of the buffer itself - > > it is nothing but text. > > Without my suggesting that anything at all should be done, I am > commenting that sometimes one might need that text, if only for > personal notes, and it would be convenient if one could access all > buffers just like we can for (say) the *Messages* buffer. For example, > I recently needed what is seen in the *Org Select* buffer. I wasted a > bit of time trying, then an extra bit of time managing otherwise. Thanks for feedback. I could when there are 5 people with feedback, there may be other 500 thinking about it. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/ ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-05 11:07 ` Ihor Radchenko 2023-01-05 14:41 ` Alain.Cochard @ 2023-01-05 15:43 ` Eduardo Ochs 1 sibling, 0 replies; 43+ messages in thread From: Eduardo Ochs @ 2023-01-05 15:43 UTC (permalink / raw) To: Ihor Radchenko; +Cc: Max Nikulin, Org Mode On Thu, 5 Jan 2023 at 08:06, Ihor Radchenko <yantar92@posteo.net> wrote: > > Eduardo Ochs <eduardoochs@gmail.com> writes: > > > sorry, I thought that that would be something like a 5-line change... =( > > > > A few messages again I mentioned that one of my plans for these holidays > > was to learn several techniques for debugging elisp that I've postponing > > learning for ages. I'll do that and then I'll try solving this problem > > again. > > One way could be M-x debug-on-entry <RET> read-char-exclusive <RET> and > then running the dispatcher. This will pause Elisp execution and leave > the export menu buffer actionable. > > However, I doubt that you can make much use of the buffer itself - it is > nothing but text. You need to read the source to understand the logic. > You can use the source code links Jean provided. Hi Ihor, thanks, good idea! A few days ago I had a similar idea, but mine was worse... I found, by running this, (find-orggrep "grep --color=auto -nH --null -e read-char-exclusive *.el") that `read-char-exclusive' appears in 29 places in the Org source, and I was thinking of replacing some of them by a `my-read-char-exclusive', and then set a breakpoint in `my-read-char-exclusive'... I have just tried running this in an Org file, (debug-on-entry 'read-char-exclusive) (eek "C-c C-e") (cancel-debug-on-entry 'read-char-exclusive) and after running the first two sexps above with my favorite variant of `C-x C-e' the backtrace showed me that this (find-efunction 'org-export--dispatch-action "read-char-exclusive") is the occurrence that matters - the one inside `org-export--dispatch-action'. I'll play more with that soon! Cheers =), Eduardo Ochs http://angg.twu.net/#eev ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-03 12:15 ` Max Nikulin 2023-01-03 12:36 ` Eduardo Ochs @ 2023-01-04 11:08 ` Jean Louis 2023-01-05 11:16 ` Ihor Radchenko 2023-01-04 18:03 ` Jean Louis 2 siblings, 1 reply; 43+ messages in thread From: Jean Louis @ 2023-01-04 11:08 UTC (permalink / raw) To: Max Nikulin; +Cc: emacs-orgmode * Max Nikulin <manikulin@gmail.com> [2023-01-03 15:18]: > Eduardo, I am sorry, but from my opinion it is too much. Perhaps you are > just not realizing that resources of developers are rather limited. Getting > rid of `read-char-exclusive' in Org menus requires significant amount of > work. Yeah, right, I have spent few hours to make GNU Emacs package: rcd-org-export.el -- use Org to export Org: 2022-12-25 18:16:06.397296+03 https://gnu.support/gnu-emacs/packages/GNU-Emacs-package-rcd-org-export-el-use-Org-to-export-Org-76272.html And from there I developed RCD Dashboard on 2022-12-25 17:44:11.336142+03 GNU Emacs package: rcd-dashboard.el -- Tool to build Emacs dashboards: https://gnu.support/gnu-emacs/packages/GNU-Emacs-package-rcd-dashboard-el-Tool-to-build-Emacs-dashboards-76668.html And now I have full set of dashboards with people being assigned to tasks, plans, programs, projects, agenda, etc. Because I can't agree to your statements, that is why I use the user friendly Org mode based RCD Org Export Dashboard instead of standard Org blocking, user-unfriendly one. > Nobody argues that it would be a great improvement, but it is > necessary to make changes that are not obvious at first glance. It > would lead to confusing behavior otherwise. Nothing is obvious when it is not obvious. I got it. > Jean might be happy with the posted mock-up. The posted mock-up is not any more mock-up but daily used dashboard to export Org. > Unfortunately that code is too far from been ready to be used for > all users. So how far? Like few hours? > E.g. it does not use `org-export-registered-backends', not to > mention that all menus in the package should be consistent. I am aware of it, thanks. Feel free to make it. Do you really need it? Though, we speak here of non-blicking Org Export, and there are many ways to do it, we speak of decisions that are not user friendly, made before more than 10 years. There was enough time to use whatever one wish. I can't wait for somebody in mainstream Org to make it user friendly, mouse clickable, and so there is enough of it for you to adapt it to your own needs as in main stream. If you people wish. If you look at the RCD Dashboard, then how "menus" should look like may be left to user to decide. So far nobody uses my package that I know, and in that case, I will not keep improving what is not so far found as interesting for users. It works for me so well. That is why I use it. Feel free to bend your fingers with C-c C-e C-a C-f C-s, and I will keep using the mouse device to export Org. > It is OK to have a bunch of repetitive code for a demo, but it can > not be taken as is. You have not say that you like the functionality. Underlying repetitive stuff is not important. And I rather like that repetitive style than the Gordian knot of the Org code. > I am lost what is your actual needs after your request to rewrite > the export dispatcher for you. It can be rewritten in simple text, actually in Org mode alone it can work. That is up to those who are interested. Why develop something when there is no interest? I guess it must be 5-6 years that I was talking about sharing headings by e-mail, XMPP, SMS, etc. and since then I have received bunch of dollars because of those features. None of it was implemented in Org, because sharing is not part of it, or decisions, or developers burdens, etc. That is example of "why develop features when there is no interest for it". Good that Emacs is extensible by every user, otherwise it would be one way road with Org. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/ ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-04 11:08 ` Jean Louis @ 2023-01-05 11:16 ` Ihor Radchenko 2023-01-05 19:19 ` Jean Louis 0 siblings, 1 reply; 43+ messages in thread From: Ihor Radchenko @ 2023-01-05 11:16 UTC (permalink / raw) To: Jean Louis; +Cc: Max Nikulin, emacs-orgmode Jean Louis <bugs@gnu.support> writes: > Though, we speak here of non-blicking Org Export, and there are many > ways to do it, we speak of decisions that are not user friendly, made > before more than 10 years. > > There was enough time to use whatever one wish. I can't wait for > somebody in mainstream Org to make it user friendly, mouse clickable, > and so there is enough of it for you to adapt it to your own needs as > in main stream. I was hoping that you might be interested to provide a patch for Org upstream. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-05 11:16 ` Ihor Radchenko @ 2023-01-05 19:19 ` Jean Louis 2023-01-06 3:51 ` Max Nikulin 2023-01-07 9:04 ` Ihor Radchenko 0 siblings, 2 replies; 43+ messages in thread From: Jean Louis @ 2023-01-05 19:19 UTC (permalink / raw) To: Ihor Radchenko; +Cc: Max Nikulin, emacs-orgmode * Ihor Radchenko <yantar92@posteo.net> [2023-01-05 14:16]: > Jean Louis <bugs@gnu.support> writes: > > > Though, we speak here of non-blicking Org Export, and there are many > > ways to do it, we speak of decisions that are not user friendly, made > > before more than 10 years. > > > > There was enough time to use whatever one wish. I can't wait for > > somebody in mainstream Org to make it user friendly, mouse clickable, > > and so there is enough of it for you to adapt it to your own needs as > > in main stream. > > I was hoping that you might be interested to provide a patch for Org > upstream. Question is: did you try it out? Once you try it out, then let me know to continue. The Concept and More Ideas: --------------------------- 1. You can create derived mode, for example Org derived mode. 2. You can create key bindings freely for that derived mode. 3. You can create read-only, temporary buffers for export in that derived mode. 4. Because it is read only, similar to modal modes, you do not need complicated key bindings, you don't need to use C-combinations for few simple things, use simply letter. 5. Though it implies you can use same key bindings for "compatibility", but I would say it rather honestly for bad habits, as in the derived. 6. Thus you may make toggling functions. 7. You are free to draw in the buffer and give to user visual feedback of what you have toggled or set. Draw it as you wish, ON/OFF or BODY/SCOPE, or similar. 8. Use global variables for toggling of Org export settings. 9. Constuct Org elisp: links, but do they support key bindings? You can define both. 10. You could even "remember" the global variables in such Org export file simply by using file variables. 11. Org links could provide export. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/ ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-05 19:19 ` Jean Louis @ 2023-01-06 3:51 ` Max Nikulin 2023-01-07 9:04 ` Ihor Radchenko 1 sibling, 0 replies; 43+ messages in thread From: Max Nikulin @ 2023-01-06 3:51 UTC (permalink / raw) To: emacs-orgmode On 06/01/2023 02:19, Jean Louis wrote: > > The Concept and More Ideas: > --------------------------- Was there any messages with arguments that Org should stick to blocking menu? It is not about UI ideas, it is not about counting people who agrees that menu should be non-blocking (I do not remember who is on the opposite side). It is about providing a patch that implements a better menu UI. Of course, the code must be maintainable and it should not have confusing behavior. For a while quick and dirty blocking menu allowed to emerge great variety of export backends and to postpone issues related to interaction between buffers when user is not restricted in respect to jumping to another buffer. Making more noise and repeating obvious ideas does not help to create a consistent implementation. ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-05 19:19 ` Jean Louis 2023-01-06 3:51 ` Max Nikulin @ 2023-01-07 9:04 ` Ihor Radchenko 2023-01-07 18:34 ` Jean Louis ` (2 more replies) 1 sibling, 3 replies; 43+ messages in thread From: Ihor Radchenko @ 2023-01-07 9:04 UTC (permalink / raw) To: Jean Louis; +Cc: Max Nikulin, emacs-orgmode Jean Louis <bugs@gnu.support> writes: >> I was hoping that you might be interested to provide a patch for Org >> upstream. > > Question is: did you try it out? > > Once you try it out, then let me know to continue. I did try it. I am in favour of the non-blocking menu. Other people participating in this discussion too. As I said, the requirement to get it into the core is re-creating previous layout and bindings. The layout and bindings may be customizable, but they must be available. > The Concept and More Ideas: > --------------------------- > > 1. You can create derived mode, for example Org derived mode. This has pros and cons. Org derived mode means that personal customization, including key bindings and themes, may affect menus. This may or may not be desired. > 2. You can create key bindings freely for that derived mode. +1 > 3. You can create read-only, temporary buffers for export in that > derived mode. I am not sure what you are referring to. > 4. Because it is read only, similar to modal modes, you do not need > complicated key bindings, you don't need to use C-combinations for > few simple things, use simply letter. Same as what we do now in the menus. I do not think that we need to change the existing bindings (by default). > 5. Though it implies you can use same key bindings for > "compatibility", but I would say it rather honestly for bad habits, > as in the derived. As I said earlier, "bad habits" is a judgment. We will not break user experience if we don't have to. It includes existing bindings. Introducing alternatives is possible though. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-07 9:04 ` Ihor Radchenko @ 2023-01-07 18:34 ` Jean Louis 2023-01-07 19:12 ` Jean Louis 2023-01-12 15:43 ` Max Nikulin 2 siblings, 0 replies; 43+ messages in thread From: Jean Louis @ 2023-01-07 18:34 UTC (permalink / raw) To: Ihor Radchenko; +Cc: Max Nikulin, emacs-orgmode * Ihor Radchenko <yantar92@posteo.net> [2023-01-07 12:04]: > As I said, the requirement to get it into the core is re-creating > previous layout and bindings. The layout and bindings may be > customizable, but they must be available. You have got the concept, you may implement it. > > The Concept and More Ideas: > > --------------------------- > > > > 1. You can create derived mode, for example Org derived mode. > > This has pros and cons. Org derived mode means that personal > customization, including key bindings and themes, may affect menus. This > may or may not be desired. It was example of the mode. You may use any mode you wish. I said it is example. Though I do not know how personal customization may affect the generated temporary Org buffer which sole purpose is to invoke functions. If for example, export of body only is somewhere customized than package similar to RCD Org Export may set those variables correspondingly, or recognize user's options. > > 3. You can create read-only, temporary buffers for export in that > > derived mode. > > I am not sure what you are referring to. You have to review the concept I have sent. A temporary generated buffer is used as menu, in read-only mode. Of course you don't want to users to write into temporary generated buffer (RCD Org Export), but if they really want, they can turn off read-only-mode. Because you wish to setup key bindings, you should use derived mode. I am referring to concept how you would do the non-blocking menu. > > 4. Because it is read only, similar to modal modes, you do not need > > complicated key bindings, you don't need to use C-combinations for > > few simple things, use simply letter. > > Same as what we do now in the menus. I do not think that we need to > change the existing bindings (by default). All is your choice. I am giving you concept on which you can build. > > 5. Though it implies you can use same key bindings for > > "compatibility", but I would say it rather honestly for bad habits, > > as in the derived. > > As I said earlier, "bad habits" is a judgment. We will not break user > experience if we don't have to. It includes existing bindings. > > Introducing alternatives is possible though. Of course it is judgment, and nothing wrong with it, I keep judging it, that is why I don't use it, it is disturbing. All opinions are judgments. Though my judgments are based on experience with Org and many other software, it is informed opinion, not just a biased opinion without inspection. It is opinion with a solution. People make opinions all the time, that something is judgment is obvious. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/ ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-07 9:04 ` Ihor Radchenko 2023-01-07 18:34 ` Jean Louis @ 2023-01-07 19:12 ` Jean Louis 2023-01-12 15:43 ` Max Nikulin 2 siblings, 0 replies; 43+ messages in thread From: Jean Louis @ 2023-01-07 19:12 UTC (permalink / raw) To: Ihor Radchenko; +Cc: Max Nikulin, emacs-orgmode * Ihor Radchenko <yantar92@posteo.net> [2023-01-07 12:04]: > > The Concept and More Ideas: > > --------------------------- > > > > 1. You can create derived mode, for example Org derived mode. > > This has pros and cons. Org derived mode means that personal > customization, including key bindings and themes, may affect menus. This > may or may not be desired. OK so to be constructive, you have to start somewhere. Question is: 1. Do you want Org Export menus to appear in non-blocking buffer? So far I understood, answer is YES. 2. Then do you want derived buffer? If yes, which one? It is necessary as to be able to assign key bindings that work only in such buffer. My recommendation is that it is derived from org-mode. I can't see how personal customization affects the buffer look. The theme or Org themes if such exist may affect it, so what? That was choice of the user. Emacs themes anyway affect the current org export buffer. Those are very minor issue, decide if you wish derived mode, and make definition for it. > > 2. You can create key bindings freely for that derived mode. > > +1 Then make list of what is always to be there and with which key bindings. I would say make a package that is separate from Org so that it can be add-on for some time, until people can test it. Once there is list of options which always must be there, with key bindings, then you make functions to display those options. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/ ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-07 9:04 ` Ihor Radchenko 2023-01-07 18:34 ` Jean Louis 2023-01-07 19:12 ` Jean Louis @ 2023-01-12 15:43 ` Max Nikulin 2023-01-13 9:41 ` Ihor Radchenko 2 siblings, 1 reply; 43+ messages in thread From: Max Nikulin @ 2023-01-12 15:43 UTC (permalink / raw) To: emacs-orgmode On 07/01/2023 16:04, Ihor Radchenko wrote: > > As I said, the requirement to get it into the core is re-creating > previous layout and bindings. The layout and bindings may be > customizable, but they must be available. I would say, a layout that is not worse than the current one. Org menus may have more than 1 column and it is advantage for wide windows. A distant goal might be a menu that is more flexible and may adapt for single column suitable for a narrow side window. Another issue is accessibility. Too long menus are likely terrible for users relying on Emacspeak. I have no idea how to deal with such case, perhaps a better organized hierarchy unveiled level by level. API conventions that allows to change menu implementation may be a rescue as well. Tim Cross. Re: Proposal: 'executable' org-capture-templaes. Mon, 06 Jun 2022 09:05:29 +1000 https://list.orgmode.org/87sfoi1xde.fsf@gmail.com/ ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-12 15:43 ` Max Nikulin @ 2023-01-13 9:41 ` Ihor Radchenko 0 siblings, 0 replies; 43+ messages in thread From: Ihor Radchenko @ 2023-01-13 9:41 UTC (permalink / raw) To: Max Nikulin; +Cc: emacs-orgmode Max Nikulin <manikulin@gmail.com> writes: > On 07/01/2023 16:04, Ihor Radchenko wrote: >> >> As I said, the requirement to get it into the core is re-creating >> previous layout and bindings. The layout and bindings may be >> customizable, but they must be available. > > I would say, a layout that is not worse than the current one. Org menus > may have more than 1 column and it is advantage for wide windows. A > distant goal might be a menu that is more flexible and may adapt for > single column suitable for a narrow side window. > > Another issue is accessibility. Too long menus are likely terrible for > users relying on Emacspeak. I have no idea how to deal with such case, > perhaps a better organized hierarchy unveiled level by level. API > conventions that allows to change menu implementation may be a rescue as > well. > > Tim Cross. Re: Proposal: 'executable' org-capture-templaes. Mon, 06 Jun > 2022 09:05:29 +1000 https://list.orgmode.org/87sfoi1xde.fsf@gmail.com/ I do not insist of extending the functionality. Step one is re-creating the existing one, including echoing the selected menus, as we do already. If we can achieve this, the whole menu library might be moved out of Org into Emacs core and get further developed there. But it is too early to talk about this now. I first want to see (with real working patches for Org) if it is feasible to re-create the existing menus using the proposed approach. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-03 12:15 ` Max Nikulin 2023-01-03 12:36 ` Eduardo Ochs 2023-01-04 11:08 ` Jean Louis @ 2023-01-04 18:03 ` Jean Louis 2023-01-05 11:17 ` Ihor Radchenko 2 siblings, 1 reply; 43+ messages in thread From: Jean Louis @ 2023-01-04 18:03 UTC (permalink / raw) To: Max Nikulin; +Cc: emacs-orgmode * Max Nikulin <manikulin@gmail.com> [2023-01-03 15:18]: > Jean might be happy with the posted mock-up. Unfortunately that code is too > far from been ready to be used for all users. E.g. it does not use > `org-export-registered-backends', not to mention that all menus in the > package should be consistent. It is OK to have a bunch of repetitive code > for a demo, but it can not be taken as is. After looking into it, into `org-export-registered-backends', I will not use it, neither follow the chain of poor design. Users can get the choice otherwise in my package. I can have my own setup and recognition of various exports. I can't follow the bad design that happen to take place, so I will not lean on this below, I find that complex, while it need not be. Value: (#s(org-export-backend :name texinfo :parent nil :transcoders ((bold . org-texinfo-bold) (center-block . org-texinfo-center-block) (clock . org-texinfo-clock) (code . org-texinfo-code) (drawer . org-texinfo-drawer) (dynamic-block . org-texinfo-dynamic-block) (entity . org-texinfo-entity) (example-block . org-texinfo-example-block) (export-block . org-texinfo-export-block) (export-snippet . org-texinfo-export-snippet) (fixed-width . org-texinfo-fixed-width) (footnote-definition . org-texinfo-footnote-definition) (footnote-reference . org-texinfo-footnote-reference) (headline . org-texinfo-headline) (inline-src-block . org-texinfo-inline-src-block) (inlinetask . org-texinfo-inlinetask) (italic . org-texinfo-italic) (item . org-texinfo-item) (keyword . org-texinfo-keyword) (line-break . org-texinfo-line-break) (link . org-texinfo-link) (node-property . org-texinfo-node-property) (paragraph . org-texinfo-paragraph) (plain-list . org-texinfo-plain-list) (plain-text . org-texinfo-plain-text) (planning . org-texinfo-planning) (property-drawer . org-texinfo-property-drawer) (quote-block . org-texinfo-quote-block) (radio-target . org-texinfo-radio-target) (section . org-texinfo-section) (special-block . org-texinfo-special-block) (src-block . org-texinfo-src-block) (statistics-cookie . org-texinfo-statistics-cookie) (strike-through . org-texinfo-strike-through) (subscript . org-texinfo-subscript) (superscript . org-texinfo-superscript) (table . org-texinfo-table) (table-cell . org-texinfo-table-cell) (table-row . org-texinfo-table-row) (target . org-texinfo-target) (template . org-texinfo-template) (timestamp . org-texinfo-timestamp) (underline . org-texinfo-underline) (verbatim . org-texinfo-verbatim) (verse-block . org-texinfo-verse-block)) :options ((:texinfo-filename "TEXINFO_FILENAME" nil nil t) (:texinfo-class "TEXINFO_CLASS" nil org-texinfo-default-class t) (:texinfo-header "TEXINFO_HEADER" nil nil newline) (:texinfo-post-header "TEXINFO_POST_HEADER" nil nil newline) (:subtitle "SUBTITLE" nil nil parse) (:subauthor "SUBAUTHOR" nil nil newline) (:texinfo-dircat "TEXINFO_DIR_CATEGORY" nil nil t) (:texinfo-dirtitle "TEXINFO_DIR_TITLE" nil nil t) (:texinfo-dirdesc "TEXINFO_DIR_DESC" nil nil t) (:texinfo-printed-title "TEXINFO_PRINTED_TITLE" nil nil t) (:texinfo-classes nil nil org-texinfo-classes) (:texinfo-format-headline-function nil nil org-texinfo-format-headline-function) (:texinfo-node-description-column nil nil org-texinfo-node-description-column) (:texinfo-active-timestamp-format nil nil org-texinfo-active-timestamp-format) (:texinfo-inactive-timestamp-format nil nil org-texinfo-inactive-timestamp-format) (:texinfo-diary-timestamp-format nil nil org-texinfo-diary-timestamp-format) (:texinfo-link-with-unknown-path-format nil nil org-texinfo-link-with-unknown-path-format) (:texinfo-tables-verbatim nil nil org-texinfo-tables-verbatim) (:texinfo-table-scientific-notation nil nil org-texinfo-table-scientific-notation) (:texinfo-table-default-markup nil nil org-texinfo-table-default-markup) (:texinfo-text-markup-alist nil nil org-texinfo-text-markup-alist) (:texinfo-format-drawer-function nil nil org-texinfo-format-drawer-function) (:texinfo-format-inlinetask-function nil nil org-texinfo-format-inlinetask-function)) :filters ((:filter-headline . org-texinfo--filter-section-blank-lines) (:filter-parse-tree . org-texinfo--normalize-headlines) (:filter-section . org-texinfo--filter-section-blank-lines) (:filter-final-output . org-texinfo--untabify)) :blocks nil :menu (105 "Export to Texinfo" ((116 "As TEXI file" org-texinfo-export-to-texinfo) (105 "As INFO file" org-texinfo-export-to-info) (111 "As INFO file and open" (lambda (a s v b) (if a (org-texinfo-export-to-info t s v b) (org-open-file (org-texinfo-export-to-info nil s v b)))))))) #s(org-export-backend :name man :parent nil :transcoders ((babel-call . org-man-babel-call) (bold . org-man-bold) (center-block . org-man-center-block) (code . org-man-code) (drawer . org-man-drawer) (dynamic-block . org-man-dynamic-block) (entity . org-man-entity) (example-block . org-man-example-block) (export-block . org-man-export-block) (export-snippet . org-man-export-snippet) (fixed-width . org-man-fixed-width) (footnote-definition . org-man-footnote-definition) (footnote-reference . org-man-footnote-reference) (headline . org-man-headline) (horizontal-rule . org-man-horizontal-rule) (inline-babel-call . org-man-inline-babel-call) (inline-src-block . org-man-inline-src-block) (inlinetask . org-man-inlinetask) (italic . org-man-italic) (item . org-man-item) (keyword . org-man-keyword) (line-break . org-man-line-break) (link . org-man-link) (node-property . org-man-node-property) (paragraph . org-man-paragraph) (plain-list . org-man-plain-list) (plain-text . org-man-plain-text) (planning . org-man-planning) (property-drawer . org-man-property-drawer) (quote-block . org-man-quote-block) (radio-target . org-man-radio-target) (section . org-man-section) (special-block . org-man-special-block) (src-block . org-man-src-block) (statistics-cookie . org-man-statistics-cookie) (strike-through . org-man-strike-through) (subscript . org-man-subscript) (superscript . org-man-superscript) (table . org-man-table) (table-cell . org-man-table-cell) (table-row . org-man-table-row) (target . org-man-target) (template . org-man-template) (timestamp . org-man-timestamp) (underline . org-man-underline) (verbatim . org-man-verbatim) (verse-block . org-man-verse-block)) :options ((:man-class "MAN_CLASS" nil nil t) (:man-class-options "MAN_CLASS_OPTIONS" nil nil t) (:man-header-extra "MAN_HEADER" nil nil newline) (:man-tables-centered nil nil org-man-tables-centered) (:man-tables-verbatim nil nil org-man-tables-verbatim) (:man-table-scientific-notation nil nil org-man-table-scientific-notation) (:man-source-highlight nil nil org-man-source-highlight) (:man-source-highlight-langs nil nil org-man-source-highlight-langs)) :filters nil :blocks nil :menu (77 "Export to MAN" ((109 "As MAN file" org-man-export-to-man) (112 "As PDF file" org-man-export-to-pdf) (111 "As PDF file and open" (lambda (a s v b) (if a (org-man-export-to-pdf t s v b) (org-open-file (org-man-export-to-pdf nil s v b)))))))) #s(org-export-backend :name icalendar :parent ascii :transcoders ((clock . ignore) (footnote-definition . ignore) (footnote-reference . ignore) (headline . org-icalendar-entry) (inlinetask . ignore) (planning . ignore) (section . ignore) (inner-template lambda (c i) c) (template . org-icalendar-template)) :options ((:exclude-tags "ICALENDAR_EXCLUDE_TAGS" nil org-icalendar-exclude-tags split) (:with-timestamps nil "<" org-icalendar-with-timestamps) (:icalendar-alarm-time nil nil org-icalendar-alarm-time) (:icalendar-categories nil nil org-icalendar-categories) (:icalendar-date-time-format nil nil org-icalendar-date-time-format) (:icalendar-include-bbdb-anniversaries nil nil org-icalendar-include-bbdb-anniversaries) (:icalendar-include-body nil nil org-icalendar-include-body) (:icalendar-include-sexps nil nil org-icalendar-include-sexps) (:icalendar-include-todo nil nil org-icalendar-include-todo) (:icalendar-store-UID nil nil org-icalendar-store-UID) (:icalendar-timezone nil nil org-icalendar-timezone) (:icalendar-use-deadline nil nil org-icalendar-use-deadline) (:icalendar-use-scheduled nil nil org-icalendar-use-scheduled)) :filters ((:filter-headline . org-icalendar-clear-blank-lines)) :blocks nil :menu (99 "Export to iCalendar" ((102 "Current file" org-icalendar-export-to-ics) (97 "All agenda files" (lambda (a s v b) (org-icalendar-export-agenda-files a))) (99 "Combine all agenda files" (lambda (a s v b) (org-icalendar-combine-agenda-files a)))))) #s(org-export-backend :name beamer :parent latex :transcoders ((bold . org-beamer-bold) (export-block . org-beamer-export-block) (export-snippet . org-beamer-export-snippet) (headline . org-beamer-headline) (item . org-beamer-item) (keyword . org-beamer-keyword) (link . org-beamer-link) (plain-list . org-beamer-plain-list) (radio-target . org-beamer-radio-target) (template . org-beamer-template)) :options ((:headline-levels nil "H" org-beamer-frame-level) (:latex-class "LATEX_CLASS" nil "beamer" t) (:beamer-subtitle-format nil nil org-beamer-subtitle-format) (:beamer-column-view-format "COLUMNS" nil org-beamer-column-view-format) (:beamer-theme "BEAMER_THEME" nil org-beamer-theme) (:beamer-color-theme "BEAMER_COLOR_THEME" nil nil t) (:beamer-font-theme "BEAMER_FONT_THEME" nil nil t) (:beamer-inner-theme "BEAMER_INNER_THEME" nil nil t) (:beamer-outer-theme "BEAMER_OUTER_THEME" nil nil t) (:beamer-header "BEAMER_HEADER" nil nil newline) (:beamer-environments-extra nil nil org-beamer-environments-extra) (:beamer-frame-default-options nil nil org-beamer-frame-default-options) (:beamer-outline-frame-options nil nil org-beamer-outline-frame-options) (:beamer-outline-frame-title nil nil org-beamer-outline-frame-title)) :filters nil :blocks nil :menu (108 1 ((66 "As LaTeX buffer (Beamer)" org-beamer-export-as-latex) (98 "As LaTeX file (Beamer)" org-beamer-export-to-latex) (80 "As PDF file (Beamer)" org-beamer-export-to-pdf) (79 "As PDF file and open (Beamer)" (lambda (a s v b) (if a (org-beamer-export-to-pdf t s v b) (org-open-file (org-beamer-export-to-pdf nil s v b)))))))) #s(org-export-backend :name pandoc :parent org :transcoders ((latex-environment . org-pandoc-latex-environ) (link . org-pandoc-link) (table . org-pandoc-table) (template . org-pandoc-template) (paragraph . org-pandoc-paragraph) (src-block . org-pandoc-src-block)) :options ((:pandoc-options "PANDOC_OPTIONS" nil nil space) (:pandoc-extensions "PANDOC_EXTENSIONS" nil nil space) (:pandoc-metadata "PANDOC_METADATA" nil nil space) (:pandoc-variables "PANDOC_VARIABLES" nil nil space) (:epub-chapter-level "EPUB_CHAPTER_LEVEL" nil nil t) (:epub-cover-image "EPUB_COVER" nil nil t) (:epub-stylesheet "EPUB_STYLESHEET" nil nil t) (:epub-embed-font "EPUB_EMBED_FONT" nil nil newline) (:epub-meta "EPUB_META" nil nil newline) (:epub-css "EPUB_CSS" nil nil newline) (:epub-rights "EPUB_RIGHTS" nil nil newline) (:bibliography "BIBLIOGRAPHY")) :filters nil :blocks nil :menu (112 "export via pandoc" ((52 "to html5 and open." org-pandoc-export-to-html5-and-open) (36 "as html5." org-pandoc-export-as-html5) (53 "to html5-pdf and open." org-pandoc-export-to-html5-pdf-and-open) (37 "to html5-pdf." org-pandoc-export-to-html5-pdf) (60 "to slideous and open." org-pandoc-export-to-slideous-and-open) (44 "as slideous." org-pandoc-export-as-slideous) (61 "to ms-pdf and open." org-pandoc-export-to-ms-pdf-and-open) (45 "to ms-pdf." org-pandoc-export-to-ms-pdf) (98 "to beamer-pdf and open." org-pandoc-export-to-beamer-pdf-and-open) (66 "to beamer-pdf." org-pandoc-export-to-beamer-pdf) (99 "to context-pdf and open." org-pandoc-export-to-context-pdf-and-open) (67 "to context-pdf." org-pandoc-export-to-context-pdf) (100 "to docbook5 and open." org-pandoc-export-to-docbook5-and-open) (68 "as docbook5." org-pandoc-export-as-docbook5) (101 "to epub3 and open." org-pandoc-export-to-epub3-and-open) (69 "to epub3." org-pandoc-export-to-epub3) (103 "to gfm and open." org-pandoc-export-to-gfm-and-open) (71 "as gfm." org-pandoc-export-as-gfm) (104 "to html4 and open." org-pandoc-export-to-html4-and-open) (72 "as html4." org-pandoc-export-as-html4) (105 "to icml and open." org-pandoc-export-to-icml-and-open) (73 "as icml." org-pandoc-export-as-icml) (106 "to json and open." org-pandoc-export-to-json-and-open) (74 "as json." org-pandoc-export-as-json) (108 "to latex-pdf and open." org-pandoc-export-to-latex-pdf-and-open) (76 "to latex-pdf." org-pandoc-export-to-latex-pdf) (109 "to man and open." org-pandoc-export-to-man-and-open) (77 "as man." org-pandoc-export-as-man) (110 "to native and open." org-pandoc-export-to-native-and-open) (78 "as native." org-pandoc-export-as-native) (111 "to odt and open." org-pandoc-export-to-odt-and-open) (79 "to odt." org-pandoc-export-to-odt) (112 "to pptx and open." org-pandoc-export-to-pptx-and-open) (80 "to pptx." org-pandoc-export-to-pptx) (114 "to rtf and open." org-pandoc-export-to-rtf-and-open) (82 "as rtf." org-pandoc-export-as-rtf) (117 "to dokuwiki and open." org-pandoc-export-to-dokuwiki-and-open) (85 "as dokuwiki." org-pandoc-export-as-dokuwiki) (118 "to revealjs and open." org-pandoc-export-to-revealjs-and-open) (86 "as revealjs." org-pandoc-export-as-revealjs) (119 "to mediawiki and open." org-pandoc-export-to-mediawiki-and-open) (87 "as mediawiki." org-pandoc-export-as-mediawiki) (120 "to docx and open." org-pandoc-export-to-docx-and-open) (88 "to docx." org-pandoc-export-to-docx) (121 "to slidy and open." org-pandoc-export-to-slidy-and-open) (89 "as slidy." org-pandoc-export-as-slidy) (122 "to dzslides and open." org-pandoc-export-to-dzslides-and-open) (90 "as dzslides." org-pandoc-export-as-dzslides)))) #s(org-export-backend :name org :parent nil :transcoders ((babel-call . org-org-identity) (bold . org-org-identity) (center-block . org-org-identity) (clock . org-org-identity) (code . org-org-identity) (diary-sexp . org-org-identity) (drawer . org-org-identity) (dynamic-block . org-org-identity) (entity . org-org-identity) (example-block . org-org-identity) (export-block . org-org-export-block) (fixed-width . org-org-identity) (footnote-definition . ignore) (footnote-reference . org-org-identity) (headline . org-org-headline) (horizontal-rule . org-org-identity) (inline-babel-call . org-org-identity) (inline-src-block . org-org-identity) (inlinetask . org-org-identity) (italic . org-org-identity) (item . org-org-identity) (keyword . org-org-keyword) (latex-environment . org-org-identity) (latex-fragment . org-org-identity) (line-break . org-org-identity) (link . org-org-link) (node-property . org-org-identity) (template . org-org-template) (paragraph . org-org-identity) (plain-list . org-org-identity) (planning . org-org-identity) (property-drawer . org-org-identity) (quote-block . org-org-identity) (radio-target . org-org-identity) (section . org-org-section) (special-block . org-org-identity) (src-block . org-org-identity) (statistics-cookie . org-org-identity) (strike-through . org-org-identity) (subscript . org-org-identity) (superscript . org-org-identity) (table . org-org-identity) (table-cell . org-org-identity) (table-row . org-org-identity) (target . org-org-identity) (timestamp . org-org-timestamp) (underline . org-org-identity) (verbatim . org-org-identity) (verse-block . org-org-identity)) :options nil :filters ((:filter-parse-tree . org-org--add-missing-sections)) :blocks nil :menu (79 "Export to Org" ((79 "As Org buffer" org-org-export-as-org) (111 "As Org file" org-org-export-to-org) (118 "As Org file and open" (lambda (a s v b) (if a (org-org-export-to-org t s v b) (org-open-file (org-org-export-to-org nil s v b)))))))) #s(org-export-backend :name odt :parent nil :transcoders ((bold . org-odt-bold) (center-block . org-odt-center-block) (clock . org-odt-clock) (code . org-odt-code) (drawer . org-odt-drawer) (dynamic-block . org-odt-dynamic-block) (entity . org-odt-entity) (example-block . org-odt-example-block) (export-block . org-odt-export-block) (export-snippet . org-odt-export-snippet) (fixed-width . org-odt-fixed-width) (footnote-definition . org-odt-footnote-definition) (footnote-reference . org-odt-footnote-reference) (headline . org-odt-headline) (horizontal-rule . org-odt-horizontal-rule) (inline-src-block . org-odt-inline-src-block) (inlinetask . org-odt-inlinetask) (italic . org-odt-italic) (item . org-odt-item) (keyword . org-odt-keyword) (latex-environment . org-odt-latex-environment) (latex-fragment . org-odt-latex-fragment) (line-break . org-odt-line-break) (link . org-odt-link) (node-property . org-odt-node-property) (paragraph . org-odt-paragraph) (plain-list . org-odt-plain-list) (plain-text . org-odt-plain-text) (planning . org-odt-planning) (property-drawer . org-odt-property-drawer) (quote-block . org-odt-quote-block) (radio-target . org-odt-radio-target) (section . org-odt-section) (special-block . org-odt-special-block) (src-block . org-odt-src-block) (statistics-cookie . org-odt-statistics-cookie) (strike-through . org-odt-strike-through) (subscript . org-odt-subscript) (superscript . org-odt-superscript) (table . org-odt-table) (table-cell . org-odt-table-cell) (table-row . org-odt-table-row) (target . org-odt-target) (template . org-odt-template) (timestamp . org-odt-timestamp) (underline . org-odt-underline) (verbatim . org-odt-verbatim) (verse-block . org-odt-verse-block)) :options ((:odt-styles-file "ODT_STYLES_FILE" nil org-odt-styles-file t) (:description "DESCRIPTION" nil nil newline) (:keywords "KEYWORDS" nil nil space) (:subtitle "SUBTITLE" nil nil parse) (:odt-content-template-file nil nil org-odt-content-template-file) (:odt-display-outline-level nil nil org-odt-display-outline-level) (:odt-fontify-srcblocks nil nil org-odt-fontify-srcblocks) (:odt-format-drawer-function nil nil org-odt-format-drawer-function) (:odt-format-headline-function nil nil org-odt-format-headline-function) (:odt-format-inlinetask-function nil nil org-odt-format-inlinetask-function) (:odt-inline-formula-rules nil nil org-odt-inline-formula-rules) (:odt-inline-image-rules nil nil org-odt-inline-image-rules) (:odt-pixels-per-inch nil nil org-odt-pixels-per-inch) (:odt-table-styles nil nil org-odt-table-styles) (:odt-use-date-fields nil nil org-odt-use-date-fields) (:with-latex nil "tex" org-odt-with-latex) (:latex-header "LATEX_HEADER" nil nil newline)) :filters ((:filter-parse-tree org-odt--translate-latex-fragments org-odt--translate-description-lists org-odt--translate-list-tables org-odt--translate-image-links)) :blocks nil :menu (111 "Export to ODT" ((111 "As ODT file" org-odt-export-to-odt) (79 "As ODT file and open" (lambda (a s v b) (if a (org-odt-export-to-odt t s v) (org-open-file (org-odt-export-to-odt nil s v) 'system))))))) #s(org-export-backend :name md :parent html :transcoders ((bold . org-md-bold) (center-block . org-md--convert-to-html) (code . org-md-verbatim) (drawer . org-md--identity) (dynamic-block . org-md--identity) (example-block . org-md-example-block) (export-block . org-md-export-block) (fixed-width . org-md-example-block) (headline . org-md-headline) (horizontal-rule . org-md-horizontal-rule) (inline-src-block . org-md-verbatim) (inlinetask . org-md--convert-to-html) (inner-template . org-md-inner-template) (italic . org-md-italic) (item . org-md-item) (keyword . org-md-keyword) (line-break . org-md-line-break) (link . org-md-link) (node-property . org-md-node-property) (paragraph . org-md-paragraph) (plain-list . org-md-plain-list) (plain-text . org-md-plain-text) (property-drawer . org-md-property-drawer) (quote-block . org-md-quote-block) (section . org-md-section) (special-block . org-md--convert-to-html) (src-block . org-md-example-block) (table . org-md--convert-to-html) (template . org-md-template) (verbatim . org-md-verbatim)) :options ((:md-footnote-format nil nil org-md-footnote-format) (:md-footnotes-section nil nil org-md-footnotes-section) (:md-headline-style nil nil org-md-headline-style)) :filters ((:filter-parse-tree . org-md-separate-elements)) :blocks nil :menu (109 "Export to Markdown" ((77 "To temporary buffer" (lambda (a s v b) (org-md-export-as-markdown a s v))) (109 "To file" (lambda (a s v b) (org-md-export-to-markdown a s v))) (111 "To file and open" (lambda (a s v b) (if a (org-md-export-to-markdown t s v) (org-open-file (org-md-export-to-markdown nil s v)))))))) #s(org-export-backend :name latex :parent nil :transcoders ((bold . org-latex-bold) (center-block . org-latex-center-block) (clock . org-latex-clock) (code . org-latex-code) (drawer . org-latex-drawer) (dynamic-block . org-latex-dynamic-block) (entity . org-latex-entity) (example-block . org-latex-example-block) (export-block . org-latex-export-block) (export-snippet . org-latex-export-snippet) (fixed-width . org-latex-fixed-width) (footnote-definition . org-latex-footnote-definition) (footnote-reference . org-latex-footnote-reference) (headline . org-latex-headline) (horizontal-rule . org-latex-horizontal-rule) (inline-src-block . org-latex-inline-src-block) (inlinetask . org-latex-inlinetask) (italic . org-latex-italic) (item . org-latex-item) (keyword . org-latex-keyword) (latex-environment . org-latex-latex-environment) (latex-fragment . org-latex-latex-fragment) (line-break . org-latex-line-break) (link . org-latex-link) (node-property . org-latex-node-property) (paragraph . org-latex-paragraph) (plain-list . org-latex-plain-list) (plain-text . org-latex-plain-text) (planning . org-latex-planning) (property-drawer . org-latex-property-drawer) (quote-block . org-latex-quote-block) (radio-target . org-latex-radio-target) (section . org-latex-section) (special-block . org-latex-special-block) (src-block . org-latex-src-block) (statistics-cookie . org-latex-statistics-cookie) (strike-through . org-latex-strike-through) (subscript . org-latex-subscript) (superscript . org-latex-superscript) (table . org-latex-table) (table-cell . org-latex-table-cell) (table-row . org-latex-table-row) (target . org-latex-target) (template . org-latex-template) (timestamp . org-latex-timestamp) (underline . org-latex-underline) (verbatim . org-latex-verbatim) (verse-block . org-latex-verse-block) (latex-math-block . org-latex-math-block) (latex-matrices . org-latex-matrices)) :options ((:latex-class "LATEX_CLASS" nil org-latex-default-class t) (:latex-class-options "LATEX_CLASS_OPTIONS" nil nil t) (:latex-header "LATEX_HEADER" nil nil newline) (:latex-header-extra "LATEX_HEADER_EXTRA" nil nil newline) (:description "DESCRIPTION" nil nil parse) (:keywords "KEYWORDS" nil nil parse) (:subtitle "SUBTITLE" nil nil parse) (:latex-active-timestamp-format nil nil org-latex-active-timestamp-format) (:latex-caption-above nil nil org-latex-caption-above) (:latex-classes nil nil org-latex-classes) (:latex-default-figure-position nil nil org-latex-default-figure-position) (:latex-default-table-environment nil nil org-latex-default-table-environment) (:latex-default-table-mode nil nil org-latex-default-table-mode) (:latex-diary-timestamp-format nil nil org-latex-diary-timestamp-format) (:latex-footnote-defined-format nil nil org-latex-footnote-defined-format) (:latex-footnote-separator nil nil org-latex-footnote-separator) (:latex-format-drawer-function nil nil org-latex-format-drawer-function) (:latex-format-headline-function nil nil org-latex-format-headline-function) (:latex-format-inlinetask-function nil nil org-latex-format-inlinetask-function) (:latex-hyperref-template nil nil org-latex-hyperref-template t) (:latex-image-default-scale nil nil org-latex-image-default-scale) (:latex-image-default-height nil nil org-latex-image-default-height) (:latex-image-default-option nil nil org-latex-image-default-option) (:latex-image-default-width nil nil org-latex-image-default-width) (:latex-images-centered nil nil org-latex-images-centered) (:latex-inactive-timestamp-format nil nil org-latex-inactive-timestamp-format) (:latex-inline-image-rules nil nil org-latex-inline-image-rules) (:latex-link-with-unknown-path-format nil nil org-latex-link-with-unknown-path-format) (:latex-listings nil nil org-latex-listings) (:latex-listings-langs nil nil org-latex-listings-langs) (:latex-listings-options nil nil org-latex-listings-options) (:latex-minted-langs nil nil org-latex-minted-langs) (:latex-minted-options nil nil org-latex-minted-options) (:latex-prefer-user-labels nil nil org-latex-prefer-user-labels) (:latex-subtitle-format nil nil org-latex-subtitle-format) (:latex-subtitle-separate nil nil org-latex-subtitle-separate) (:latex-table-scientific-notation nil nil org-latex-table-scientific-notation) (:latex-tables-booktabs nil nil org-latex-tables-booktabs) (:latex-tables-centered nil nil org-latex-tables-centered) (:latex-text-markup-alist nil nil org-latex-text-markup-alist) (:latex-title-command nil nil org-latex-title-command) (:latex-toc-command nil nil org-latex-toc-command) (:latex-compiler "LATEX_COMPILER" nil org-latex-compiler) (:date "DATE" nil "\\today" parse)) :filters ((:filter-options . org-latex-math-block-options-filter) (:filter-paragraph . org-latex-clean-invalid-line-breaks) (:filter-parse-tree org-latex-math-block-tree-filter org-latex-matrices-tree-filter org-latex-image-link-filter) (:filter-verse-block . org-latex-clean-invalid-line-breaks)) :blocks nil :menu (108 "Export to LaTeX" ((76 "As LaTeX buffer" org-latex-export-as-latex) (108 "As LaTeX file" org-latex-export-to-latex) (112 "As PDF file" org-latex-export-to-pdf) (111 "As PDF file and open" (lambda (a s v b) (if a (org-latex-export-to-pdf t s v b) (org-open-file (org-latex-export-to-pdf nil s v b)))))))) #s(org-export-backend :name html :parent nil :transcoders ((bold . org-html-bold) (center-block . org-html-center-block) (clock . org-html-clock) (code . org-html-code) (drawer . org-html-drawer) (dynamic-block . org-html-dynamic-block) (entity . org-html-entity) (example-block . org-html-example-block) (export-block . org-html-export-block) (export-snippet . org-html-export-snippet) (fixed-width . org-html-fixed-width) (footnote-reference . org-html-footnote-reference) (headline . org-html-headline) (horizontal-rule . org-html-horizontal-rule) (inline-src-block . org-html-inline-src-block) (inlinetask . org-html-inlinetask) (inner-template . org-html-inner-template) (italic . org-html-italic) (item . org-html-item) (keyword . org-html-keyword) (latex-environment . org-html-latex-environment) (latex-fragment . org-html-latex-fragment) (line-break . org-html-line-break) (link . org-html-link) (node-property . org-html-node-property) (paragraph . org-html-paragraph) (plain-list . org-html-plain-list) (plain-text . org-html-plain-text) (planning . org-html-planning) (property-drawer . org-html-property-drawer) (quote-block . org-html-quote-block) (radio-target . org-html-radio-target) (section . org-html-section) (special-block . org-html-special-block) (src-block . org-html-src-block) (statistics-cookie . org-html-statistics-cookie) (strike-through . org-html-strike-through) (subscript . org-html-subscript) (superscript . org-html-superscript) (table . org-html-table) (table-cell . org-html-table-cell) (table-row . org-html-table-row) (target . org-html-target) (template . org-html-template) (timestamp . org-html-timestamp) (underline . org-html-underline) (verbatim . org-html-verbatim) (verse-block . org-html-verse-block)) :options ((:html-doctype "HTML_DOCTYPE" nil org-html-doctype) (:html-container "HTML_CONTAINER" nil org-html-container-element) (:description "DESCRIPTION" nil nil newline) (:keywords "KEYWORDS" nil nil space) (:html-html5-fancy nil "html5-fancy" org-html-html5-fancy) (:html-link-use-abs-url nil "html-link-use-abs-url" org-html-link-use-abs-url) (:html-link-home "HTML_LINK_HOME" nil org-html-link-home) (:html-link-up "HTML_LINK_UP" nil org-html-link-up) (:html-mathjax "HTML_MATHJAX" nil "" space) (:html-equation-reference-format "HTML_EQUATION_REFERENCE_FORMAT" nil org-html-equation-reference-format t) (:html-postamble nil "html-postamble" org-html-postamble) (:html-preamble nil "html-preamble" org-html-preamble) (:html-head "HTML_HEAD" nil org-html-head newline) (:html-head-extra "HTML_HEAD_EXTRA" nil org-html-head-extra newline) (:subtitle "SUBTITLE" nil nil parse) (:html-head-include-default-style nil "html-style" org-html-head-include-default-style) (:html-head-include-scripts nil "html-scripts" org-html-head-include-scripts) (:html-allow-name-attribute-in-anchors nil nil org-html-allow-name-attribute-in-anchors) (:html-divs nil nil org-html-divs) (:html-checkbox-type nil nil org-html-checkbox-type) (:html-extension nil nil org-html-extension) (:html-footnote-format nil nil org-html-footnote-format) (:html-footnote-separator nil nil org-html-footnote-separator) (:html-footnotes-section nil nil org-html-footnotes-section) (:html-format-drawer-function nil nil org-html-format-drawer-function) (:html-format-headline-function nil nil org-html-format-headline-function) (:html-format-inlinetask-function nil nil org-html-format-inlinetask-function) (:html-home/up-format nil nil org-html-home/up-format) (:html-indent nil nil org-html-indent) (:html-infojs-options nil nil org-html-infojs-options) (:html-infojs-template nil nil org-html-infojs-template) (:html-inline-image-rules nil nil org-html-inline-image-rules) (:html-link-org-files-as-html nil nil org-html-link-org-files-as-html) (:html-mathjax-options nil nil org-html-mathjax-options) (:html-mathjax-template nil nil org-html-mathjax-template) (:html-metadata-timestamp-format nil nil org-html-metadata-timestamp-format) (:html-postamble-format nil nil org-html-postamble-format) (:html-preamble-format nil nil org-html-preamble-format) (:html-prefer-user-labels nil nil org-html-prefer-user-labels) (:html-self-link-headlines nil nil org-html-self-link-headlines) (:html-table-align-individual-fields nil nil org-html-table-align-individual-fields) (:html-table-caption-above nil nil org-html-table-caption-above) (:html-table-data-tags nil nil org-html-table-data-tags) (:html-table-header-tags nil nil org-html-table-header-tags) (:html-table-use-header-tags-for-first-column nil nil org-html-table-use-header-tags-for-first-column) (:html-tag-class-prefix nil nil org-html-tag-class-prefix) (:html-text-markup-alist nil nil org-html-text-markup-alist) (:html-todo-kwd-class-prefix nil nil org-html-todo-kwd-class-prefix) (:html-toplevel-hlevel nil nil org-html-toplevel-hlevel) (:html-use-infojs nil nil org-html-use-infojs) (:html-validation-link nil nil org-html-validation-link) (:html-viewport nil nil org-html-viewport) (:html-inline-images nil nil org-html-inline-images) (:html-table-attributes nil nil org-html-table-default-attributes) (:html-table-row-open-tag nil nil org-html-table-row-open-tag) (:html-table-row-close-tag nil nil org-html-table-row-close-tag) (:html-xml-declaration nil nil org-html-xml-declaration) (:html-wrap-src-lines nil nil org-html-wrap-src-lines) (:html-klipsify-src nil nil org-html-klipsify-src) (:html-klipse-css nil nil org-html-klipse-css) (:html-klipse-js nil nil org-html-klipse-js) (:html-klipse-selection-script nil nil org-html-klipse-selection-script) (:infojs-opt "INFOJS_OPT" nil nil) (:creator "CREATOR" nil org-html-creator-string) (:with-latex nil "tex" org-html-with-latex) (:latex-header "LATEX_HEADER" nil nil newline)) :filters ((:filter-options . org-html-infojs-install-script) (:filter-parse-tree . org-html-image-link-filter) (:filter-final-output . org-html-final-function)) :blocks nil :menu (104 "Export to HTML" ((72 "As HTML buffer" org-html-export-as-html) (104 "As HTML file" org-html-export-to-html) (111 "As HTML file and open" (lambda (a s v b) (if a (org-html-export-to-html t s v b) (org-open-file (org-html-export-to-html nil s v b)))))))) #s(org-export-backend :name ascii :parent nil :transcoders ((bold . org-ascii-bold) (center-block . org-ascii-center-block) (clock . org-ascii-clock) (code . org-ascii-code) (drawer . org-ascii-drawer) (dynamic-block . org-ascii-dynamic-block) (entity . org-ascii-entity) (example-block . org-ascii-example-block) (export-block . org-ascii-export-block) (export-snippet . org-ascii-export-snippet) (fixed-width . org-ascii-fixed-width) (footnote-reference . org-ascii-footnote-reference) (headline . org-ascii-headline) (horizontal-rule . org-ascii-horizontal-rule) (inline-src-block . org-ascii-inline-src-block) (inlinetask . org-ascii-inlinetask) (inner-template . org-ascii-inner-template) (italic . org-ascii-italic) (item . org-ascii-item) (keyword . org-ascii-keyword) (latex-environment . org-ascii-latex-environment) (latex-fragment . org-ascii-latex-fragment) (line-break . org-ascii-line-break) (link . org-ascii-link) (node-property . org-ascii-node-property) (paragraph . org-ascii-paragraph) (plain-list . org-ascii-plain-list) (plain-text . org-ascii-plain-text) (planning . org-ascii-planning) (property-drawer . org-ascii-property-drawer) (quote-block . org-ascii-quote-block) (radio-target . org-ascii-radio-target) (section . org-ascii-section) (special-block . org-ascii-special-block) (src-block . org-ascii-src-block) (statistics-cookie . org-ascii-statistics-cookie) (strike-through . org-ascii-strike-through) (subscript . org-ascii-subscript) (superscript . org-ascii-superscript) (table . org-ascii-table) (table-cell . org-ascii-table-cell) (table-row . org-ascii-table-row) (target . org-ascii-target) (template . org-ascii-template) (timestamp . org-ascii-timestamp) (underline . org-ascii-underline) (verbatim . org-ascii-verbatim) (verse-block . org-ascii-verse-block)) :options ((:subtitle "SUBTITLE" nil nil parse) (:ascii-bullets nil nil org-ascii-bullets) (:ascii-caption-above nil nil org-ascii-caption-above) (:ascii-charset nil nil org-ascii-charset) (:ascii-global-margin nil nil org-ascii-global-margin) (:ascii-format-drawer-function nil nil org-ascii-format-drawer-function) (:ascii-format-inlinetask-function nil nil org-ascii-format-inlinetask-function) (:ascii-headline-spacing nil nil org-ascii-headline-spacing) (:ascii-indented-line-width nil nil org-ascii-indented-line-width) (:ascii-inlinetask-width nil nil org-ascii-inlinetask-width) (:ascii-inner-margin nil nil org-ascii-inner-margin) (:ascii-links-to-notes nil nil org-ascii-links-to-notes) (:ascii-list-margin nil nil org-ascii-list-margin) (:ascii-paragraph-spacing nil nil org-ascii-paragraph-spacing) (:ascii-quote-margin nil nil org-ascii-quote-margin) (:ascii-table-keep-all-vertical-lines nil nil org-ascii-table-keep-all-vertical-lines) (:ascii-table-use-ascii-art nil nil org-ascii-table-use-ascii-art) (:ascii-table-widen-columns nil nil org-ascii-table-widen-columns) (:ascii-text-width nil nil org-ascii-text-width) (:ascii-underline nil nil org-ascii-underline) (:ascii-verbatim-format nil nil org-ascii-verbatim-format)) :filters ((:filter-headline . org-ascii-filter-headline-blank-lines) (:filter-parse-tree org-ascii-filter-paragraph-spacing org-ascii-filter-comment-spacing) (:filter-section . org-ascii-filter-headline-blank-lines)) :blocks nil :menu (116 "Export to Plain Text" ((65 "As ASCII buffer" (lambda (a s v b) (org-ascii-export-as-ascii a s v b '(:ascii-charset ascii)))) (97 "As ASCII file" (lambda (a s v b) (org-ascii-export-to-ascii a s v b '(:ascii-charset ascii)))) (76 "As Latin1 buffer" (lambda (a s v b) (org-ascii-export-as-ascii a s v b '(:ascii-charset latin1)))) (108 "As Latin1 file" (lambda (a s v b) (org-ascii-export-to-ascii a s v b '(:ascii-charset latin1)))) (85 "As UTF-8 buffer" (lambda (a s v b) (org-ascii-export-as-ascii a s v b '(:ascii-charset utf-8)))) (117 "As UTF-8 file" (lambda (a s v b) (org-ascii-export-to-ascii a s v b '(:ascii-charset utf-8)))))))) -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/ ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-04 18:03 ` Jean Louis @ 2023-01-05 11:17 ` Ihor Radchenko 2023-01-05 19:37 ` Jean Louis 0 siblings, 1 reply; 43+ messages in thread From: Ihor Radchenko @ 2023-01-05 11:17 UTC (permalink / raw) To: Jean Louis; +Cc: Max Nikulin, emacs-orgmode Jean Louis <bugs@gnu.support> writes: > * Max Nikulin <manikulin@gmail.com> [2023-01-03 15:18]: >> Jean might be happy with the posted mock-up. Unfortunately that code is too >> far from been ready to be used for all users. E.g. it does not use >> `org-export-registered-backends', not to mention that all menus in the >> package should be consistent. It is OK to have a bunch of repetitive code >> for a demo, but it can not be taken as is. > > After looking into it, into `org-export-registered-backends', I will > not use it, neither follow the chain of poor design. > > Users can get the choice otherwise in my package. I can have my own > setup and recognition of various exports. > > I can't follow the bad design that happen to take place, so I will not > lean on this below, I find that complex, while it need not be. Could you please elaborate what is bad about the design and maybe provide some ideas how it can be improved? -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-05 11:17 ` Ihor Radchenko @ 2023-01-05 19:37 ` Jean Louis 2023-01-06 3:24 ` Max Nikulin 2023-01-07 9:09 ` Ihor Radchenko 0 siblings, 2 replies; 43+ messages in thread From: Jean Louis @ 2023-01-05 19:37 UTC (permalink / raw) To: Ihor Radchenko; +Cc: Max Nikulin, emacs-orgmode * Ihor Radchenko <yantar92@posteo.net> [2023-01-05 14:17]: > Could you please elaborate what is bad about the design and maybe > provide some ideas how it can be improved? There was choice back in time, before 10 years, to provide to user few keys to run some functions, like Org export. That itself is not bad, but when it started expanding into now more than 100+ different exports, Org requires every new package to define what? Keys? So every package author is supposed to provide keys and various snippets of text, because they have to accommodate initial and outdated notion on using simple menu. Org Export is not any more simple menu. And Org users are in quite peculiar mode, with headings, TODO, tags, so in my personal logic it does not make sense NOT to provide to Org users Org based buffers where they can fold or unfold headings, freely use mouse to export, or keys, and watch in one window the buffer with menu like RCD Org Export, and in other windows other exports appearing in various versions, minimizing repetition, and helping user become more efficient. The ideas have been sent as concept to you, then as full package, which I now use daily, so it is to derive the mode, define key bindings, decide how to display toggling of variables for body, scope, async, etc. and generate hyperlinks for export. RCD Dashboard package is made to help other similar things to be created, and I wish to liberate it even from Org mode. I use daily RCD Dashboard, as it is package for packages in now multiple screens appearing automatically, imagine intersections of elementary objects like headings, or files, with their names, appearing in generated Org buffers with hyperlinks. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/ ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-05 19:37 ` Jean Louis @ 2023-01-06 3:24 ` Max Nikulin 2023-01-07 20:07 ` Jean Louis 2023-01-07 9:09 ` Ihor Radchenko 1 sibling, 1 reply; 43+ messages in thread From: Max Nikulin @ 2023-01-06 3:24 UTC (permalink / raw) To: emacs-orgmode On 06/01/2023 02:37, Jean Louis wrote: > * Ihor Radchenko [2023-01-05 14:17]: >> Could you please elaborate what is bad about the design and maybe >> provide some ideas how it can be improved? > > There was choice back in time, before 10 years, to provide to user few > keys to run some functions, like Org export. Sorry, but your response just repeats complains concerning blocking menu that you posted earlier many times. I do not see anything related to your original statement: > After looking into it, into `org-export-registered-backends', I will > not use it, neither follow the chain of poor design. Could you, please, concentrate on your vision of proper `org-export-registered-backends' design? Personally, I see no major issues, the approach is usual for enabling third-party plugins. From my point of view, the structure is organized well enough to allow alternative implementations of export menu. That is why I am surprised that such statement appeared in a topic dedicated to UI. Do not repeat that blocking menu is not convenient enough sometimes. Say what should be used instead of `org-export-registered-backends'. ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-06 3:24 ` Max Nikulin @ 2023-01-07 20:07 ` Jean Louis 2023-01-08 16:42 ` Max Nikulin 0 siblings, 1 reply; 43+ messages in thread From: Jean Louis @ 2023-01-07 20:07 UTC (permalink / raw) To: Max Nikulin; +Cc: emacs-orgmode * Max Nikulin <manikulin@gmail.com> [2023-01-06 06:30]: > Could you, please, concentrate on your vision of proper > `org-export-registered-backends' design? I leave that to Org developers. That variable is not described well, neither mentioned in Org manual. I can only reiterate my point which you did not understand. In Emacs there are thousands of extensions. There is mainstream Emacs and there are ELPA, and other repositories and all kinds of Emacs packages. Functions found in those packages may be commands (interactive), and it is up to user how to bind those keys. Read (info "(elisp) Key Binding Conventions") Based on that I don't find it consistent that in variable `org-export-registered-backends' Org has something like this: (85 "As UTF-8 buffer" (lambda (a s v b) (org-ascii-export-as-ascii a s v b '(:ascii-charset utf-8)))) as that asks for key probably 85 to be defined for that specific function. And the design of that variable leads to Gordian knot of the tangled code because it demands from all other exporters and extensions to follow that principle. And principle is not consistent to (info "(elisp) Key Binding Conventions") So why do that? I recommend not binding authors of Org export packages to provide keys and let users be free to decide which keys to use for which export. I can think that by clicking first time on a menu item in RCD Org Export, that I can ask user if to assign which key for that export, and remember that option. Provide something like that, a helpful assistance function that when some option is invoked multiple times, that computer may offer to user to assign it permanently to some key. Or when some prefix is invoked that user may decide which key to use, and that key is remembered for next sessions. In general, leave to users how to bind keys. > Do not repeat that blocking menu is not convenient enough sometimes. I am repeating it thousands of times on website pages. If it disturbs you, is personal problem, which I can't help with. Some things don't get done unless points are repeated.. > Say what should be used instead of `org-export-registered-backends'. Before to tell that, you should describe that variable better. "List of backends currently available in the exporter. This variable is set with `org-export-define-backend' and `org-export-define-derived-backend' functions." What I see from RCD Org Export view point is that: - there is variable `org-export-backends' which says which exports are customized by user to be "there". In my case: org-export-backends ➜ (org odt md latex html ascii) - I would like menu in RCD Org Export to appear for those backends which are customized by user. So I have 3 solutions, one is totally independent of Org mainstream, which would simply recognize those to me known exporting functions and show the menu of whatever packages are available for export, and other would be convenient, to recognize what user wants and offer only that. Or combination of those. Sorry, I do not understand why `org-export-backends' do not recognize all the pandoc based exports. I do understand why those exports appear in the org-export-dispatch menu. Is then Org consistent to user that user can turn on, turn off, any export that user wish or want? Or is not consistent? It appears not consistent for ox-pandoc package. If Org is not consistent, then I better build on the external foundation without asking Org variables, but just recognizing which functions already exist. I can as well simply parse variable `org-pandoc-menu-entry' for construction of the menu. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/ ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-07 20:07 ` Jean Louis @ 2023-01-08 16:42 ` Max Nikulin 0 siblings, 0 replies; 43+ messages in thread From: Max Nikulin @ 2023-01-08 16:42 UTC (permalink / raw) To: emacs-orgmode On 08/01/2023 03:07, Jean Louis wrote: > * Max Nikulin [2023-01-06 06:30]: >> Could you, please, concentrate on your vision of proper >> `org-export-registered-backends' design? > > I leave that to Org developers. That variable is not described well, > neither mentioned in Org manual. Org has user manual, but not developer manual. Doesn't `org-export-define-backend' provide enough details concerning `org-export-registered-backends'? Your vision of `org-export-registered-backends' design might shed some light why you consider its design as poor. I do not see any real problem to use it as is with a better menu implementation. > I can only reiterate my point which you did not understand. In Emacs > there are thousands of extensions. There is mainstream Emacs and there > are ELPA, and other repositories and all kinds of Emacs packages. I am aware of it. In the context of export menu, third party package may register their export function. > Based on that I don't find it consistent that in variable > `org-export-registered-backends' Org has something like this: > > (85 "As UTF-8 buffer" > (lambda > (a s v b) > (org-ascii-export-as-ascii a s v b > '(:ascii-charset utf-8)))) > > as that asks for key probably 85 to be defined for that specific > function. > > And the design of that variable leads to Gordian knot of the tangled > code because it demands from all other exporters and extensions to > follow that principle. I do not see any problem. The structure associates export functions, titles and hints for key bindings. It is normal for UI to have accelerator keys. If you do not like suggested key, you are free to override it in your menu framework. What code is tangled from your point of view? In the posted snippet I see a declaration of a function that should be exposed to UI. > I recommend not binding authors of Org export packages to provide > keys and let users be free to decide which keys to use for which > export. Allowing users to customize key bindings is not the same as imposing obligations to choose key bindings. You are free to not provide default key bindings or to shuffle menu entries by popularity for "convenience" in *your* packages. Default keys means consistency for novices and users who do not want to customize such aspects. > And principle is not consistent to (info "(elisp) Key Binding Conventions") I see just a minor issue that ESC ESC does not dismiss menu. C-g still works. Local variables dialog ("do you want to apply...") behaves similar to Org menus. There is enough room for improvements, but I would not call it a great trouble. > I am repeating it thousands of times on website pages. If it disturbs > you, is personal problem, which I can't help with. I do not care what you are posting on some websites. I do not like that in messages sent to my email you are repeating the same obvious ideas even when asked to clarify your particular statements. ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-05 19:37 ` Jean Louis 2023-01-06 3:24 ` Max Nikulin @ 2023-01-07 9:09 ` Ihor Radchenko 1 sibling, 0 replies; 43+ messages in thread From: Ihor Radchenko @ 2023-01-07 9:09 UTC (permalink / raw) To: Jean Louis; +Cc: Max Nikulin, emacs-orgmode Jean Louis <bugs@gnu.support> writes: > * Ihor Radchenko <yantar92@posteo.net> [2023-01-05 14:17]: >> Could you please elaborate what is bad about the design and maybe >> provide some ideas how it can be improved? > > ... > The ideas have been sent as concept to you, then as full package, > which I now use daily, so it is to derive the mode, define key > bindings, decide how to display toggling of variables for body, scope, > async, etc. and generate hyperlinks for export. I though that you objected the design of `org-export-define-backend' and the backend objects. Menus have little to do with it, merely following the key bindings suggested by export backend authors. If you just object the export menu system, let's go back to the main discussion about non-blocking menus in other branches of this thread. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at <https://orgmode.org/>. Support Org development at <https://liberapay.com/org-mode>, or support my work at <https://liberapay.com/yantar92> ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-03 10:01 ` Eduardo Ochs 2023-01-03 12:15 ` Max Nikulin @ 2023-01-04 17:51 ` Jean Louis 1 sibling, 0 replies; 43+ messages in thread From: Jean Louis @ 2023-01-04 17:51 UTC (permalink / raw) To: Eduardo Ochs; +Cc: emacs-orgmode > Can you send to me - here to the mailing list - a version of > `org-export-dispatch', and also of other functions if needed, in which > the parts that call `read-char-exclusive' are replaced by something > non-blocking? There is no Org version of menu that does not block. That it is there is due to initial notion that some functions should be run on single key, which is not bad in itself. Then people followed and continued developing on that foundation creating tangled functions. (find-function 'org-export--dispatch-ui) So in Org, currently, there is only the blocking way. Functions in Org Export or Org Agenda, can't be inspected interactively by using commands like {C-h k}, you can inspect sources directly. What you are asking is what my package offers: GNU Emacs package: rcd-org-export.el -- use Org to export Org: https://gnu.support/gnu-emacs/packages/GNU-Emacs-package-rcd-org-export-el-use-Org-to-export-Org-76272.html You may inspect how functions look like: (find-function 'org-html-export-as-html) Then description: org-html-export-as-html is an autoloaded interactive byte-compiled Lisp function in ‘ox-html.el’. (org-html-export-as-html &optional ASYNC SUBTREEP VISIBLE-ONLY BODY-ONLY EXT-PLIST) Basically ASYNC, SUBTREEP, VISIBLE-ONLY and BODY-ONLY are expected to be either NON-NIL or NIL, and by using those switches, you use the function to export. What the function: (find-function 'org-export--dispatch-ui) does is making sure to "highlight" (irony) when user press this or that key, like when user press the highlighted "h", that then the subsequent key like "H" appears highlighted, indicating to user that after pressing first key, there are just few other options left. Then in general Org Export works like this: First the underlying information: - It recognizes which export are available. What is worse, because of the not well taught design every OTHER package for Org export lean on the same blocking interface foundation, and keep adding to it! This is because developers of extensions for Emacs do not have other choice, or their package would not be included in org-export-dispatch Bad design, dictates more bad design. And if you ask me, of course that even simple change to interface creates havoc in all of those known and unknown Org export packages. Then there is the Org Broom that makes sure some apparently large, objectively small problems, end up under the carpet. Then visibly what Org Export does for user is following: - Show to user options to toggle variables like ASYNC, SUBTREEP, VISIBLE-ONLY, BODY-ONLY, they are supposed to be handled in real time. - Recognize which various exports among hundreds of them are available and display them for user to press one among hundreds of possible key combinations - Then export function is invoked with paramenters ASYNC SUBTREEP VISIBLE-ONLY BODY-ONLY EXT-PLIST, while some exports not support all of them To develop export library requires adapting to previously embedded or hard coded expectation of mainstream Org. Notion is now that the interface will be changed to transient, which does something similar more or less. I don't know of mouse support in transient, but what I have seen, it does not look like it. For you to make eev based export is easy, just toggling of variables and recognizing which export options are there, generating temporary eev buffers as usual. Objective reality points ------------------------ - Within Emacs there are many multi key commands. If user wish to see which key follows which key, can use packages like `which-key' or similar. Thus, it is superficial to involve some kind of highlighting single keys. That idea could have work very good for developer who made it. If I get used to it and acquire habit of it, I will keep using it and develop more by same principle. - That toggling variables need blocking screen is not coherent, as it doesn't. A derived mode may define any keys, and instead of "C-b" there can be simply "b" for "body-only" toggling. - Using control key, like C-b, to toggle variables makes sense only in writable buffers. - For each single export users are forced by design to again click "C-c C-e" and again invoke "h H" or other similar functions. This fact alone makes Org less usable. - Using emacsclient during Org Export is not feasible. - Emacs get blocked. - It ignores mouse and normal keyboard movements, it blocks Emacs and invoking emacsclient during Org Export or Org Agenda gives surprising impossible looking effects; this will not change with transient adoption. - Usability get forgotten. - Package RCD Org Export, proves, that export screen may remain all the time visible, without blocking Emacs, and user may within seconds export to various different formats. -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/ ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Export Org with Org concept -- Re: Problems with C-c C-e file.org, 2023-01-02 5:58 ` Eduardo Ochs 2023-01-02 11:07 ` Jean Louis 2023-01-03 9:48 ` Ihor Radchenko @ 2023-01-04 16:53 ` Jean Louis 2 siblings, 0 replies; 43+ messages in thread From: Jean Louis @ 2023-01-04 16:53 UTC (permalink / raw) To: Eduardo Ochs; +Cc: emacs-orgmode Pointers for you Eduardo: (find-efunction 'org-export-dispatch) (find-efunction 'org-export--dispatch-ui) (progn (find-efunction 'org-export--dispatch-ui) (forward-line 48)) (progn (find-efunction 'org-export--dispatch-ui) (search-forward "Export scope")) (find-efunction 'org-export-define-backend) (find-library "ox-html") (progn (find-library "ox-html") (search-forward "Export to HTML")) -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/ ^ permalink raw reply [flat|nested] 43+ messages in thread
* Re: Problems with C-c C-e file.org 2022-12-17 20:57 Problems with C-c C-e file.org andre duarte bueno 2022-12-18 14:55 ` Ihor Radchenko @ 2022-12-20 16:56 ` Jean Louis 1 sibling, 0 replies; 43+ messages in thread From: Jean Louis @ 2022-12-20 16:56 UTC (permalink / raw) To: andre duarte bueno; +Cc: emacs-orgmode * andre duarte bueno <bueno@lenep.uenf.br> [2022-12-18 12:30]: > When I try to export file.org using C-c C-e the window with the list of > possibilities appears. But it appears incomplete(visualization), so I try > to use the mouse to view the other export options and the system is > completely blocked. Every mouse click is captured and displayed in the > command window. And it doesn't allow you to do anything else. I am forced > to cancel the command without completing it. > Apparently C-c C-e is capturing all events and not just keyboard events! That problem is solved with my package RCD Org Export, see video demonstration here: https://gnu.support/files/emacs/packages/rcd-org-export/2022-12-20-19:33:59.ogv You may let me know what type of Org exports you need and I will make sure that my Emacs Lisp package supports it. It is non-blocking and allows mouse usage. More about it: GNU Emacs package: rcd-org-export.el -- use Org to export Org: https://gnu.support/gnu-emacs/packages/GNU-Emacs-package-rcd-org-export-el-use-Org-to-export-Org-76272.html -- Jean Take action in Free Software Foundation campaigns: https://www.fsf.org/campaigns In support of Richard M. Stallman https://stallmansupport.org/ ^ permalink raw reply [flat|nested] 43+ messages in thread
end of thread, other threads:[~2023-01-13 9:41 UTC | newest] Thread overview: 43+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-12-17 20:57 Problems with C-c C-e file.org andre duarte bueno 2022-12-18 14:55 ` Ihor Radchenko 2022-12-19 21:10 ` Export Org with Org concept -- Re: Problems with C-c C-e file.org, Jean Louis 2022-12-25 12:06 ` Ihor Radchenko 2022-12-25 15:43 ` Jean Louis 2022-12-26 10:04 ` Ihor Radchenko 2022-12-26 15:58 ` Jean Louis 2022-12-27 10:46 ` Ihor Radchenko 2022-12-31 1:08 ` Eduardo Ochs 2022-12-31 6:19 ` Jean Louis 2023-01-01 14:02 ` Ihor Radchenko 2023-01-02 5:58 ` Eduardo Ochs 2023-01-02 11:07 ` Jean Louis 2023-01-03 9:48 ` Ihor Radchenko 2023-01-03 10:01 ` Eduardo Ochs 2023-01-03 12:15 ` Max Nikulin 2023-01-03 12:36 ` Eduardo Ochs 2023-01-05 11:07 ` Ihor Radchenko 2023-01-05 14:41 ` Alain.Cochard 2023-01-05 15:00 ` Max Nikulin 2023-01-05 15:18 ` Alain.Cochard 2023-01-05 20:37 ` Eduardo Ochs 2023-01-05 18:50 ` Jean Louis 2023-01-05 15:43 ` Eduardo Ochs 2023-01-04 11:08 ` Jean Louis 2023-01-05 11:16 ` Ihor Radchenko 2023-01-05 19:19 ` Jean Louis 2023-01-06 3:51 ` Max Nikulin 2023-01-07 9:04 ` Ihor Radchenko 2023-01-07 18:34 ` Jean Louis 2023-01-07 19:12 ` Jean Louis 2023-01-12 15:43 ` Max Nikulin 2023-01-13 9:41 ` Ihor Radchenko 2023-01-04 18:03 ` Jean Louis 2023-01-05 11:17 ` Ihor Radchenko 2023-01-05 19:37 ` Jean Louis 2023-01-06 3:24 ` Max Nikulin 2023-01-07 20:07 ` Jean Louis 2023-01-08 16:42 ` Max Nikulin 2023-01-07 9:09 ` Ihor Radchenko 2023-01-04 17:51 ` Jean Louis 2023-01-04 16:53 ` Jean Louis 2022-12-20 16:56 ` Problems with C-c C-e file.org Jean Louis
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).