diff --git a/Makefile b/Makefile index f668dcd79..7bf932f24 100644 --- a/Makefile +++ b/Makefile @@ -59,7 +59,7 @@ CP = cp -p LISPFILES = org.el org-publish.el org-mouse.el org-install.el ELCFILES = $(LISPFILES:.el=.elc) DOCFILES = org.texi org.pdf org -CARDFILES = orgcard.tex orgcard.pdf orgcard_letter.pdf orgcard_letter.ps +CARDFILES = orgcard.tex orgcard.pdf orgcard_letter.pdf TEXIFILES = org.texi INFOFILES = org HTMLDIR = /home/dominik/public_html/Tools/org diff --git a/org b/org index 03b15ee3a..4d1b86833 100644 --- a/org +++ b/org @@ -5,7 +5,7 @@ START-INFO-DIR-ENTRY * Org Mode: (org). Outline-based notes management and organizer END-INFO-DIR-ENTRY - This manual is for Org-mode (version 5.03). + This manual is for Org-mode (version 5.04). Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation @@ -27,7 +27,7 @@ File: org, Node: Top, Next: Introduction, Prev: (dir), Up: (dir) Org Mode Manual *************** -This manual is for Org-mode (version 5.03). +This manual is for Org-mode (version 5.04). Copyright (C) 2004, 2005, 2006, 2007 Free Software Foundation @@ -431,7 +431,7 @@ define _global_ keys for the commands `org-store-link' and `org-agenda' - please choose suitable keys yourself. ;; The following lines are always needed. Choose your own keys. - (add-to-list 'auto-mode-alist '("\\.org$" . org-mode)) + (add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode)) (define-key global-map "\C-cl" 'org-store-link) (define-key global-map "\C-ca" 'org-agenda) @@ -4700,7 +4700,7 @@ File: org, Node: Exporting Agenda Views, Next: Extracting Agenda Information f If you are away from your computer, it can be very useful to have a printed version of some agenda views to carry around. Org-mode can export custom agenda views as plain text, HTML(1) and postscript. If -you want to do this only occasionally, use the commend +you want to do this only occasionally, use the command `C-x C-w' Write the agenda view to a file. Depending on the extension of the @@ -5524,25 +5524,27 @@ Completion::). #+LANGUAGE: language for HTML, e.g. `en' (`org-export-default-language') #+TEXT: Some descriptive text to be inserted at the beginning. #+TEXT: Several lines may be given. - #+OPTIONS: H:2 num:t toc:t \n:nil @:t ::t |:t ^:t f:t *:nil TeX:t LaTeX:t skip:t + #+OPTIONS: H:2 num:t toc:t \n:nil @:t ::t |:t ^:t f:t TeX:t ... The OPTIONS line is a compact form to specify export settings. Here you can: - H: set the number of headline levels for export - num: turn on/off section-numbers - toc: turn on/off table of contents, or set level limit (integer) - \n: turn on/off linebreak-preservation - @: turn on/off quoted HTML tags - :: turn on/off fixed-width sections - |: turn on/off tables - ^: turn on/off TeX-like syntax for sub- and superscripts. If - you write "^:{}", `a_{b}' will be interpreted, but - the simple `a_b' will be left as it is. - f: turn on/off foototes like this[1]. - *: turn on/off emphasized text (bold, italic, underlined) - TeX: turn on/off simple TeX macros in plain text - LaTeX: turn on/off LaTeX fragments - skip: turn on/off skipping the text before the first heading + H: set the number of headline levels for export + num: turn on/off section-numbers + toc: turn on/off table of contents, or set level limit (integer) + \n: turn on/off linebreak-preservation + @: turn on/off quoted HTML tags + :: turn on/off fixed-width sections + |: turn on/off tables + ^: turn on/off TeX-like syntax for sub- and superscripts. If + you write "^:{}", `a_{b}' will be interpreted, but + the simple `a_b' will be left as it is. + f: turn on/off foototes like this[1]. + *: turn on/off emphasized text (bold, italic, underlined) + TeX: turn on/off simple TeX macros in plain text + LaTeX: turn on/off LaTeX fragments + skip: turn on/off skipping the text before the first heading + author: turn on/off inclusion of author name/email into exported file + timestamp: turn on/off inclusion creation time into exported file  File: org, Node: Publishing, Next: Miscellaneous, Prev: Exporting, Up: Top @@ -7051,6 +7053,7 @@ Index * archiving: Archiving. (line 6) * ASCII export: ASCII export. (line 6) * author: Feedback. (line 6) +* author info, in export: Export options. (line 25) * autoload: Activation. (line 6) * backtrace of an error: Feedback. (line 27) * BBDB links: External links. (line 6) @@ -7430,6 +7433,7 @@ Index * time format, custom: Custom time format. (line 6) * time grid: Time-of-day specifications. (line 26) +* time info, in export: Export options. (line 25) * time stamps <1>: Time stamps. (line 6) * time stamps: Timestamps. (line 6) * time, reading in minibuffer: The date/time prompt. @@ -7853,203 +7857,203 @@ Node: Introduction12513 Node: Summary12928 Node: Installation16080 Node: Activation17458 -Node: Feedback18707 -Node: Document structure20783 -Node: Outlines21675 -Node: Headlines22335 -Ref: Headlines-Footnote-123343 -Node: Visibility cycling23454 -Ref: Visibility cycling-Footnote-125664 -Ref: Visibility cycling-Footnote-225722 -Ref: Visibility cycling-Footnote-325772 -Node: Motion26042 -Node: Structure editing26996 -Node: Archiving29822 -Node: ARCHIVE tag30380 -Node: Moving subtrees32173 -Node: Sparse trees33484 -Ref: Sparse trees-Footnote-135616 -Ref: Sparse trees-Footnote-235798 -Node: Plain lists35913 -Ref: Plain lists-Footnote-140110 -Ref: Plain lists-Footnote-240468 -Node: Drawers40649 -Node: orgstruct-mode41487 -Node: Tables42387 -Node: Built-in table editor42968 -Node: Narrow columns50207 -Ref: Narrow columns-Footnote-152142 -Node: Column groups52188 -Node: orgtbl-mode53721 -Node: The spreadsheet54524 -Node: References55611 -Ref: References-Footnote-160075 -Node: Formula syntax for Calc60364 -Node: Formula syntax for Lisp62821 -Node: Field formulas64539 -Node: Column formulas65847 -Node: Editing and debugging formulas67446 -Node: Updating the table71599 -Node: Advanced features72634 -Node: Hyperlinks77159 -Node: Link format77932 -Node: Internal links79225 -Ref: Internal links-Footnote-181150 -Node: Radio targets81285 -Node: External links81976 -Node: Handling links84380 -Ref: Handling links-Footnote-189667 -Ref: Handling links-Footnote-289904 -Node: Link abbreviations89978 -Node: Search options91657 -Ref: Search options-Footnote-193437 -Node: Custom searches93518 -Node: Remember94566 -Node: Setting up remember95553 -Node: Remember templates96135 -Ref: Remember templates-Footnote-199581 -Node: Storing notes99679 -Node: TODO items101566 -Node: TODO basics102543 -Node: TODO extensions104307 -Node: Workflow states105126 -Ref: Workflow states-Footnote-1106301 -Node: TODO types106394 -Ref: TODO types-Footnote-1107977 -Node: Multiple sets in one file108059 -Node: Per file keywords109670 -Ref: Per file keywords-Footnote-1110959 -Node: Priorities111160 -Node: Breaking down tasks112770 -Ref: Breaking down tasks-Footnote-1113290 -Node: Checkboxes113386 -Node: Tags116235 -Node: Tag inheritance117007 -Node: Setting tags117944 -Ref: Setting tags-Footnote-1122467 -Ref: Setting tags-Footnote-2122579 -Node: Tag searches122662 -Node: Properties and columns125379 -Node: Property syntax126484 -Node: Special properties128644 -Node: Property searches129560 -Node: Column view130215 -Node: Defining columns131382 -Node: Scope of column definitions131780 -Node: Column attributes132702 -Node: Using column view134950 -Node: Property API136937 -Node: Timestamps137291 -Node: Time stamps137752 -Ref: Time stamps-Footnote-1140180 -Node: Creating timestamps140296 -Node: The date/time prompt142370 -Ref: The date/time prompt-Footnote-1144358 -Node: Custom time format144464 -Node: Deadlines and scheduling146156 -Ref: Deadlines and scheduling-Footnote-1147506 -Node: Inserting deadline/schedule147661 -Node: Repeated tasks148599 -Node: Progress logging150238 -Node: Closing items150893 -Ref: Closing items-Footnote-1151827 -Ref: Closing items-Footnote-2151896 -Node: Tracking TODO state changes151969 -Node: Clocking work time152825 -Ref: Clocking work time-Footnote-1156471 -Ref: Clocking work time-Footnote-2156549 -Node: Agenda views156675 -Node: Agenda files158626 -Ref: Agenda files-Footnote-1159592 -Ref: Agenda files-Footnote-2159741 -Node: Agenda dispatcher159934 -Node: Built-in agenda views161631 -Node: Weekly/Daily agenda162211 -Node: Global TODO list165153 -Node: Matching tags and properties167431 -Node: Timeline168520 -Node: Stuck projects169192 -Node: Presentation and sorting171043 -Node: Categories171834 -Node: Time-of-day specifications172498 -Node: Sorting of agenda items174469 -Node: Agenda commands175751 -Node: Custom agenda views183032 -Node: Storing searches183751 -Node: Block agenda185663 -Node: Setting Options186893 -Node: Exporting Agenda Views189632 -Ref: Exporting Agenda Views-Footnote-1193916 -Ref: Exporting Agenda Views-Footnote-2193973 -Node: Extracting Agenda Information for other programs194159 -Node: Embedded LaTeX198285 -Ref: Embedded LaTeX-Footnote-1199379 -Node: Math symbols199569 -Node: Subscripts and Superscripts200336 -Node: LaTeX fragments201182 -Ref: LaTeX fragments-Footnote-1203418 -Node: Processing LaTeX fragments203680 -Node: CDLaTeX mode204628 -Ref: CDLaTeX mode-Footnote-1207114 -Node: Exporting207262 -Node: ASCII export208576 -Node: HTML export209866 -Node: Export commands210485 -Node: Quoting HTML tags211729 -Node: Links212359 -Node: Images213056 -Ref: Images-Footnote-1213927 -Node: CSS support213988 -Ref: CSS support-Footnote-1215307 -Node: XOXO export215420 -Node: iCalendar export215859 -Node: Text interpretation217078 -Node: Comment lines217669 -Node: Initial text218064 -Node: Footnotes219733 -Node: Enhancing text220548 -Ref: Enhancing text-Footnote-1222407 -Node: Export options222497 -Node: Publishing224442 -Ref: Publishing-Footnote-1225238 -Node: Configuration225382 -Node: Project alist226100 -Node: Sources and destinations227166 -Node: Selecting files227896 -Node: Publishing action228644 -Node: Publishing options229877 -Node: Publishing links232029 -Node: Project page index233542 -Node: Sample configuration234320 -Node: Simple example234812 -Node: Complex example235485 -Node: Triggering publication237561 -Node: Miscellaneous238246 -Node: Completion238880 -Node: Customization240550 -Node: In-buffer settings241133 -Node: The very busy C-c C-c key246472 -Node: Clean view248233 -Node: TTY keys250810 -Node: Interaction252420 -Node: Cooperation252817 -Node: Conflicts255693 -Node: Bugs257696 -Node: Extensions and Hacking259192 -Node: Extensions259863 -Node: Tables in arbitrary syntax261810 -Node: Radio tables262887 -Node: A LaTeX example265390 -Ref: A LaTeX example-Footnote-1269036 -Ref: A LaTeX example-Footnote-2269184 -Node: Translator functions269619 -Ref: Translator functions-Footnote-1272728 -Node: Dynamic blocks272816 -Node: Special agenda views274788 -Ref: Special agenda views-Footnote-1277098 -Node: Using the property API277358 -Node: History and Acknowledgments278839 -Node: Index285223 -Node: Key Index318969 +Node: Feedback18709 +Node: Document structure20785 +Node: Outlines21677 +Node: Headlines22337 +Ref: Headlines-Footnote-123345 +Node: Visibility cycling23456 +Ref: Visibility cycling-Footnote-125666 +Ref: Visibility cycling-Footnote-225724 +Ref: Visibility cycling-Footnote-325774 +Node: Motion26044 +Node: Structure editing26998 +Node: Archiving29824 +Node: ARCHIVE tag30382 +Node: Moving subtrees32175 +Node: Sparse trees33486 +Ref: Sparse trees-Footnote-135618 +Ref: Sparse trees-Footnote-235800 +Node: Plain lists35915 +Ref: Plain lists-Footnote-140112 +Ref: Plain lists-Footnote-240470 +Node: Drawers40651 +Node: orgstruct-mode41489 +Node: Tables42389 +Node: Built-in table editor42970 +Node: Narrow columns50209 +Ref: Narrow columns-Footnote-152144 +Node: Column groups52190 +Node: orgtbl-mode53723 +Node: The spreadsheet54526 +Node: References55613 +Ref: References-Footnote-160077 +Node: Formula syntax for Calc60366 +Node: Formula syntax for Lisp62823 +Node: Field formulas64541 +Node: Column formulas65849 +Node: Editing and debugging formulas67448 +Node: Updating the table71601 +Node: Advanced features72636 +Node: Hyperlinks77161 +Node: Link format77934 +Node: Internal links79227 +Ref: Internal links-Footnote-181152 +Node: Radio targets81287 +Node: External links81978 +Node: Handling links84382 +Ref: Handling links-Footnote-189669 +Ref: Handling links-Footnote-289906 +Node: Link abbreviations89980 +Node: Search options91659 +Ref: Search options-Footnote-193439 +Node: Custom searches93520 +Node: Remember94568 +Node: Setting up remember95555 +Node: Remember templates96137 +Ref: Remember templates-Footnote-199583 +Node: Storing notes99681 +Node: TODO items101568 +Node: TODO basics102545 +Node: TODO extensions104309 +Node: Workflow states105128 +Ref: Workflow states-Footnote-1106303 +Node: TODO types106396 +Ref: TODO types-Footnote-1107979 +Node: Multiple sets in one file108061 +Node: Per file keywords109672 +Ref: Per file keywords-Footnote-1110961 +Node: Priorities111162 +Node: Breaking down tasks112772 +Ref: Breaking down tasks-Footnote-1113292 +Node: Checkboxes113388 +Node: Tags116237 +Node: Tag inheritance117009 +Node: Setting tags117946 +Ref: Setting tags-Footnote-1122469 +Ref: Setting tags-Footnote-2122581 +Node: Tag searches122664 +Node: Properties and columns125381 +Node: Property syntax126486 +Node: Special properties128646 +Node: Property searches129562 +Node: Column view130217 +Node: Defining columns131384 +Node: Scope of column definitions131782 +Node: Column attributes132704 +Node: Using column view134952 +Node: Property API136939 +Node: Timestamps137293 +Node: Time stamps137754 +Ref: Time stamps-Footnote-1140182 +Node: Creating timestamps140298 +Node: The date/time prompt142372 +Ref: The date/time prompt-Footnote-1144360 +Node: Custom time format144466 +Node: Deadlines and scheduling146158 +Ref: Deadlines and scheduling-Footnote-1147508 +Node: Inserting deadline/schedule147663 +Node: Repeated tasks148601 +Node: Progress logging150240 +Node: Closing items150895 +Ref: Closing items-Footnote-1151829 +Ref: Closing items-Footnote-2151898 +Node: Tracking TODO state changes151971 +Node: Clocking work time152827 +Ref: Clocking work time-Footnote-1156473 +Ref: Clocking work time-Footnote-2156551 +Node: Agenda views156677 +Node: Agenda files158628 +Ref: Agenda files-Footnote-1159594 +Ref: Agenda files-Footnote-2159743 +Node: Agenda dispatcher159936 +Node: Built-in agenda views161633 +Node: Weekly/Daily agenda162213 +Node: Global TODO list165155 +Node: Matching tags and properties167433 +Node: Timeline168522 +Node: Stuck projects169194 +Node: Presentation and sorting171045 +Node: Categories171836 +Node: Time-of-day specifications172500 +Node: Sorting of agenda items174471 +Node: Agenda commands175753 +Node: Custom agenda views183034 +Node: Storing searches183753 +Node: Block agenda185665 +Node: Setting Options186895 +Node: Exporting Agenda Views189634 +Ref: Exporting Agenda Views-Footnote-1193918 +Ref: Exporting Agenda Views-Footnote-2193975 +Node: Extracting Agenda Information for other programs194161 +Node: Embedded LaTeX198287 +Ref: Embedded LaTeX-Footnote-1199381 +Node: Math symbols199571 +Node: Subscripts and Superscripts200338 +Node: LaTeX fragments201184 +Ref: LaTeX fragments-Footnote-1203420 +Node: Processing LaTeX fragments203682 +Node: CDLaTeX mode204630 +Ref: CDLaTeX mode-Footnote-1207116 +Node: Exporting207264 +Node: ASCII export208578 +Node: HTML export209868 +Node: Export commands210487 +Node: Quoting HTML tags211731 +Node: Links212361 +Node: Images213058 +Ref: Images-Footnote-1213929 +Node: CSS support213990 +Ref: CSS support-Footnote-1215309 +Node: XOXO export215422 +Node: iCalendar export215861 +Node: Text interpretation217080 +Node: Comment lines217671 +Node: Initial text218066 +Node: Footnotes219735 +Node: Enhancing text220550 +Ref: Enhancing text-Footnote-1222409 +Node: Export options222499 +Node: Publishing224621 +Ref: Publishing-Footnote-1225417 +Node: Configuration225561 +Node: Project alist226279 +Node: Sources and destinations227345 +Node: Selecting files228075 +Node: Publishing action228823 +Node: Publishing options230056 +Node: Publishing links232208 +Node: Project page index233721 +Node: Sample configuration234499 +Node: Simple example234991 +Node: Complex example235664 +Node: Triggering publication237740 +Node: Miscellaneous238425 +Node: Completion239059 +Node: Customization240729 +Node: In-buffer settings241312 +Node: The very busy C-c C-c key246651 +Node: Clean view248412 +Node: TTY keys250989 +Node: Interaction252599 +Node: Cooperation252996 +Node: Conflicts255872 +Node: Bugs257875 +Node: Extensions and Hacking259371 +Node: Extensions260042 +Node: Tables in arbitrary syntax261989 +Node: Radio tables263066 +Node: A LaTeX example265569 +Ref: A LaTeX example-Footnote-1269215 +Ref: A LaTeX example-Footnote-2269363 +Node: Translator functions269798 +Ref: Translator functions-Footnote-1272907 +Node: Dynamic blocks272995 +Node: Special agenda views274967 +Ref: Special agenda views-Footnote-1277277 +Node: Using the property API277537 +Node: History and Acknowledgments279018 +Node: Index285402 +Node: Key Index319294  End Tag Table diff --git a/org.el b/org.el index a7eb10dbb..1fc081e0e 100644 --- a/org.el +++ b/org.el @@ -5,7 +5,7 @@ ;; Author: Carsten Dominik ;; Keywords: outlines, hypermedia, calendar, wp ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/ -;; Version: 5.03b +;; Version: 5.04 ;; ;; This file is part of GNU Emacs. ;; @@ -83,7 +83,7 @@ ;;; Version -(defconst org-version "5.03b" +(defconst org-version "5.04" "The version number of the file org.el.") (defun org-version () (interactive) @@ -698,10 +698,15 @@ line like :group 'org-archive :type 'string) -(defcustom org-archive-mark-done t - "Non-nil means, mark entries as DONE when they are moved to the archive file." +(defcustom org-archive-mark-done "DONE" + "Non-nil means, mark entries as DONE when they are moved to the archive file. +This can be a string to set the keyword to use. When t, Org-mode will +use the first keyword in its list that means done." :group 'org-archive - :type 'boolean) + :type '(choice + (const :tag "No" nil) + (const :tag "Yes" t) + (string :tag "Use this keyword"))) (defcustom org-archive-stamp-time t "Non-nil means, add a time stamp to entries moved to an archive file." @@ -1605,6 +1610,15 @@ the time stamp will always be forced into the second line." :group 'org-time :type 'boolean) +(defcustom org-insert-labeled-timestamps-before-properties-drawer t + "Non-nil means, always insert planning info before property drawer. +When this is nil and there is a property drawer *directly* after +the headline, move the planning info into the drawer. If the property +drawer separated from the headline by at least one line, this variable +has no effect." + :group 'org-time + :type 'boolean) + (defconst org-time-stamp-formats '("<%Y-%m-%d %a>" . "<%Y-%m-%d %a %H:%M>") "Formats for `format-time-string' which are used for time stamps. It is not recommended to change this constant.") @@ -2597,6 +2611,23 @@ headline Only export the headline, but skip the tree below it." (const :tag "headline only" 'headline) (const :tag "entirely" t))) +(defcustom org-export-author-info t + "Non-nil means, insert author name and email into the exported file. + +This option can also be set with the +OPTIONS line, +e.g. \"author:nil\"." + :group 'org-export-general + :type 'boolean) + +(defcustom org-export-time-stamp-file t + "Non-nil means, insert a time stamp into the exported file. +The time stamp shows when the file was created. + +This option can also be set with the +OPTIONS line, +e.g. \"timestamp:nil\"." + :group 'org-export-general + :type 'boolean) + (defcustom org-export-with-timestamps t "If nil, do not export time stamps and associated keywords." :group 'org-export-general @@ -4000,7 +4031,7 @@ The following commands are available: (org-add-to-invisibility-spec '(org-cwidth)) (when (featurep 'xemacs) (org-set-local 'line-move-ignore-invisible t)) - (setq outline-regexp "\\*+ ") + (org-set-local 'outline-regexp "\\*+ ") (setq outline-level 'org-outline-level) (when (and org-ellipsis (stringp org-ellipsis) (fboundp 'set-display-table-slot) (boundp 'buffer-display-table)) @@ -5259,7 +5290,8 @@ would end up with no indentation after the change, nothing at all is done." "^\\S-" (concat "^ \\{0," (int-to-string (- diff)) "\\}\\S-"))) col) - (unless (save-excursion (re-search-forward prohibit end t)) + (unless (save-excursion (end-of-line 1) + (re-search-forward prohibit end t)) (while (re-search-forward "^[ \t]+" end t) (goto-char (match-end 0)) (setq col (current-column)) @@ -6194,8 +6226,8 @@ I.e. to the first item in this list." ind-down (nth 2 tmp) ind-up (nth 1 tmp) delta (if (> arg 0) - (if ind-down (- ind-down ind) (+ 2 ind)) - (if ind-up (- ind-up ind) (- ind 2)))) + (if ind-down (- ind-down ind) 2) + (if ind-up (- ind-up ind) -2))) (if (< (+ delta ind) 0) (error "Cannot outdent beyond margin")) (while (< (point) end) (beginning-of-line 1) @@ -6316,6 +6348,7 @@ C-c C-c Set tags / toggle checkbox" '([(meta shift right)] org-shiftmetaright) '([(shift up)] org-shiftup) '([(shift down)] org-shiftdown) + '("\C-c\C-c" org-ctrl-c-ctrl-c) '("\M-q" fill-paragraph) '("\C-c^" org-sort) '("\C-c-" org-cycle-list-bullet))) @@ -6344,7 +6377,6 @@ C-c C-c Set tags / toggle checkbox" (orgstruct-make-binding 'org-insert-todo-heading 107 [(meta return)] "\M-\C-m")) - (org-defkey orgstruct-mode-map "\C-c\C-c" 'org-ctrl-c-ctrl-c) (setq org-local-vars (org-get-local-variables)) t)) @@ -6516,13 +6548,16 @@ this heading." (goto-char (point-max)) (insert "\n")) ;; Paste (org-paste-subtree (org-get-legal-level level 1)) - ;; Mark the entry as done, i.e. set to last word in org-todo-keywords-1 FIXME: not right anymore!!!!!!! + + ;; Mark the entry as done (when (and org-archive-mark-done (looking-at org-todo-line-regexp) (or (not (match-end 3)) (not (member (match-string 3) org-done-keywords)))) (let (org-log-done) - (org-todo (car org-done-keywords)))) + (org-todo + (car (or (member org-archive-mark-done org-done-keywords) + org-done-keywords))))) ;; Move cursor to right after the TODO keyword (when org-archive-stamp-time @@ -10339,7 +10374,7 @@ this function is called." (defun org-link-expand-abbrev (link) "Apply replacements as defined in `org-link-abbrev-alist." - (if (string-match "^\\([a-zA-Z]+\\)\\(::?\\(.*\\)\\)?$" link) + (if (string-match "^\\([a-zA-Z][-_a-zA-Z0-9]*\\)\\(::?\\(.*\\)\\)?$" link) (let* ((key (match-string 1 link)) (as (or (assoc key org-link-abbrev-alist-local) (assoc key org-link-abbrev-alist))) @@ -12404,7 +12439,10 @@ For calling through lisp, arg is also interpreted in the following way: done-word (nth 3 ass) final-done-word (nth 4 ass))) (when (memq arg '(nextset previousset)) - (message "Keyword set: %s" + (message "Keyword-Set %d/%d: %s" + (- (length org-todo-sets) -1 + (length (memq (assoc state org-todo-sets) org-todo-sets))) + (length org-todo-sets) (mapconcat 'identity (assoc state org-todo-sets) " "))) (setq org-last-todo-state-is-todo (not (member state org-done-keywords))) @@ -12571,7 +12609,8 @@ be removed." (goto-char (match-end 0)) (if (eobp) (insert "\n")) (forward-char 1) - (when (looking-at "[ \t]*:PROPERTIES:[ \t]*$") + (when (and (not org-insert-labeled-timestamps-before-properties-drawer) + (looking-at "[ \t]*:PROPERTIES:[ \t]*$")) (goto-char (match-end 0)) (if (eobp) (insert "\n")) (forward-char 1)) @@ -13463,7 +13502,7 @@ but in some other way.") (let (c prop) (org-at-property-p) (setq prop (match-string 2)) - (message "Property Action: [s]et [d]elete [D]delete globally") + (message "Property Action: [s]et [d]elete [D]elete globally [c]ompute") (setq c (read-char-exclusive)) (cond ((equal c ?s) @@ -13472,6 +13511,8 @@ but in some other way.") (call-interactively 'org-delete-property)) ((equal c ?D) (call-interactively 'org-delete-property-globally)) + ((equal c ?c) + (call-interactively 'org-compute-property-at-point)) (t (error "No such property action %c" c))))) (defun org-at-property-p () @@ -13653,6 +13694,20 @@ If the property is not present at all, nil is returned." (org-priority (if (and value (stringp value) (string-match "\\S-" value)) (string-to-char value) ?\ )) (org-set-tags nil 'align)) + ((equal property "SCHEDULED") + (if (re-search-forward org-scheduled-time-regexp end t) + (cond + ((eq value 'earlier) (org-timestamp-change -1 'day)) + ((eq value 'later) (org-timestamp-change 1 'day)) + (t (call-interactively 'org-schedule))) + (call-interactively 'org-schedule))) + ((equal property "DEADLINE") + (if (re-search-forward org-deadline-time-regexp end t) + (cond + ((eq value 'earlier) (org-timestamp-change -1 'day)) + ((eq value 'later) (org-timestamp-change 1 'day)) + (t (call-interactively 'org-deadline))) + (call-interactively 'org-deadline))) ((member property org-special-properties) (error "The %s property can not yet be set with `org-entry-put'" property)) @@ -13762,6 +13817,17 @@ If the property is not present at all, nil is returned." (replace-match "")) (message "Property \"%s\" removed from %d entries" property cnt))))) +(defun org-compute-property-at-point () + "FIXME:" + (interactive) + (unless (org-at-property-p) + (error "Not at a property")) + (let ((prop (org-match-string-no-properties 2))) + (org-columns-get-format-and-top-level) + (unless (nth 3 (assoc prop org-columns-current-fmt-compiled)) + (error "No operator defined for property %s" prop)) + (org-columns-compute prop))) + (defun org-property-get-allowed-values (pom property &optional table) "Get allowed values for the property PROPERTY. When TABLE is non-nil, return an alist that can directly be used for @@ -14032,7 +14098,7 @@ Where possible, use the standard interface for changing this line." (call-interactively 'org-deadline)))) ((equal key "SCHEDULED") (setq eval '(org-with-point-at pom - (call-interactively 'org-deadline)))) + (call-interactively 'org-schedule)))) (t (setq allowed (org-property-get-allowed-values pom key 'table)) (if allowed @@ -14109,14 +14175,16 @@ Where possible, use the standard interface for changing this line." nval) (when (equal key "ITEM") (error "Cannot edit item headline from here")) - (unless allowed + (unless (or allowed (member key '("SCHEDULED" "DEADLINE"))) (error "Allowed values for this property have not been defined")) - (if previous (setq allowed (reverse allowed))) - (if (member value allowed) - (setq nval (car (cdr (member value allowed))))) - (setq nval (or nval (car allowed))) - (if (equal nval value) - (error "Only one allowed value for this property")) + (if (member key '("SCHEDULED" "DEADLINE")) + (setq nval (if previous 'earlier 'later)) + (if previous (setq allowed (reverse allowed))) + (if (member value allowed) + (setq nval (car (cdr (member value allowed))))) + (setq nval (or nval (car allowed))) + (if (equal nval value) + (error "Only one allowed value for this property"))) (let ((inhibit-read-only t)) (remove-text-properties (1- bol) eol '(read-only t)) (unwind-protect @@ -14137,6 +14205,20 @@ Where possible, use the standard interface for changing this line." (< emacs-major-version 22)) (error "Emacs 22 is required for the columns feature"))))) +(defun org-columns-get-format-and-top-level () + (let (fmt) + (when (condition-case nil (org-back-to-heading) (error nil)) + (move-marker org-entry-property-inherited-from nil) + (setq fmt (org-entry-get nil "COLUMNS" t))) + (setq fmt (or fmt org-columns-default-format)) + (org-set-local 'org-columns-current-fmt fmt) + (org-columns-compile-format fmt) + (if (marker-position org-entry-property-inherited-from) + (move-marker org-columns-top-level-marker + org-entry-property-inherited-from) + (move-marker org-columns-top-level-marker (point))) + fmt)) + (defun org-columns () "Turn on column view on an org-mode file." (interactive) @@ -14144,17 +14226,10 @@ Where possible, use the standard interface for changing this line." (org-columns-remove-overlays) (move-marker org-columns-begin-marker (point)) (let (beg end fmt cache maxwidths) - (when (condition-case nil (org-back-to-heading) (error nil)) - (move-marker org-entry-property-inherited-from nil) - (setq fmt (org-entry-get nil "COLUMNS" t))) - (setq fmt (or fmt org-columns-default-format)) - (org-set-local 'org-columns-current-fmt fmt) - (org-columns-compile-format fmt) + (setq fmt (org-columns-get-format-and-top-level)) (save-excursion - (if (marker-position org-entry-property-inherited-from) - (goto-char org-entry-property-inherited-from)) + (goto-char org-columns-top-level-marker) (setq beg (point)) - (move-marker org-columns-top-level-marker (point)) (unless org-columns-inhibit-recalculation (org-columns-compute-all)) (setq end (or (condition-case nil (org-end-of-subtree t t) (error nil)) @@ -14166,7 +14241,6 @@ Where possible, use the standard interface for changing this line." (when cache (setq maxwidths (org-columns-get-autowidth-alist fmt cache)) (org-set-local 'org-columns-current-maxwidths maxwidths) - (goto-line (car (org-last cache))) (org-columns-display-here-title) (mapc (lambda (x) (goto-line (car x)) @@ -14323,7 +14397,6 @@ display, or in the #+COLUMNS line of the current buffer." (when cache (setq maxwidths (org-columns-get-autowidth-alist fmt cache)) (org-set-local 'org-columns-current-maxwidths maxwidths) - (goto-line (car (org-last cache))) (org-columns-display-here-title) (mapc (lambda (x) (goto-line (car x)) @@ -14402,7 +14475,7 @@ display, or in the #+COLUMNS line of the current buffer." (push (cons property str) sum-alist) (add-text-properties sumpos (1+ sumpos) (list 'org-summaries sum-alist))) - (when val + (when val ;?????????????????????????????????? and force????? (org-entry-put nil property str)) ;; add current to current level accumulator (aset lsum level (+ (aref lsum level) sum)) @@ -15382,9 +15455,12 @@ If necessary, clock-out of the currently active clock." (setq org-clock-heading "???")) (setq org-clock-heading (propertize org-clock-heading 'face nil)) (beginning-of-line 2) - (when (and (looking-at (concat "[ \t]*" org-keyword-time-regexp)) - (not (equal (match-string 1) org-clock-string))) - ;; First line hast scheduling info, move one further + (while + (or (and (looking-at (concat "[ \t]*" org-keyword-time-regexp)) + (not (equal (match-string 1) org-clock-string))) + (and (looking-at "[ \t]*:PROPERTIES:") + (not org-insert-labeled-timestamps-before-properties-drawer))) + ;; Scheduling info, or properties drawer, move one line further (beginning-of-line 2) (or (bolp) (newline))) (insert "\n") (backward-char 1) @@ -15868,6 +15944,7 @@ The following commands are available: (org-defkey org-agenda-mode-map "a" 'org-agenda-toggle-archive-tag) (org-defkey org-agenda-mode-map ":" 'org-agenda-set-tags) (org-defkey org-agenda-mode-map "." 'org-agenda-goto-today) +(org-defkey org-agenda-mode-map "j" 'org-agenda-goto-date) (org-defkey org-agenda-mode-map "d" 'org-agenda-day-view) (org-defkey org-agenda-mode-map "w" 'org-agenda-week-view) (org-defkey org-agenda-mode-map "m" 'org-agenda-month-view) @@ -15951,6 +16028,7 @@ The following commands are available: ["Goto Today" org-agenda-goto-today (org-agenda-check-type nil 'agenda 'timeline)] ["Next Dates" org-agenda-later (org-agenda-check-type nil 'agenda)] ["Previous Dates" org-agenda-earlier (org-agenda-check-type nil 'agenda)] + ["Jump to date" org-agenda-goto-date (org-agenda-check-type nil 'agenda)] "--" ("Tags and Properties" ["Show all Tags" org-agenda-show-tags t] @@ -17564,7 +17642,7 @@ the documentation of `org-diary'." (defun org-entry-is-done-p () "Is the current entry marked DONE?" (save-excursion - (and (re-search-backward "[\r\n]\\* " nil t) + (and (re-search-backward "[\r\n]\\*+ " nil t) (looking-at org-nl-done-regexp)))) (defun org-at-date-range-p (&optional inactive-ok) @@ -18366,6 +18444,11 @@ When this is the global TODO list, a prefix argument will be interpreted." (goto-line line) (recenter window-line))) +(defun org-agenda-goto-date (date) + "Jump to DATE in agenda." + (interactive (list (org-read-date))) + (org-agenda-list nil date)) + (defun org-agenda-goto-today () "Go to today." (interactive) @@ -18911,9 +18994,9 @@ the same tree node, and the headline of the tree node in the Org-mode file." (org-agenda-check-no-diary) (let* ((marker (or (get-text-property (point) 'org-marker) (org-agenda-error))) - (buffer (marker-buffer marker)) - (pos (marker-position marker)) (hdmarker (get-text-property (point) 'org-hd-marker)) + (buffer (marker-buffer hdmarker)) + (pos (marker-position hdmarker)) (buffer-read-only nil) newhead) (org-with-remote-undo buffer @@ -19619,6 +19702,8 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]." (:skip-before-1st-heading . org-export-skip-text-before-1st-heading) (:fixed-width . org-export-with-fixed-width) (:timestamps . org-export-with-timestamps) + (:author-info . org-export-author-info) + (:time-stamp-file . org-export-time-stamp-file) (:tables . org-export-with-tables) (:table-auto-headline . org-export-highlight-first-table-line) (:style . org-export-html-style) @@ -19675,7 +19760,9 @@ The images can be removed again with \\[org-ctrl-c-ctrl-c]." ("*" . :emphasize) ("TeX" . :TeX-macros) ("LaTeX" . :LaTeX-fragments) - ("skip" . :skip-before-1st-heading))) + ("skip" . :skip-before-1st-heading) + ("author" . :author-info) + ("timestamp" . :time-stamp-file))) o) (while (setq o (pop op)) (if (string-match (concat (regexp-quote (car o)) @@ -20081,7 +20168,7 @@ translations. There is currently no way for users to extend this.") (htmlp (plist-get parameters :for-html)) (inhibit-read-only t) (outline-regexp "\\*+ ") - a b + a b xx rtn p) (save-excursion (set-buffer (get-buffer-create " org-mode-tmp")) @@ -20206,12 +20293,12 @@ translations. There is currently no way for users to extend this.") (while (re-search-forward org-bracket-link-regexp nil t) (org-if-unprotected (replace-match - (concat "[[" (save-match-data - (org-link-expand-abbrev (match-string 1))) + (concat "[[" (setq xx (save-match-data + (org-link-expand-abbrev (match-string 1)))) "]" (if (match-end 3) (match-string 2) - (concat "[" (match-string 1) "]")) + (concat "[" xx "]")) "]") t t))) @@ -20327,6 +20414,10 @@ underlined headlines. The default is 3." (file-name-sans-extension (file-name-nondirectory buffer-file-name)) ".txt")) + (filename (if (equal (file-truename filename) + (file-truename buffer-file-name)) + (concat filename ".txt") + filename)) (buffer (find-file-noselect filename)) (org-levels-open (make-vector org-level-max nil)) (odd org-odd-levels-only) @@ -20391,11 +20482,12 @@ underlined headlines. The default is 3." ;; File header (if title (org-insert-centered title ?=)) (insert "\n") - (if (or author email) + (if (and (or author email) + org-export-author-info) (insert (concat (nth 1 lang-words) ": " (or author "") (if email (concat " <" email ">") "") "\n"))) - (if (and date time) + (if (and date time org-export-time-stamp-file) (insert (concat (nth 2 lang-words) ": " date " " time "\n"))) (insert "\n\n") @@ -20984,6 +21076,11 @@ the body tags themselves." (set-buffer buffer) (erase-buffer) (fundamental-mode) + +;; FIXME: +; (and (fboundp 'set-buffer-file-coding-system)) +; (set-buffer-file-coding-system coding-system-for-write) + (let ((case-fold-search nil) (org-odd-levels-only odd)) ;; create local variables for all options, to make sure all called @@ -21422,14 +21519,14 @@ lang=\"%s\" xml:lang=\"%s\"> (unless body-only (when (plist-get opt-plist :auto-postamble) - (when author + (when (and org-export-author-info author) (insert "

