A relative row reference like @-1 in a table may now reach across a
horizontal separator line. I hope this will not break any important
tables out there, but I think it is the right thing to do.
The original reason for not-crossing was to implement running
averages of one column in the next. This can now be done using field
formulas near the beginning and end of the column, and a column
formula for the central part.
See the variable `org-table-relative-ref-may-cross-hline' for more
details.
Emacs recently (when?) changed the abbreviated format for days.
The clock was confused when trying to mach this format. This patch
by Nicolas Goaziou fixes it.
Brenton Kenkel writes:
> I'm using org-mode 6.28e on Aquamacs (based on GNU Emacs
> 22.3.1) on Mac OS X. I'm having an issue with horizontal
> rules and lists in HTML export. When I export the following
> to HTML, the horizontal rule tag is generated within the
> unordered list, rather than after it ends:
>
> ,-----
> | * test
> |
> | - this is a list
> |
> |
> | -----
> |
> | * next section
> |
> | No list.
> |
> |
> | -----
> |
> `-----
>
> I want the first horizontal rule to be even with the second;
> namely, extending all the way to the left. Any way to do
> this?
This commit defines three new functions in org-timer.el:
- org-timer-set-timer, bound to `C-c C-x ;' in Org buffers
and to `;' in Org agenda buffers. This function sets a
timer for the headline the cursor is currently it. Up to
three timers can be set.
- org-timer-show-remaining-time: this shows the remaining
time for the last set timer.
- org-timer-reset-timers: this reset all timers.
This functionality was requested by Samuel Wales and emulates
that of tea-time.el -- see the emacswiki doc about tea-time.el:
http://www.emacswiki.org/emacs/tea-time
When org-provide-todo-statistics is set to 'all-headlines, the
statistics are performed against all headlines, including those
with no TODO keyword.
This was requested by David A. Gershman.
Using :timetamp t as an option in a clock report now allows
insertion of the timestamp for the clocked entry. Timestamps
are searched for in this order: SCHEDULING, TIMESTAMP, DEADLINE
and TIMESTAMP_IA.
Allow whitespace in code references. Allow the -r switch to remove the
references in the source code even when the lines are not numbered: the
labels can be explicit enough. Note that "-r -k" is the same than no
switch - as expected.
Thanks to Ulf Stegemann for bring this up.
Non-nil means modify the regexp in org-set-font-lock-defaults so
that headlines are fontified till the end of the line. This is
useful when setting a background color for the org-level-* faces.
This defaults to nil so that the old behavior is preserved.
This option lets the user customize the notification mechanism.
For example, she might want to use todochiku.el.
This option defaults to nil, hence doesn't change the previous
behavior: if the program notify-send is installed on the system,
use it, and falls back on using (message [notification]) if not.
For this we took another look at when drawers actually have to be
hidden again and found that CONTENTS view does not need it, and that
CHILDREN view only needs it before the first child.
The second speed-up comes from advising outline-end-of-subtree to use
the Org version when in org-mode.
The third speed-up comes from using a better way to find the next
visible line, using `next-single-char-property-change'.
Finally, `org-forward-same-level' and `org-backward-same-level' are
faster versions of their outline equivalents and are now bound to
`C-c C-f' and `C-c C-b'.
`org-read-date' was loosing the focus when the calendar was displayed on
a separate frame. This patch by Robert Goldman solves it by introducing
a new macro `org-save-frame-excursion' which preserve the frame focus.
See this thread: http://article.gmane.org/gmane.emacs.orgmode/15528
(This fixes the issue I was trying to fix in a previous commit.)
This was a proposal by Samuel Wales. After the user selected a
refiles target, we make sure that the fully qualified target is in the
history, so that next time, UP will bring back exactly this target.
Before this patch the completion mechanism was this: TAB let's you
complete through link prefixes (gnus: file: bbdb: ...) then RET allows
completion if a completion mechanism is available for the chosen prefix.
Navigating through the history of stored links was a separate process,
available through the up/down M-n/M-p keys.
Now TAB not only completes through link prefixes but also through stored
links. This behavior matches other Emacs completion mechanisms a bit
more closely.
If you have a TODO keyword like "DELEGATED" and an entry like
"* Delegated this stuff to X", then you want this entry to be
in the list of possible targets. For that we need to distinguish
between DELEGATED as a keyword and "Delegated" as a simple word,
so (case-fold-search nil) seems relevant.
This default to t, so the default behavior of org-mode doesn't
change. But the user might want to keep at least one blank line
at the end of the remembered subtree, this option lets her do it.
This hook is called in org-clock-in earlier than the existing
org-clock-in-hook. This is useful for functions that need to
modify the Effort property, for example.
`org-export-latex-first-lines' was rather stupid and would
discard the end of the region with the region was active.
Thanks to Holst Thomas for this bug report.
As reported by Ulf Stegemann (09/07/2009) the HTML output
of the example in the manual would result in no number for
the first line. It is because `org-export-number-lines' is
told to skip one line while the line inserted previously
(i.e. "<pre class ...>") doesn't end with a newline.
Bernt Hansen writes:
> I have a monthly repeated task (Archive tasks) that has lots of
> old clock time on it currently but has never been marked DONE
> since the creation of the property LAST_REPEAT_TIME. If this
> task is clocking when Emacs exits and you restart emacs and
> answer Yes to continue the clock - the modeline has the total
> time for the parent task (151:04 instead of the total time for
> this task (5:04). If I clock the task in again the modeline is
> correct.
This skips over blank lines preceeding the next task when archiving a task or
subtree. This allows us to use a keyboard macro to remember the archive key
sequence incantation and skips to the next heading so we don't accidentally
archive the wrong task.
This fixes an issue with blank line handling. Tasks which have blank lines
following them do not include the blank lines -- they are part of the following
task. This moves the point forward to the next visible headline so that if we
repeat the archive operation it affects the following task and not the previous
one by mistake.
When changing the publishing setup, old timestamp files can be left
behind. Forcing publishing of all projects with `C-u C-c C-e E'
will remove all existing timestamp files.
Many different people want to set many different variables in a
buffer-local way for export. This cannot be done with file variables,
because the Org buffer is not current while the exporter is running.
Lots of variables can be set with the #+OPTIONS lines, but finding
abbreviations goes only so far.
Therefore we have now a general mechanism that can be used to bind
variables during export operations.
a line like: #+BIND: variable value
will bind the variable to value. For example,
the line
>> #+OPTIONS: toc:nil
can now equivalently be written as
>> #+BIND: org-export-with-toc nil
Rainer Stengele writes:
> using org-mode for quite some time now I always look at
> operations (key sequences) I repeat a lot of times.
>
> A lot of times I start a list with an item and immediately
> indent the next item as subitem.
>
> From
>
> - item 1
> - subitem 11
>
> I go to
>
> - item 1
> - subitem 11
>
> via "M-right". Then I always want to change the style of the
> subitem list to "*". I do this via "S-right-right".
>
> I wonder how others work. I would like to automatically have
> changed the subitem list type to "*" as soon as I indent via
> "Alt-right". Next indentation should go back to "-". etc.
>
> Maybe we could introduce a variable that sets the order of
> standard list item types, in my case: "- * - * - * - *" as
> in
>
>
> - item 1
> * subitem 11
> - subitem 111
> * subitem 111
> ...
>
> very special I know but I try to reduce the keypressings as
> much as possible. Any other suggestions?
This commits adds the variable
`org-list-demote-modify-bullet' for this purpose.
Bernt Hansen writes:
> I recently noticed that using SPACE or TAB in the agenda displays
> the task in the other window but all of the drawers are exposed.
> If you fold the org file with S-TAB to Overview or Contents
> display and then switch to the agenda and SPACE or TAB on a
> folded task it unfolds the entire thing including the drawers.
>
> Expanding the file to SHOW ALL and then using follow mode from
> the agenda shows me the view I'm really looking for so that's
> what I'm doing as a workaround right now.
>
> While doing my weekly review of tasks I use follow mode to view
> task detail and the expanded :LOGBOOK: and :PROPERTIES: drawers
> hide detail scrolled off the bottom of the window. My :LOGBOOK:
> drawer for repeated tasks tends to be l-o-n-g and shoves detail
> way down the file (such as my weekly review checklist :) ).
>
> Is it possible to control expansion of the drawers when
> displaying a task from the agenda? The view I'm looking for is
> the same as SHOW ALL from S-TAB. It seems that if the task is
> expanded from the agenda it expands everything including the
> drawers.
Customize the new variable org-footnote-auto-adjust or use the STARTUP
option fnadjust to get automatic renumbering and sorting of footnotes
after each insertion/deletion.
This commit implements better support for publishing the same file in
multiple ways. For example when publishing a Org file both as HTML
and as a plain text or htmlized source file.
It does this by including information about the target directory and
about the publishing function used into the hash that is used as a
file name to keep a time stamp.
Agenda bulk commands on marked entries now can also set the scheduling
date or a deadline. Normally, all entries will be set to the
specified date. However, when writing the change as "++5d" or "++2w",
then each time stamp will independently be shifted by that amount.
This commit adds a new action to the footnote actions:
It allows to renumber footnote marks that have the simple form
fn:N where N is a number. After this action, numbers will start from
1 and increase through the document.
TAB now cycles visibility in plain lists if the cursor is in a plain
list. This corresponds now to the new default value `t' of
`org-cycle-include-plain-lists'. If you want to treat plain list
items as part of the outline hierarchy during cycling of outline
headings (this is what a `t' value used to mean), set this variable to
`integrate'.
- test on line 312 failed because these methods returned a string instead
of a buffer
- requesting 'wget actually executed "curl", with bad parameters
- curl needs --silent, so that progress messages don't interrupt content
- atom parser had code to skip HTTP headers, but these are present only
when using url-retrieve-synchronously; caused errors with curl/wget.
Instead, remove HTTP headers right after feed buffer is populated.
Some propel process LaTeX filed not directly to pdf, but go
through dvi and then to ps or pdf. In that case, allowed images
are ps and eps files, not pdf and jpg.
This commit adds the two extensions, so that export using that
alternative path can be supported better. However, it is up to the
user to make sure that the images are actually compatible with the
backend.
Patrick Bahr writes:
> I use tags-todo searches in my custom agenda
> commands. Unfortunately, tags-todo does not honour the
> org-agenda-todo-list-sublevels variable which I want to use in
> order to ignore nested todo items. Is there a way to persuade
> tags-todo to do this? I know that there is a variable
> org-agenda-tags-todo-honor-ignore-options which does this for
> org-agenda-todo-ignore-with-date etc. It would be nice if there
> is something similar to this for
> org-agenda-todo-list-sublevels. Even better would be if this
> could be adjusted per individual tags-todo search. For example
> for certain cases I do not want to see nested TODO items but I do
> want to see nested WAITING items. With two tags-todo searches
> having different behaviour on nested todo items this would be
> feasible.
This behavior is a loft-over from the old days, and I am changing
this now.
This commit implements refiling directly from the agenda.
It also implements a mechanism for selecting a number of entries in
the agenda and then executing a command on all of them. Possible
actions include archive, refile, todo state setting, and more.
Stefan Vollmar writes:
> taking up a nice suggestion from Sebastian Rose, I want to
> present some org source with proper syntax highlighting. However,
> there is a problem when using "BEGIN_SRC" blocks it seems.
>
> If one puts this org contents into a file "test.org":
>
> * One Headline
> Some Text
> #+BEGIN_SRC python
> print "some output"
> #+END_SRC
> * Another headline
> More text
>
> and renders it from another org-file with:
>
> #+INCLUDE: "./test.org" src org
>
> everything will be fine (beautiful, infact) up to and including
> the print-line - the rest of the org file is not rendered as
> source but interpreted.
Michael Brand writes:
> 2) One could like to have configurable left/right alignment, even
> combinable with column width, e. g.
>
> | <l10> | <r> |
> | 3.14 | 0x10 |
> | 3.141592=> | 0x32 0x10 |
Good idea, I would say.
When yasnippet is active, it is the official binding of TAB. That
means, the org-mode self-insert command must know that it may blank
table fields if the last command was yas/expand.
> I just discovered that org-clock-in displays the clocked-in task
> in the mode line, so that I can click it and go back to the Org
> file, which I really like. I changed it to switch to the window
> in which I click, by prepending "@" to the interactive spec of
> org-clock-goto.
Xin Shi writes:
> Hello Experts,
>
> I use org-mode to produce a lot of big tables with numbers in
> them. When I present these tables by HTML, I found it's hard to
> keep track which row it is. I'm wondering if it's possible to
> implement additional class attribute to the <tr>, such as:
>
> <table class="sample">
> <tr class="d0"><td>One</td><td>Fish</td></tr>
> <tr class="d1"><td>Two</td><td>Fish</td></tr>
>
> <tr class="d0"><td>Red</td><td>Fish</td></tr>
> <tr class="d1"><td>Blue</td><td>Fish</td></tr>
> </table>
>
> So, that in the CSS file, it'll be easier to implement the color:
>
>
> <style type="text/css">
> table.sample {
> border: 6px inset #8B8378;
> -moz-border-radius: 6px;
> }
> table.sample td {
> border: 1px solid black;
> padding: 0.2em 2ex 0.2em 2ex;
>
> color: black;
> }
> table.sample tr.d0 td {
> background-color: #FCF6CF;
> }
> table.sample tr.d1 td {
> background-color: #FEFEF2;
> }
> </style>
This commit introduces a new variable `org-export-table-row-tags'
that can be used for this and similar purposes. For the example
of the poster, one could use:
(setq org-export-table-row-tags
(cons '(if head "<tr>"
(if (= (mod nline 2) 1)
"<tr class=\"d1\">"
"<tr class=\"d0\">"))
"</tr>"))
Clicking on the clock in the mode line now pops up a menu with
clocking options.
A new command `C-c C-x C-e' allows to set or change the effort
estimate of the task currently being clocked. This is mainly useful
when using an alert notification when the task should be finished.
Based on a patch by Konstantin Antipin.
When the variable `org-treat-S-cursor-todo-selection-as-state-change'
is turned off, switching TODO keywords with S-cursor will not only
turn off logging, but also blocking.
This patch prevents the org-clock-sound notification and the
"Task'BLAH' should be finished by now."
message when the termination time is reached and the clock is not
running.
Before this patch spurious notifications and messages were generated when
clocking in a task with estimated effort time remaining. After clocking
out the task the remaining minutes would tick by and then the sound
and message that the task should be finished were generated - even though
you are not working on it anymore.
This makes org-clock-sound a little more well-behaved. The clock
sound was only being issued if you were already clocking a task that
was under its limit, and changed to clocking something else. Now each
time you clock in a new task it checks the estimated effort limit and
issues the org-clock-sound if the limit is exceeded.
This patch issues the org-clock-sound whenever you clock in a task
that is already over its estimated effort amount. This allows you to
use the estimated effort as a limit for the amount of time to spend on
a task. Each time you clock in the task you'll be notified that you
are over the limit. This is great for tasks where you want to limit
the amount of time spent (per day, since last repeat) and is a
reminder to go work on something else instead.
This commit adds a new hook `org-src-mode-hook'.
The Hook run after Org switched a source code snippet to
its Emacs mode. This hook will run
- when editing a source code snippet with \"C-c '\".
- When formatting a source code snippet for export with htmlize.
You may want to use this hook for example to turn off `outline-minor-mode'
or similar things which you want to have when editing a source code file,
but which mess up the display of a snippet in Org exported files.
As the export preprocessor removes indentation from indented blocks,
this causes conflicts about interpreting indentation as list
termination. Now the original indentation is stored in a text
property, so hopefully the exporters can make use of this information
in due time.
When the agenda buffer for an agenda series is created, this was so
far done without the options of the custom agenda command in place.
This meant that some options would not take effect, because the only
place where that did would have an effect was during creation of that
buffer.
This commit makes sure that the global options of an agenda series are
in fact in place when the buffer is created.
This commit changes which time is shown in the mode line while
clocking. Normally this will now be the total time ever clocked on
this task and its children.
However, when the task is a repeating one, only the time since the
last reset of the task will be shown. The time of the last reset is
now recorded in a LAST_REPEAT property.
You can also set the CLOCK_MODELINE_TOTAL property to the value
"current" to only show the current clocking instance. Or it may be
the value "today", to only add up the time spent today on this task.
Other possible values are "repeat", "all", or "auto".
Finally, you can set your default for this property with
`org-clock-modeline-total'.
The content of blocks like #+begin_example will be marked with a
separate face. That same face is also used for single lines
introducing text for specific backends.
* nil. No sound played.
* any string, that is not a file. Make a beep
* file name. Emacs tries to play it with aplay, if available.
If not, use standard emacs play-sound-file function.
This commit introduces two new variables:
- org-treat-insert-todo-heading-as-state-change
Default is nil. When set to t, adding a new TODO item will be done
by adding an item and the executing an "official" state change which
potentially will trigger state logging.
- org-treat-S-cursor-todo-seletion-as-state-change
Default is t. When set to nil, selecting a TODO state with
S-left/right will not trigger logging, only selecting a new state
with `C-c C-t'. I actually like this a lot and would even consider
making this the default.