* doc/org.texi (Selective export): Document exclusion of any tasks from
export.
* lisp/org-exp.el (org-export-with-tasks): New option.
(org-export-plist-vars): Add :tasks property.
* doc/org.texi (Selective export): Document how to exclude DONE tasks
from export.
(Publishing options): Document the properties to be used to turn off
export of DONE tasks.
* lisp/org-ascii.el (org-export-as-ascii):
* lisp/org-docbook.el (org-export-as-docbook):
* lisp/org-html.el (org-export-as-html):
* lisp/org-latex.el (org-export-as-latex): Pass the :done-tasks property
to the export preprocessor.
* lisp/org-exp.el (org-export-with-done-tasks): New option.
(org-export-plist-vars): Add entry for :done-tasks.
(org-export-preprocess-string): Call `org-export-remove-done-tasks'.
(org-export-remove-done-tasks): New function.
* lisp/org.el (org-find-olp): Use the level of the correct match to
continue search.
The problem was that a second match of an identical headline on
another level would corrupt the value of LEVEL that is used to set up
the next search stop.
Chao LU writes:
> For org capture template, if I set an template like this:
> ("i" "INBOX" entry (file+olp (concat org-private-dir "/iPrv.org")
> "INBOX" "test") "* %?" :prepend t)
>
> And for the iPrv.org, I have this structure:
> * INBOX
> ** test
>
> Then it works.
>
> But if the first level and the second level happen to have the same
> title (it does happen to me sometimes), like:
> * INBOX
> ** INBOX
>
> ("i" "INBOX" entry (file+olp (concat org-private-dir "/iPrv.org")
> "INBOX" "INBOX") "* %?" :prepend t)
> Then Org will prompt an error.
* lisp/org-list.el (org-toggle-checkbox): build value of
org-keyword-time-regexp instead of using it directly, as it's
buffer-local, and function might be called outside Org.
* lisp/org-list.el (org-list-struct,org-in-item-p): don't assume end
of blocks or drawers necessarily start somewhere. It it isn't the
case, treat them as normal text.
* lisp/org-latex.el (org-export-latex-date-format): Change default date
format to \today. This has the same result but respects the language set in
the document by default.
Signed-off-by: Julien Danjou <julien@danjou.info>
* lisp/org-list.el (org-list-checkbox): when called from an headline,
function would normally skip drawers, but not if a SCHEDULED or
DEADLINE keyword is standing before the drawer. Also avoid problems
if function is called in buffers not is Org mode.
* org-clock.el (org-clock-report): change the scope of the
inserted clock report depending on whether the point is within
a subtree (:scope subtree) or not (:scope file).
* lisp/org-latex.el (org-export-latex-preprocess): Correctly
match starred command names.
Many LaTeX commands exist in both normal and starred forms. Adjust
the regexp in `org-export-latex-preprocess' to match the starred form
as well.
* lisp/org-html.el (org-export-as-html): Get local value of
org-export-with-section-numbers from the buffer's plist. Deal
specially with the case the resulting value is an integer.
(org-html-level-start): New optional argument of the option plist used
instead of `org-export-with-section-numbers'. Also deal specially
with the case that the value is an integer.
When `org-export-with-section-numbers' (or the buffer-local
:section-numbers option) is an integer, we now export the first NUM
levels of headings with numbers and lower-level headings without.
* lisp/org-latex.el (org-export-latex-subcontent): Deal specially with
the case that NUM is an integer.
We would sometimes like to have numbered \sections in LaTeX export but
unnumbered \subsections and so forth. That is, use the starred
equivalents for all sectioning commands below a certain level.
Previously, the num: option specification could only specify whether
sections should be numbered or unnumbered at all levels. We now treat
an integer value specially, if num:N is supplied then the highest N
levels are numbered, and lower levels are exported without numbering.
* org-protocol.el (org-protocol-do-capture): allow template
keys of two characters.
(org-protocol-default-template-key): Update the docstring to
reflect the change in `org-protocol-do-capture'.
* org-taskjuggler.el (org-taskjuggler-assign-resource-ids): Replace
recursive implementation with an iterative one.
That way we can avoid to have ask users to increase
`max-lisp-eval-depth'.
* lisp/org-inlinetask.el (org-inlinetask-export-templates): fix
default templates.
(org-inlinetask-export-handler): Ensure contents of inline task, if
any, starts and ends with a newline character. Refactor and comment
code.
* lisp/org-list.el (org-list-to-generic): set a default term for
ill-formed description lists. Do not insert newline characters
unless told to.
(org-list-to-texinfo,org-list-to-html): apply changes to
`org-list-parse-liste'.
* org-clock.el (org-clock-clocktable-language-setup): Add a
string.
(org-clocktable-write-default): Use the new localized string
in `org-clock-clocktable-language-setup'.
(org-taskjuggler-assign-resource-ids): Replace recursive
implementation with an iterative one.
That way we can avoid to have ask users to increase
`max-lisp-eval-depth'.
* org-taskjuggler.el (org-taskjuggler-components): Escape quotes in
headlines.
Taskjuggler will barf if the task names (which are double quoted
strings) contain double quotes.
* org-taskjuggler.el (org-taskjuggler-compute-task-leafiness): Compute
the leafiness of a node.
(org-taskjuggler-open-task, org-export-as-taskjuggler): Mark a node as
a milestone if it is a leaf and has no effort.
Mark a task as a milestone if it has neither an effort, a duration, an
end or a period. This is needed for tj3 export as tj3 fails to compile
the file if there is a leaf node with no computable end date. tj2
happily ignored the situation, but TJ3 throws an error.
* org-taskjuggler.el (org-export-taskjuggler-target-version):
(org-taskjuggler-targeting-tj3-p): Add some minimal infrastructure to
handle export to both tj2 and tj3.
(org-taskjuggler-open-task): Use a different way to purge allocations
for tj2 and tj3.
* lisp/org-footnote.el: (org-footnote-auto-label): New random option
* lisp/org-footnote.el: (org-footnote-new): Create random footnote
labels with unique ids
* lisp/org-footnote.el: (org-footnote-create-definition): Allow for
footnote sections above the current footnote insertion point.
Fixes bug in which org-mode will create a new footnote section if the
current footnote section is not beneath the current insertion point.
* lisp/org-footnote.el: (org-footnote-create-definition): Don't search
for last footnote when in org-mode file.
The recent changes to accommodate signatures in message-mode instruct
org-mode to search for the last footnote in the entire buffer when
inserting a new footnote definition. This causes problems in org
buffers, since org-footnote-goto-local-insertion-point already finds
the correct insertion point. (I.e., the insertion point is always
placed in beneath the last footnote in the buffer, even if
org-footnote-section is nil.) This patch invokes the search only if in
non org-mode buffers.
* org-html.el (org-export-as-html): Handle links with
`org-html-handle-links' after we handle special characters
conversions.
(org-html-make-link, org-export-html-format-image): Don't
protect html with @ anymore, as links are now handled after
special characters conversions.
* lisp/ob-tangle.el (org-babel-tangle-collect-blocks): Don't call
`org-store-link' interactively as it can confuse the setting of
`org-link-to-org-use-id' and cause undue edits to the org-mode
buffer during tangling.
* lisp/org.el (org-read-date-force-compatible-dates): New option.
(org-read-date, org-read-date-analyze): Check representable date range.
* doc/org.texi (The date/time prompt): Document date range protection.
New variable `org-read-date-force-compatible-dates' to control
handling of dates.
* lisp/ob-tangle.el (org-babel-spec-to-string): Check value of padline
on tangling, no longer use the now-removed variable
`org-babel-tangle-pad-newline'.
* lisp/ob.el (org-babel-header-arg-names): Add padline to the list of
header argument names.
(org-babel-default-header-args): Set the default value of padline to
"yes".
(org-babel-merge-params): Cleaned up the merge logic, added padline.
* doc/org.texi (padline): Documentation of the new padline header
argument.
* org-html.el (org-export-html-insert-plist-item): Remove.
(org-export-html-preamble): Default to `t'. Accept functions.
(org-export-html-postamble): Default to `auto'. Accept
functions and distinguish between 'auto (no formatting string)
and `t' (default formatting string).
(org-export-as-html): Handle org-export-html-preamble and
org-export-html-postamble new defaults/allowed values.
Define email and creator-info before using them.
* lisp/ob-tangle.el (org-babel-tangle-body-hook): Hook for changing
the contents of a code block body on export.
(org-babel-tangle-collect-blocks): Apply
`org-babel-tangle-body-hook' to the collected bodies of code blocks.
* org-html.el (org-html-make-link, org-html-handle-links): Protect
generated XHTML elements.
(org-export-as-html): Expand character entities after creating markup
for links and timestamps.
This fixes a problem with exporting active timestamps, reported by
Daniel Clemente <n142857@gmail.com>.
When I export the following as HTML, emacs hangs in org-html-protect:
#+begin_src org
&
#+end_src
The attached patch fixes the problem for me.
Thanks,
Kim.
>From cfb1ccb6f9cfd84530c73b7f72d686a2062b3c3b Mon Sep 17 00:00:00 2001
From: Kim Rutherford <kmr44@cam.ac.uk>
Date: Fri, 11 Mar 2011 16:44:09 +0000
Subject: [PATCH] Fix infinite loop in org-html-protect
Hi,
I found a trivial error with this docstring.
--8<---------------cut here---------------start------------->8---
--8<---------------cut here---------------end--------------->8---
Best regards,
Seb
* org-attach.el (org-attach-store-link-p): Allow to create a
link to the attach-dir location of the file.
(org-attach-attach): Allow to store a link to the attach-dir
location.
This was requested by Darlan Cavalcante Moreira.
* lisp/org-clock.el (org-clock-in): Allow clocking in new tasks inserted
before the current clocking task
org-clock-in now checks that the name of the task you are clocking in
also matches org-clock-current-task. This allows us to insert a new
task in front of the current clocking task (with M-S-RET on the
heading of the current clocking task) and then clock in the new task.
Previously this just stated that clocking continues in the old task
since the marker point now matches the new task.
A side-effect of this change is that changing the current clocking
task headline and clocking in again will now close the current clock
and open a new entry as well as update the name of the current
clocking task in the modeline.
* lisp/org-clock.el (org-clock-in): Set default clocking task when already clocking the task
The default clocking task can now be set to the current clocking task.
Previously this just threw an error stating the clock continues in the
current clocking task. The double prefix now forces setting the
default clocking task instead of forcing the user to clock out and
back in again just to set the default clocking task to the current
clocking task.
* lisp/org.el (org-adaptive-fill-function): when a region is specified
first line of paragraph isn't skipped, so fill-paragraph have to be
computed even if point is at an item.
* org-html.el (org-format-org-table-html): fix anchors in HTML
export (thanks to <aankhen@gmail.com>)
(org-html-protect): fix a bug that prevents some target to be
rendered correctly.
* org-exp.el (org-solidify-link-text): a single "-" to avoid a
"&ndash" rewrite in HTML export later.
* lisp/org-timer.el (org-timer-item): save-excursion prevents
`org-list-struct' to get the list structure when point isn't on the
first line of the item.
(org-capture-templates): Rename :no-clock-out to :clock-keep.
(org-capture): Use :clock-keep instead of :no-clock-out.
Thanks to Bernt Hansen for the suggestion.
* org-capture.el (org-capture-templates): New option
:no-clock-out.
(org-capture): Use the new option.
* org.texi (Template elements): document the new template
option :no-clock-out.
* lisp/org-list.el (org-update-checkbox-count): Ensure cookies on an
heading are correctly updated when checkboxes are hidden. It allows,
for example, to use C-c C-x C-b on a collapsed tree and still get
the update.
* org-exp.el (org-export-visible): Accept keys for
`org-export-as-html-to-buffer' and `org-export-region-as-html'.
H and R were not in the list of allowed keys but bound to the
respective function later.
Missing keys reported by Samuel Wales <samologist@gmail.com>.
Luke Crook wrote:
> Is it possible to specify estimated effort in something other
> than hours (0.5, or 0:30)?
> For example 1w, 1m, 2d etc?
Here's a cleaned up patch that allows user-specified modifiers
for effort strings. The new variable `org-effort-durations'
lists modifiers, and their mapping to minutes (words, as well as
single-letter modifiers, are supported). The default value is:
(("h" . 60)
("d" . 480) ; 8 hours
("w" . 2400) ; five days
("m" . 9600) ; 4 weeks
("y" . 96000)) ; 40 weeks
But you can change this.
Old effort strings (HH:MM) are still interpreted correctly. See
the docstrings of `org-effort-durations' and
`org-duration-string-to-minutes' for more details.
>From a0e24b14755eb4087d9c47bb4eea11eb9151efcf Mon Sep 17 00:00:00 2001
From: Lawrence Mitchell <wence@gmx.li>
Date: Fri, 18 Feb 2011 11:01:46 +0000
Subject: [PATCH] Allow human-readable effort durations
To: emacs-orgmode@gnu.org
* lisp/org.el (org-effort-durations): New variable.
* lisp/org.el (org-duration-string-to-minutes): New function.
* lisp/org-agenda.el (org-agenda-filter-effort-form)
(org-format-agenda-item): Use it.
* lisp/org-clock.el (org-clock-notify-once-if-expired)
(org-clock-modify-effort-estimate, org-clock-get-clock-string): Use it.
Specifying large effort durations in hours and minutes is difficult.
Is 130:25 more than two weeks effort? More than three? This patch
allows specification of an effort duration as a friendly string. For
example 2w 5d is two weeks and five days of effort. Existing H:MM
entries will still be recognised correctly.
* org-capture.el (org-capture-put-target-region-and-position):
New function to store information about the target buffer.
(org-capture-set-target-location): Use it.
(org-capture-finalize): restore the target buffer in its
possibly narrowed state. Also restore the cursor position.
* lisp/org-inlinetask.el (org-inlinetask-promote,
org-inlinetask-demote): new functions.
* lisp/org.el (org-metaleft, org-metaright): when point is at an
inline task, promote or demote it.
* lisp/org.el (org-narrow-to-subtree): ensure `org-back-to-heading'
will move point to a real heading and not an inline task by wraping
function into a org-with-limited-levels macro.
Upstream change from Juanma Barranquero <lekktu@gmail.com>
See message on Sun, 06 Mar 2011 01:30:16 on emacs-diff:
[Emacs-diffs] /srv/bzr/emacs/trunk r103541: * lisp/bookmark.el:
* org-capture.el (org-capture-finalize): New argument
clock-out, to tell whether finalizing the capture process
should clock out the running clock.
(org-capture): Use the new argument.
* org-exp.el (org-export-table-remove-empty-lines): New custom
variable.
(org-export-remove-special-table-lines): Use it.
This was requested by Eric S Fraga.
* org-table.el (org-table-fix-formulas-confirm): new custom
variable.
(org-table-insert-column, org-table-delete-column)
(org-table-move-column, org-table-move-row)
(org-table-insert-row, org-table-kill-row): Use it.