Re: [PATCH] Persistently save downloaded inline remote images
Thanks for the patch, and sorry about the slow response. Ferdinand Pieper writes: > Currently remote images are downloaded upon each display. As most of > the time the images do not change in between redisplays, we can > instead buffer the images locally and only update the local copy when > the remote image is updated. Hmm, I'm guessing this was left as a simple download given that there is also a `cache' option that keeps the image around in a separate buffer. Does that value help for your use case? Jack, as the author of the org-display-remote-inline-images commit, what do you think about this patch?
Re: [feature request] org-agenda-skip-unless
[ sorry for the slow response ] Alexander Adolf writes: [...] > and achieve an agenda with three sections: > 1) (agenda "" nil) > 2) all todos with some planning information (scheduled or deadline) > 3) all todos without any planning information > > Number 1 I already have. Number 3 can be achieved with > > (org-agenda-skip-function '(org-agenda-skip-if nil '(scheduled deadline))) > > But what about number 2? I searched the docs and code, bout couldn't > seem to find anything. > > I hence ended up with the idea that I would need a new function, > hypothetically (and cunningly) called org-agenda-skip-unless, which > would do the same as org-agenda-skip-if, but with inverted logic. I'm not necessarily against the idea, though I'm not yet convinced there's a big need... > With that, my dream agenda would be: > > (setq org-agenda-custom-commands > '(("n" "Agenda and all TODOs" >((agenda "" nil) > (alltodo "" ((org-agenda-block-separator "") > (org-agenda-overriding-header "TODO items with a date:") > (org-agenda-skip-function '(org-agenda-skip-unless nil > '(scheduled deadline) org-agenda-skip-if accepts notscheduled and notdeadline conditions. Passing them both to a single org-agenda-skip-if wouldn't do what you want because org-agenda-skip-if combines its conditions with `or'. However, you could combine two separate org-agenda-skip-if calls: (org-agenda-skip-function '(and (org-agenda-skip-if nil '(notscheduled)) (org-agenda-skip-if nil '(notdeadline
Re: [ANN] EmacsConf 2020 videos are out!
Nice. Thanks to everyone. Did you know if the videos are also on Peertube ? Le 6 décembre 2020 00:05:27 GMT+01:00, Amin Bandali a écrit : >Hello fellow Emacsians! > >[ I originally sent this mail to the EmacsConf lists and emacs-tangents, > but thought some folks on emacs-devel and emacs-orgmode might also be > interested in knowing about this and watching the videos too. :-) ] > >The EmacsConf 2020 videos are now ready. Thanks to everyone who helped >make it happen! > >You can check out https://emacsconf.org/2020/talks/ to find the videos, >Q, links, and notes for each talk. The collaborative pad is archived >at https://emacsconf.org/2020/pad/. We've also asked speakers to send >us any additional material or resources they would like to add to their >talk's page. > >The videos are currently available in 720p (1280px x 720px, progressive) >WebM format. We are working on transcoding and uploading low-resolution >(480p or 852px x 480px, progressive) WebM as well. > >If you have questions or ideas related to the talks, please feel free to >reach out to the speaker(s). If you think of ways to make EmacsConf >even better, we'd love to hear from you too. You can also check out >https://www.emacswiki.org/emacs/Usergroups for meetups and workshops >happening throughout the year (and if you organize a meetup or would >like to, please contact us - we'd love to help bring people together!). >If you have any EmacsConf-related blog posts or discussions, please add >them to https://emacsconf.org/2020/ or email us so that we could add the >links. Let's keep the conversation going! > >Behind the scenes >- > >This year, we were again able to make EmacsConf happen entirely with >Free Software. For the live talks and/or Q sessions with speakers, >we used the BigBlueButton instance graciously shared with us by the >Free Software Foundation (FSF). The whole conference was captured >and streamed to the EmacsConf stream server running Icecast, using a >GStreamer pipeline based on a script written by Ruben Rodriguez for >streaming FSF events such as the LibrePlanet conference and FSF35. >For the collaborative pad for gathering questions and show notes, we >used an Etherpad on the Wikimedia Foundation instance hosted at >https://etherpad.wikimedia.org. For the EmacsConf website, we used >ikiwiki. During the conference, we used Emacs Lisp to plan the >schedule, update the topics across our IRC channels, and send automated >messages about upcoming talks to speakers and organizers, all inside >Emacs. > >As we write more about our streaming setup, infrastructure, processes, >and code, we will update https://emacsconf.org/2020/ and post links to >https://lists.gnu.org/mailman/listinfo/emacsconf-discuss. >In the meantime, please don't hesitate to email me (band...@gnu.org) >if you would like to ask about how we organized the conference. > >Thanks again to everyone for an awesome EmacsConf! -- Envoyé de mon appareil Android avec Courriel K-9 Mail. Veuillez excuser ma brièveté.
[PATCH] Turkish translation added for export
--- lisp/ox.el | 36 +--- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/lisp/ox.el b/lisp/ox.el index 79ccfde32..2062c0e25 100644 --- a/lisp/ox.el +++ b/lisp/ox.el @@ -5745,6 +5745,7 @@ them." ("ru" :html "" :utf-8 "Автор") ("sl" :default "Avtor") ("sv" :html "Frfattare") + ("tr" :default "Yazar") ("uk" :html "" :utf-8 "Автор") ("zh-CN" :html "" :utf-8 "作者") ("zh-TW" :html "" :utf-8 "作者")) @@ -5763,7 +5764,8 @@ them." ("ro" :default "Continuare de pe pagina precedentă") ("ru" :html "()" :utf-8 "(Продолжение)") - ("sl" :default "Nadaljevanje s prejšnje strani")) + ("sl" :default "Nadaljevanje s prejšnje strani") + ("tr" :default "Önceki sayfadan devam ediyor")) ("Continued on next page" ("ar" :default "التتمة في الصفحة التالية") ("cs" :default "Pokračuje na další stránce") @@ -5779,13 +5781,15 @@ them." ("ro" :default "Continuare pe pagina următoare") ("ru" :html "( )" :utf-8 "(Продолжение следует)") - ("sl" :default "Nadaljevanje na naslednji strani")) + ("sl" :default "Nadaljevanje na naslednji strani") + ("tr" :default "Devamı sonraki sayfada")) ("Created" ("cs" :default "Vytvořeno") ("nl" :default "Gemaakt op") ;; must be followed by a date or date+time ("pt_BR" :default "Criado em") ("ro" :default "Creat") - ("sl" :default "Ustvarjeno")) + ("sl" :default "Ustvarjeno") + ("tr" :default "Oluşturuldu")) ("Date" ("ar" :default "بتاريخ") ("ca" :default "Data") @@ -5810,6 +5814,7 @@ them." ("ru" :html "" :utf-8 "Дата") ("sl" :default "Datum") ("sv" :default "Datum") + ("tr" :default "Tarih") ("uk" :html "" :utf-8 "Дата") ("zh-CN" :html "" :utf-8 "日期") ("zh-TW" :html "" :utf-8 "日期")) @@ -5833,6 +5838,7 @@ them." :utf-8 "Уравнение") ("sl" :default "Enačba") ("sv" :default "Ekvation") + ("tr" :default "Eşitlik") ("zh-CN" :html "" :utf-8 "方程")) ("Figure" ("ar" :default "شكل") @@ -5852,6 +5858,7 @@ them." ("ro" :default "Imaginea") ("ru" :html "" :utf-8 "Рисунок") ("sv" :default "Illustration") + ("tr" :default "Şekil") ("zh-CN" :html "" :utf-8 "图")) ("Figure %d:" ("ar" :default "شكل %d:") @@ -5873,6 +5880,7 @@ them." ("ru" :html ". %d.:" :utf-8 "Рис. %d.:") ("sl" :default "Slika %d") ("sv" :default "Illustration %d") + ("tr" :default "Şekil %d:") ("zh-CN" :html "%d" :utf-8 "图%d ")) ("Footnotes" ("ar" :default "الهوامش") @@ -5899,6 +5907,7 @@ them." ("ru" :html "" :utf-8 "Сноски") ("sl" :default "Opombe") ("sv" :default "Fotnoter") + ("tr" :default "Dipnotlar") ("uk" :html "" :utf-8 "Примітки") ("zh-CN" :html "" :utf-8 "脚注") @@ -5919,6 +5928,7 @@ them." ("ru" :html " " :utf-8 "Список распечаток") ("sl" :default "Seznam programskih izpisov") + ("tr" :default "Program Listesi") ("zh-CN" :html "" :utf-8 "代码目录")) ("List of Tables" ("ar" :default "قائمة بالجداول") @@ -5941,6 +5951,7 @@ them." :utf-8 "Список таблиц") ("sl" :default "Seznam tabel") ("sv" :default "Tabeller") + ("tr" :default "Tablo Listesi") ("zh-CN" :html "" :utf-8 "表格目录")) ("Listing" ("ar" :default "برنامج") @@ -5960,6 +5971,7 @@ them." ("ru" :html "" :utf-8 "Распечатка") ("sl" :default "Izpis programa") + ("tr" :default "Program") ("zh-CN" :html "" :utf-8 "代码")) ("Listing %d:" ("ar" :default "برنامج %d:") @@ -5979,6 +5991,7 @@ them." ("ru" :html " %d.:" :utf-8 "Распечатка %d.:") ("sl" :default "Izpis programa %d") + ("tr" :default "Program %d:") ("zh-CN" :html "%d" :utf-8 "代码%d ")) ("References" ("ar" :default "المراجع") @@ -5990,7 +6003,8 @@ them." ("nl" :default "Bronverwijzingen") ("pt_BR" :html "Referncias" :default "Referências" :ascii "Referencias") ("ro" :default "Bibliografie") - ("sl" :default "Reference")) + ("sl" :default "Reference") + ("tr" :default "Referanslar")) ("See figure %s" ("cs" :default "Viz obrázek %s") ("fr" :default "cf. figure %s" @@ -6000,7 +6014,8 @@ them." :html "Zie figuur%s" :latex "Zie figuur~%s") ("pt_BR" :default "Veja a figura %s") ("ro" :default "Vezi figura %s") - ("sl" :default "Glej sliko %s")) + ("sl" :default "Glej sliko %s") + ("tr" :default "bkz. şekil %s")) ("See listing %s" ("cs" :default "Viz program %s") ("fr" :default "cf. programme %s" @@ -6009,7 +6024,8 @@ them." :html "Zie programma%s" :latex "Zie programma~%s") ("pt_BR" :default "Veja a listagem %s") ("ro" :default "Vezi tabelul %s") - ("sl" :default "Glej izpis programa %s")) + ("sl" :default "Glej izpis programa %s") + ("tr" :default
[SUGGESTION] Allow EXPORT_FILE_NAME to use elisp
Dear all, I wrote a patch that allows the users to generate the exported filename via elisp in EXPORT_FILE_NAME. This suggestion encourages to reuse configuration (e.g. the document version or title) in the export filename. A common use case when writing documentation is that different versions of the document will be exported over time. These are then distributed, e.g. via e-mail or archived. By allowing the user to derive descriptive names during export exchange of the document is greatly simplified. E.g. the following excerpt will create a filename that contains the date of export, the document title and the document version: #+TITLE: My wonderful document #+X-DOCUMENT-VERSION: 0.2-snapshot #+EXPORT_FILE_NAME: `(format "%s-%s (v%s)" (org-format-time-string "%Y-%m-%d_%Hh%Mm" (org-current-time)) (org-macro--find-keyword-value "TITLE") (org-macro--find-keyword-value "X-DOCUMENT-VERSION"))` Including the patch would make the life of "document writers" easier by improving the consistency of their work. Just including the document version in the filename would make it easier to exchange documents with others. Allowing pure lisp is just the next step. The gist of the patch is attached below. The whole patch is still on GitHub. As soon as I have the papers with the fsf signed, I can send the whole patch. SECURITY CONSIDERATION: Since running elisp on export is a security risk I am looking for advice on how to make sure the user knows. Any suggestions on how to achieve that? https://github.com/neuhalje/org-mode/compare/master...eval_export_filename diff --git a/lisp/ox.el b/lisp/ox.el index 6dd2cd4a0..b79880666 100644 --- a/lisp/ox.el +++ b/lisp/ox.el @@ -6147,6 +6147,14 @@ to `:default' encoding. If it fails, return S." (plist-get translations :default) s))) +(defconst org-export--backquote-lisp-expression-regexp + "^[[:space:]]*`\\(.*\\)`[[:space:]]*$" + "A regexp to recognize an anchored lisp-expression between backticks. + +Spaces before and after the backticks are ignored. + +The syntax of the expression is not validated.") + ;;; Asynchronous Export @@ -6390,6 +6398,16 @@ or FILE." (or (and (functionp post-process) (funcall post-process file)) file)) +(defun org-export-output-file-name--expand-name (file-name) + "If the filename is surrounded by `EXPR` then EXPR is evaluated and returned. + Otherwise return FILE-NAME" + (if (string-match org-export--backquote-lisp-expression-regexp file-name) + (let ((expression (match-string 1 file-name))) + (eval (car (read-from-string expression))) + ) +file-name) +) + (defun org-export-output-file-name (extension subtreep pub-dir) "Return output file's name according to buffer specifications. @@ -6400,6 +6418,16 @@ With a non-nil optional argument SUBTREEP, try to determine output file's name by looking for \"EXPORT_FILE_NAME\" property of subtree at point. +If the filename (without extension) is enclosed in backticks, then +the text between the backticks is evaluated and the result is taken +as file name. + +E.g. + +#+EXPORT_FILE_NAME: `(format \"This is a %s\" \"test\")` + +will evaluate to \"This is a test\". + When optional argument PUB-DIR is set, use it as the publishing directory. @@ -6407,7 +6435,7 @@ Return file name as a string." (let* ((visited-file (buffer-file-name (buffer-base-buffer))) (base-name (concat - (file-name-sans-extension + (org-export-output-file-name--expand-name (file-name-sans-extension (or ;; Check EXPORT_FILE_NAME subtree property. (and subtreep (org-entry-get nil "EXPORT_FILE_NAME" 'selective)) @@ -6426,7 +6454,7 @@ Return file name as a string." ;; Can't determine file name on our own: ask user. (read-file-name "Output file: " pub-dir nil nil nil - (lambda (n) (string= extension (file-name-extension n t)) + (lambda (n) (string= extension (file-name-extension n t))) extension)) (output-file ;; Build file name. Enforce EXTENSION over whatever user
Turkish translation for org-export-dictionary
Hello, This is the initial translation for Turkish for the variable org-export-dictionary(ox.el). I may update it over time after seeing some of them in context. ("Author" ("tr" :default "Yazar")) ("Continued from previous page" ("tr" :default "Önceki sayfadan devam ediyor")) ("Continued on next page" ("tr" :default "Devamı sonraki sayfada")) ("Created" ("tr" :default "Oluşturuldu")) ("Date" ("tr" :default "Tarih")) ("Equation" ("tr" :default "Eşitlik")) ("Figure" ("tr" :default "Şekil")) ("Figure %d:" ("tr" :default "Şekil %d:")) ("Footnotes" ("tr" :default "Dipnotlar")) ("List of Listings" ("tr" :default "Program Listesi")) ("List of Tables" ("tr" :default "Tablo Listesi")) ("Listing" ("tr" :default "Program")) ("Listing %d:" ("tr" :default "Program %d:")) ("References" ("tr" :default "Referanslar")) ("See figure %s" ("tr" :default "bkz. şekil %s")) ("See listing %s" ("tr" :default "bkz. program %s")) ("See section %s" ("tr" :default "bkz. bölüm %s")) ("See table %s" ("tr" :default "bkz. tablo %s")) ("Table" ("tr" :default "Tablo")) ("Table %d:" ("tr" :default "Tablo %d")) ("Table of Contents" ("tr" :default "İçindekiler")) ("Unknown reference" ("tr" :default "Bilinmeyen referans"))
[PATCH] Margin added for overflow visibility problem
--- lisp/ox-html.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/ox-html.el b/lisp/ox-html.el index d2f24f5c6..1a466fb16 100644 --- a/lisp/ox-html.el +++ b/lisp/ox-html.el @@ -300,7 +300,7 @@ property on the headline itself.") padding: 3px; border: 1px solid black; } - pre.src:hover:before { display: inline;} + pre.src:hover:before { display: inline; margin-top: 14px;} /* Languages per Org manual */ pre.src-asymptote:before { content: 'Asymptote'; } pre.src-awk:before { content: 'Awk'; } -- 2.29.2
bug#42484: Updated patch
I've been using my solution over the last month+, but with a modification for cases of links with embedded percent signs. That happens when for instance a URL wasnt to have an embedded space or other character. The result is that the elisp function 'message' misinterprets that as a format field. (defun my-org-mode-post-command-hook () "Show POINT's \"help-echo\" information in the echo area. This could be information about an org-link at POINT, or some other data." (let ((message-log-max)) ; suppress output to *Messages* buffer (ignore-errors (message "%s" (url-unhex-string (get-text-property (point) 'help-echo)) nil t (add-hook 'org-mode-hook 'my-org-mode-hook) -- hkp://keys.gnupg.net CA45 09B5 5351 7C11 A9D1 7286 0036 9E45 1595 8BC0
[PATCH] Turkish translation added for export
--- lisp/ox.el | 36 +--- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/lisp/ox.el b/lisp/ox.el index 79ccfde32..2062c0e25 100644 --- a/lisp/ox.el +++ b/lisp/ox.el @@ -5745,6 +5745,7 @@ them." ("ru" :html "" :utf-8 "Автор") ("sl" :default "Avtor") ("sv" :html "Frfattare") + ("tr" :default "Yazar") ("uk" :html "" :utf-8 "Автор") ("zh-CN" :html "" :utf-8 "作者") ("zh-TW" :html "" :utf-8 "作者")) @@ -5763,7 +5764,8 @@ them." ("ro" :default "Continuare de pe pagina precedentă") ("ru" :html "()" :utf-8 "(Продолжение)") - ("sl" :default "Nadaljevanje s prejšnje strani")) + ("sl" :default "Nadaljevanje s prejšnje strani") + ("tr" :default "Önceki sayfadan devam ediyor")) ("Continued on next page" ("ar" :default "التتمة في الصفحة التالية") ("cs" :default "Pokračuje na další stránce") @@ -5779,13 +5781,15 @@ them." ("ro" :default "Continuare pe pagina următoare") ("ru" :html "( )" :utf-8 "(Продолжение следует)") - ("sl" :default "Nadaljevanje na naslednji strani")) + ("sl" :default "Nadaljevanje na naslednji strani") + ("tr" :default "Devamı sonraki sayfada")) ("Created" ("cs" :default "Vytvořeno") ("nl" :default "Gemaakt op") ;; must be followed by a date or date+time ("pt_BR" :default "Criado em") ("ro" :default "Creat") - ("sl" :default "Ustvarjeno")) + ("sl" :default "Ustvarjeno") + ("tr" :default "Oluşturuldu")) ("Date" ("ar" :default "بتاريخ") ("ca" :default "Data") @@ -5810,6 +5814,7 @@ them." ("ru" :html "" :utf-8 "Дата") ("sl" :default "Datum") ("sv" :default "Datum") + ("tr" :default "Tarih") ("uk" :html "" :utf-8 "Дата") ("zh-CN" :html "" :utf-8 "日期") ("zh-TW" :html "" :utf-8 "日期")) @@ -5833,6 +5838,7 @@ them." :utf-8 "Уравнение") ("sl" :default "Enačba") ("sv" :default "Ekvation") + ("tr" :default "Eşitlik") ("zh-CN" :html "" :utf-8 "方程")) ("Figure" ("ar" :default "شكل") @@ -5852,6 +5858,7 @@ them." ("ro" :default "Imaginea") ("ru" :html "" :utf-8 "Рисунок") ("sv" :default "Illustration") + ("tr" :default "Şekil") ("zh-CN" :html "" :utf-8 "图")) ("Figure %d:" ("ar" :default "شكل %d:") @@ -5873,6 +5880,7 @@ them." ("ru" :html ". %d.:" :utf-8 "Рис. %d.:") ("sl" :default "Slika %d") ("sv" :default "Illustration %d") + ("tr" :default "Şekil %d:") ("zh-CN" :html "%d" :utf-8 "图%d ")) ("Footnotes" ("ar" :default "الهوامش") @@ -5899,6 +5907,7 @@ them." ("ru" :html "" :utf-8 "Сноски") ("sl" :default "Opombe") ("sv" :default "Fotnoter") + ("tr" :default "Dipnotlar") ("uk" :html "" :utf-8 "Примітки") ("zh-CN" :html "" :utf-8 "脚注") @@ -5919,6 +5928,7 @@ them." ("ru" :html " " :utf-8 "Список распечаток") ("sl" :default "Seznam programskih izpisov") + ("tr" :default "Program Listesi") ("zh-CN" :html "" :utf-8 "代码目录")) ("List of Tables" ("ar" :default "قائمة بالجداول") @@ -5941,6 +5951,7 @@ them." :utf-8 "Список таблиц") ("sl" :default "Seznam tabel") ("sv" :default "Tabeller") + ("tr" :default "Tablo Listesi") ("zh-CN" :html "" :utf-8 "表格目录")) ("Listing" ("ar" :default "برنامج") @@ -5960,6 +5971,7 @@ them." ("ru" :html "" :utf-8 "Распечатка") ("sl" :default "Izpis programa") + ("tr" :default "Program") ("zh-CN" :html "" :utf-8 "代码")) ("Listing %d:" ("ar" :default "برنامج %d:") @@ -5979,6 +5991,7 @@ them." ("ru" :html " %d.:" :utf-8 "Распечатка %d.:") ("sl" :default "Izpis programa %d") + ("tr" :default "Program %d:") ("zh-CN" :html "%d" :utf-8 "代码%d ")) ("References" ("ar" :default "المراجع") @@ -5990,7 +6003,8 @@ them." ("nl" :default "Bronverwijzingen") ("pt_BR" :html "Referncias" :default "Referências" :ascii "Referencias") ("ro" :default "Bibliografie") - ("sl" :default "Reference")) + ("sl" :default "Reference") + ("tr" :default "Referanslar")) ("See figure %s" ("cs" :default "Viz obrázek %s") ("fr" :default "cf. figure %s" @@ -6000,7 +6014,8 @@ them." :html "Zie figuur%s" :latex "Zie figuur~%s") ("pt_BR" :default "Veja a figura %s") ("ro" :default "Vezi figura %s") - ("sl" :default "Glej sliko %s")) + ("sl" :default "Glej sliko %s") + ("tr" :default "bkz. şekil %s")) ("See listing %s" ("cs" :default "Viz program %s") ("fr" :default "cf. programme %s" @@ -6009,7 +6024,8 @@ them." :html "Zie programma%s" :latex "Zie programma~%s") ("pt_BR" :default "Veja a listagem %s") ("ro" :default "Vezi tabelul %s") - ("sl" :default "Glej izpis programa %s")) + ("sl" :default "Glej izpis programa %s") + ("tr" :default "bkz.
[PATCH] Margin added for overflow visibility problem
Write a code block in an org file and publish it to a html file. You will see that only bottom part of the name of the programming language is visible when you hover on it because of the css of that block (overflow:auto) To fix this, a margin-top can be added. --- lisp/ox-html.el | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lisp/ox-html.el b/lisp/ox-html.el index d2f24f5c6..1a466fb16 100644 --- a/lisp/ox-html.el +++ b/lisp/ox-html.el @@ -300,7 +300,7 @@ property on the headline itself.") padding: 3px; border: 1px solid black; } - pre.src:hover:before { display: inline;} + pre.src:hover:before { display: inline; margin-top: 14px;} /* Languages per Org manual */ pre.src-asymptote:before { content: 'Asymptote'; } pre.src-awk:before { content: 'Awk'; } -- 2.29.2