* lisp/ox-org.el (org-org-publish-to-org):
* lisp/ox-html.el (org-html-htmlize-generate-css):
(org-html-fontify-code):
* lisp/org-agenda.el (org-agenda-write): Throw an error
requesting the user to install htmlize.el.
* doc/org.texi (Exporting agenda views, Literal examples):
Don’t assume htmlize.el is available.
You need to install it from https://github.com/hniksic/emacs-htmlize
See https://github.com/hniksic/emacs-htmlize/issues/7 for this issue.
org-drill requires only cl-lib rather than cl, so should use cl-gensym
rather than gensym I believe.
From 1eef99d550e467bf4a3eaf6bdbe4d3a482f6c187 Mon Sep 17 00:00:00 2001
From: Stig Brautaset <stig@brautaset.org>
Date: Fri, 14 Jul 2017 20:45:37 +0100
Subject: [PATCH 2/3] org-drill.el: use cl-gensym rather than gensym
cl-lib is already required by this file, but cl is not.
* contrib/lisp/ox-koma-letter.el (org-koma-letter-url,
org-koma-letter-use-url): New variables.
(org-koma-letter--build-settings): Use new variables.
Copied phone-number variable code, pasted it and changed references from phone-number to url.
Tested "url" with "#+URL: url", and "use-url" using "#+OPTIONS url:[nil|t]".
TINYCHANGE
* contrib/lisp/org-depend.el (org-depend-block-todo): Fix check for
previous-sibling blocker.
The "previous-sibling" blocker checked the previous visible heading,
instead of the true previous sibling.
* contrib/lisp/org-git-link.el (org-gitbare-open):
(org-git-open):
(org-git-find-gitdir):
(org-git-create-git-link): Prefer nth function to cl.el's first,
second, third.
org-git-link.el does not explicitly load cl.el, and variants without
the "cl-" prefix have been out of favor since Emacs 24.3.
* contrib/lisp/ox-extra.el (org-extra--merge-sections): New function.
(org-export-ignore-headlines): Merge multiple sections that result
from removing ignored headlines.
Prevent org-export-ignore-headlines from violating the one headline to
one section mapping that is relied on by at least one export backend,
ox-texinfo. (ox-texinfo uses each section to generate the menu.)
* contrib/lisp/ox-confluence.el (org-confluence-table-cell): Add blank
space in an empty table cell such that Confluence tables do not skip
empty entries and produce erroneous table headers.
Confluence tables are formatted incorrectly when empty cells
cause `||' to generate the next cell as a table header, skipping
the empty cell. Empty cells must be formatted as `| |'.
TINYCHANGE
* contrib/lisp/org-toc.el (org-toc-quit):
* lisp/org-mhe.el (org-mhe-follow-link): Use kill-buffer rather than
menu-bar.el's kill-this-buffer.
See Emacs bug#26466 and discussion on emacs.devel:
https://lists.gnu.org/archive/html/emacs-devel/2017-04/msg00346.html.
This is in favor of backporting Emacs's 2e4f4c9d48 (Don't call
'kill-this-buffer' outside of menus, 2017-04-12), which introduces a
new function kill-current-buffer that provides special handling of
minibuffers.
* contrib/lisp/ox-groff.el (org-groff-clock, org-groff-planning): Use
org-translate-time'.
(propagate changes introduced to other export backends in commit
e1adb17ba509a43e9a03a5b367a98b8bc8de8b02.)
* contrib/lisp/ox-confluence.el (org-confluence-timestamp): New
function.
(org-confluence-headline): Use new function.
(org-confluence-table-cell): Add missing space.
Fix handling of square brackets from timestamps and checkboxes; avoid
invalid confluence markup for empty table headers.
* contrib/lisp/org-depend.el (org-depend-trigger-todo): Use new
functions.
* contrib/lisp/org-invoice.el (org-invoice-heading-info):
(org-invoice-info-to-table):
(org-invoice-list-to-table): Use new functions.
* contrib/lisp/ox-taskjuggler.el (org-taskjuggler--build-task): Use
new functions.
* lisp/org-agenda.el (org-agenda-show-clocking-issues):
(org-agenda-format-item):
(org-agenda-filter-effort-form): Use new functions.
* lisp/org-clock.el (org-clock-get-clock-string):
(org-clock-modify-effort-estimate):
(org-clock-notify-once-if-expired):
(org-clock-out):
(org-clock-display):
(org-clock-put-overlay):
(org-clocktable-write-default): Use new functions.
* lisp/org-table.el (org-table-sort-lines): Use new functions.
* lisp/org.el (org-properties-postprocess-alist):
(org-refresh-effort-properties):
(org-set-effort):
(org-entry-properties):
(org-property-next-allowed-value): Use new functions.
(org-time-clocksum-format):
(org-time-clocksum-use-fractional):
(org-time-clocksum-use-fractional-format):
(org-time-clocksum-use-effort-durations): Declare as obsolete. Move
to "org-compat.el".
(org-minutes-to-clocksum-string):
(org-hh:mm-string-to-minutes):
(org-duration-string-to-minutes): Declare as obsolete. Move to
"org-compat.el".
(org-hours-to-clocksum-string): Remove function.
* lisp/org-colview.el (org-columns--collect-values): Use new
functions.
(org-columns--duration-re): Remove variable.
(org-columns--time-to-seconds): Rename to...
(org-columns--age-to-minutes): ... this.
(org-columns--format-age): New function.
(org-columns--summary-apply-times):
(org-columns--summary-min-age):
(org-columns--summary-max-age):
(org-columns--summary-mean-age): Use new functions.
* testing/lisp/test-org-clock.el (test-org-clock-clocktable-contents-at-point):
* testing/lisp/test-org-colview.el (test-org-colview/columns-summary):
Update tests.
* ox-bibtex.el (org-bibtex-process-bib-files): Solve a bug in which
ox-bibtex was not considering enterily keys like "Author et&bsp; al.,
1999" as valid.
TINYCHANGE
* contrib/lisp/ox-confluence.el (org-confluence-fixed-width):
export fixed-width as example-block so that the outcome is more
consistent with org-mode format. Other back-ends (say ox-md.el)
also work this way.
TINYCHANGE
* contrib/lisp/ox-confluence.el (org-confluence-item): Support
descriptive list
When converting a descriptive list item, be sure to include the "item"
part, not just the description.
TINYCHANGE
* contrib/lisp/ox-confluence.el (org-confluence-item): Support ordered
list
When converting a bullet item, examine the type of it and convert
accordingly.
TINYCHANGE
* contrib/lisp/ox-confluence.el (org-confluence-verbatim,
org-confluence-code): New functions.
Convert org-mode =verbatim= and ~code~ into Confluence {{monospace}}.
TINYCHANGE
* contrib/lisp/org-expiry.el (org-expiry-process-entry): Call
`org-expiry-expired-p' with the correct number of arguments. It does
not accept argument anymore.
* contrib/lisp/org-expiry.el (org-expiry-process-entry): Fix the call to
`org-expiry-handler-function'.
`org-expiry-handler-function' is meant to be a variable containing the symbol of
a function to be called. Therefore, calling
(funcall 'org-expiry-handler-function) results in a void function error while
(funcall org-expiry-handler-function) correctly calls the contained function.
* contrib/lisp/ob-vbnet.el: Add org-babel functions for VB.Net evaluation.
(org-babel-vbnet-command): Name of the VB command (mono)
(org-babel-vbnet-compiler): Name of the VB compiler (vbnc)
(org-babel-execute:vbnet): Execute VB.Net code
(org-babel-prep-session:vbnet): Throw error (sessions are not supported)
* contrib/lisp/ob-csharp.el: Add org-babel functions for C# evaluation.
(org-babel-csharp-command): Name of the C# command (mono)
(org-babel-csharp-compiler): Name of the C# compiler (mcs)
(org-babelexecute:csharp): Execute C# code.
(org-babel-prep-session:csharp): Throw error (sessions are not supported).
* lisp/org.el (org-find-if): Remove function.
(org-key):
* contrib/lisp/org-contacts.el (org-contacts-db-need-update-p):
(org-contacts-filter):
(org-contacts-test-completion-prefix):
(org-contacts-remove-ignored-property-values): Use `cl-find-if'
* lisp/org-compat.el (org-find-if): Mark function as an obsolete alias
for `cl-find-if'.
* contrib/lisp/org-mime.el (org-mime-replace-images): Change signature.
Always use temporary directory to create LaTeX images.
(org-mime-htmlize):
(org-mime-compose): Apply signature change above.
When exporting an org buffer with a LaTeX snippet including the Org
option "tex: dvipng" the images were always created in "/tmp/ltxpng/",
but the reported link in the htmlized buffer was the local "./ltxpng"
folder; so, unless the org file to htmlize was actually in "/tmp", the
user got an error saying that the image could not be found.
This was caused by the two different ways in which the function
`org-mime-replace-images' is used inside of
`org-mime-org-buffer-htmlize' and `org-mime-htmlize.'
To correct the problem, the function org-mime-replace-images doesn't
take anymore the current-file parameter (that was only used to get its
directory) and instead always creates a temporary directory using
temporary-file-directory.
* contrib/lisp/ox-rss.el (org-rss-headline): Put author's email
address in <author> element.
The RSS specification requires the email address and the name of the
author to be provided in the <author> element in the format
"email@domain.com (Name)". Currently, only the author's name is
provided. This is invalid RSS.
* contrib/lisp/ox-rss.el (org-rss-build-channel-info, org-rss-headline):
Encode disallowed characters in `title' to their XML entities.
The `title' field is user specified and may contain characters such as
"&", "<" or ">" that are disallowed in XML. These characters should be
encoded into their corresponding XML entities.
* lisp/org-element.el (org-element-example-block-parser): Use cons cell
for :number-lines specifying offset in addition to type (new/continue).
('continue . offset) for :number-lines will add this offset count to
the last line number. ('new . offset) for :number-lines will reset the
line number counting starting at offset
(org-element-src-block-parser): same for SRC block as EXAMPLE block
* lisp/ox-html.el (org-html-format-code):
* lisp/ox-latex.el (org-latex-src-block):
* lisp/ox-odt.el (org-odt-format-code):
* lisp/ox.el (org-export-resolve-coderef):
(org-export-get-loc):
(org-export-format-code-default):
* contrib/lisp/ox-groff.el (org-groff-src-block): Use new cons cell
for :number-lines.
* testing/lisp/test-ox.el (ert-deftest test-org-export/get-loc): Tests for
changes
(test-org-gen-loc-list): Helper function for `test-org-export/get-loc'.
* contrib/lisp/ox-rss.el (org-rss-headline): Transcode lower level
headlines (headlines with level > 1) using the html backend. Do not
drop them.
Previously, lower level headlines were dropped and did not appear in the
exported RSS output.
* lisp/org.el (org-show-context-detail): Change default visibility span
for agenda context.
* lisp/org-agenda.el (org-agenda-goto):
(org-agenda-todo):
(org-agenda-add-note):
(org-agenda-priority):
(org-agenda-set-tags):
(org-agenda-set-property):
(org-agenda-set-effort):
(org-agenda-toggle-archive-tag):
(org-agenda-clock-in): Special visibility is taken care of by
`org-show-context'. Do not hard-code anything else.
* contrib/lisp/org-contacts.el (org-contacts-gnus-article-from-goto):
Special visibility is taken care of by `org-show-context'. Do not
hard-code anything else.
* contrib/lisp/ox-koma-letter.el (koma-letter): Duplicated code
used for 'place' variable, renamed as 'location'
Whenever OPTION keyword contains a 'location' item or LOCATION
keyword is used in the buffer, set KOMA option 'location' after
LCO inclusion.
* ox-koma-letter.el (koma-letter backend): Add :inbuffer-from.
(org-koma-letter--get-tagged-contents): Check that value is not empty.
(org-koma-letter-template): Remove from address block from
template and find to address directly.
(org-koma-letter--build-settings): Determine from address.
(org-koma-letter--special-contents-inline): Remove function.
* ox-koma-letter.el
(org-koma-letter-special-tags-after-closing): Add after_closing.
(org-koma-letter-special-tags-as-macro): New defvar.
(koma-letter backend): Revamp special tags options.
(org-koma-letter--get-value): Rewrite function.
(org-koma-letter--keyword-or-headline): Get special tags dynamically
(org-koma-letter-template): Use new specifications.
* contrib/lisp/ox-confluence.el: (org-confluence-paragraph): New function.
(confluence): Use new function.
ox-confluence was generating filled paragraphs. Since Confluence treats
each newline as a line break, this caused unexpected formatting. Added
a paragraph function to generate unfilled paragraphs (taken from
ox-md.el).
* contrib/lisp/ox-rss.el (org-rss-build-channel-info): Try to use the
specified RSS_FEED_URL option keyword as publink before resorting to
concatenating blogurl with output filename.
The RSS_FEED_URL goes into the atom:link element that identifies the
feed's own URL. Currently, the feed URL is assumed to be html-link-home
or publishing-directory concatenated with the output filename of the
feed. This need not always be so. So, the RSS_FEED_URL option keyword
is introduced to let the user customize the feed URL.
* lisp/ob-core.el (org-babel-get-src-block-info): Rewrite function.
Change signature.
(org-babel-parse-src-block-match):
(org-babel-parse-inline-src-block-match): Remove functions.
(org-babel-execute-src-block): Remove useless function call.
* lisp/ob-exp.el (org-babel-exp-process-buffer): Make use of signature
change.
(org-babel-exp-results): Use new return value from
`org-babel-get-src-block-info'. Tiny refactoring.
* testing/lisp/test-ob.el (test-ob/nested-code-block): Fix test.
* contrib/lisp/org-eldoc.el (org-eldoc-get-src-lang): Use parser instead
of removed function.
* testing/examples/babel.org: Fix test environment.
* contrib/lisp/ox-bibtex.el (org-bibtex-process-bib-files): Fix
insertion location of bibliography in HTML export.
Reported-by: gongzhitaao <zhitaao.gong@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/104117>
* lisp/org.el (org-make-tags-matcher): Return a function instead of
a sexp. Refactor code.
(org--matcher-tags-todo-only): New variable. Replace `todo-only'
dynamic binding.
(org-scan-tags): Apply changes to `org-make-tags-matcher'.
(org-match-sparse-tree):
(org-map-entries): Use new variable.
* lisp/org-crypt.el (org-encrypt-entries):
(org-decrypt-entries): Use new variable.
* lisp/org-clock.el (org-clock-get-table-data): Apply changes to
`org-make-tags-matcher'.
* lisp/org-agenda.el (org-tags-view): Use new variable.
* lisp/org-element.el (org-element-export-block-parser):
(org-element--current-element): Use new syntax for export blocks.
(org-element-block-name-alist): Remove.
* lisp/ox.el (org-export-register-backend):
(org-export-define-derived-backend): Remove :export-block keyword from
back-end's definition.
(org-export-expand-include-keyword): Use new syntax for include
keywords.
* lisp/ox-ascii.el (ascii):
* lisp/ox-beamer.el (beamer):
* lisp/ox-html.el (html):
* lisp/ox-latex.el (latex):
(org-latex-prefer-user-labels):
* lisp/ox-man.el (man):
* lisp/ox-md.el (md):
* lisp/ox-odt.el (odt):
* lisp/ox-texinfo.el (texinfo): Propagate changes to "ox.el".
* lisp/ob-core.el (org-babel-insert-result):
* lisp/ob-haskell.el (org-babel-haskell-export-to-lhs): Use new syntax.
* lisp/org.el (org-structure-template-alist): Use new syntax.
(org-protecting-blocks): Add "export" to protected blocks. Remove
back-ends blocks, which are now special blocks.
(org-fontify-meta-lines-and-blocks-1): Fontify correctly new blocks.
* lisp/org-footnote.el (org-footnote-forbidden-blocks):
* lisp/org-list.el (org-list-forbidden-blocks): Add "export" to
forbidden blocks. Remove back-ends blocks, which are now special
blocks.
* contrib/lisp/ox-extra.el: Update comments.
* testing/lisp/test-org-element.el (test-org-element/export-block-parser):
(test-org-element/export-block-interpreter):
* testing/lisp/test-ob.el (test-ob/org-babel-remove-result--results-html):
(test-ob/org-babel-remove-result--results-latex):
* testing/lisp/test-ox.el (test-org-export/expand-include): Update tests.
Export blocks are explicitly marked as such at the syntax level to
disambiguate their parsing from special blocks. The new syntax is
#+BEGIN_EXPORT backend
...
#+END_EXPORT
instead of
#+BEGIN_backend
...
#+END_backend
As a consequence, =INCLUDE= keywords syntax is modified, e.g.,
#+INCLUDE: "file.org" HTML
becomes
#+INCLUDE: "file.org" export html
(org-mac-grab-Evernote-app-p, org-mac-evernote-path): New custom
variables to control Evernote grabbing
(org-mac-evernote-note-open): New function to open an Evernote note by
ID
(org-as-get-selected-evernote-notes,
org-mac-evernote-note-insert-selected): New functions to get the
selected Evernote note(s) and insert them into current buffer
Note this change also defines a new link type ("mac-evernote") via a
call to “org-add-link-type”.
Signed-off-by: Alan Schmitt <alan.schmitt@polytechnique.org>
* org-mac-link.el (org-mac-outlook-path): New Custom String to hold the file system path to Microsoft Outlook
(org-mac-outlook-message-open, org-as-get-selected-outlook-mail): Use
the new custom string instead of hard-coding the path to Outlook
Signed-off-by: Alan Schmitt <alan.schmitt@polytechnique.org>
* ox-latex.el (org-latex--make-preamble): Renamed
org-latex--make-header.
(org-latex--insert-compiler): New function.
(org-latex-template):
* ox-koma-letter.el: Use new function.
* contrib/lisp/ox-koma-letter.el (koma-letter):
(org-koma-letter--build-settings): Allow to disable place locally.
Whenever OPTION keyword contains a "place" item or PLACE keyword is used
in the buffer, set KOMA option place after LCO inclusion.
Reported-by: Alan Schmitt <alan.schmitt@polytechnique.org>
<http://permalink.gmane.org/gmane.emacs.orgmode/101010>
Add new link type "acrobat" to grab links to documents open in Adobe
Acrobat application.
* contrib/lisp/org-mac-link.el (org-mac-acrobat-open): Open Adobe
Acrobat document pointed to by a link.
* contrib/lisp/org-mac-link.el (org-mac-as-get-acrobat-page-link):
Invoke applescript to generate a link to an open and active Adobe
Acrobat document.
* contrib/lisp/org-mac-link.el (org-mac-acrobat-get-page,
org-mac-acrobat-insert-page): methods used when an Adobe Acrobat link
grab request is issued or a link is clicked in an org document.
* contrib/lisp/org-mac-link.el (org-mac-grab-Acrobat-app-p): predicate
that enables grabbing Adobe Acrobat links.
Signed-off-by: Alan Schmitt <alan.schmitt@polytechnique.org>
* contrib/lisp/org-mac-link.el (org-mac-firefox-get-frontmost-url)
(org-mac-vimperator-get-frontmost-url)
(org-mac-chrome-get-frontmost-url)
(org-mac-skim-get-page)
(org-mac-outlook-message-get-links)
(org-mac-devonthink-get-links): Replace the handling of AppleScript
results code with `org-mac-paste-applescript-links'.
This fixes some bugs where links would have a dangling quote at the end.
* ox-koma-letter.el (org-koma-letter--keyword-or-headline):
New function.
(org-koma-letter-template): Use new function.
(org-koma-letter-opening, org-koma-letter-closing)
(org-koma-letter-signature)
(org-koma-letter-headline-is-opening-maybe): Update docstring.
If both org-koma-letter-headline-is-opening-maybe and
org-koma-letter-prefer-special-headings is non-nil, always prefer
special headline title for opening and closing.
* contrib/lisp/org-notify.el (org-notify-make-todo): Properties from
org-element are all uppercase now.
* (org-notify-maybe-too-late): Fix typo in docstring (thanks to davemq,
https://github.com/p-m/org-notify/issues/3).
* ox-latex.el (org-latex--make-header): New function.
(org-latex-template): Use new function.
* ox-koma-letter.el (org-koma-letter-template): Use new function.
* ox-koma-letter.el (org-koma-letter-special-tags-in-letter):
Add closing.
(org-koma-letter-template): Potentially take closing value
from closing spcical heading.
(org-koma-letter--build-settings): Potentially take signature
value from closing special heading.
(org-koma-letter-closing):
(org-koma-letter-signature): Update docstring.
Suggested-by: Suvayu Ali <fatkasuvayu+linux@gmail.com>
<http://permalink.gmane.org/gmane.emacs.orgmode/99028>
* contrib/lisp/org-eww.el (org-eww-copy-for-org-mode): Lines starting
with '*' get quoted at special kill.
This allows yanking content containing lines starting with a '*' without
changing the outline structure.
* org-contacts.el (org-contacts-db): Catch `nextfile'.
When a file in the list returned by the `org-contacts-files' function
doesn't exist and the user selects the option to attempt to remove it
from the `org-agenda-files' list, 'nextfile is thrown. Catch it and
skip processing that file instead of failing.
TINYCHANGE
* contrib/lisp/ox-koma-letter.el (org-koma-letter-template): Insert
"\begin{document}" even if :with-title and :with-subject are both
nil.
Reported-by: Dieter Faulbaum <mail@faulbaum.in-berlin.de>
* org-mac-link.el (org-mac-outlook-message-open, org-as-get-selected-outlook-mail): Specify Microsoft Outlook.app non-ambiguously
If the user has:
- a virtual solution (Parallels, etc.)
- with Office for PC installed
- and configured to expose WinTel applications to the Macintosh Finder
The AppleScript commands may try to select the WinTel version of
"Microsoft Outlook". This—obviously—doesn’t work. By adding the Mac
~.app~ file extension and path, we reduce this confusion and more
reliably call the Macintosh version of Outlook.
TINYCHANGE
Signed-off-by: Alan Schmitt <alan.schmitt@polytechnique.org>
* org-notmuch.el (org-notmuch-search-open): Bug fix
When opening a notmuch-search link, we use =message= to display the
path at the bottom of the screen. This would signal "Not enough
arguments for format string" when the path contained %-signs, as it is
likely to when the query contains spaces:
[[notmuch-search:tag:inbox%2520not%2520tag:bulk%2520org]]
That query appears to be double-escaped, which also might contribute
to the problem, but either way: we should use =(message "%s" str)= to
print arbitrary strings, not =(message str)=.