Mercurial > emacs
comparison lisp/textmodes/org.el @ 65964:4a5b33d70e6f
(org-mode-map): Explicit definition of `C-c C-x' as a
prefix.
(orgtbl-mode-map): Full keymap instead of sparse, because all
`self-insert-command' keys are redifined in this map.
(org-export-as-html): Specify charset for HTML file, by taking it
from the coding system.
author | Carsten Dominik <dominik@science.uva.nl> |
---|---|
date | Mon, 10 Oct 2005 09:16:22 +0000 |
parents | 7d20cbe1d616 |
children | 6c46e0e1ba7b 5e2d3828e89f |
comparison
equal
deleted
inserted
replaced
65963:9d6ad284b72a | 65964:4a5b33d70e6f |
---|---|
3 ;; Copyright (c) 2004, 2005 Free Software Foundation | 3 ;; Copyright (c) 2004, 2005 Free Software Foundation |
4 ;; | 4 ;; |
5 ;; Author: Carsten Dominik <dominik at science dot uva dot nl> | 5 ;; Author: Carsten Dominik <dominik at science dot uva dot nl> |
6 ;; Keywords: outlines, hypermedia, calendar | 6 ;; Keywords: outlines, hypermedia, calendar |
7 ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/ | 7 ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/ |
8 ;; Version: 3.16 | 8 ;; Version: 3.17 |
9 ;; | 9 ;; |
10 ;; This file is part of GNU Emacs. | 10 ;; This file is part of GNU Emacs. |
11 ;; | 11 ;; |
12 ;; GNU Emacs is free software; you can redistribute it and/or modify | 12 ;; GNU Emacs is free software; you can redistribute it and/or modify |
13 ;; it under the terms of the GNU General Public License as published by | 13 ;; it under the terms of the GNU General Public License as published by |
78 ;; Org-mode, you can read the same text online as HTML. There is also an | 78 ;; Org-mode, you can read the same text online as HTML. There is also an |
79 ;; excellent reference card made by Philip Rooke. | 79 ;; excellent reference card made by Philip Rooke. |
80 ;; | 80 ;; |
81 ;; Changes: | 81 ;; Changes: |
82 ;; ------- | 82 ;; ------- |
83 ;; Version 3.17 | |
84 ;; - HTML export specifies character set depending on coding-system. | |
85 ;; | |
83 ;; Version 3.16 | 86 ;; Version 3.16 |
84 ;; - In tables, directly after the field motion commands like TAB and RET, | 87 ;; - In tables, directly after the field motion commands like TAB and RET, |
85 ;; typing a character will blank the field. Can be turned off with | 88 ;; typing a character will blank the field. Can be turned off with |
86 ;; variable `org-table-auto-blank-field'. | 89 ;; variable `org-table-auto-blank-field'. |
87 ;; - Inactive timestamps with `C-c !'. These do not trigger the agenda | 90 ;; - Inactive timestamps with `C-c !'. These do not trigger the agenda |
208 (defvar calc-embedded-open-formula) | 211 (defvar calc-embedded-open-formula) |
209 (defvar font-lock-unfontify-region-function) | 212 (defvar font-lock-unfontify-region-function) |
210 | 213 |
211 ;;; Customization variables | 214 ;;; Customization variables |
212 | 215 |
213 (defvar org-version "3.16" | 216 (defvar org-version "3.17" |
214 "The version number of the file org.el.") | 217 "The version number of the file org.el.") |
215 (defun org-version () | 218 (defun org-version () |
216 (interactive) | 219 (interactive) |
217 (message "Org-mode version %s" org-version)) | 220 (message "Org-mode version %s" org-version)) |
218 | 221 |
479 | 482 |
480 #+CATEGORY: ELisp | 483 #+CATEGORY: ELisp |
481 | 484 |
482 If the file does not specify a category, then file's base name | 485 If the file does not specify a category, then file's base name |
483 is used instead.") | 486 is used instead.") |
487 | |
488 (defgroup org-time nil | |
489 "Options concerning time stamps and deadlines in Org-mode." | |
490 :tag "Org Time" | |
491 :group 'org) | |
492 | |
493 (defconst org-time-stamp-formats '("<%Y-%m-%d %a>" . "<%Y-%m-%d %a %H:%M>") | |
494 "Formats for `format-time-string' which are used for time stamps. | |
495 It is not recommended to change this constant.") | |
496 | |
497 | |
498 (defcustom org-deadline-warning-days 30 | |
499 "No. of days before expiration during which a deadline becomes active. | |
500 This variable governs the display in the org file." | |
501 :group 'org-time | |
502 :type 'number) | |
503 | |
504 (defcustom org-popup-calendar-for-date-prompt t | |
505 "Non-nil means, pop up a calendar when prompting for a date. | |
506 In the calendar, the date can be selected with mouse-1. However, the | |
507 minibuffer will also be active, and you can simply enter the date as well. | |
508 When nil, only the minibuffer will be available." | |
509 :group 'org-time | |
510 :type 'number) | |
511 | |
512 (defcustom org-calendar-follow-timestamp-change t | |
513 "Non-nil means, make the calendar window follow timestamp changes. | |
514 When a timestamp is modified and the calendar window is visible, it will be | |
515 moved to the new date." | |
516 :group 'org-time | |
517 :type 'boolean) | |
518 | |
519 (defgroup org-agenda nil | |
520 "Options concerning agenda display Org-mode." | |
521 :tag "Org Agenda" | |
522 :group 'org) | |
523 | |
524 (defcustom org-agenda-files nil | |
525 "A list of org files for agenda/diary display. | |
526 Entries are added to this list with \\[org-add-file] and removed with | |
527 \\[org-remove-file]. You can also use customize to edit the list." | |
528 :group 'org-agenda | |
529 :type '(repeat file)) | |
530 | |
531 (defcustom org-select-timeline-window t | |
532 "Non-nil means, after creating a timeline, move cursor into Timeline window. | |
533 When nil, cursor will remain in the current window." | |
534 :group 'org-agenda | |
535 :type 'boolean) | |
536 | |
537 (defcustom org-select-agenda-window t | |
538 "Non-nil means, after creating an agenda, move cursor into Agenda window. | |
539 When nil, cursor will remain in the current window." | |
540 :group 'org-agenda | |
541 :type 'boolean) | |
542 | |
543 (defcustom org-fit-agenda-window t | |
544 "Non-nil means, change window size of agenda to fit content." | |
545 :group 'org-agenda | |
546 :type 'boolean) | |
547 | |
548 (defcustom org-agenda-show-all-dates t | |
549 "Non-nil means, `org-agenda' shows every day in the selected range. | |
550 When nil, only the days which actually have entries are shown." | |
551 :group 'org-agenda | |
552 :type 'boolean) | |
553 | |
554 ;; FIXME: First day of month works only for current month because it would | |
555 ;; require a variable ndays treatment. | |
556 (defcustom org-agenda-start-on-weekday 1 | |
557 "Non-nil means, start the overview always on the specified weekday. | |
558 0 Denotes Sunday, 1 denotes Monday etc. | |
559 When nil, always start on the current day." | |
560 :group 'org-agenda | |
561 :type '(choice (const :tag "Today" nil) | |
562 (const :tag "First day of month" t) | |
563 (number :tag "Weekday No."))) | |
564 | |
565 (defcustom org-agenda-ndays 7 | |
566 "Number of days to include in overview display." | |
567 :group 'org-agenda | |
568 :type 'number) | |
569 | |
570 (defcustom org-agenda-include-all-todo t | |
571 "Non-nil means, the agenda will always contain all TODO entries. | |
572 When nil, date-less entries will only be shown if `org-agenda' is called | |
573 with a prefix argument. | |
574 When non-nil, the TODO entries will be listed at the top of the agenda, before | |
575 the entries for specific days." | |
576 :group 'org-agenda | |
577 :type 'boolean) | |
578 | |
579 (defcustom org-agenda-include-diary nil | |
580 "If non-nil, include in the agenda entries from the Emacs Calendar's diary." | |
581 :group 'org-agenda | |
582 :type 'boolean) | |
583 | |
584 (defcustom org-calendar-to-agenda-key [?c] | |
585 "The key to be installed in `calendar-mode-map' for switching to the agenda. | |
586 The command `org-calendar-goto-agenda' will be bound to this key. The | |
587 default is the character `c' because then`c' can be used to switch back and | |
588 force between agenda and calendar." | |
589 :group 'org-agenda | |
590 :type 'sexp) | |
591 | |
592 (defcustom org-agenda-sorting-strategy '(time-up category-keep priority-down) | |
593 "Sorting structure for the agenda items of a single day. | |
594 This is a list of symbols which will be used in sequence to determine | |
595 if an entry should be listed before another entry. The following | |
596 symbols are recognized. | |
597 | |
598 time-up Put entries with time-of-day indications first, early first | |
599 time-down Put entries with time-of-day indications first, late first | |
600 category-keep Keep the default order of categories, corresponding to the | |
601 sequence in `org-agenda-files'. | |
602 category-up Sort alphabetically by category, A-Z. | |
603 category-down Sort alphabetically by category, Z-A. | |
604 priority-up Sort numerically by priority, high priority last. | |
605 priority-down Sort numerically by priority, high priority first. | |
606 | |
607 The different possibilities will be tried in sequence, and testing stops | |
608 if one comparison returns a \"not-equal\". For example, the default | |
609 '(time-up category-keep priority-down) | |
610 means: Pull out all entries having a specified time of day and sort them, | |
611 in order to make a time schedule for the current day the first thing in the | |
612 agenda listing for the day. Of the entries without a time indication, keep | |
613 the grouped in categories, don't sort the categories, but keep them in | |
614 the sequence given in `org-agenda-files'. Within each category sort by | |
615 priority. | |
616 | |
617 Leaving out `category-keep' would mean that items will be sorted across | |
618 categories by priority." | |
619 :group 'org-agenda | |
620 :type '(repeat | |
621 (choice | |
622 (const time-up) | |
623 (const time-down) | |
624 (const category-keep) | |
625 (const category-up) | |
626 (const category-down) | |
627 (const priority-up) | |
628 (const priority-down)))) | |
629 | |
630 (defcustom org-agenda-prefix-format " %-12:c%?-12t% s" | |
631 "Format specification for the prefix of items in the agenda buffer. | |
632 This format works similar to a printf format, with the following meaning: | |
633 | |
634 %c the category of the item, \"Diary\" for entries from the diary, or | |
635 as given by the CATEGORY keyword or derived from the file name. | |
636 %t the time-of-day specification if one applies to the entry, in the | |
637 format HH:MM | |
638 %s Scheduling/Deadline information, a short string | |
639 | |
640 All specifiers work basically like the standard `%s' of printf, but may | |
641 contain two additional characters: A question mark just after the `%' and | |
642 a whitespace/punctuation character just before the final letter. | |
643 | |
644 If the first character after `%' is a question mark, the entire field | |
645 will only be included if the corresponding value applies to the | |
646 current entry. This is useful for fields which should have fixed | |
647 width when present, but zero width when absent. For example, | |
648 \"%?-12t\" will result in a 12 character time field if a time of the | |
649 day is specified, but will completely disappear in entries which do | |
650 not contain a time. | |
651 | |
652 If there is punctuation or whitespace character just before the final | |
653 format letter, this character will be appended to the field value if | |
654 the value is not empty. For example, the format \"%-12:c\" leads to | |
655 \"Diary: \" if the category is \"Diary\". If the category were be | |
656 empty, no additional colon would be interted. | |
657 | |
658 The default value of this option is \" %-12:c%?-12t% s\", meaning: | |
659 - Indent the line with two space characters | |
660 - Give the category in a 12 chars wide field, padded with whitespace on | |
661 the right (because of `-'). Append a colon if there is a category | |
662 (because of `:'). | |
663 - If there is a time-of-day, put it into a 12 chars wide field. If no | |
664 time, don't put in an empty field, just skip it (because of '?'). | |
665 - Finally, put the scheduling information and append a whitespace. | |
666 | |
667 As another example, if you don't want the time-of-day of entries in | |
668 the prefix, you could use: | |
669 | |
670 (setq org-agenda-prefix-format \" %-11:c% s\") | |
671 | |
672 See also the variable `org-agenda-remove-times-when-in-prefix'." | |
673 :type 'string | |
674 :group 'org-agenda) | |
675 | |
676 (defcustom org-timeline-prefix-format " % s" | |
677 "Like `org-agenda-prefix-format', but for the timeline of a single file." | |
678 :type 'string | |
679 :group 'org-agenda) | |
680 | |
681 (defvar org-prefix-format-compiled nil | |
682 "The compiled version of the most recently used prefix format. | |
683 Depending on which command was used last, this may be the compiled version | |
684 of `org-agenda-prefix-format' or `org-timeline-prefix-format'.") | |
685 | |
686 (defcustom org-agenda-use-time-grid t | |
687 "Non-nil means, show a time grid in the agenda schedule. | |
688 A time grid is a set of lines for specific times (like every two hours between | |
689 8:00 and 20:00. The items scheduled for a day at specific times are | |
690 sorted in between these lines. | |
691 For deails about when the grid will be shown, and what it will look like, see | |
692 the variable `org-agenda-time-grid'." | |
693 :group 'org-agenda | |
694 :type 'boolean) | |
695 | |
696 (defcustom org-agenda-time-grid | |
697 '((daily today require-timed) | |
698 "----------------" | |
699 (800 1000 1200 1400 1600 1800 2000)) | |
700 | |
701 "The settings for time grid for agenda display. | |
702 This is a list of three items. The first item is again a list. It contains | |
703 symbols specifying conditions when the grid should be displayed: | |
704 | |
705 daily if the agenda shows a single day | |
706 weekly if the agenda shows an entire week | |
707 today show grid on current date, independent of daily/weekly display | |
708 require-timed show grid only if at least on item has a time specification | |
709 | |
710 The second item is a string which will be places behing the grid time. | |
711 | |
712 The third item is a list of integers, indicating the times that should have | |
713 a grid line." | |
714 :group 'org-agenda | |
715 :type | |
716 '(list | |
717 (set :greedy t :tag "Grid Display Options" | |
718 (const :tag "Show grid in single day agenda display" daily) | |
719 (const :tag "Show grid in weekly agenda display" weekly) | |
720 (const :tag "Always show grid for today" today) | |
721 (const :tag "Show grid only if any timed entries are present" | |
722 require-timed) | |
723 (const :tag "Skip grid times already present in an entry" | |
724 remove-match)) | |
725 (string :tag "Grid String") | |
726 (repeat :tag "Grid Times" (integer :tag "Time")))) | |
727 | |
728 (defcustom org-agenda-remove-times-when-in-prefix t | |
729 "Non-nil means, remove duplicate time specifications in agenda items. | |
730 When the format `org-agenda-prefix-format' contains a `%t' specifier, a | |
731 time-of-day specification in a headline or diary entry is extracted and | |
732 placed into the prefix. If this option is non-nil, the original specification | |
733 \(a timestamp or -range, or just a plain time(range) specification like | |
734 11:30-4pm) will be removed for agenda display. This makes the agenda less | |
735 cluttered. | |
736 The option can be t or nil. It may also be the symbol `beg', indicating | |
737 that the time should only be removed what it is located at the beginning of | |
738 the headline/diary entry." | |
739 :group 'org-agenda | |
740 :type '(choice | |
741 (const :tag "Always" t) | |
742 (const :tag "Never" nil) | |
743 (const :tag "When at beginning of entry" beg))) | |
744 | |
745 (defcustom org-sort-agenda-notime-is-late t | |
746 "Non-nil means, items without time are considered late. | |
747 This is only relevant for sorting. When t, items which have no explicit | |
748 time like 15:30 will be considered as 24:01, i.e. later than any items which | |
749 do have a time. When nil, the default time is before 0:00. You can use this | |
750 option to decide if the schedule for today should come before or after timeless | |
751 agenda entries." | |
752 :group 'org-agenda | |
753 :type 'boolean) | |
754 | |
755 (defgroup org-structure nil | |
756 "Options concerning structure editing in Org-mode." | |
757 :tag "Org Structure" | |
758 :group 'org) | |
759 | |
760 (defcustom org-cycle-hook '(org-optimize-window-after-visibility-change) | |
761 "Hook that is run after `org-cycle' has changed the buffer visibility. | |
762 The function(s) in this hook must accept a single argument which indicates | |
763 the new state that was set by the most recent `org-cycle' command. The | |
764 argument is a symbol. After a global state change, it can have the values | |
765 `overview', `content', or `all'. After a local state change, it can have | |
766 the values `folded', `children', or `subtree'." | |
767 :group 'org-structure | |
768 :type 'hook) | |
769 | |
770 (defcustom org-occur-hook '(org-first-headline-recenter) | |
771 "Hook that is run after `org-occur' has constructed a sparse tree. | |
772 This can be used to recenter the window to show as much of the structure | |
773 as possible." | |
774 :group 'org-structure | |
775 :type 'hook) | |
776 | |
777 (defcustom org-level-color-stars-only nil | |
778 "Non-nil means fontify only the stars in each headline. | |
779 When nil, the entire headline is fontified. | |
780 After changin this, requires restart of Emacs to become effective." | |
781 :group 'org-structure | |
782 :type 'boolean) | |
783 | |
784 (defcustom org-adapt-indentation t | |
785 "Non-nil means, adapt indentation when promoting and demoting. | |
786 When this is set and the *entire* text in an entry is indented, the | |
787 indentation is increased by one space in a demotion command, and | |
788 decreased by one in a promotion command. If any line in the entry | |
789 body starts at column 0, indentation is not changed at all." | |
790 :group 'org-structure | |
791 :type 'boolean) | |
792 | |
793 (defcustom org-enable-fixed-width-editor t | |
794 "Non-nil means, lines starting with \":\" are treated as fixed-width. | |
795 This currently only means, they are never auto-wrapped. | |
796 When nil, such lines will be treated like ordinary lines. | |
797 See also the QUOTE keyword." | |
798 :group 'org-structure | |
799 :type 'boolean) | |
800 | |
801 (defcustom org-cycle-emulate-tab t | |
802 "Where should `org-cycle' emulate TAB. | |
803 nil Never | |
804 white Only in completely white lines | |
805 t Everywhere except in headlines" | |
806 :group 'org-structure | |
807 :type '(choice (const :tag "Never" nil) | |
808 (const :tag "Only in completely white lines" white) | |
809 (const :tag "Everywhere except in headlines" t) | |
810 )) | |
811 | |
812 (defcustom org-show-following-heading t | |
813 "Non-nil means, show heading following match in `org-occur'. | |
814 When doing an `org-occur' it is useful to show the headline which | |
815 follows the match, even if they do not match the regexp. This makes it | |
816 easier to edit directly inside the sparse tree. However, if you use | |
817 org-occur mainly as an overview, the following headlines are | |
818 unnecessary clutter." | |
819 :group 'org-structure | |
820 :type 'boolean) | |
821 | |
822 (defcustom org-archive-location "%s_archive::" | |
823 "The location where subtrees should be archived. | |
824 This string consists of two parts, separated by a double-colon. | |
825 | |
826 The first part is a file name - when omitted, archiving happens in the same | |
827 file. %s will be replaced by the current file name (without directory part). | |
828 Archiving to a different file is useful to keep archived entries from | |
829 contributing to the Org-mode Agenda. | |
830 | |
831 The part after the double colon is a headline. The archived entries will be | |
832 filed under that headline. When omitted, the subtrees are simply filed away | |
833 at the end of the file, as top-level entries. | |
834 | |
835 Here are a few examples: | |
836 \"%s_archive::\" | |
837 If the current file is Projects.org, archive in file | |
838 Projects.org_archive, as top-level trees. This is the default. | |
839 | |
840 \"::* Archived Tasks\" | |
841 Archive in the current file, under the top-level headline | |
842 \"* Archived Tasks\". | |
843 | |
844 \"~/org/archive.org::\" | |
845 Archive in file ~/org/archive.org (absolute path), as top-level trees. | |
846 | |
847 \"basement::** Finished Tasks\" | |
848 Archive in file ./basement (relative path), as level 3 trees | |
849 below the level 2 heading \"** Finished Tasks\". | |
850 | |
851 You may set this option on a per-file basis by adding to the buffer a | |
852 line like | |
853 | |
854 #+ARCHIVE: basement::** Finished Tasks" | |
855 :group 'org-structure | |
856 :type 'string) | |
857 | |
858 (defcustom org-archive-mark-done t | |
859 "Non-nil means, mark archived entries as DONE." | |
860 :group 'org-structure | |
861 :type 'boolean) | |
862 | |
863 (defcustom org-archive-stamp-time t | |
864 "Non-nil means, add a time stamp to archived entries. | |
865 The time stamp will be added directly after the TODO state keyword in the | |
866 first line, so it is probably best to use this in combinations with | |
867 `org-archive-mark-done'." | |
868 :group 'org-structure | |
869 :type 'boolean) | |
870 | |
871 (defgroup org-link nil | |
872 "Options concerning links in Org-mode." | |
873 :tag "Org Link" | |
874 :group 'org) | |
875 | |
876 (defcustom org-link-format "<%s>" | |
877 "Default format for linkes in the buffer. | |
878 This is a format string for printf, %s will be replaced by the link text. | |
879 If you want to make sure that your link is always properly terminated, | |
880 include angle brackets into this format, like \"<%s>\". Some people also | |
881 recommend an additional URL: prefix, so the format would be \"<URL:%s>\"." | |
882 :group 'org-link | |
883 :type '(choice | |
884 (const :tag "\"%s\" (e.g. http://www.there.com)" "%s") | |
885 (const :tag "\"<%s>\" (e.g. <http://www.there.com>)" "<%s>") | |
886 (const :tag "\"<URL:%s>\" (e.g. <URL:http://www.there.com>)" "<URL:%s>") | |
887 (string :tag "Other" :value "<%s>"))) | |
888 | |
889 (defcustom org-allow-space-in-links t | |
890 "Non-nil means, file names in links may contain space characters. | |
891 When nil, it becomes possible to put several links into a line. | |
892 Note that in tables, a link never extends accross fields, so in a table | |
893 it is always possible to put several links into a line. | |
894 Changing this varable requires a re-launch of Emacs of become effective." | |
895 :group 'org-link | |
896 :type 'boolean) | |
897 | |
898 (defcustom org-line-numbers-in-file-links t | |
899 "Non-nil means, file links from `org-store-link' contain line numbers. | |
900 The line number will be added to the file name with :NNN and interpreted | |
901 by the command `org-open-at-point'. | |
902 Using a prefix arg to the command \\[org-store-link] (`org-store-link') | |
903 negates this setting for the duration of the command." | |
904 :group 'org-link | |
905 :type 'boolean) | |
906 | |
907 (defcustom org-keep-stored-link-after-insertion nil | |
908 "Non-nil means, keep link in list for entire session. | |
909 | |
910 The command `org-store-link' adds a link pointing to the current | |
911 location to an internal list. These links accumulate during a session. | |
912 The command `org-insert-link' can be used to insert links into any | |
913 Org-mode file (offering completion for all stored links). When this | |
914 option is nil, every link which has been inserted once using \\[org-insert-link] | |
915 will be removed from the list, to make completing the unused links | |
916 more efficient." | |
917 :group 'org-link | |
918 :type 'boolean) | |
919 | |
920 (defcustom org-link-frame-setup | |
921 '((vm . vm-visit-folder-other-frame) | |
922 (gnus . gnus-other-frame) | |
923 (file . find-file-other-window)) | |
924 "Setup the frame configuration for following links. | |
925 When following a link with Emacs, it may often be useful to display | |
926 this link in another window or frame. This variable can be used to | |
927 set this up for the different types of links. | |
928 For VM, use any of | |
929 `vm-visit-folder' | |
930 `vm-visit-folder-other-frame' | |
931 For Gnus, use any of | |
932 `gnus' | |
933 `gnus-other-frame' | |
934 For FILE, use any of | |
935 `find-file' | |
936 `find-file-other-window' | |
937 `find-file-other-frame' | |
938 For the calendar, use the variable `calendar-setup'. | |
939 For BBDB, it is currently only possible to display the matches in | |
940 another window." | |
941 :group 'org-link | |
942 :type '(list | |
943 (cons (const vm) | |
944 (choice | |
945 (const vm-visit-folder) | |
946 (const vm-visit-folder-other-window) | |
947 (const vm-visit-folder-other-frame))) | |
948 (cons (const gnus) | |
949 (choice | |
950 (const gnus) | |
951 (const gnus-other-frame))) | |
952 (cons (const file) | |
953 (choice | |
954 (const find-file) | |
955 (const find-file-other-window) | |
956 (const find-file-other-frame))))) | |
957 | |
958 (defcustom org-usenet-links-prefer-google nil | |
959 "Non-nil means, `org-store-link' will create web links to google groups. | |
960 When nil, Gnus will be used for such links. | |
961 Using a prefix arg to the command \\[org-store-link] (`org-store-link') | |
962 negates this setting for the duration of the command." | |
963 :group 'org-link | |
964 :type 'boolean) | |
965 | |
966 (defcustom org-open-non-existing-files nil | |
967 "Non-nil means, `org-open-file' will open non-existing file. | |
968 When nil, an error will be generated." | |
969 :group 'org-link | |
970 :type 'boolean) | |
971 | |
972 (defcustom org-confirm-shell-links t | |
973 "Non-nil means, ask for confirmation before executing shell links. | |
974 The default is true, to keep new users from shooting into their own foot." | |
975 :group 'org-link | |
976 :type 'boolean) | |
977 | |
978 (defconst org-file-apps-defaults-gnu | |
979 '((t . emacs) | |
980 ("jpg" . "xv %s") | |
981 ("gif" . "xv %s") | |
982 ("ppm" . "xv %s") | |
983 ("pgm" . "xv %s") | |
984 ("pbm" . "xv %s") | |
985 ("tif" . "xv %s") | |
986 ("png" . "xv %s") | |
987 ("ps" . "gv %s") | |
988 ("ps.gz" . "gv %s") | |
989 ("eps" . "gv %s") | |
990 ("eps.gz" . "gv %s") | |
991 ("dvi" . "xdvi %s") | |
992 ("mpeg" . "plaympeg %s") | |
993 ("mp3" . "plaympeg %s") | |
994 ("fig" . "xfig %s") | |
995 ("pdf" . "acroread %s") | |
996 ("doc" . "soffice %s") | |
997 ("ppt" . "soffice %s") | |
998 ("pps" . "soffice %s") | |
999 ("html" . "netscape -remote openURL(%s,new-window)") | |
1000 ("htm" . "netscape -remote openURL(%s,new-window)") | |
1001 ("xs" . "soffice %s")) | |
1002 "Default file applications on a UNIX/LINUX system. | |
1003 See `org-file-apps'.") | |
1004 | |
1005 (defconst org-file-apps-defaults-macosx | |
1006 '((t . "open %s") | |
1007 ("ps" . "gv %s") | |
1008 ("ps.gz" . "gv %s") | |
1009 ("eps" . "gv %s") | |
1010 ("eps.gz" . "gv %s") | |
1011 ("dvi" . "xdvi %s") | |
1012 ("fig" . "xfig %s")) | |
1013 "Default file applications on a MacOS X system. | |
1014 The system \"open\" is known as a default, but we use X11 applications | |
1015 for some files for which the OS does not have a good default. | |
1016 See `org-file-apps'.") | |
1017 | |
1018 (defconst org-file-apps-defaults-windowsnt | |
1019 '((t . (w32-shell-execute "open" file))) | |
1020 "Default file applications on a Windows NT system. | |
1021 The system \"open\" is used for most files. | |
1022 See `org-file-apps'.") | |
1023 | |
1024 (defcustom org-file-apps | |
1025 '( | |
1026 ("txt" . emacs) | |
1027 ("tex" . emacs) | |
1028 ("ltx" . emacs) | |
1029 ("org" . emacs) | |
1030 ("el" . emacs) | |
1031 ) | |
1032 "External applications for opening `file:path' items in a document. | |
1033 Org-mode uses system defaults for different file types, but | |
1034 you can use this variable to set the application for a given file | |
1035 extension. The entries in this list are cons cells with a file extension | |
1036 and the corresponding command. Possible values for the command are: | |
1037 `emacs' The file will be visited by the current Emacs process. | |
1038 `default' Use the default application for this file type. | |
1039 string A command to be executed by a shell; %s will be replaced | |
1040 by the path to the file. | |
1041 sexp A Lisp form which will be evaluated. The file path will | |
1042 be available in the Lisp variable `file'. | |
1043 For more examples, see the system specific constants | |
1044 `org-file-apps-defaults-macosx' | |
1045 `org-file-apps-defaults-windowsnt' | |
1046 `org-file-apps-defaults-gnu'." | |
1047 :group 'org-link | |
1048 :type '(repeat | |
1049 (cons (string :tag "Extension") | |
1050 (choice :value "" | |
1051 (const :tag "Visit with Emacs" 'emacs) | |
1052 (const :tag "Use system default" 'default) | |
1053 (string :tag "Command") | |
1054 (sexp :tag "Lisp form"))))) | |
1055 | |
1056 | |
1057 (defgroup org-remember nil | |
1058 "Options concerning interaction with remember.el." | |
1059 :tag "Org Remember" | |
1060 :group 'org) | |
1061 | |
1062 (defcustom org-directory "~/org" | |
1063 "Directory with org files. | |
1064 This directory will be used as default to prompt for org files. | |
1065 Used by the hooks for remember.el." | |
1066 :group 'org-remember | |
1067 :type 'directory) | |
1068 | |
1069 (defcustom org-default-notes-file "~/.notes" | |
1070 "Default target for storing notes. | |
1071 Used by the hooks for remember.el. This can be a string, or nil to mean | |
1072 the value of `remember-data-file'." | |
1073 :group 'org-remember | |
1074 :type '(choice | |
1075 (const :tag "Default from remember-data-file" nil) | |
1076 file)) | |
1077 | |
1078 (defcustom org-reverse-note-order nil | |
1079 "Non-nil means, store new notes at the beginning of a file or entry. | |
1080 When nil, new notes will be filed to the end of a file or entry." | |
1081 :group 'org-remember | |
1082 :type '(choice | |
1083 (const :tag "Reverse always" t) | |
1084 (const :tag "Reverse never" nil) | |
1085 (repeat :tag "By file name regexp" | |
1086 (cons regexp boolean)))) | |
1087 | |
1088 (defgroup org-table nil | |
1089 "Options concerning tables in Org-mode." | |
1090 :tag "Org Table" | |
1091 :group 'org) | |
1092 | |
1093 (defcustom org-enable-table-editor 'optimized | |
1094 "Non-nil means, lines starting with \"|\" are handled by the table editor. | |
1095 When nil, such lines will be treated like ordinary lines. | |
1096 | |
1097 When equal to the symbol `optimized', the table editor will be optimized to | |
1098 do the following | |
1099 - Use automatic overwrite mode in front of whitespace in table fields. | |
1100 This make the structure of the table stay in tact as long as the edited | |
1101 field does not exceed the column width. | |
1102 - Minimize the number of realigns. Normally, the table is aligned each time | |
1103 TAB or RET are pressed to move to another field. With optimization this | |
1104 happens only if changes to a field might have changed the column width. | |
1105 Optimization requires replacing the functions `self-insert-command', | |
1106 `delete-char', and `backward-delete-char' in Org-mode buffers, with a | |
1107 slight (in fact: unnoticeable) speed impact for normal typing. Org-mode is | |
1108 very good at guessing when a re-align will be necessary, but you can always | |
1109 force one with \\[org-ctrl-c-ctrl-c]. | |
1110 | |
1111 If you would like to use the optimized version in Org-mode, but the | |
1112 un-optimized version in OrgTbl-mode, see the variable `orgtbl-optimized'. | |
1113 | |
1114 This variable can be used to turn on and off the table editor during a session, | |
1115 but in order to toggle optimization, a restart is required. | |
1116 | |
1117 See also the variable `org-table-auto-blank-field'." | |
1118 :group 'org-table | |
1119 :type '(choice | |
1120 (const :tag "off" nil) | |
1121 (const :tag "on" t) | |
1122 (const :tag "on, optimized" optimized))) | |
1123 | |
1124 (defcustom org-table-auto-blank-field t | |
1125 "Non-nil means, automatically blank table field when starting to type into it. | |
1126 This only happens when typing immediately after a field motion | |
1127 command (TAB, S-TAB or RET). | |
1128 Only relevant when `org-enable-table-editor' is equal to `optimized'." | |
1129 :group 'org-table | |
1130 :type 'boolean) | |
1131 | |
1132 (defcustom org-table-default-size "5x2" | |
1133 "The default size for newly created tables, Columns x Rows." | |
1134 :group 'org-table | |
1135 :type 'string) | |
1136 | |
1137 (defcustom org-table-automatic-realign t | |
1138 "Non-nil means, automatically re-align table when pressing TAB or RETURN. | |
1139 When nil, aligning is only done with \\[org-table-align], or after column | |
1140 removal/insertion." | |
1141 :group 'org-table | |
1142 :type 'boolean) | |
1143 | |
1144 (defcustom org-table-spaces-around-separators '(1 . 1) | |
1145 "The number of spaces to be placed before and after separators." | |
1146 :group 'org-table | |
1147 :type '(cons (number :tag "Before \"|\"") (number :tag " After \"|\""))) | |
1148 | |
1149 (defcustom org-table-spaces-around-invisible-separators '(1 . 2) | |
1150 "The number of spaces to be placed before and after separators. | |
1151 This option applies when the column separators have been made invisible." | |
1152 :group 'org-table | |
1153 :type '(cons (number :tag "Before \"|\"") (number :tag " After \"|\""))) | |
1154 | |
1155 (defcustom org-table-number-regexp "^[<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%]*$" | |
1156 "Regular expression for recognizing numbers in table columns. | |
1157 If a table column contains mostly numbers, it will be aligned to the | |
1158 right. If not, it will be aligned to the left. | |
1159 | |
1160 The default value of this option is a regular expression which allows | |
1161 anything which looks remotely like a number as used in scientific | |
1162 context. For example, all of the following will be considered a | |
1163 number: | |
1164 12 12.2 2.4e-08 2x10^12 4.034+-0.02 2.7(10) >3.5 | |
1165 | |
1166 Other options offered by the customize interface are more restrictive." | |
1167 :group 'org-table | |
1168 :type '(choice | |
1169 (const :tag "Positive Integers" | |
1170 "^[0-9]+$") | |
1171 (const :tag "Integers" | |
1172 "^[-+]?[0-9]+$") | |
1173 (const :tag "Floating Point Numbers" | |
1174 "^[-+]?\\([0-9]*\\.[0-9]+\\|[0-9]+\\.[0-9]*\\)$") | |
1175 (const :tag "Floating Point Number or Integer" | |
1176 "^[-+]?\\([0-9]*\\.[0-9]+\\|[0-9]+\\.?[0-9]*\\)$") | |
1177 (const :tag "Exponential, Floating point, Integer" | |
1178 "^[-+]?[0-9.]+\\([eEdD][-+0-9]+\\)?$") | |
1179 (const :tag "Very General Number-Like" | |
1180 "^[<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%]*$") | |
1181 (string :tag "Regexp:"))) | |
1182 | |
1183 (defcustom org-table-number-fraction 0.5 | |
1184 "Fraction of numbers in a column required to make the column align right. | |
1185 In a column all non-white fields are considered. If at least this | |
1186 fraction of fields is matched by `org-table-number-fraction', | |
1187 alignment to the right border applies." | |
1188 :group 'org-table | |
1189 :type 'number) | |
1190 | |
1191 (defcustom org-export-highlight-first-table-line t | |
1192 "Non-nil means, highlight the first table line. | |
1193 In HTML export, this means use <th> instead of <td>. | |
1194 In tables created with table.el, this applies to the first table line. | |
1195 In Org-mode tables, all lines before the first horizontal separator | |
1196 line will be formatted with <th> tags." | |
1197 :group 'org-table | |
1198 :type 'boolean) | |
1199 | |
1200 (defcustom org-table-tab-recognizes-table.el t | |
1201 "Non-nil means, TAB will automatically notice a table.el table. | |
1202 When it sees such a table, it moves point into it and - if necessary - | |
1203 calls `table-recognize-table'." | |
1204 :group 'org-table | |
1205 :type 'boolean) | |
1206 | |
1207 (defgroup org-table-calculation nil | |
1208 "Options concerning tables in Org-mode." | |
1209 :tag "Org Table Calculation" | |
1210 :group 'org) | |
1211 | |
1212 (defcustom org-table-copy-increment t | |
1213 "Non-nil means, increment when copying current field with \\[org-table-copy-down]." | |
1214 :group 'org-table-calculation | |
1215 :type 'boolean) | |
1216 | |
1217 (defcustom org-calc-default-modes | |
1218 '(calc-internal-prec 12 | |
1219 calc-float-format (float 5) | |
1220 calc-angle-mode deg | |
1221 calc-prefer-frac nil | |
1222 calc-symbolic-mode nil | |
1223 calc-date-format (YYYY "-" MM "-" DD " " Www (" " HH ":" mm)) | |
1224 calc-display-working-message t | |
1225 ) | |
1226 "List with Calc mode settings for use in calc-eval for table formulas. | |
1227 The list must contain alternating symbols (calc modes variables and values. | |
1228 Don't remove any of the default settings, just change the values. Org-mode | |
1229 relies on the variables to be present in the list." | |
1230 :group 'org-table-calculation | |
1231 :type 'plist) | |
1232 | |
1233 (defcustom org-table-formula-evaluate-inline t | |
1234 "Non-nil means, TAB and RET evaluate a formula in current table field. | |
1235 If the current field starts with an equal sign, it is assumed to be a formula | |
1236 which should be evaluated as described in the manual and in the documentation | |
1237 string of the command `org-table-eval-formula'. This feature requires the | |
1238 Emacs calc package. | |
1239 When this variable is nil, formula calculation is only available through | |
1240 the command \\[org-table-eval-formula]." | |
1241 :group 'org-table-calculation | |
1242 :type 'boolean) | |
1243 | |
1244 | |
1245 (defcustom org-table-formula-use-constants t | |
1246 "Non-nil means, interpret constants in formulas in tables. | |
1247 A constant looks like `$c' or `$Grav' and will be replaced before evaluation | |
1248 by the value given in `org-table-formula-constants', or by a value obtained | |
1249 from the `constants.el' package." | |
1250 :group 'org-table-calculation | |
1251 :type 'boolean) | |
1252 | |
1253 (defcustom org-table-formula-constants nil | |
1254 "Alist with constant names and values, for use in table formulas. | |
1255 The car of each element is a name of a constant, without the `$' before it. | |
1256 The cdr is the value as a string. For example, if you'd like to use the | |
1257 speed of light in a formula, you would configure | |
1258 | |
1259 (setq org-table-formula-constants '((\"c\" . \"299792458.\"))) | |
1260 | |
1261 and then use it in an equation like `$1*$c'." | |
1262 :group 'org-table-calculation | |
1263 :type '(repeat | |
1264 (cons (string :tag "name") | |
1265 (string :tag "value")))) | |
1266 | |
1267 (defcustom org-table-formula-numbers-only nil | |
1268 "Non-nil means, calculate only with numbers in table formulas. | |
1269 Then all input fields will be converted to a number, and the result | |
1270 must also be a number. When nil, calc's full potential is available | |
1271 in table calculations, including symbolics etc." | |
1272 :group 'org-table-calculation | |
1273 :type 'boolean) | |
1274 | |
1275 (defcustom org-table-allow-automatic-line-recalculation t | |
1276 "Non-nil means, lines makred with |#| or |*| will be recomputed automatically. | |
1277 Automatically means, when TAB or RET or C-c C-c are pressed in the line." | |
1278 :group 'org-table-calculation | |
1279 :type 'boolean) | |
1280 | |
1281 (defgroup org-export nil | |
1282 "Options for exporting org-listings." | |
1283 :tag "Org Export" | |
1284 :group 'org) | |
1285 | |
1286 (defcustom org-export-language-setup | |
1287 '(("en" "Author" "Date" "Table of Contents") | |
1288 ("da" "Ophavsmand" "Dato" "Indhold") | |
1289 ("de" "Autor" "Datum" "Inhaltsverzeichnis") | |
1290 ("es" "Autor" "Fecha" "\xccndice") | |
1291 ("fr" "Auteur" "Date" "Table des Mati\xe8res") | |
1292 ("it" "Autore" "Data" "Indice") | |
1293 ("nl" "Auteur" "Datum" "Inhoudsopgave") | |
1294 ("nn" "Forfattar" "Dato" "Innhold") ;; nn = Norsk (nynorsk) | |
1295 ("sv" "F\xf6rfattarens" "Datum" "Inneh\xe5ll")) | |
1296 "Terms used in export text, translated to different languages. | |
1297 Use the variable `org-export-default-language' to set the language, | |
1298 or use the +OPTION lines for a per-file setting." | |
1299 :group 'org-export | |
1300 :type '(repeat | |
1301 (list | |
1302 (string :tag "HTML language tag") | |
1303 (string :tag "Author") | |
1304 (string :tag "Date") | |
1305 (string :tag "Table of Contents")))) | |
1306 | |
1307 (defcustom org-export-default-language "en" | |
1308 "The default language of HTML export, as a string. | |
1309 This should have an association in `org-export-language-setup'" | |
1310 :group 'org-export | |
1311 :type 'string) | |
1312 | |
1313 (defcustom org-export-headline-levels 3 | |
1314 "The last level which is still exported as a headline. | |
1315 Inferior levels will produce itemize lists when exported. | |
1316 Note that a numeric prefix argument to an exporter function overrides | |
1317 this setting. | |
1318 | |
1319 This option can also be set with the +OPTIONS line, e.g. \"H:2\"." | |
1320 :group 'org-export | |
1321 :type 'number) | |
1322 | |
1323 (defcustom org-export-with-section-numbers t | |
1324 "Non-nil means, add section numbers to headlines when exporting. | |
1325 | |
1326 This option can also be set with the +OPTIONS line, e.g. \"num:t\"." | |
1327 :group 'org-export | |
1328 :type 'boolean) | |
1329 | |
1330 (defcustom org-export-with-toc t | |
1331 "Non-nil means, create a table of contents in exported files. | |
1332 The TOC contains headlines with levels up to`org-export-headline-levels'. | |
1333 | |
1334 Headlines which contain any TODO items will be marked with \"(*)\" in | |
1335 ASCII export, and with red color in HTML output. | |
1336 | |
1337 In HTML output, the TOC will be clickable. | |
1338 | |
1339 This option can also be set with the +OPTIONS line, e.g. \"toc:nil\"." | |
1340 :group 'org-export | |
1341 :type 'boolean) | |
1342 | |
1343 (defcustom org-export-preserve-breaks nil | |
1344 "Non-nil means, preserve all line breaks when exporting. | |
1345 Normally, in HTML output paragraphs will be reformatted. In ASCII | |
1346 export, line breaks will always be preserved, regardless of this variable. | |
1347 | |
1348 This option can also be set with the +OPTIONS line, e.g. \"\\n:t\"." | |
1349 :group 'org-export | |
1350 :type 'boolean) | |
1351 | |
1352 (defcustom org-export-html-inline-images t | |
1353 "Non-nil means, inline images into exported HTML pages. | |
1354 The link will still be to the original location of the image file. | |
1355 So if you are moving the page, lets say to your public HTML site, | |
1356 you will have to move the image and maybe change the link." | |
1357 :group 'org-export | |
1358 :type 'boolean) | |
1359 | |
1360 (defcustom org-export-html-expand t | |
1361 "Non-nil means, for HTML export, treat @<...> as HTML tag. | |
1362 When nil, these tags will be exported as plain text and therefore | |
1363 not be interpreted by a browser. | |
1364 | |
1365 This option can also be set with the +OPTIONS line, e.g. \"@:nil\"." | |
1366 :group 'org-export | |
1367 :type 'boolean) | |
1368 | |
1369 (defcustom org-export-with-fixed-width t | |
1370 "Non-nil means, lines starting with \":\" will be in fixed width font. | |
1371 This can be used to have pre-formatted text, fragments of code etc. For | |
1372 example | |
1373 : ;; Some Lisp examples | |
1374 : (while (defc cnt) | |
1375 : (ding)) | |
1376 will be looking just like this in also HTML. In ASCII export, this option | |
1377 has no effect. | |
1378 | |
1379 This option can also be set with the +OPTIONS line, e.g. \"::nil\"." | |
1380 :group 'org-export | |
1381 :type 'boolean) | |
1382 | |
1383 (defcustom org-export-with-tables t | |
1384 "If non-nil, lines starting with \"|\" define a table. | |
1385 For example: | |
1386 | |
1387 | Name | Address | Birthday | | |
1388 |-------------+----------+-----------| | |
1389 | Arthur Dent | England | 29.2.2100 | | |
1390 | |
1391 In ASCII export, this option has no effect. | |
1392 | |
1393 This option can also be set with the +OPTIONS line, e.g. \"|:nil\"." | |
1394 :group 'org-export | |
1395 :type 'boolean) | |
1396 | |
1397 (defcustom org-export-prefer-native-exporter-for-tables nil | |
1398 "Non-nil means, always export tables created with table.el natively. | |
1399 Natively means, use the HTML code generator in table.el. | |
1400 When nil, Org-mode's own HTML generator is used when possible (i.e. if | |
1401 the table does not use row- or column-spanning). This has the | |
1402 advantage, that the automatic HTML conversions for math symbols and | |
1403 sub/superscripts can be applied. Org-mode's HTML generator is also | |
1404 much faster." | |
1405 :group 'org-export | |
1406 :type 'boolean) | |
1407 | |
1408 (defcustom org-export-html-table-tag | |
1409 "<table border=1 cellspacing=0 cellpadding=6>" | |
1410 "The HTML tag used to start a table. | |
1411 This must be a <table> tag, but you may change the options like | |
1412 borders and spacing." | |
1413 :group 'org-export | |
1414 :type 'string) | |
1415 | |
1416 (defcustom org-export-with-emphasize t | |
1417 "Non-nil means, interpret *word*, /word/, and _word_ as emphasized text. | |
1418 If the export target supports emphasizing text, the word will be | |
1419 typeset in bold, italic, or underlined, respectively. Works only for | |
1420 single words, but you can say: I *really* *mean* *this*. | |
1421 In ASCII export, this option has no effect. | |
1422 | |
1423 This option can also be set with the +OPTIONS line, e.g. \"*:nil\"." | |
1424 :group 'org-export | |
1425 :type 'boolean) | |
1426 | |
1427 (defcustom org-match-sexp-depth 3 | |
1428 "Number of stacked braces for sub/superscript matching. | |
1429 This has to be set before loading org.el to be effective." | |
1430 :group 'org-export | |
1431 :type 'integer) | |
1432 | |
1433 ;; FIXME: Should () parens be removed as well in sub/superscripts? | |
1434 (defcustom org-export-with-sub-superscripts t | |
1435 "Non-nil means, interpret \"_\" and \"^\" for export. | |
1436 When this option is turned on, you can use TeX-like syntax for sub- and | |
1437 superscripts. Several characters after \"_\" or \"^\" will be | |
1438 considered as a single item - so grouping with {} is normally not | |
1439 needed. For example, the following things will be parsed as single | |
1440 sub- or superscripts. | |
1441 | |
1442 10^24 or 10^tau several digits will be considered 1 item | |
1443 10^-12 or 10^-tau a leading sign with digits or a word | |
1444 x^2-y^3 will be read as x^2 - y^3, because items are | |
1445 terminated by almost any nonword/nondigit char. | |
1446 x_{i^2} or x^(2-i) braces or parenthesis do grouping. | |
1447 | |
1448 Still, ambiguity is possible - so when in doubt use {} to enclose the | |
1449 sub/superscript. | |
1450 In ASCII export, this option has no effect. | |
1451 | |
1452 This option can also be set with the +OPTIONS line, e.g. \"^:nil\"." | |
1453 :group 'org-export | |
1454 :type 'boolean) | |
1455 | |
1456 (defcustom org-export-with-TeX-macros t | |
1457 "Non-nil means, interpret simple TeX-like macros when exporting. | |
1458 For example, HTML export converts \\alpha to α and \\AA to Å. | |
1459 No only real TeX macros will work here, but the standard HTML entities | |
1460 for math can be used as macro names as well. For a list of supported | |
1461 names in HTML export, see the constant `org-html-entities'. | |
1462 In ASCII export, this option has no effect. | |
1463 | |
1464 This option can also be set with the +OPTIONS line, e.g. \"TeX:nil\"." | |
1465 :group 'org-export | |
1466 :type 'boolean) | |
1467 | |
1468 (defcustom org-export-html-with-timestamp nil | |
1469 "If non-nil, write `org-export-html-html-helper-timestamp' | |
1470 into the exported html text. Otherwise, the buffer will just be saved | |
1471 to a file." | |
1472 :group 'org-export | |
1473 :type 'boolean) | |
1474 | |
1475 (defcustom org-export-html-html-helper-timestamp | |
1476 "<br><br><hr><p><!-- hhmts start --> <!-- hhmts end -->\n" | |
1477 "The HTML tag used as timestamp delimiter for HTML-helper-mode." | |
1478 :group 'org-export | |
1479 :type 'string) | |
1480 | |
1481 (defcustom org-export-ascii-show-new-buffer t | |
1482 "Non-nil means, popup buffer containing the exported ASCII text. | |
1483 Otherwise the buffer will just be saved to a file and stay hidden." | |
1484 :group 'org-export | |
1485 :type 'boolean) | |
1486 | |
1487 (defcustom org-export-html-show-new-buffer nil | |
1488 "Non-nil means, popup buffer containing the exported html text. | |
1489 Otherwise, the buffer will just be saved to a file and stay hidden." | |
1490 :group 'org-export | |
1491 :type 'boolean) | |
1492 | |
1493 (defgroup org-faces nil | |
1494 "Faces for highlighting in Org-mode." | |
1495 :tag "Org Faces" | |
1496 :group 'org) | |
1497 | |
1498 (defface org-level-1 ;; font-lock-function-name-face | |
1499 '((((type tty) (class color)) (:foreground "blue" :weight bold)) | |
1500 (((class color) (background light)) (:foreground "Blue")) | |
1501 (((class color) (background dark)) (:foreground "LightSkyBlue")) | |
1502 (t (:inverse-video t :bold t))) | |
1503 "Face used for level 1 headlines." | |
1504 :group 'org-faces) | |
1505 | |
1506 (defface org-level-2 ;; font-lock-variable-name-face | |
1507 '((((type tty) (class color)) (:foreground "yellow" :weight light)) | |
1508 (((class color) (background light)) (:foreground "DarkGoldenrod")) | |
1509 (((class color) (background dark)) (:foreground "LightGoldenrod")) | |
1510 (t (:bold t :italic t))) | |
1511 "Face used for level 2 headlines." | |
1512 :group 'org-faces) | |
1513 | |
1514 (defface org-level-3 ;; font-lock-keyword-face | |
1515 '((((type tty) (class color)) (:foreground "cyan" :weight bold)) | |
1516 (((class color) (background light)) (:foreground "Purple")) | |
1517 (((class color) (background dark)) (:foreground "Cyan")) | |
1518 (t (:bold t))) | |
1519 "Face used for level 3 headlines." | |
1520 :group 'org-faces) | |
1521 | |
1522 (defface org-level-4 ;; font-lock-comment-face | |
1523 '((((type tty pc) (class color) (background light)) (:foreground "red")) | |
1524 (((type tty pc) (class color) (background dark)) (:foreground "red1")) | |
1525 (((class color) (background light)) (:foreground "Firebrick")) | |
1526 (((class color) (background dark)) (:foreground "chocolate1")) | |
1527 (t (:bold t :italic t))) | |
1528 "Face used for level 4 headlines." | |
1529 :group 'org-faces) | |
1530 | |
1531 (defface org-level-5 ;; font-lock-type-face | |
1532 '((((type tty) (class color)) (:foreground "green")) | |
1533 (((class color) (background light)) (:foreground "ForestGreen")) | |
1534 (((class color) (background dark)) (:foreground "PaleGreen")) | |
1535 (t (:bold t :underline t))) | |
1536 "Face used for level 5 headlines." | |
1537 :group 'org-faces) | |
1538 | |
1539 (defface org-level-6 ;; font-lock-constant-face | |
1540 '((((type tty) (class color)) (:foreground "magenta")) | |
1541 (((class color) (background light)) (:foreground "CadetBlue")) | |
1542 (((class color) (background dark)) (:foreground "Aquamarine")) | |
1543 (t (:bold t :underline t))) | |
1544 "Face used for level 6 headlines." | |
1545 :group 'org-faces) | |
1546 | |
1547 (defface org-level-7 ;; font-lock-builtin-face | |
1548 '((((type tty) (class color)) (:foreground "blue" :weight light)) | |
1549 (((class color) (background light)) (:foreground "Orchid")) | |
1550 (((class color) (background dark)) (:foreground "LightSteelBlue")) | |
1551 (t (:bold t))) | |
1552 "Face used for level 7 headlines." | |
1553 :group 'org-faces) | |
1554 | |
1555 (defface org-level-8 ;; font-lock-string-face | |
1556 '((((type tty) (class color)) (:foreground "green")) | |
1557 (((class color) (background light)) (:foreground "RosyBrown")) | |
1558 (((class color) (background dark)) (:foreground "LightSalmon")) | |
1559 (t (:italic t))) | |
1560 "Face used for level 8 headlines." | |
1561 :group 'org-faces) | |
1562 | |
1563 (defface org-special-keyword ;; font-lock-string-face | |
1564 '((((type tty) (class color)) (:foreground "green")) | |
1565 (((class color) (background light)) (:foreground "RosyBrown")) | |
1566 (((class color) (background dark)) (:foreground "LightSalmon")) | |
1567 (t (:italic t))) | |
1568 "Face used for level 8 headlines." | |
1569 :group 'org-faces) | |
1570 | |
1571 (defface org-warning ;; font-lock-warning-face | |
1572 '((((type tty) (class color)) (:foreground "red")) | |
1573 (((class color) (background light)) (:foreground "Red" :bold t)) | |
1574 (((class color) (background dark)) (:foreground "Red1" :bold t)) | |
1575 ; (((class color) (background dark)) (:foreground "Pink" :bold t)) | |
1576 (t (:inverse-video t :bold t))) | |
1577 "Face for deadlines and TODO keywords." | |
1578 :group 'org-faces) | |
1579 | |
1580 (defcustom org-fontify-done-headline nil | |
1581 "Non-nil means, change the face of a headline if it is marked DONE. | |
1582 Normally, only the TODO/DONE keyword indicates the state of a headline. | |
1583 When this is non-nil, the headline after the keyword is set to the | |
1584 `org-headline-done' as an additional indication." | |
1585 :group 'org-faces | |
1586 :type 'boolean) | |
1587 | |
1588 (defface org-headline-done ;; font-lock-string-face | |
1589 '((((type tty) (class color)) (:foreground "green")) | |
1590 (((class color) (background light)) (:foreground "RosyBrown")) | |
1591 (((class color) (background dark)) (:foreground "LightSalmon")) | |
1592 (t (:italic t))) | |
1593 "Face used to indicate that a headline is DONE. See also the variable | |
1594 `org-fontify-done-headline'." | |
1595 :group 'org-faces) | |
1596 | |
1597 ;; Inheritance does not yet work for xemacs. So we just copy... | |
1598 | |
1599 (defface org-deadline-announce | |
1600 '((((type tty) (class color)) (:foreground "blue" :weight bold)) | |
1601 (((class color) (background light)) (:foreground "Blue")) | |
1602 (((class color) (background dark)) (:foreground "LightSkyBlue")) | |
1603 (t (:inverse-video t :bold t))) | |
1604 "Face for upcoming deadlines." | |
1605 :group 'org-faces) | |
1606 | |
1607 (defface org-scheduled-today | |
1608 '((((type tty) (class color)) (:foreground "green")) | |
1609 (((class color) (background light)) (:foreground "DarkGreen")) | |
1610 (((class color) (background dark)) (:foreground "PaleGreen")) | |
1611 (t (:bold t :underline t))) | |
1612 "Face for items scheduled for a certain day." | |
1613 :group 'org-faces) | |
1614 | |
1615 (defface org-scheduled-previously | |
1616 '((((type tty pc) (class color) (background light)) (:foreground "red")) | |
1617 (((type tty pc) (class color) (background dark)) (:foreground "red1")) | |
1618 (((class color) (background light)) (:foreground "Firebrick")) | |
1619 (((class color) (background dark)) (:foreground "chocolate1")) | |
1620 (t (:bold t :italic t))) | |
1621 "Face for items scheduled previously, and not yet done." | |
1622 :group 'org-faces) | |
1623 | |
1624 (defface org-formula | |
1625 '((((type tty pc) (class color) (background light)) (:foreground "red")) | |
1626 (((type tty pc) (class color) (background dark)) (:foreground "red1")) | |
1627 (((class color) (background light)) (:foreground "Firebrick")) | |
1628 (((class color) (background dark)) (:foreground "chocolate1")) | |
1629 (t (:bold t :italic t))) | |
1630 "Face for items scheduled previously, and not yet done." | |
1631 :group 'org-faces) | |
1632 | |
1633 (defface org-link | |
1634 '((((type tty) (class color)) (:foreground "cyan" :weight bold)) | |
1635 (((class color) (background light)) (:foreground "Purple")) | |
1636 (((class color) (background dark)) (:foreground "Cyan")) | |
1637 (t (:bold t))) | |
1638 "Face for links." | |
1639 :group 'org-faces) | |
1640 | |
1641 (defface org-done ;; font-lock-type-face | |
1642 '((((type tty) (class color)) (:foreground "green")) | |
1643 (((class color) (background light)) (:foreground "ForestGreen" :bold t)) | |
1644 (((class color) (background dark)) (:foreground "PaleGreen" :bold t)) | |
1645 (t (:bold t :underline t))) | |
1646 "Face used for DONE." | |
1647 :group 'org-faces) | |
1648 | |
1649 (defface org-table ;; font-lock-function-name-face | |
1650 '((((type tty) (class color)) (:foreground "blue" :weight bold)) | |
1651 (((class color) (background light)) (:foreground "Blue")) | |
1652 (((class color) (background dark)) (:foreground "LightSkyBlue")) | |
1653 (t (:inverse-video t :bold t))) | |
1654 "Face used for tables." | |
1655 :group 'org-faces) | |
1656 | |
1657 (defface org-time-grid ;; font-lock-variable-name-face | |
1658 '((((type tty) (class color)) (:foreground "yellow" :weight light)) | |
1659 (((class color) (background light)) (:foreground "DarkGoldenrod")) | |
1660 (((class color) (background dark)) (:foreground "LightGoldenrod")) | |
1661 (t (:bold t :italic t))) | |
1662 "Face used for level 2 headlines." | |
1663 :group 'org-faces) | |
1664 | |
1665 (defvar org-level-faces | |
1666 '( | |
1667 org-level-1 | |
1668 org-level-2 | |
1669 org-level-3 | |
1670 org-level-4 | |
1671 org-level-5 | |
1672 org-level-6 | |
1673 org-level-7 | |
1674 org-level-8 | |
1675 )) | |
1676 (defvar org-n-levels (length org-level-faces)) | |
484 | 1677 |
485 (defun org-set-regexps-and-options () | 1678 (defun org-set-regexps-and-options () |
486 "Precompute regular expressions for current buffer." | 1679 "Precompute regular expressions for current buffer." |
487 (when (eq major-mode 'org-mode) | 1680 (when (eq major-mode 'org-mode) |
488 (let ((re (org-make-options-regexp | 1681 (let ((re (org-make-options-regexp |
562 org-scheduled-regexp | 1755 org-scheduled-regexp |
563 (concat "\\<" org-scheduled-string) | 1756 (concat "\\<" org-scheduled-string) |
564 org-scheduled-time-regexp | 1757 org-scheduled-time-regexp |
565 (concat "\\<" org-scheduled-string " *<\\([^>]+\\)>")) | 1758 (concat "\\<" org-scheduled-string " *<\\([^>]+\\)>")) |
566 (org-set-font-lock-defaults))) | 1759 (org-set-font-lock-defaults))) |
567 | |
568 (defgroup org-time nil | |
569 "Options concerning time stamps and deadlines in Org-mode." | |
570 :tag "Org Time" | |
571 :group 'org) | |
572 | |
573 (defconst org-time-stamp-formats '("<%Y-%m-%d %a>" . "<%Y-%m-%d %a %H:%M>") | |
574 "Formats for `format-time-string' which are used for time stamps. | |
575 It is not recommended to change this constant.") | |
576 | |
577 | |
578 (defcustom org-deadline-warning-days 30 | |
579 "No. of days before expiration during which a deadline becomes active. | |
580 This variable governs the display in the org file." | |
581 :group 'org-time | |
582 :type 'number) | |
583 | |
584 (defcustom org-popup-calendar-for-date-prompt t | |
585 "Non-nil means, pop up a calendar when prompting for a date. | |
586 In the calendar, the date can be selected with mouse-1. However, the | |
587 minibuffer will also be active, and you can simply enter the date as well. | |
588 When nil, only the minibuffer will be available." | |
589 :group 'org-time | |
590 :type 'number) | |
591 | |
592 (defcustom org-calendar-follow-timestamp-change t | |
593 "Non-nil means, make the calendar window follow timestamp changes. | |
594 When a timestamp is modified and the calendar window is visible, it will be | |
595 moved to the new date." | |
596 :group 'org-time | |
597 :type 'boolean) | |
598 | |
599 (defgroup org-agenda nil | |
600 "Options concerning agenda display Org-mode." | |
601 :tag "Org Agenda" | |
602 :group 'org) | |
603 | |
604 (defcustom org-agenda-files nil | |
605 "A list of org files for agenda/diary display. | |
606 Entries are added to this list with \\[org-add-file] and removed with | |
607 \\[org-remove-file]. You can also use customize to edit the list." | |
608 :group 'org-agenda | |
609 :type '(repeat file)) | |
610 | |
611 (defcustom org-select-timeline-window t | |
612 "Non-nil means, after creating a timeline, move cursor into Timeline window. | |
613 When nil, cursor will remain in the current window." | |
614 :group 'org-agenda | |
615 :type 'boolean) | |
616 | |
617 (defcustom org-select-agenda-window t | |
618 "Non-nil means, after creating an agenda, move cursor into Agenda window. | |
619 When nil, cursor will remain in the current window." | |
620 :group 'org-agenda | |
621 :type 'boolean) | |
622 | |
623 (defcustom org-fit-agenda-window t | |
624 "Non-nil means, change window size of agenda to fit content." | |
625 :group 'org-agenda | |
626 :type 'boolean) | |
627 | |
628 (defcustom org-agenda-show-all-dates t | |
629 "Non-nil means, `org-agenda' shows every day in the selected range. | |
630 When nil, only the days which actually have entries are shown." | |
631 :group 'org-agenda | |
632 :type 'boolean) | |
633 | |
634 ;; FIXME: First day of month works only for current month because it would | |
635 ;; require a variable ndays treatment. | |
636 (defcustom org-agenda-start-on-weekday 1 | |
637 "Non-nil means, start the overview always on the specified weekday. | |
638 0 Denotes Sunday, 1 denotes Monday etc. | |
639 When nil, always start on the current day." | |
640 :group 'org-agenda | |
641 :type '(choice (const :tag "Today" nil) | |
642 (const :tag "First day of month" t) | |
643 (number :tag "Weekday No."))) | |
644 | |
645 (defcustom org-agenda-ndays 7 | |
646 "Number of days to include in overview display." | |
647 :group 'org-agenda | |
648 :type 'number) | |
649 | |
650 (defcustom org-agenda-include-all-todo t | |
651 "Non-nil means, the agenda will always contain all TODO entries. | |
652 When nil, date-less entries will only be shown if `org-agenda' is called | |
653 with a prefix argument. | |
654 When non-nil, the TODO entries will be listed at the top of the agenda, before | |
655 the entries for specific days." | |
656 :group 'org-agenda | |
657 :type 'boolean) | |
658 | |
659 (defcustom org-agenda-include-diary nil | |
660 "If non-nil, include in the agenda entries from the Emacs Calendar's diary." | |
661 :group 'org-agenda | |
662 :type 'boolean) | |
663 | |
664 (defcustom org-calendar-to-agenda-key [?c] | |
665 "The key to be installed in `calendar-mode-map' for switching to the agenda. | |
666 The command `org-calendar-goto-agenda' will be bound to this key. The | |
667 default is the character `c' because then`c' can be used to switch back and | |
668 force between agenda and calendar." | |
669 :group 'org-agenda | |
670 :type 'sexp) | |
671 | |
672 (defcustom org-agenda-sorting-strategy '(time-up category-keep priority-down) | |
673 "Sorting structure for the agenda items of a single day. | |
674 This is a list of symbols which will be used in sequence to determine | |
675 if an entry should be listed before another entry. The following | |
676 symbols are recognized. | |
677 | |
678 time-up Put entries with time-of-day indications first, early first | |
679 time-down Put entries with time-of-day indications first, late first | |
680 category-keep Keep the default order of categories, corresponding to the | |
681 sequence in `org-agenda-files'. | |
682 category-up Sort alphabetically by category, A-Z. | |
683 category-down Sort alphabetically by category, Z-A. | |
684 priority-up Sort numerically by priority, high priority last. | |
685 priority-down Sort numerically by priority, high priority first. | |
686 | |
687 The different possibilities will be tried in sequence, and testing stops | |
688 if one comparison returns a \"not-equal\". For example, the default | |
689 '(time-up category-keep priority-down) | |
690 means: Pull out all entries having a specified time of day and sort them, | |
691 in order to make a time schedule for the current day the first thing in the | |
692 agenda listing for the day. Of the entries without a time indication, keep | |
693 the grouped in categories, don't sort the categories, but keep them in | |
694 the sequence given in `org-agenda-files'. Within each category sort by | |
695 priority. | |
696 | |
697 Leaving out `category-keep' would mean that items will be sorted across | |
698 categories by priority." | |
699 :group 'org-agenda | |
700 :type '(repeat | |
701 (choice | |
702 (const time-up) | |
703 (const time-down) | |
704 (const category-keep) | |
705 (const category-up) | |
706 (const category-down) | |
707 (const priority-up) | |
708 (const priority-down)))) | |
709 | |
710 (defcustom org-agenda-prefix-format " %-12:c%?-12t% s" | |
711 "Format specification for the prefix of items in the agenda buffer. | |
712 This format works similar to a printf format, with the following meaning: | |
713 | |
714 %c the category of the item, \"Diary\" for entries from the diary, or | |
715 as given by the CATEGORY keyword or derived from the file name. | |
716 %t the time-of-day specification if one applies to the entry, in the | |
717 format HH:MM | |
718 %s Scheduling/Deadline information, a short string | |
719 | |
720 All specifiers work basically like the standard `%s' of printf, but may | |
721 contain two additional characters: A question mark just after the `%' and | |
722 a whitespace/punctuation character just before the final letter. | |
723 | |
724 If the first character after `%' is a question mark, the entire field | |
725 will only be included if the corresponding value applies to the | |
726 current entry. This is useful for fields which should have fixed | |
727 width when present, but zero width when absent. For example, | |
728 \"%?-12t\" will result in a 12 character time field if a time of the | |
729 day is specified, but will completely disappear in entries which do | |
730 not contain a time. | |
731 | |
732 If there is punctuation or whitespace character just before the final | |
733 format letter, this character will be appended to the field value if | |
734 the value is not empty. For example, the format \"%-12:c\" leads to | |
735 \"Diary: \" if the category is \"Diary\". If the category were be | |
736 empty, no additional colon would be interted. | |
737 | |
738 The default value of this option is \" %-12:c%?-12t% s\", meaning: | |
739 - Indent the line with two space characters | |
740 - Give the category in a 12 chars wide field, padded with whitespace on | |
741 the right (because of `-'). Append a colon if there is a category | |
742 (because of `:'). | |
743 - If there is a time-of-day, put it into a 12 chars wide field. If no | |
744 time, don't put in an empty field, just skip it (because of '?'). | |
745 - Finally, put the scheduling information and append a whitespace. | |
746 | |
747 As another example, if you don't want the time-of-day of entries in | |
748 the prefix, you could use: | |
749 | |
750 (setq org-agenda-prefix-format \" %-11:c% s\") | |
751 | |
752 See also the variable `org-agenda-remove-times-when-in-prefix'." | |
753 :type 'string | |
754 :group 'org-agenda) | |
755 | |
756 (defcustom org-timeline-prefix-format " % s" | |
757 "Like `org-agenda-prefix-format', but for the timeline of a single file." | |
758 :type 'string | |
759 :group 'org-agenda) | |
760 | |
761 (defvar org-prefix-format-compiled nil | |
762 "The compiled version of the most recently used prefix format. | |
763 Depending on which command was used last, this may be the compiled version | |
764 of `org-agenda-prefix-format' or `org-timeline-prefix-format'.") | |
765 | |
766 (defcustom org-agenda-use-time-grid t | |
767 "Non-nil means, show a time grid in the agenda schedule. | |
768 A time grid is a set of lines for specific times (like every two hours between | |
769 8:00 and 20:00. The items scheduled for a day at specific times are | |
770 sorted in between these lines. | |
771 For deails about when the grid will be shown, and what it will look like, see | |
772 the variable `org-agenda-time-grid'." | |
773 :group 'org-agenda | |
774 :type 'boolean) | |
775 | |
776 (defcustom org-agenda-time-grid | |
777 '((daily today require-timed) | |
778 "----------------" | |
779 (800 1000 1200 1400 1600 1800 2000)) | |
780 | |
781 "The settings for time grid for agenda display. | |
782 This is a list of three items. The first item is again a list. It contains | |
783 symbols specifying conditions when the grid should be displayed: | |
784 | |
785 daily if the agenda shows a single day | |
786 weekly if the agenda shows an entire week | |
787 today show grid on current date, independent of daily/weekly display | |
788 require-timed show grid only if at least on item has a time specification | |
789 | |
790 The second item is a string which will be places behing the grid time. | |
791 | |
792 The third item is a list of integers, indicating the times that should have | |
793 a grid line." | |
794 :group 'org-agenda | |
795 :type | |
796 '(list | |
797 (set :greedy t :tag "Grid Display Options" | |
798 (const :tag "Show grid in single day agenda display" daily) | |
799 (const :tag "Show grid in weekly agenda display" weekly) | |
800 (const :tag "Always show grid for today" today) | |
801 (const :tag "Show grid only if any timed entries are present" | |
802 require-timed) | |
803 (const :tag "Skip grid times already present in an entry" | |
804 remove-match)) | |
805 (string :tag "Grid String") | |
806 (repeat :tag "Grid Times" (integer :tag "Time")))) | |
807 | |
808 (defcustom org-agenda-remove-times-when-in-prefix t | |
809 "Non-nil means, remove duplicate time specifications in agenda items. | |
810 When the format `org-agenda-prefix-format' contains a `%t' specifier, a | |
811 time-of-day specification in a headline or diary entry is extracted and | |
812 placed into the prefix. If this option is non-nil, the original specification | |
813 \(a timestamp or -range, or just a plain time(range) specification like | |
814 11:30-4pm) will be removed for agenda display. This makes the agenda less | |
815 cluttered. | |
816 The option can be t or nil. It may also be the symbol `beg', indicating | |
817 that the time should only be removed what it is located at the beginning of | |
818 the headline/diary entry." | |
819 :group 'org-agenda | |
820 :type '(choice | |
821 (const :tag "Always" t) | |
822 (const :tag "Never" nil) | |
823 (const :tag "When at beginning of entry" beg))) | |
824 | |
825 (defcustom org-sort-agenda-notime-is-late t | |
826 "Non-nil means, items without time are considered late. | |
827 This is only relevant for sorting. When t, items which have no explicit | |
828 time like 15:30 will be considered as 24:01, i.e. later than any items which | |
829 do have a time. When nil, the default time is before 0:00. You can use this | |
830 option to decide if the schedule for today should come before or after timeless | |
831 agenda entries." | |
832 :group 'org-agenda | |
833 :type 'boolean) | |
834 | |
835 (defgroup org-structure nil | |
836 "Options concerning structure editing in Org-mode." | |
837 :tag "Org Structure" | |
838 :group 'org) | |
839 | |
840 (defcustom org-cycle-hook '(org-optimize-window-after-visibility-change) | |
841 "Hook that is run after `org-cycle' has changed the buffer visibility. | |
842 The function(s) in this hook must accept a single argument which indicates | |
843 the new state that was set by the most recent `org-cycle' command. The | |
844 argument is a symbol. After a global state change, it can have the values | |
845 `overview', `content', or `all'. After a local state change, it can have | |
846 the values `folded', `children', or `subtree'." | |
847 :group 'org-structure | |
848 :type 'hook) | |
849 | |
850 (defcustom org-occur-hook '(org-first-headline-recenter) | |
851 "Hook that is run after `org-occur' has constructed a sparse tree. | |
852 This can be used to recenter the window to show as much of the structure | |
853 as possible." | |
854 :group 'org-structure | |
855 :type 'hook) | |
856 | |
857 (defcustom org-level-color-stars-only nil | |
858 "Non-nil means fontify only the stars in each headline. | |
859 When nil, the entire headline is fontified. | |
860 After changin this, requires restart of Emacs to become effective." | |
861 :group 'org-structure | |
862 :type 'boolean) | |
863 | |
864 (defcustom org-adapt-indentation t | |
865 "Non-nil means, adapt indentation when promoting and demoting. | |
866 When this is set and the *entire* text in an entry is indented, the | |
867 indentation is increased by one space in a demotion command, and | |
868 decreased by one in a promotion command. If any line in the entry | |
869 body starts at column 0, indentation is not changed at all." | |
870 :group 'org-structure | |
871 :type 'boolean) | |
872 | |
873 (defcustom org-enable-fixed-width-editor t | |
874 "Non-nil means, lines starting with \":\" are treated as fixed-width. | |
875 This currently only means, they are never auto-wrapped. | |
876 When nil, such lines will be treated like ordinary lines. | |
877 See also the QUOTE keyword." | |
878 :group 'org-structure | |
879 :type 'boolean) | |
880 | |
881 (defcustom org-cycle-emulate-tab t | |
882 "Where should `org-cycle' emulate TAB. | |
883 nil Never | |
884 white Only in completely white lines | |
885 t Everywhere except in headlines" | |
886 :group 'org-structure | |
887 :type '(choice (const :tag "Never" nil) | |
888 (const :tag "Only in completely white lines" white) | |
889 (const :tag "Everywhere except in headlines" t) | |
890 )) | |
891 | |
892 (defcustom org-show-following-heading t | |
893 "Non-nil means, show heading following match in `org-occur'. | |
894 When doing an `org-occur' it is useful to show the headline which | |
895 follows the match, even if they do not match the regexp. This makes it | |
896 easier to edit directly inside the sparse tree. However, if you use | |
897 org-occur mainly as an overview, the following headlines are | |
898 unnecessary clutter." | |
899 :group 'org-structure | |
900 :type 'boolean) | |
901 | |
902 (defcustom org-archive-location "%s_archive::" | |
903 "The location where subtrees should be archived. | |
904 This string consists of two parts, separated by a double-colon. | |
905 | |
906 The first part is a file name - when omitted, archiving happens in the same | |
907 file. %s will be replaced by the current file name (without directory part). | |
908 Archiving to a different file is useful to keep archived entries from | |
909 contributing to the Org-mode Agenda. | |
910 | |
911 The part after the double colon is a headline. The archived entries will be | |
912 filed under that headline. When omitted, the subtrees are simply filed away | |
913 at the end of the file, as top-level entries. | |
914 | |
915 Here are a few examples: | |
916 \"%s_archive::\" | |
917 If the current file is Projects.org, archive in file | |
918 Projects.org_archive, as top-level trees. This is the default. | |
919 | |
920 \"::* Archived Tasks\" | |
921 Archive in the current file, under the top-level headline | |
922 \"* Archived Tasks\". | |
923 | |
924 \"~/org/archive.org::\" | |
925 Archive in file ~/org/archive.org (absolute path), as top-level trees. | |
926 | |
927 \"basement::** Finished Tasks\" | |
928 Archive in file ./basement (relative path), as level 3 trees | |
929 below the level 2 heading \"** Finished Tasks\". | |
930 | |
931 You may set this option on a per-file basis by adding to the buffer a | |
932 line like | |
933 | |
934 #+ARCHIVE: basement::** Finished Tasks" | |
935 :group 'org-structure | |
936 :type 'string) | |
937 | |
938 (defcustom org-archive-mark-done t | |
939 "Non-nil means, mark archived entries as DONE." | |
940 :group 'org-structure | |
941 :type 'boolean) | |
942 | |
943 (defcustom org-archive-stamp-time t | |
944 "Non-nil means, add a time stamp to archived entries. | |
945 The time stamp will be added directly after the TODO state keyword in the | |
946 first line, so it is probably best to use this in combinations with | |
947 `org-archive-mark-done'." | |
948 :group 'org-structure | |
949 :type 'boolean) | |
950 | |
951 (defgroup org-link nil | |
952 "Options concerning links in Org-mode." | |
953 :tag "Org Link" | |
954 :group 'org) | |
955 | |
956 (defcustom org-link-format "<%s>" | |
957 "Default format for linkes in the buffer. | |
958 This is a format string for printf, %s will be replaced by the link text. | |
959 If you want to make sure that your link is always properly terminated, | |
960 include angle brackets into this format, like \"<%s>\". Some people also | |
961 recommend an additional URL: prefix, so the format would be \"<URL:%s>\"." | |
962 :group 'org-link | |
963 :type '(choice | |
964 (const :tag "\"%s\" (e.g. http://www.there.com)" "%s") | |
965 (const :tag "\"<%s>\" (e.g. <http://www.there.com>)" "<%s>") | |
966 (const :tag "\"<URL:%s>\" (e.g. <URL:http://www.there.com>)" "<URL:%s>") | |
967 (string :tag "Other" :value "<%s>"))) | |
968 | |
969 (defcustom org-allow-space-in-links t | |
970 "Non-nil means, file names in links may contain space characters. | |
971 When nil, it becomes possible to put several links into a line. | |
972 Note that in tables, a link never extends accross fields, so in a table | |
973 it is always possible to put several links into a line. | |
974 Changing this varable requires a re-launch of Emacs of become effective." | |
975 :group 'org-link | |
976 :type 'boolean) | |
977 | |
978 (defcustom org-line-numbers-in-file-links t | |
979 "Non-nil means, file links from `org-store-link' contain line numbers. | |
980 The line number will be added to the file name with :NNN and interpreted | |
981 by the command `org-open-at-point'. | |
982 Using a prefix arg to the command \\[org-store-link] (`org-store-link') | |
983 negates this setting for the duration of the command." | |
984 :group 'org-link | |
985 :type 'boolean) | |
986 | |
987 (defcustom org-keep-stored-link-after-insertion nil | |
988 "Non-nil means, keep link in list for entire session. | |
989 | |
990 The command `org-store-link' adds a link pointing to the current | |
991 location to an internal list. These links accumulate during a session. | |
992 The command `org-insert-link' can be used to insert links into any | |
993 Org-mode file (offering completion for all stored links). When this | |
994 option is nil, every link which has been inserted once using \\[org-insert-link] | |
995 will be removed from the list, to make completing the unused links | |
996 more efficient." | |
997 :group 'org-link | |
998 :type 'boolean) | |
999 | |
1000 (defcustom org-link-frame-setup | |
1001 '((vm . vm-visit-folder-other-frame) | |
1002 (gnus . gnus-other-frame) | |
1003 (file . find-file-other-window)) | |
1004 "Setup the frame configuration for following links. | |
1005 When following a link with Emacs, it may often be useful to display | |
1006 this link in another window or frame. This variable can be used to | |
1007 set this up for the different types of links. | |
1008 For VM, use any of | |
1009 `vm-visit-folder' | |
1010 `vm-visit-folder-other-frame' | |
1011 For Gnus, use any of | |
1012 `gnus' | |
1013 `gnus-other-frame' | |
1014 For FILE, use any of | |
1015 `find-file' | |
1016 `find-file-other-window' | |
1017 `find-file-other-frame' | |
1018 For the calendar, use the variable `calendar-setup'. | |
1019 For BBDB, it is currently only possible to display the matches in | |
1020 another window." | |
1021 :group 'org-link | |
1022 :type '(list | |
1023 (cons (const vm) | |
1024 (choice | |
1025 (const vm-visit-folder) | |
1026 (const vm-visit-folder-other-window) | |
1027 (const vm-visit-folder-other-frame))) | |
1028 (cons (const gnus) | |
1029 (choice | |
1030 (const gnus) | |
1031 (const gnus-other-frame))) | |
1032 (cons (const file) | |
1033 (choice | |
1034 (const find-file) | |
1035 (const find-file-other-window) | |
1036 (const find-file-other-frame))))) | |
1037 | |
1038 (defcustom org-usenet-links-prefer-google nil | |
1039 "Non-nil means, `org-store-link' will create web links to google groups. | |
1040 When nil, Gnus will be used for such links. | |
1041 Using a prefix arg to the command \\[org-store-link] (`org-store-link') | |
1042 negates this setting for the duration of the command." | |
1043 :group 'org-link | |
1044 :type 'boolean) | |
1045 | |
1046 (defcustom org-open-non-existing-files nil | |
1047 "Non-nil means, `org-open-file' will open non-existing file. | |
1048 When nil, an error will be generated." | |
1049 :group 'org-link | |
1050 :type 'boolean) | |
1051 | |
1052 (defcustom org-confirm-shell-links t | |
1053 "Non-nil means, ask for confirmation before executing shell links. | |
1054 The default is true, to keep new users from shooting into their own foot." | |
1055 :group 'org-link | |
1056 :type 'boolean) | |
1057 | |
1058 (defconst org-file-apps-defaults-gnu | |
1059 '((t . emacs) | |
1060 ("jpg" . "xv %s") | |
1061 ("gif" . "xv %s") | |
1062 ("ppm" . "xv %s") | |
1063 ("pgm" . "xv %s") | |
1064 ("pbm" . "xv %s") | |
1065 ("tif" . "xv %s") | |
1066 ("png" . "xv %s") | |
1067 ("ps" . "gv %s") | |
1068 ("ps.gz" . "gv %s") | |
1069 ("eps" . "gv %s") | |
1070 ("eps.gz" . "gv %s") | |
1071 ("dvi" . "xdvi %s") | |
1072 ("mpeg" . "plaympeg %s") | |
1073 ("mp3" . "plaympeg %s") | |
1074 ("fig" . "xfig %s") | |
1075 ("pdf" . "acroread %s") | |
1076 ("doc" . "soffice %s") | |
1077 ("ppt" . "soffice %s") | |
1078 ("pps" . "soffice %s") | |
1079 ("html" . "netscape -remote openURL(%s,new-window)") | |
1080 ("htm" . "netscape -remote openURL(%s,new-window)") | |
1081 ("xs" . "soffice %s")) | |
1082 "Default file applications on a UNIX/LINUX system. | |
1083 See `org-file-apps'.") | |
1084 | |
1085 (defconst org-file-apps-defaults-macosx | |
1086 '((t . "open %s") | |
1087 ("ps" . "gv %s") | |
1088 ("ps.gz" . "gv %s") | |
1089 ("eps" . "gv %s") | |
1090 ("eps.gz" . "gv %s") | |
1091 ("dvi" . "xdvi %s") | |
1092 ("fig" . "xfig %s")) | |
1093 "Default file applications on a MacOS X system. | |
1094 The system \"open\" is known as a default, but we use X11 applications | |
1095 for some files for which the OS does not have a good default. | |
1096 See `org-file-apps'.") | |
1097 | |
1098 (defconst org-file-apps-defaults-windowsnt | |
1099 '((t . (w32-shell-execute "open" file))) | |
1100 "Default file applications on a Windows NT system. | |
1101 The system \"open\" is used for most files. | |
1102 See `org-file-apps'.") | |
1103 | |
1104 (defcustom org-file-apps | |
1105 '( | |
1106 ("txt" . emacs) | |
1107 ("tex" . emacs) | |
1108 ("ltx" . emacs) | |
1109 ("org" . emacs) | |
1110 ("el" . emacs) | |
1111 ) | |
1112 "External applications for opening `file:path' items in a document. | |
1113 Org-mode uses system defaults for different file types, but | |
1114 you can use this variable to set the application for a given file | |
1115 extension. The entries in this list are cons cells with a file extension | |
1116 and the corresponding command. Possible values for the command are: | |
1117 `emacs' The file will be visited by the current Emacs process. | |
1118 `default' Use the default application for this file type. | |
1119 string A command to be executed by a shell; %s will be replaced | |
1120 by the path to the file. | |
1121 sexp A Lisp form which will be evaluated. The file path will | |
1122 be available in the Lisp variable `file'. | |
1123 For more examples, see the system specific constants | |
1124 `org-file-apps-defaults-macosx' | |
1125 `org-file-apps-defaults-windowsnt' | |
1126 `org-file-apps-defaults-gnu'." | |
1127 :group 'org-link | |
1128 :type '(repeat | |
1129 (cons (string :tag "Extension") | |
1130 (choice :value "" | |
1131 (const :tag "Visit with Emacs" 'emacs) | |
1132 (const :tag "Use system default" 'default) | |
1133 (string :tag "Command") | |
1134 (sexp :tag "Lisp form"))))) | |
1135 | |
1136 | |
1137 (defgroup org-remember nil | |
1138 "Options concerning interaction with remember.el." | |
1139 :tag "Org Remember" | |
1140 :group 'org) | |
1141 | |
1142 (defcustom org-directory "~/org" | |
1143 "Directory with org files. | |
1144 This directory will be used as default to prompt for org files. | |
1145 Used by the hooks for remember.el." | |
1146 :group 'org-remember | |
1147 :type 'directory) | |
1148 | |
1149 (defcustom org-default-notes-file "~/.notes" | |
1150 "Default target for storing notes. | |
1151 Used by the hooks for remember.el. This can be a string, or nil to mean | |
1152 the value of `remember-data-file'." | |
1153 :group 'org-remember | |
1154 :type '(choice | |
1155 (const :tag "Default from remember-data-file" nil) | |
1156 file)) | |
1157 | |
1158 (defcustom org-reverse-note-order nil | |
1159 "Non-nil means, store new notes at the beginning of a file or entry. | |
1160 When nil, new notes will be filed to the end of a file or entry." | |
1161 :group 'org-remember | |
1162 :type '(choice | |
1163 (const :tag "Reverse always" t) | |
1164 (const :tag "Reverse never" nil) | |
1165 (repeat :tag "By file name regexp" | |
1166 (cons regexp boolean)))) | |
1167 | |
1168 (defgroup org-table nil | |
1169 "Options concerning tables in Org-mode." | |
1170 :tag "Org Table" | |
1171 :group 'org) | |
1172 | |
1173 (defcustom org-enable-table-editor 'optimized | |
1174 "Non-nil means, lines starting with \"|\" are handled by the table editor. | |
1175 When nil, such lines will be treated like ordinary lines. | |
1176 | |
1177 When equal to the symbol `optimized', the table editor will be optimized to | |
1178 do the following | |
1179 - Use automatic overwrite mode in front of whitespace in table fields. | |
1180 This make the structure of the table stay in tact as long as the edited | |
1181 field does not exceed the column width. | |
1182 - Minimize the number of realigns. Normally, the table is aligned each time | |
1183 TAB or RET are pressed to move to another field. With optimization this | |
1184 happens only if changes to a field might have changed the column width. | |
1185 Optimization requires replacing the functions `self-insert-command', | |
1186 `delete-char', and `backward-delete-char' in Org-mode buffers, with a | |
1187 slight (in fact: unnoticeable) speed impact for normal typing. Org-mode is | |
1188 very good at guessing when a re-align will be necessary, but you can always | |
1189 force one with \\[org-ctrl-c-ctrl-c]. | |
1190 | |
1191 If you would like to use the optimized version in Org-mode, but the | |
1192 un-optimized version in OrgTbl-mode, see the variable `orgtbl-optimized'. | |
1193 | |
1194 This variable can be used to turn on and off the table editor during a session, | |
1195 but in order to toggle optimization, a restart is required. | |
1196 | |
1197 See also the variable `org-table-auto-blank-field'." | |
1198 :group 'org-table | |
1199 :type '(choice | |
1200 (const :tag "off" nil) | |
1201 (const :tag "on" t) | |
1202 (const :tag "on, optimized" optimized))) | |
1203 | |
1204 (defcustom org-table-auto-blank-field t | |
1205 "Non-nil means, automatically blank table field when starting to type into it. | |
1206 This only happens when typing immediately after a field motion | |
1207 command (TAB, S-TAB or RET). | |
1208 Only relevant when `org-enable-table-editor' is equal to `optimized'." | |
1209 :group 'org-table | |
1210 :type 'boolean) | |
1211 | |
1212 (defcustom org-table-default-size "5x2" | |
1213 "The default size for newly created tables, Columns x Rows." | |
1214 :group 'org-table | |
1215 :type 'string) | |
1216 | |
1217 (defcustom org-table-automatic-realign t | |
1218 "Non-nil means, automatically re-align table when pressing TAB or RETURN. | |
1219 When nil, aligning is only done with \\[org-table-align], or after column | |
1220 removal/insertion." | |
1221 :group 'org-table | |
1222 :type 'boolean) | |
1223 | |
1224 (defcustom org-table-spaces-around-separators '(1 . 1) | |
1225 "The number of spaces to be placed before and after separators." | |
1226 :group 'org-table | |
1227 :type '(cons (number :tag "Before \"|\"") (number :tag " After \"|\""))) | |
1228 | |
1229 (defcustom org-table-spaces-around-invisible-separators '(1 . 2) | |
1230 "The number of spaces to be placed before and after separators. | |
1231 This option applies when the column separators have been made invisible." | |
1232 :group 'org-table | |
1233 :type '(cons (number :tag "Before \"|\"") (number :tag " After \"|\""))) | |
1234 | |
1235 (defcustom org-table-number-regexp "^[<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%]*$" | |
1236 "Regular expression for recognizing numbers in table columns. | |
1237 If a table column contains mostly numbers, it will be aligned to the | |
1238 right. If not, it will be aligned to the left. | |
1239 | |
1240 The default value of this option is a regular expression which allows | |
1241 anything which looks remotely like a number as used in scientific | |
1242 context. For example, all of the following will be considered a | |
1243 number: | |
1244 12 12.2 2.4e-08 2x10^12 4.034+-0.02 2.7(10) >3.5 | |
1245 | |
1246 Other options offered by the customize interface are more restrictive." | |
1247 :group 'org-table | |
1248 :type '(choice | |
1249 (const :tag "Positive Integers" | |
1250 "^[0-9]+$") | |
1251 (const :tag "Integers" | |
1252 "^[-+]?[0-9]+$") | |
1253 (const :tag "Floating Point Numbers" | |
1254 "^[-+]?\\([0-9]*\\.[0-9]+\\|[0-9]+\\.[0-9]*\\)$") | |
1255 (const :tag "Floating Point Number or Integer" | |
1256 "^[-+]?\\([0-9]*\\.[0-9]+\\|[0-9]+\\.?[0-9]*\\)$") | |
1257 (const :tag "Exponential, Floating point, Integer" | |
1258 "^[-+]?[0-9.]+\\([eEdD][-+0-9]+\\)?$") | |
1259 (const :tag "Very General Number-Like" | |
1260 "^[<>]?[-+^.0-9]*[0-9][-+^.0-9eEdDx()%]*$") | |
1261 (string :tag "Regexp:"))) | |
1262 | |
1263 (defcustom org-table-number-fraction 0.5 | |
1264 "Fraction of numbers in a column required to make the column align right. | |
1265 In a column all non-white fields are considered. If at least this | |
1266 fraction of fields is matched by `org-table-number-fraction', | |
1267 alignment to the right border applies." | |
1268 :group 'org-table | |
1269 :type 'number) | |
1270 | |
1271 (defcustom org-export-highlight-first-table-line t | |
1272 "Non-nil means, highlight the first table line. | |
1273 In HTML export, this means use <th> instead of <td>. | |
1274 In tables created with table.el, this applies to the first table line. | |
1275 In Org-mode tables, all lines before the first horizontal separator | |
1276 line will be formatted with <th> tags." | |
1277 :group 'org-table | |
1278 :type 'boolean) | |
1279 | |
1280 (defcustom org-table-tab-recognizes-table.el t | |
1281 "Non-nil means, TAB will automatically notice a table.el table. | |
1282 When it sees such a table, it moves point into it and - if necessary - | |
1283 calls `table-recognize-table'." | |
1284 :group 'org-table | |
1285 :type 'boolean) | |
1286 | |
1287 (defgroup org-table-calculation nil | |
1288 "Options concerning tables in Org-mode." | |
1289 :tag "Org Table Calculation" | |
1290 :group 'org) | |
1291 | |
1292 (defcustom org-table-copy-increment t | |
1293 "Non-nil means, increment when copying current field with \\[org-table-copy-down]." | |
1294 :group 'org-table-calculation | |
1295 :type 'boolean) | |
1296 | |
1297 (defcustom org-calc-default-modes | |
1298 '(calc-internal-prec 12 | |
1299 calc-float-format (float 5) | |
1300 calc-angle-mode deg | |
1301 calc-prefer-frac nil | |
1302 calc-symbolic-mode nil | |
1303 calc-date-format (YYYY "-" MM "-" DD " " Www (" " HH ":" mm)) | |
1304 calc-display-working-message t | |
1305 ) | |
1306 "List with Calc mode settings for use in calc-eval for table formulas. | |
1307 The list must contain alternating symbols (calc modes variables and values. | |
1308 Don't remove any of the default settings, just change the values. Org-mode | |
1309 relies on the variables to be present in the list." | |
1310 :group 'org-table-calculation | |
1311 :type 'plist) | |
1312 | |
1313 (defcustom org-table-formula-evaluate-inline t | |
1314 "Non-nil means, TAB and RET evaluate a formula in current table field. | |
1315 If the current field starts with an equal sign, it is assumed to be a formula | |
1316 which should be evaluated as described in the manual and in the documentation | |
1317 string of the command `org-table-eval-formula'. This feature requires the | |
1318 Emacs calc package. | |
1319 When this variable is nil, formula calculation is only available through | |
1320 the command \\[org-table-eval-formula]." | |
1321 :group 'org-table-calculation | |
1322 :type 'boolean) | |
1323 | |
1324 | |
1325 (defcustom org-table-formula-use-constants t | |
1326 "Non-nil means, interpret constants in formulas in tables. | |
1327 A constant looks like `$c' or `$Grav' and will be replaced before evaluation | |
1328 by the value given in `org-table-formula-constants', or by a value obtained | |
1329 from the `constants.el' package." | |
1330 :group 'org-table-calculation | |
1331 :type 'boolean) | |
1332 | |
1333 (defcustom org-table-formula-constants nil | |
1334 "Alist with constant names and values, for use in table formulas. | |
1335 The car of each element is a name of a constant, without the `$' before it. | |
1336 The cdr is the value as a string. For example, if you'd like to use the | |
1337 speed of light in a formula, you would configure | |
1338 | |
1339 (setq org-table-formula-constants '((\"c\" . \"299792458.\"))) | |
1340 | |
1341 and then use it in an equation like `$1*$c'." | |
1342 :group 'org-table-calculation | |
1343 :type '(repeat | |
1344 (cons (string :tag "name") | |
1345 (string :tag "value")))) | |
1346 | |
1347 (defcustom org-table-formula-numbers-only nil | |
1348 "Non-nil means, calculate only with numbers in table formulas. | |
1349 Then all input fields will be converted to a number, and the result | |
1350 must also be a number. When nil, calc's full potential is available | |
1351 in table calculations, including symbolics etc." | |
1352 :group 'org-table-calculation | |
1353 :type 'boolean) | |
1354 | |
1355 (defcustom org-table-allow-automatic-line-recalculation t | |
1356 "Non-nil means, lines makred with |#| or |*| will be recomputed automatically. | |
1357 Automatically means, when TAB or RET or C-c C-c are pressed in the line." | |
1358 :group 'org-table-calculation | |
1359 :type 'boolean) | |
1360 | |
1361 (defgroup org-export nil | |
1362 "Options for exporting org-listings." | |
1363 :tag "Org Export" | |
1364 :group 'org) | |
1365 | |
1366 (defcustom org-export-language-setup | |
1367 '(("en" "Author" "Date" "Table of Contents") | |
1368 ("da" "Ophavsmand" "Dato" "Indhold") | |
1369 ("de" "Autor" "Datum" "Inhaltsverzeichnis") | |
1370 ("es" "Autor" "Fecha" "\xccndice") | |
1371 ("fr" "Auteur" "Date" "Table des Mati\xe8res") | |
1372 ("it" "Autore" "Data" "Indice") | |
1373 ("nl" "Auteur" "Datum" "Inhoudsopgave") | |
1374 ("nn" "Forfattar" "Dato" "Innhold") ;; nn = Norsk (nynorsk) | |
1375 ("sv" "F\xf6rfattarens" "Datum" "Inneh\xe5ll")) | |
1376 "Terms used in export text, translated to different languages. | |
1377 Use the variable `org-export-default-language' to set the language, | |
1378 or use the +OPTION lines for a per-file setting." | |
1379 :group 'org-export | |
1380 :type '(repeat | |
1381 (list | |
1382 (string :tag "HTML language tag") | |
1383 (string :tag "Author") | |
1384 (string :tag "Date") | |
1385 (string :tag "Table of Contents")))) | |
1386 | |
1387 (defcustom org-export-default-language "en" | |
1388 "The default language of HTML export, as a string. | |
1389 This should have an association in `org-export-language-setup'" | |
1390 :group 'org-export | |
1391 :type 'string) | |
1392 | |
1393 (defcustom org-export-headline-levels 3 | |
1394 "The last level which is still exported as a headline. | |
1395 Inferior levels will produce itemize lists when exported. | |
1396 Note that a numeric prefix argument to an exporter function overrides | |
1397 this setting. | |
1398 | |
1399 This option can also be set with the +OPTIONS line, e.g. \"H:2\"." | |
1400 :group 'org-export | |
1401 :type 'number) | |
1402 | |
1403 (defcustom org-export-with-section-numbers t | |
1404 "Non-nil means, add section numbers to headlines when exporting. | |
1405 | |
1406 This option can also be set with the +OPTIONS line, e.g. \"num:t\"." | |
1407 :group 'org-export | |
1408 :type 'boolean) | |
1409 | |
1410 (defcustom org-export-with-toc t | |
1411 "Non-nil means, create a table of contents in exported files. | |
1412 The TOC contains headlines with levels up to`org-export-headline-levels'. | |
1413 | |
1414 Headlines which contain any TODO items will be marked with \"(*)\" in | |
1415 ASCII export, and with red color in HTML output. | |
1416 | |
1417 In HTML output, the TOC will be clickable. | |
1418 | |
1419 This option can also be set with the +OPTIONS line, e.g. \"toc:nil\"." | |
1420 :group 'org-export | |
1421 :type 'boolean) | |
1422 | |
1423 (defcustom org-export-preserve-breaks nil | |
1424 "Non-nil means, preserve all line breaks when exporting. | |
1425 Normally, in HTML output paragraphs will be reformatted. In ASCII | |
1426 export, line breaks will always be preserved, regardless of this variable. | |
1427 | |
1428 This option can also be set with the +OPTIONS line, e.g. \"\\n:t\"." | |
1429 :group 'org-export | |
1430 :type 'boolean) | |
1431 | |
1432 (defcustom org-export-html-inline-images t | |
1433 "Non-nil means, inline images into exported HTML pages. | |
1434 The link will still be to the original location of the image file. | |
1435 So if you are moving the page, lets say to your public HTML site, | |
1436 you will have to move the image and maybe change the link." | |
1437 :group 'org-export | |
1438 :type 'boolean) | |
1439 | |
1440 (defcustom org-export-html-expand t | |
1441 "Non-nil means, for HTML export, treat @<...> as HTML tag. | |
1442 When nil, these tags will be exported as plain text and therefore | |
1443 not be interpreted by a browser. | |
1444 | |
1445 This option can also be set with the +OPTIONS line, e.g. \"@:nil\"." | |
1446 :group 'org-export | |
1447 :type 'boolean) | |
1448 | |
1449 (defcustom org-export-with-fixed-width t | |
1450 "Non-nil means, lines starting with \":\" will be in fixed width font. | |
1451 This can be used to have pre-formatted text, fragments of code etc. For | |
1452 example | |
1453 : ;; Some Lisp examples | |
1454 : (while (defc cnt) | |
1455 : (ding)) | |
1456 will be looking just like this in also HTML. In ASCII export, this option | |
1457 has no effect. | |
1458 | |
1459 This option can also be set with the +OPTIONS line, e.g. \"::nil\"." | |
1460 :group 'org-export | |
1461 :type 'boolean) | |
1462 | |
1463 (defcustom org-export-with-tables t | |
1464 "If non-nil, lines starting with \"|\" define a table. | |
1465 For example: | |
1466 | |
1467 | Name | Address | Birthday | | |
1468 |-------------+----------+-----------| | |
1469 | Arthur Dent | England | 29.2.2100 | | |
1470 | |
1471 In ASCII export, this option has no effect. | |
1472 | |
1473 This option can also be set with the +OPTIONS line, e.g. \"|:nil\"." | |
1474 :group 'org-export | |
1475 :type 'boolean) | |
1476 | |
1477 (defcustom org-export-prefer-native-exporter-for-tables nil | |
1478 "Non-nil means, always export tables created with table.el natively. | |
1479 Natively means, use the HTML code generator in table.el. | |
1480 When nil, Org-mode's own HTML generator is used when possible (i.e. if | |
1481 the table does not use row- or column-spanning). This has the | |
1482 advantage, that the automatic HTML conversions for math symbols and | |
1483 sub/superscripts can be applied. Org-mode's HTML generator is also | |
1484 much faster." | |
1485 :group 'org-export | |
1486 :type 'boolean) | |
1487 | |
1488 (defcustom org-export-html-table-tag | |
1489 "<table border=1 cellspacing=0 cellpadding=6>" | |
1490 "The HTML tag used to start a table. | |
1491 This must be a <table> tag, but you may change the options like | |
1492 borders and spacing." | |
1493 :group 'org-export | |
1494 :type 'string) | |
1495 | |
1496 (defcustom org-export-with-emphasize t | |
1497 "Non-nil means, interpret *word*, /word/, and _word_ as emphasized text. | |
1498 If the export target supports emphasizing text, the word will be | |
1499 typeset in bold, italic, or underlined, respectively. Works only for | |
1500 single words, but you can say: I *really* *mean* *this*. | |
1501 In ASCII export, this option has no effect. | |
1502 | |
1503 This option can also be set with the +OPTIONS line, e.g. \"*:nil\"." | |
1504 :group 'org-export | |
1505 :type 'boolean) | |
1506 | |
1507 (defcustom org-match-sexp-depth 3 | |
1508 "Number of stacked braces for sub/superscript matching. | |
1509 This has to be set before loading org.el to be effective." | |
1510 :group 'org-export | |
1511 :type 'integer) | |
1512 | |
1513 ;; FIXME: Should () parens be removed as well in sub/superscripts? | |
1514 (defcustom org-export-with-sub-superscripts t | |
1515 "Non-nil means, interpret \"_\" and \"^\" for export. | |
1516 When this option is turned on, you can use TeX-like syntax for sub- and | |
1517 superscripts. Several characters after \"_\" or \"^\" will be | |
1518 considered as a single item - so grouping with {} is normally not | |
1519 needed. For example, the following things will be parsed as single | |
1520 sub- or superscripts. | |
1521 | |
1522 10^24 or 10^tau several digits will be considered 1 item | |
1523 10^-12 or 10^-tau a leading sign with digits or a word | |
1524 x^2-y^3 will be read as x^2 - y^3, because items are | |
1525 terminated by almost any nonword/nondigit char. | |
1526 x_{i^2} or x^(2-i) braces or parenthesis do grouping. | |
1527 | |
1528 Still, ambiguity is possible - so when in doubt use {} to enclose the | |
1529 sub/superscript. | |
1530 In ASCII export, this option has no effect. | |
1531 | |
1532 This option can also be set with the +OPTIONS line, e.g. \"^:nil\"." | |
1533 :group 'org-export | |
1534 :type 'boolean) | |
1535 | |
1536 (defcustom org-export-with-TeX-macros t | |
1537 "Non-nil means, interpret simple TeX-like macros when exporting. | |
1538 For example, HTML export converts \\alpha to α and \\AA to Å. | |
1539 No only real TeX macros will work here, but the standard HTML entities | |
1540 for math can be used as macro names as well. For a list of supported | |
1541 names in HTML export, see the constant `org-html-entities'. | |
1542 In ASCII export, this option has no effect. | |
1543 | |
1544 This option can also be set with the +OPTIONS line, e.g. \"TeX:nil\"." | |
1545 :group 'org-export | |
1546 :type 'boolean) | |
1547 | |
1548 (defcustom org-export-html-with-timestamp nil | |
1549 "If non-nil, write `org-export-html-html-helper-timestamp' | |
1550 into the exported html text. Otherwise, the buffer will just be saved | |
1551 to a file." | |
1552 :group 'org-export | |
1553 :type 'boolean) | |
1554 | |
1555 (defcustom org-export-html-html-helper-timestamp | |
1556 "<br><br><hr><p><!-- hhmts start --> <!-- hhmts end -->\n" | |
1557 "The HTML tag used as timestamp delimiter for HTML-helper-mode." | |
1558 :group 'org-export | |
1559 :type 'string) | |
1560 | |
1561 (defcustom org-export-ascii-show-new-buffer t | |
1562 "Non-nil means, popup buffer containing the exported ASCII text. | |
1563 Otherwise the buffer will just be saved to a file and stay hidden." | |
1564 :group 'org-export | |
1565 :type 'boolean) | |
1566 | |
1567 (defcustom org-export-html-show-new-buffer nil | |
1568 "Non-nil means, popup buffer containing the exported html text. | |
1569 Otherwise, the buffer will just be saved to a file and stay hidden." | |
1570 :group 'org-export | |
1571 :type 'boolean) | |
1572 | |
1573 (defgroup org-faces nil | |
1574 "Faces for highlighting in Org-mode." | |
1575 :tag "Org Faces" | |
1576 :group 'org) | |
1577 | |
1578 (defface org-level-1 ;; font-lock-function-name-face | |
1579 '((((type tty) (class color)) (:foreground "blue" :weight bold)) | |
1580 (((class color) (background light)) (:foreground "Blue")) | |
1581 (((class color) (background dark)) (:foreground "LightSkyBlue")) | |
1582 (t (:inverse-video t :bold t))) | |
1583 "Face used for level 1 headlines." | |
1584 :group 'org-faces) | |
1585 | |
1586 (defface org-level-2 ;; font-lock-variable-name-face | |
1587 '((((type tty) (class color)) (:foreground "yellow" :weight light)) | |
1588 (((class color) (background light)) (:foreground "DarkGoldenrod")) | |
1589 (((class color) (background dark)) (:foreground "LightGoldenrod")) | |
1590 (t (:bold t :italic t))) | |
1591 "Face used for level 2 headlines." | |
1592 :group 'org-faces) | |
1593 | |
1594 (defface org-level-3 ;; font-lock-keyword-face | |
1595 '((((type tty) (class color)) (:foreground "cyan" :weight bold)) | |
1596 (((class color) (background light)) (:foreground "Purple")) | |
1597 (((class color) (background dark)) (:foreground "Cyan")) | |
1598 (t (:bold t))) | |
1599 "Face used for level 3 headlines." | |
1600 :group 'org-faces) | |
1601 | |
1602 (defface org-level-4 ;; font-lock-comment-face | |
1603 '((((type tty pc) (class color) (background light)) (:foreground "red")) | |
1604 (((type tty pc) (class color) (background dark)) (:foreground "red1")) | |
1605 (((class color) (background light)) (:foreground "Firebrick")) | |
1606 (((class color) (background dark)) (:foreground "chocolate1")) | |
1607 (t (:bold t :italic t))) | |
1608 "Face used for level 4 headlines." | |
1609 :group 'org-faces) | |
1610 | |
1611 (defface org-level-5 ;; font-lock-type-face | |
1612 '((((type tty) (class color)) (:foreground "green")) | |
1613 (((class color) (background light)) (:foreground "ForestGreen")) | |
1614 (((class color) (background dark)) (:foreground "PaleGreen")) | |
1615 (t (:bold t :underline t))) | |
1616 "Face used for level 5 headlines." | |
1617 :group 'org-faces) | |
1618 | |
1619 (defface org-level-6 ;; font-lock-constant-face | |
1620 '((((type tty) (class color)) (:foreground "magenta")) | |
1621 (((class color) (background light)) (:foreground "CadetBlue")) | |
1622 (((class color) (background dark)) (:foreground "Aquamarine")) | |
1623 (t (:bold t :underline t))) | |
1624 "Face used for level 6 headlines." | |
1625 :group 'org-faces) | |
1626 | |
1627 (defface org-level-7 ;; font-lock-builtin-face | |
1628 '((((type tty) (class color)) (:foreground "blue" :weight light)) | |
1629 (((class color) (background light)) (:foreground "Orchid")) | |
1630 (((class color) (background dark)) (:foreground "LightSteelBlue")) | |
1631 (t (:bold t))) | |
1632 "Face used for level 7 headlines." | |
1633 :group 'org-faces) | |
1634 | |
1635 (defface org-level-8 ;; font-lock-string-face | |
1636 '((((type tty) (class color)) (:foreground "green")) | |
1637 (((class color) (background light)) (:foreground "RosyBrown")) | |
1638 (((class color) (background dark)) (:foreground "LightSalmon")) | |
1639 (t (:italic t))) | |
1640 "Face used for level 8 headlines." | |
1641 :group 'org-faces) | |
1642 | |
1643 (defface org-special-keyword ;; font-lock-string-face | |
1644 '((((type tty) (class color)) (:foreground "green")) | |
1645 (((class color) (background light)) (:foreground "RosyBrown")) | |
1646 (((class color) (background dark)) (:foreground "LightSalmon")) | |
1647 (t (:italic t))) | |
1648 "Face used for level 8 headlines." | |
1649 :group 'org-faces) | |
1650 | |
1651 (defface org-warning ;; font-lock-warning-face | |
1652 '((((type tty) (class color)) (:foreground "red")) | |
1653 (((class color) (background light)) (:foreground "Red" :bold t)) | |
1654 (((class color) (background dark)) (:foreground "Red1" :bold t)) | |
1655 ; (((class color) (background dark)) (:foreground "Pink" :bold t)) | |
1656 (t (:inverse-video t :bold t))) | |
1657 "Face for deadlines and TODO keywords." | |
1658 :group 'org-faces) | |
1659 | |
1660 (defcustom org-fontify-done-headline nil | |
1661 "Non-nil means, change the face of a headline if it is marked DONE. | |
1662 Normally, only the TODO/DONE keyword indicates the state of a headline. | |
1663 When this is non-nil, the headline after the keyword is set to the | |
1664 `org-headline-done' as an additional indication." | |
1665 :group 'org-faces | |
1666 :type 'boolean) | |
1667 | |
1668 (defface org-headline-done ;; font-lock-string-face | |
1669 '((((type tty) (class color)) (:foreground "green")) | |
1670 (((class color) (background light)) (:foreground "RosyBrown")) | |
1671 (((class color) (background dark)) (:foreground "LightSalmon")) | |
1672 (t (:italic t))) | |
1673 "Face used to indicate that a headline is DONE. See also the variable | |
1674 `org-fontify-done-headline'." | |
1675 :group 'org-faces) | |
1676 | |
1677 ;; Inheritance does not yet work for xemacs. So we just copy... | |
1678 | |
1679 (defface org-deadline-announce | |
1680 '((((type tty) (class color)) (:foreground "blue" :weight bold)) | |
1681 (((class color) (background light)) (:foreground "Blue")) | |
1682 (((class color) (background dark)) (:foreground "LightSkyBlue")) | |
1683 (t (:inverse-video t :bold t))) | |
1684 "Face for upcoming deadlines." | |
1685 :group 'org-faces) | |
1686 | |
1687 (defface org-scheduled-today | |
1688 '((((type tty) (class color)) (:foreground "green")) | |
1689 (((class color) (background light)) (:foreground "DarkGreen")) | |
1690 (((class color) (background dark)) (:foreground "PaleGreen")) | |
1691 (t (:bold t :underline t))) | |
1692 "Face for items scheduled for a certain day." | |
1693 :group 'org-faces) | |
1694 | |
1695 (defface org-scheduled-previously | |
1696 '((((type tty pc) (class color) (background light)) (:foreground "red")) | |
1697 (((type tty pc) (class color) (background dark)) (:foreground "red1")) | |
1698 (((class color) (background light)) (:foreground "Firebrick")) | |
1699 (((class color) (background dark)) (:foreground "chocolate1")) | |
1700 (t (:bold t :italic t))) | |
1701 "Face for items scheduled previously, and not yet done." | |
1702 :group 'org-faces) | |
1703 | |
1704 (defface org-formula | |
1705 '((((type tty pc) (class color) (background light)) (:foreground "red")) | |
1706 (((type tty pc) (class color) (background dark)) (:foreground "red1")) | |
1707 (((class color) (background light)) (:foreground "Firebrick")) | |
1708 (((class color) (background dark)) (:foreground "chocolate1")) | |
1709 (t (:bold t :italic t))) | |
1710 "Face for items scheduled previously, and not yet done." | |
1711 :group 'org-faces) | |
1712 | |
1713 (defface org-link | |
1714 '((((type tty) (class color)) (:foreground "cyan" :weight bold)) | |
1715 (((class color) (background light)) (:foreground "Purple")) | |
1716 (((class color) (background dark)) (:foreground "Cyan")) | |
1717 (t (:bold t))) | |
1718 "Face for links." | |
1719 :group 'org-faces) | |
1720 | |
1721 (defface org-done ;; font-lock-type-face | |
1722 '((((type tty) (class color)) (:foreground "green")) | |
1723 (((class color) (background light)) (:foreground "ForestGreen" :bold t)) | |
1724 (((class color) (background dark)) (:foreground "PaleGreen" :bold t)) | |
1725 (t (:bold t :underline t))) | |
1726 "Face used for DONE." | |
1727 :group 'org-faces) | |
1728 | |
1729 (defface org-table ;; font-lock-function-name-face | |
1730 '((((type tty) (class color)) (:foreground "blue" :weight bold)) | |
1731 (((class color) (background light)) (:foreground "Blue")) | |
1732 (((class color) (background dark)) (:foreground "LightSkyBlue")) | |
1733 (t (:inverse-video t :bold t))) | |
1734 "Face used for tables." | |
1735 :group 'org-faces) | |
1736 | |
1737 (defface org-time-grid ;; font-lock-variable-name-face | |
1738 '((((type tty) (class color)) (:foreground "yellow" :weight light)) | |
1739 (((class color) (background light)) (:foreground "DarkGoldenrod")) | |
1740 (((class color) (background dark)) (:foreground "LightGoldenrod")) | |
1741 (t (:bold t :italic t))) | |
1742 "Face used for level 2 headlines." | |
1743 :group 'org-faces) | |
1744 | |
1745 (defvar org-level-faces | |
1746 '( | |
1747 org-level-1 | |
1748 org-level-2 | |
1749 org-level-3 | |
1750 org-level-4 | |
1751 org-level-5 | |
1752 org-level-6 | |
1753 org-level-7 | |
1754 org-level-8 | |
1755 )) | |
1756 (defvar org-n-levels (length org-level-faces)) | |
1757 | 1760 |
1758 ;; Tell the compiler about dynamically scoped variables, | 1761 ;; Tell the compiler about dynamically scoped variables, |
1759 ;; and variables from other packages | 1762 ;; and variables from other packages |
1760 (eval-when-compile | 1763 (eval-when-compile |
1761 (defvar zmacs-regions) | 1764 (defvar zmacs-regions) |
7867 (defvar orgtbl-mode nil | 7870 (defvar orgtbl-mode nil |
7868 "Variable controlling `orgtbl-mode', a minor mode enabling the `org-mode' | 7871 "Variable controlling `orgtbl-mode', a minor mode enabling the `org-mode' |
7869 table editor in arbitrary modes.") | 7872 table editor in arbitrary modes.") |
7870 (make-variable-buffer-local 'orgtbl-mode) | 7873 (make-variable-buffer-local 'orgtbl-mode) |
7871 | 7874 |
7872 (defvar orgtbl-mode-map (make-sparse-keymap) | 7875 (defvar orgtbl-mode-map (make-keymap) |
7873 "Keymap for `orgtbl-mode'.") | 7876 "Keymap for `orgtbl-mode'.") |
7874 | 7877 |
7875 ;;;###autoload | 7878 ;;;###autoload |
7876 (defun turn-on-orgtbl () | 7879 (defun turn-on-orgtbl () |
7877 "Unconditionally turn on `orgtbl-mode'." | 7880 "Unconditionally turn on `orgtbl-mode'." |
8825 (language org-export-default-language) | 8828 (language org-export-default-language) |
8826 (text nil) | 8829 (text nil) |
8827 (lang-words nil) | 8830 (lang-words nil) |
8828 (head-count 0) cnt | 8831 (head-count 0) cnt |
8829 (start 0) | 8832 (start 0) |
8833 ;; FIXME: The following returns always nil under XEmacs | |
8834 (coding-system (and (fboundp 'coding-system-get) | |
8835 (boundp 'buffer-file-coding-system) | |
8836 buffer-file-coding-system)) | |
8837 (charset (and coding-system | |
8838 (coding-system-get coding-system 'mime-charset))) | |
8830 table-open type | 8839 table-open type |
8831 table-buffer table-orig-buffer | 8840 table-buffer table-orig-buffer |
8832 ) | 8841 ) |
8833 (message "Exporting...") | 8842 (message "Exporting...") |
8834 | 8843 |
8853 | 8862 |
8854 ;; File header | 8863 ;; File header |
8855 (insert (format | 8864 (insert (format |
8856 "<html lang=\"%s\"><head> | 8865 "<html lang=\"%s\"><head> |
8857 <title>%s</title> | 8866 <title>%s</title> |
8858 <meta http-equiv=\"Content-Type\" content=\"text/html\"> | 8867 <meta http-equiv=\"Content-Type\" content=\"text/html;charset=%s\"> |
8859 <meta name=generator content=\"Org-mode\"> | 8868 <meta name=generator content=\"Org-mode\"> |
8860 <meta name=generated content=\"%s %s\"> | 8869 <meta name=generated content=\"%s %s\"> |
8861 <meta name=author content=\"%s\"> | 8870 <meta name=author content=\"%s\"> |
8862 </head><body> | 8871 </head><body> |
8863 " | 8872 " |
8864 language (org-html-expand title) date time author)) | 8873 language (org-html-expand title) (or charset "iso-8859-1") |
8874 date time author)) | |
8865 (if title (insert (concat "<H1 align=\"center\">" | 8875 (if title (insert (concat "<H1 align=\"center\">" |
8866 (org-html-expand title) "</H1>\n"))) | 8876 (org-html-expand title) "</H1>\n"))) |
8867 (if author (insert (concat (nth 1 lang-words) ": " author "\n"))) | 8877 (if author (insert (concat (nth 1 lang-words) ": " author "\n"))) |
8868 (if email (insert (concat "<a href=\"mailto:" email "\"><" | 8878 (if email (insert (concat "<a href=\"mailto:" email "\"><" |
8869 email "></a>\n"))) | 8879 email "></a>\n"))) |
9406 ;; abcd fgh j lmnopqrstuvwxyz ? #$ -+*/= [] ; |,.<>~ \t necessary bindings | 9416 ;; abcd fgh j lmnopqrstuvwxyz ? #$ -+*/= [] ; |,.<>~ \t necessary bindings |
9407 ;; e (?) useful from outline-mode | 9417 ;; e (?) useful from outline-mode |
9408 ;; i k @ expendable from outline-mode | 9418 ;; i k @ expendable from outline-mode |
9409 ;; 0123456789 ! %^& ()_{} " `' free | 9419 ;; 0123456789 ! %^& ()_{} " `' free |
9410 | 9420 |
9421 ;; Make `C-c C-x' a prefix key | |
9422 (define-key org-mode-map "\C-c\C-x" (make-sparse-keymap)) | |
9423 | |
9411 ;; TAB key with modifiers | 9424 ;; TAB key with modifiers |
9412 (define-key org-mode-map "\C-i" 'org-cycle) | 9425 (define-key org-mode-map "\C-i" 'org-cycle) |
9413 (define-key org-mode-map [(meta tab)] 'org-complete) | 9426 (define-key org-mode-map [(meta tab)] 'org-complete) |
9414 (define-key org-mode-map "\M-\C-i" 'org-complete) ; for tty emacs | 9427 (define-key org-mode-map "\M-\C-i" 'org-complete) ; for tty emacs |
9415 ;; The following line is necessary under Suse GNU/Linux | 9428 ;; The following line is necessary under Suse GNU/Linux |
9585 (while commands | 9598 (while commands |
9586 (setq old (pop commands) new (pop commands)) | 9599 (setq old (pop commands) new (pop commands)) |
9587 (if (fboundp 'command-remapping) | 9600 (if (fboundp 'command-remapping) |
9588 (define-key map (vector 'remap old) new) | 9601 (define-key map (vector 'remap old) new) |
9589 (substitute-key-definition old new map global-map))))) | 9602 (substitute-key-definition old new map global-map))))) |
9590 | 9603 |
9591 (when (eq org-enable-table-editor 'optimized) | 9604 (when (eq org-enable-table-editor 'optimized) |
9592 ;; If the user wants maximum table support, we need to hijack | 9605 ;; If the user wants maximum table support, we need to hijack |
9593 ;; some standard editing functions | 9606 ;; some standard editing functions |
9594 (org-remap org-mode-map | 9607 (org-remap org-mode-map |
9595 'self-insert-command 'org-self-insert-command | 9608 'self-insert-command 'org-self-insert-command |