" (nth 1 lang-words) ": " author "\n") (when email (insert "<" email ">\n")) (insert "

\n")) - (when (and date time) + (when (and date time org-export-time-stamp-file) (insert "

" (nth 2 lang-words) ": " date " " time "

\n"))) @@ -23397,7 +23494,8 @@ not an indirect buffer" (setq column (current-column))) ((org-in-item-p) (org-beginning-of-item) - (looking-at "[ \t]*\\(\\S-+\\)[ \t]*") +; (looking-at "[ \t]*\\(\\S-+\\)[ \t]*") + (looking-at "[ \t]*\\(\\S-+\\)[ \t]*\\(\\[[- X]\\][ \t]*\\)?") (setq bpos (match-beginning 1) tpos (match-end 0) bcol (progn (goto-char bpos) (current-column)) tcol (progn (goto-char tpos) (current-column)) diff --git a/org.pdf b/org.pdf index 47ed6a020..006b75501 100644 Binary files a/org.pdf and b/org.pdf differ diff --git a/org.texi b/org.texi index 6be2a165f..86efdb7e6 100644 --- a/org.texi +++ b/org.texi @@ -3,7 +3,7 @@ @setfilename ../info/org @settitle Org Mode Manual -@set VERSION 5.03 +@set VERSION 5.04 @set DATE July 2007 @dircategory Emacs @@ -489,7 +489,7 @@ define @emph{global} keys for the commands @command{org-store-link} and @lisp ;; The following lines are always needed. Choose your own keys. -(add-to-list 'auto-mode-alist '("\\.org$" . org-mode)) +(add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode)) (define-key global-map "\C-cl" 'org-store-link) (define-key global-map "\C-ca" 'org-agenda) @end lisp @@ -5133,7 +5133,7 @@ If you are away from your computer, it can be very useful to have a printed version of some agenda views to carry around. Org-mode can export custom agenda views as plain text, HTML@footnote{You need to install Hrvoje Niksic' @file{htmlize.el}.} and postscript. If you want -to do this only occasionally, use the commend +to do this only occasionally, use the command @table @kbd @kindex C-x C-w @@ -6044,7 +6044,7 @@ Insert template with export options, see example below. #+LANGUAGE: language for HTML, e.g. @samp{en} (@code{org-export-default-language}) #+TEXT: Some descriptive text to be inserted at the beginning. #+TEXT: Several lines may be given. -#+OPTIONS: H:2 num:t toc:t \n:nil @@:t ::t |:t ^:t f:t *:nil TeX:t LaTeX:t skip:t +#+OPTIONS: H:2 num:t toc:t \n:nil @@:t ::t |:t ^:t f:t TeX:t ... @end example @noindent @@ -6062,22 +6062,26 @@ you can: @cindex emphasized text @cindex @TeX{} macros @cindex La@TeX{} fragments +@cindex author info, in export +@cindex time info, in export @example -H: @r{set the number of headline levels for export} -num: @r{turn on/off section-numbers} -toc: @r{turn on/off table of contents, or set level limit (integer)} -\n: @r{turn on/off linebreak-preservation} -@@: @r{turn on/off quoted HTML tags} -:: @r{turn on/off fixed-width sections} -|: @r{turn on/off tables} -^: @r{turn on/off @TeX{}-like syntax for sub- and superscripts. If} - @r{you write "^:@{@}", @code{a_@{b@}} will be interpreted, but} - @r{the simple @code{a_b} will be left as it is.} -f: @r{turn on/off foototes like this[1].} -*: @r{turn on/off emphasized text (bold, italic, underlined)} -TeX: @r{turn on/off simple @TeX{} macros in plain text} -LaTeX: @r{turn on/off La@TeX{} fragments} -skip: @r{turn on/off skipping the text before the first heading} +H: @r{set the number of headline levels for export} +num: @r{turn on/off section-numbers} +toc: @r{turn on/off table of contents, or set level limit (integer)} +\n: @r{turn on/off linebreak-preservation} +@@: @r{turn on/off quoted HTML tags} +:: @r{turn on/off fixed-width sections} +|: @r{turn on/off tables} +^: @r{turn on/off @TeX{}-like syntax for sub- and superscripts. If} + @r{you write "^:@{@}", @code{a_@{b@}} will be interpreted, but} + @r{the simple @code{a_b} will be left as it is.} +f: @r{turn on/off foototes like this[1].} +*: @r{turn on/off emphasized text (bold, italic, underlined)} +TeX: @r{turn on/off simple @TeX{} macros in plain text} +LaTeX: @r{turn on/off La@TeX{} fragments} +skip: @r{turn on/off skipping the text before the first heading} +author: @r{turn on/off inclusion of author name/email into exported file} +timestamp: @r{turn on/off inclusion creation time into exported file} @end example @node Publishing, Miscellaneous, Exporting, Top diff --git a/orgcard.pdf b/orgcard.pdf index 7b8e2daa3..b64336246 100644 Binary files a/orgcard.pdf and b/orgcard.pdf differ diff --git a/orgcard.tex b/orgcard.tex index 588d45232..489741e45 100644 --- a/orgcard.tex +++ b/orgcard.tex @@ -1,5 +1,5 @@ % Reference Card for Org Mode -\def\orgversionnumber{5.03} +\def\orgversionnumber{5.04} \def\versionyear{2007} % latest update \def\year{2007} % latest copyright year