Mercurial > emacs
comparison lisp/org/org-table.el @ 96975:60149c696033
2008-07-24 Carsten Dominik <dominik@science.uva.nl>
* org-exp.el (org-export-region-as-html, org-export-as-html): Make
sure that calls from `org-export-region-as-html' do not do the
special check for a subtree.
* org-agenda.el (org-batch-store-agenda-views): Fix parsing bug.
* org.el (org-open-file): Use
`org-open-directory-means-index-dot-org'.
(org-open-directory-means-index-dot-org): New option.
* org.el (org-make-link-string): Remove link attributes from
description.
(org-open-at-point): Remove link attributes bevore using the path.
* org-exp.el (org-export-as-html): Handle link attributes.
* org.el (org-extract-attributes, org-attributes-to-string): New functions.
* org-table.el (org-table-to-lisp): New function.
* org.el (org-narrow-to-subtree): Do not include the final newline
into the narrowed region.
* org-agenda.el (org-agenda-custom-commands-local-options): Fixed
bug with user-define skipping condition.
* org-agenda.el (org-agenda-get-restriction-and-command): Fixed typo.
* org-exp.el (org-export-html-style-default): Automatic overflow
handling for pre fields.
(org-export-as-ascii, org-export-as-html): Change default format
for time stamp.
* org-table.el (org-table-export): Offer completion for translator
functions, and do not require a heading above the table.
* org.el (org-renumber-ordered-list, org-beginning-of-item-list):
Cater for the case of a list starting in the first line of the
buffer.
* org-publish.el (org-publish-find-title): Bug fix.
(org-publish-org-index): Implement new :index-style option.
* org-publish.el (org-publish-timestamp-filename): Use
SHA1-encoded file names in the timestamp directory.
* org-publish.el (org-publish-needed-p): Be verbose about files
published and files skipped.
* org-exp.el (org-export-preprocess-string): Swap link
normalization and inernal link targeting.
* org-publish.el (org-publish-needed-p): Create timestamp
directory when it does not exist.
* org-clock.el (org-clock-out-when-done): Doc fix.
* org.el (org-agenda-skip-unavailable-files): Doc fix.
* org-exp.el (org-export-remove-comment-blocks-and-subtrees):
Ignore case when searching for the COMMENT cookie at export time.
* org-exp.el (org-get-file-contents)
(org-get-and-remove-property): New functions.
(org-export-handle-include-files): Handle the new prefix options.
(org-export-as-html): Fix the verse environment.
* org.el (org-time=, org-time<, org-time<=, org-time>)
(org-time>=, org-time<>, org-2ft): New functions.
(org-op-to-function): Also provide for the time testing fucntions.
* org-exp.el (org-export-html-style-default): New constant.
* org-exp.el (org-export-html-style-extra): New variable.
(org-export-splice-style): New function.
* org-exp.el (org-export-plist-vars, org-export-as-html):
Implement `org-export-creator-info'.
(org-export-creator-info): New option.
* org.el (org-clock-drawer-start-re, org-clock-drawer-end-re)
(org-property-drawer-re, org-clock-drawer-re): New constants.
* org-exp.el (org-icalendar-use-deadline)
(org-icalendar-use-scheduled): New options.
(org-icalendar-include-todo): Default changed to t.
(org-print-icalendar-entries): Implement better utilization of
scheduling and deadline time stamps.
(org-export-target-internal-links, org-export-as-html): Allow file
lines without the "file:" prefix if the file path is an absolute
path or starts with ".".
* org-clock.el (org-clocktable-shift): Also undertand yesterday,
lastweek etc.
(org-clock-special-range): Also undertand yesterday, lastweek etc.
* org.el (org-agenda-skip-archived-trees): Docstring now
discourages using this.
(org-scan-tags): Check for org-agenda-archives-mode.
(org-map-entries): Make sure org-agenda-archives-mode is nil.
(org-agenda-files): Functionality of second arg changed.
* org-agenda.el (org-agenda-archives-mode): New variable
(org-write-agenda, org-prepare-agenda, org-agenda-list)
(org-search-view, org-todo-list, org-tags-view)
(org-agenda-list-stuck-projects): Call `org-agenda-files' with
`ifmode' argument.
(org-agenda-quit): Reset the archives mode.
(org-agenda-archives-mode): New command.
(org-agenda-set-mode-name): Include archives info.
* org.el (org-paste-subtree): Make sure the yanked headline is
visible if it was yanked at a visible point.
(org-move-item-up): Fix the bug with moving white space at the end
of the item.
(org-show-empty-lines-in-parent): New function.
author | Carsten Dominik <dominik@science.uva.nl> |
---|---|
date | Thu, 24 Jul 2008 13:59:56 +0000 |
parents | 25423ee77a10 |
children | adc2dffbdfc3 |
comparison
equal
deleted
inserted
replaced
96974:fa6516860909 | 96975:60149c696033 |
---|---|
3 ;; Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | 3 ;; Copyright (C) 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. |
4 | 4 |
5 ;; Author: Carsten Dominik <carsten at orgmode dot org> | 5 ;; Author: Carsten Dominik <carsten at orgmode dot org> |
6 ;; Keywords: outlines, hypermedia, calendar, wp | 6 ;; Keywords: outlines, hypermedia, calendar, wp |
7 ;; Homepage: http://orgmode.org | 7 ;; Homepage: http://orgmode.org |
8 ;; Version: 6.05a | 8 ;; Version: 6.06a |
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 |
443 (require 'org-exp) | 443 (require 'org-exp) |
444 (org-table-align) ;; make sure we have everything we need | 444 (org-table-align) ;; make sure we have everything we need |
445 (let* ((beg (org-table-begin)) | 445 (let* ((beg (org-table-begin)) |
446 (end (org-table-end)) | 446 (end (org-table-end)) |
447 (txt (buffer-substring-no-properties beg end)) | 447 (txt (buffer-substring-no-properties beg end)) |
448 (file (or file (org-entry-get beg "TABLE_EXPORT_FILE" t))) | 448 (file (or file |
449 (format (or format (org-entry-get beg "TABLE_EXPORT_FORMAT" t))) | 449 (condition-case nil |
450 (org-entry-get beg "TABLE_EXPORT_FILE" t) | |
451 (error nil)))) | |
452 (format (or format | |
453 (condition-case nil | |
454 (org-entry-get beg "TABLE_EXPORT_FORMAT" t) | |
455 (error nil)))) | |
450 buf deffmt-readable) | 456 buf deffmt-readable) |
451 (unless file | 457 (unless file |
452 (setq file (read-file-name "Export table to: ")) | 458 (setq file (read-file-name "Export table to: ")) |
453 (unless (or (not (file-exists-p file)) | 459 (unless (or (not (file-exists-p file)) |
454 (y-or-n-p (format "Overwrite file %s? " file))) | 460 (y-or-n-p (format "Overwrite file %s? " file))) |
462 (setq deffmt-readable org-table-export-default-format) | 468 (setq deffmt-readable org-table-export-default-format) |
463 (while (string-match "\t" deffmt-readable) | 469 (while (string-match "\t" deffmt-readable) |
464 (setq deffmt-readable (replace-match "\\t" t t deffmt-readable))) | 470 (setq deffmt-readable (replace-match "\\t" t t deffmt-readable))) |
465 (while (string-match "\n" deffmt-readable) | 471 (while (string-match "\n" deffmt-readable) |
466 (setq deffmt-readable (replace-match "\\n" t t deffmt-readable))) | 472 (setq deffmt-readable (replace-match "\\n" t t deffmt-readable))) |
467 (setq format (read-string "Format: " deffmt-readable))) | 473 (setq format (org-completing-read |
468 | 474 "Format: " |
475 '("orgtbl-to-tsv" "orgtbl-to-csv" | |
476 "orgtbl-to-latex" "orgtbl-to-html" | |
477 "orgtbl-to-generic" "orgtbl-to-texinfo" | |
478 "orgtbl-to-orgtbl") nil nil | |
479 deffmt-readable))) | |
469 (if (string-match "\\([^ \t\r\n]+\\)\\( +.*\\)?" format) | 480 (if (string-match "\\([^ \t\r\n]+\\)\\( +.*\\)?" format) |
470 (let* ((transform (intern (match-string 1 format))) | 481 (let* ((transform (intern (match-string 1 format))) |
471 (params (if (match-end 2) | 482 (params (if (match-end 2) |
472 (read (concat "(" (match-string 2 format) ")")))) | 483 (read (concat "(" (match-string 2 format) ")")))) |
473 (skip (plist-get params :skip)) | 484 (skip (plist-get params :skip)) |
1862 (setq v (pop fields1) col (1+ col)) | 1873 (setq v (pop fields1) col (1+ col)) |
1863 (when (and (stringp field) (stringp v) | 1874 (when (and (stringp field) (stringp v) |
1864 (string-match "^[a-zA-Z][a-zA-Z0-9]*$" field)) | 1875 (string-match "^[a-zA-Z][a-zA-Z0-9]*$" field)) |
1865 (push (cons field v) org-table-local-parameters) | 1876 (push (cons field v) org-table-local-parameters) |
1866 (push (list field line col) org-table-named-field-locations)))) | 1877 (push (list field line col) org-table-named-field-locations)))) |
1867 ;; Analyze the line types | 1878 ;; Analyse the line types |
1868 (goto-char beg) | 1879 (goto-char beg) |
1869 (setq org-table-current-begin-line (org-current-line) | 1880 (setq org-table-current-begin-line (org-current-line) |
1870 org-table-current-begin-pos (point) | 1881 org-table-current-begin-pos (point) |
1871 l org-table-current-begin-line) | 1882 l org-table-current-begin-line) |
1872 (while (looking-at "[ \t]*|\\(-\\)?") | 1883 (while (looking-at "[ \t]*|\\(-\\)?") |
3539 (error "Cannot find end of insertion region")) | 3550 (error "Cannot find end of insertion region")) |
3540 (beginning-of-line 1) | 3551 (beginning-of-line 1) |
3541 (delete-region beg (point)))) | 3552 (delete-region beg (point)))) |
3542 (insert txt "\n"))) | 3553 (insert txt "\n"))) |
3543 | 3554 |
3555 (defun org-table-to-lisp (&optional txt) | |
3556 "Convert the table at point to a Lisp structure. | |
3557 The structure will be a list. Each item is either the symbol `hline' | |
3558 for a horizontal separator line, or a list of field values as strings. | |
3559 The table is taken from the parameter TXT, or from the buffer at point." | |
3560 (unless txt | |
3561 (unless (org-at-table-p) | |
3562 (error "No table at point"))) | |
3563 (let* ((txt (or txt | |
3564 (buffer-substring-no-properties (org-table-begin) | |
3565 (org-table-end)))) | |
3566 (lines (org-split-string txt "[ \t]*\n[ \t]*"))) | |
3567 | |
3568 (mapcar | |
3569 (lambda (x) | |
3570 (if (string-match org-table-hline-regexp x) | |
3571 'hline | |
3572 (org-split-string (org-trim x) "\\s-*|\\s-*"))) | |
3573 lines))) | |
3574 | |
3544 (defun orgtbl-send-table (&optional maybe) | 3575 (defun orgtbl-send-table (&optional maybe) |
3545 "Send a tranformed version of this table to the receiver position. | 3576 "Send a tranformed version of this table to the receiver position. |
3546 With argument MAYBE, fail quietly if no transformation is defined for | 3577 With argument MAYBE, fail quietly if no transformation is defined for |
3547 this table." | 3578 this table." |
3548 (interactive) | 3579 (interactive) |