Commit Graph

48 Commits

Author SHA1 Message Date
Kyle Meyer 93c11da002 Merge branch 'maint' 2020-01-01 13:39:26 -05:00
Kyle Meyer ff5fc050d3 Update copyright year to 2020 2020-01-01 13:38:46 -05:00
Gustav Wikström 1bdff9f73d Org document property-drawers
Add functionality to define property-blocks on document level, in
addition to at headline level.

* doc/org-manual.org:
* etc/ORG-NEWS: Document new functionality.

* lisp/org.el (org-keyword-regexp): Define constant instead of
  hardcoding.
(org-file-properties): Renamed, see next line.
(org-keyword-properties): Renamed from above.  Due to the fact that
  properties can be defined for the whole document using property
  drawers this local variable needs a rename to make its name less
  ambigous.
(org-refresh-properties, org-refresh-property, org-entry-properties)
(org-refresh-category-properties, org-get-property-block)
(org-entry-get-with-inheritance, org-entry-put)
(org-insert-property-drawer, org-end-of-subtree): Made to work before
  first headline.
(org-at-property-block-p): New function to validate if point is at the
start of a property block.
(org-property-global-value): Renamed, see next line.
(org-property-global-or-keyword-value): Renamed from above to match
  its functionality better.
(org-back-to-heading-or-point-min): New function to make a document
  work as a level 0 node in the outline.
(org-at-keyword-p): Predicate function to answer to if we're currently
at a keyword line or not.
(org-up-heading-or-point-min): New function to make a document work as
a level 0 node in the outline.

* lisp/org-element.el (org-element--current-element): Can now detect
  property-blocks before first headline according to it's positional
  rules.

* lisp/org-attach.el (org-attach): Make it possible to call the
  attachment dispatcher also before the first headline, since document
  property drawers make attachments possible for the whole document
  now.

* lisp/org-capture.el: Modified only due to rename of function in
  org.el.

* lisp/org-compat.el (org-file-properties)
(org-property-global-value): Renamed functions declared obsolete.

* testing/lisp/test-org.el (org/insert-property-drawer)
(org/set-property, org/delete-property, org/delete-property-globally):
  Additions of tests to check if they work before first headline.
(org/at-property-p, org/at-property-block-p, org/get-property-block)
(org/entry-get, org/refresh-properties): New tests

* testing/examples/property-inheritance.org: Switch from
  property-keywords to a property-drawer in the testfile.
  Functionality should be the same, but now using a document drawer
  instead of property-keywords.

  Reason for switching is that I'd like us to slowly depricate
  property-keywords.

* testing/lisp/test-org-element.el:

* contrib/lisp/ox-taskjuggler.el: A comment is modified only due to
  rename of function in org.el.
2019-10-19 14:07:58 +02:00
Kyle Meyer 3e1641ef0a Update copyright years 2018-01-07 00:27:54 -05:00
Nicolas Goaziou ea4e3dac6d Use `split-string' instead of `org-split-string'
* contrib/lisp/org-depend.el (org-depend-trigger-todo):
(org-depend-block-todo):
* contrib/lisp/ox-bibtex.el (org-bibtex-get-arguments):
* contrib/lisp/ox-koma-letter.el (org-koma-letter-template):
* contrib/lisp/ox-taskjuggler.el (org-taskjuggler--build-unique-id):
(org-taskjuggler-resolve-dependencies):
* lisp/ob-core.el (org-babel-insert-result):
* lisp/org-agenda.el (org-search-view):
* lisp/org-lint.el (org-lint-duplicate-target):
(org-lint-wrong-header-value):
* lisp/org.el (org--setup-collect-keywords):
(org-make-org-heading-search-string):
(org-search-radio-target):
(org-local-logging):
(org-entry-add-to-multivalued-property):
(org-entry-remove-from-multivalued-property):
(org-entry-member-in-multivalued-property):
(org-entry-get-multivalued-property):
(org-entry-put-multivalued-property):
(org-wrap):
* lisp/ox-beamer.el (org-beamer-allowed-property-values):
* lisp/ox.el (org-export--get-subtree-options):
(org-export--get-inbuffer-options): Use `split-string' instead of
`org-split-string'.
2017-09-07 14:36:50 +02:00
Nicolas Goaziou 601b8e1d52 Fix org-duration-to-minutes call on ox-taskjuggler
* contrib/lisp/ox-taskjuggler.el (org-taskjuggler--build-task): Fix
  typo.

TINYCHANGE
2017-09-05 23:54:29 +02:00
Nicolas Goaziou 7e8cf5f4c2 Use Org duration library
* contrib/lisp/org-depend.el (org-depend-trigger-todo): Use new
  functions.

* contrib/lisp/org-invoice.el (org-invoice-heading-info):
(org-invoice-info-to-table):
(org-invoice-list-to-table): Use new functions.

* contrib/lisp/ox-taskjuggler.el (org-taskjuggler--build-task): Use
  new functions.

* lisp/org-agenda.el (org-agenda-show-clocking-issues):
(org-agenda-format-item):
(org-agenda-filter-effort-form): Use new functions.

* lisp/org-clock.el (org-clock-get-clock-string):
(org-clock-modify-effort-estimate):
(org-clock-notify-once-if-expired):
(org-clock-out):
(org-clock-display):
(org-clock-put-overlay):
(org-clocktable-write-default): Use new functions.

* lisp/org-table.el (org-table-sort-lines): Use new functions.

* lisp/org.el (org-properties-postprocess-alist):
(org-refresh-effort-properties):
(org-set-effort):
(org-entry-properties):
(org-property-next-allowed-value): Use new functions.

(org-time-clocksum-format):
(org-time-clocksum-use-fractional):
(org-time-clocksum-use-fractional-format):
(org-time-clocksum-use-effort-durations): Declare as obsolete.  Move
to "org-compat.el".

(org-minutes-to-clocksum-string):
(org-hh:mm-string-to-minutes):
(org-duration-string-to-minutes): Declare as obsolete.  Move to
"org-compat.el".
(org-hours-to-clocksum-string): Remove function.

* lisp/org-colview.el (org-columns--collect-values): Use new
  functions.
(org-columns--duration-re): Remove variable.
(org-columns--time-to-seconds): Rename to...
(org-columns--age-to-minutes): ... this.
(org-columns--format-age): New function.
(org-columns--summary-apply-times):
(org-columns--summary-min-age):
(org-columns--summary-max-age):
(org-columns--summary-mean-age): Use new functions.

* testing/lisp/test-org-clock.el (test-org-clock-clocktable-contents-at-point):
* testing/lisp/test-org-colview.el (test-org-colview/columns-summary):
  Update tests.
2017-02-13 14:41:15 +01:00
Kyle Meyer 713f785017 Update copyright years 2017-01-05 20:19:37 -05:00
Nicolas Goaziou 0ac099a6f8 Remove final parts of XEmacs compatibility code
* lisp/org-compat.el: Declare `org-add-hook', `org-decompose-region',
  `org-detach-overlay', `org-file-equal-p', `org-float-time',
  `org-indent-line-to', `org-indent-to-column', `org-looking-at-p',
  `org-looking-back', `org-propertize', `org-re' and
  `org-select-frame-set-input-focus' as obsolete.
(org-overlay-display, org-overlay-before-string, org-find-overlays):
Move to "org.el"
(org-xemacs-key-equivalents, org-xemacs-p): Remove variables.
(org-region-active-p): Drop XEmacs support.
(org-xemacs-without-invisibility): Remove macro.
(org-get-x-clipboard-compat): Remove function.
* lisp/org-macs.el (org-match-string-no-properties): Remove function.

* lisp/ob-core.el:
* lisp/org-agenda.el:
* lisp/org-archive.el:
* lisp/org-clock.el:
* lisp/org-colview.el:
* lisp/org-crypt.el:
* lisp/org-element.el:
* lisp/org-faces.el:
* lisp/org-feed.el:
* lisp/org-footnote.el:
* lisp/org-habit.el:
* lisp/org-id.el:
* lisp/org-indent.el:
* lisp/org-inlinetask.el:
* lisp/org-lint.el:
* lisp/org-list.el:
* lisp/org-mouse.el:
* lisp/org-pcomplete.el:
* lisp/org-src.el:
* lisp/org-table.el:
* lisp/org-timer.el:
* lisp/org.el:
* lisp/ox-ascii.el:
* lisp/ox-odt.el:
* lisp/ox.el:
* contrib/lisp/org-notify.el:
* contrib/lisp/ox-taskjuggler.el:
* contrib/lisp/org-wikinodes.el:
* testing/lisp/test-org-src.el:
* testing/lisp/test-org.el: Silence byte-compiler.
2016-05-26 13:56:25 +02:00
Kyle Meyer 6bc48c5f41 Update copyright years 2016-01-09 17:12:03 -05:00
Christian Egli e8a2f33519 Merge branch 'maint' 2014-11-06 09:17:34 +01:00
Christian Egli 2917bcff35 ox-taskjuggler.el: Add a note about multiline properties
* contrib/lisp/ox-taskjuggler.el (org-taskjuggler-valid-task-attributes):
Add a comment saying that multiline properties are not supported.
2014-11-06 09:03:50 +01:00
Christian Egli 75ebbf165d ox-taskjuggler.el: Fix a link in the commentary
* contrib/lisp/ox-taskjuggler.el: Fix a link to an example project
planning file by Peter Jones.
2014-11-06 09:03:28 +01:00
Christian Egli 1f51836c57 ox-taskjuggler.el: Fix fetching of dependency options
* contrib/lisp/ox-taskjuggler.el (org-taskjuggler-format-dependencies):
Pass string that was used in string-match to
org-match-string-no-properties. This fixes a problem with dependency
options.
2014-11-06 09:02:38 +01:00
Bastien Guerry c8a80c23a3 Fix trailing whitespaces from previous patch 2014-07-27 17:02:50 +02:00
tj@data-driven.de feb048de3f Taskjuggler: Add valid project attributes
* ox-taskjuggler.el (org-taskjuggler--build-project): Insert all
   valid attributes from project.

* ox-taskjuggler.el (org-taskjuggler--build-attributes): Add project
  as possible ITEM to docstring.

* ox-taskjuggler.el (org-taskjuggler-valid-project-attributes): New
  defcustom.

As reported by Nick Garber, project attributes like 'timingresolution'
could not be changed via Org-mode properties. This patch makes the
exporter treat project-attributes just like it treats task-, resource-
and report-attributes.
2014-07-27 17:02:28 +02:00
Bastien Guerry 7d9a883b50 Update copyright years again.
Hint: copyright years are all updated in Emacs.
2014-01-07 14:18:17 +01:00
Bastien Guerry 0beda99171 Revert "Update copyright years."
This reverts commit 21105594fc.
2014-01-05 06:28:07 +01:00
Bastien Guerry 21105594fc Update copyright years. 2014-01-04 18:56:11 +01:00
Nicolas Goaziou 0113f4f80f ox-taskjuggler: Fix effort property
* contrib/lisp/ox-taskjuggler.el (org-taskjuggler--build-task): Fix
  effort property if `org-effort-property' was changed.
2013-10-23 18:23:55 +02:00
Nicolas Goaziou 9154c70a04 Export back-ends: Apply changes to export functions
* contrib/lisp/ox-confluence.el (org-confluence-export-as-confluence):
* contrib/lisp/ox-deck.el (org-deck-export-as-html,
  org-deck-export-to-html):
* contrib/lisp/ox-freemind.el (org-freemind-export-to-freemind):
* contrib/lisp/ox-groff.el (org-groff-export-to-groff,
  org-groff-export-to-pdf):
* contrib/lisp/ox-koma-letter.el (org-koma-letter-export-as-latex,
  org-koma-letter-export-to-latex, org-koma-letter-export-to-pdf):
* contrib/lisp/ox-rss.el (org-rss-export-as-rss,
  org-rss-export-to-rss):
* contrib/lisp/ox-s5.el (org-s5-export-as-html,
  org-s5-export-to-html):
* contrib/lisp/ox-taskjuggler.el (org-taskjuggler-export):
* lisp/ob-haskell.el:
* lisp/ox-ascii.el (org-ascii-export-as-ascii,
  org-ascii-export-to-ascii):
* lisp/ox-beamer.el (org-beamer-export-as-latex,
  org-beamer-export-to-latex, org-beamer-export-to-pdf):
* lisp/ox-html.el (org-html-export-as-html, org-html-export-to-html):
* lisp/ox-icalendar.el (org-icalendar-export-to-ics):
* lisp/ox-latex.el (org-latex-export-as-latex,
  org-latex-export-to-pdf):
* lisp/ox-man.el (org-man-export-to-man, org-man-export-to-pdf):
* lisp/ox-md.el (org-md-export-as-markdown,
  org-md-export-to-markdown):
* lisp/ox-odt.el (org-odt-export-to-odt):
* lisp/ox-org.el (org-org-export-as-org, org-org-export-to-org):
* lisp/ox-publish.el (org-publish-org-to):
* lisp/ox-texinfo.el (org-texinfo-export-to-texinfo,
  org-texinfo-export-to-info):
* testing/lisp/test-ob-exp.el (test-ob-exp/org-babel-exp-src-blocks/w-no-file):
2013-08-07 16:11:42 +02:00
Nicolas Goaziou 61d8ebd472 ox-taskjuggler: Small fix
* contrib/lisp/ox-taskjuggler.el (org-taskjuggler-assign-task-ids):
  Small fix.
2013-05-24 14:39:06 +02:00
Christian Egli 0de6a339ed ox-taskjuggler.el: Fix byte compiler warnings
* ox-taskjuggler.el (org-taskjuggler-get-project)
(org-taskjuggler-resolve-dependencies): Fix references to free
variables.
2013-05-24 12:14:28 +02:00
Christian Egli 40635b2b4c ox-taskjuggler.el: Handle the case of an empty document title
* ox-taskjuggler.el (org-taskjuggler-project-plan): Use the
project name as the title of the (default) report if the
document title is empty.

Thanks to Eric S Fraga for reporting this bug.
2013-05-03 12:15:58 +02:00
Christian Egli 7132081e92 ox-taskjuggler.el: Fix a typo in org-taskjuggler-get-start
* ox-taskjuggler.el (org-taskjuggler-get-start): Use memq
instead of member as we are searching for symbols.  Also
search in valid-task-attributes instead of
valid-resource-attributes.
2013-04-30 15:50:07 +02:00
Christian Egli 21a4b9eea1 ox-taskjuggler.el: Resolve dependencies also against ID property
* ox-taskjuggler.el (org-taskjuggler-resolve-dependencies): When
resolving dependencies do not only look for matching task_id
properties but also for the standard ID property.

That way the user can make use of the standard org-id functionality to
create unique ids for a task and yanking the id in another task as a
BLOCKER.
2013-04-26 11:56:09 +02:00
Christian Egli fe58e60126 ox-taskjuggler.el: Improve doc strings
* ox-taskjuggler.el (org-taskjuggler-process-command): Improve doc
string.
2013-04-26 11:51:47 +02:00
Christian Egli 20fa3dc561 ox-taskjuggler.el: Replace %title in default reports by document title
* ox-taskjuggler.el (org-taskjuggler-default-reports)
(org-taskjuggler-project-plan): If the default reports contain
%title it will be replaced with the document title.

This is based on a suggestion by John Hendy.
2013-04-26 11:50:13 +02:00
Christian Egli 7187fdcb9d Use both scheduled and the start property to determine start
* ox-taskjuggler.el (org-taskjuggler-get-start): Use both the
scheduled and the start property (if it is in
org-taskjuggler-valid-resource-attributes) to determine the
start of a task or the project.

Thanks to John Hendy for the report and thorough analysis.
2013-04-24 10:20:54 +02:00
Christian Egli 4873682eb1 ox-taskjuggler.el: Add a TODO to support org-export-with-planning
* ox-taskjuggler.el: Add a TODO to support org-export-with-planning.
2013-04-23 11:51:22 +02:00
Christian Egli d0ea76fe19 ox-taskjuggler.el: Add a command to process and open an exported file for tj3
* ox-taskjuggler.el (org-taskjuggler-process-command)
(org-taskjuggler-reports-directory): Add a defcustom to define
the tj3 command and the directory where the reports are to be
generated.
(org-taskjuggler-export-and-process)
(org-taskjuggler-export-process-and-open): Split the command
so that you can now process and open in separate commands.
(org-taskjuggler-compile): New function to process a tjp file
using org-taskjuggler-process-command.

Finally we have support for processing and opening the exported file
with tj3.  For TaskJuggler 2.4 this always worked. Now it also works
for tj3.  `org-taskjuggler-export-and-process' exports the file and
runs it through tj3.  `org-taskjuggler-export-process-and-open'
additionally opens the reports in a browser.
2013-04-23 11:49:43 +02:00
Baptiste 774b532679 ox-taskjuggler.el (org-taskjuggler--build-task): Fix code typo
* ox-taskjuggler.el (org-taskjuggler--build-task): Fix code typo.

TINYCHANGE
2013-04-20 09:19:21 +02:00
Nicolas Goaziou 77476cae03 ox-taskjuggler.el: Fix dependencies string
* contrib/lisp/ox-taskjuggler.el (org-taskjuggler-format-dependencies):
  Fix dependencies string.
2013-04-19 13:14:29 +02:00
Christian Egli 4b5b117ad4 ox-taskjuggler: Set the default reports to work out-of-the-box with tj3
* ox-taskjuggler.el (org-taskjuggler-default-reports): Set the default
reports so that the user gets a good out-of-the-box experience with
tj3.

The defaults in the defcustom now out-of-the-box support tj3. If you
really want to export to taskjuggler 2.x the documentation explains
how you can do that.
2013-04-18 12:23:08 +02:00
Christian Egli 2ba19bb803 ox-taskjuggler: Fix checkdoc warnings
* ox-taskjuggler.el (org-taskjuggler-assign-task-ids,
org-taskjuggler-assign-resource-ids, org-taskjuggler-get-id,
org-taskjuggler-project-plan):  Fix checkdoc warnings.
2013-04-17 17:43:46 +02:00
Christian Egli c1c4fcdb0c ox-taskjuggler: Fix compilation warnings
* ox-taskjuggler.el (org-taskjuggler--build-task,
org-taskjuggler--build-project): Fix compilation warnings.
2013-04-17 16:01:07 +02:00
Christian Egli bbf70e74fb Taskjuggler: Adapt comment section and some doc strings to tj3
* ox-taskjuggler.el: Update the comment section to TaskJuggler
3.x.
(org-taskjuggler-target-version): Add a link to
`org-taskjuggler-default-reports' to make it clear that both
need to be changed in order to support TaskJuggler 2.4.
2013-04-12 22:24:18 +02:00
Nicolas Goaziou 82438e23f6 ox-taskjuggler: Fix dependencies resolution
* contrib/lisp/ox-taskjuggler.el (org-taskjuggler-format-dependencies):
  Fix dependencies resolution.
2013-04-01 17:17:55 +02:00
Nicolas Goaziou 989fae0c79 ox-taskjuggler: Use task_id property when specified
* contrib/lisp/ox-taskjuggler.el (org-taskjuggler--build-unique-id):
  Use specified id (TASK_ID property) when possible.
2013-04-01 16:59:26 +02:00
Bastien Guerry 5c63007721 contrib/lisp/*: Use `org-export-define-*backend' as defuns, not macros
* ox-taskjuggler.el (taskjuggler):
* ox-s5.el (s5):
* ox-rss.el (rss):
* ox-koma-letter.el (koma-letter):
* ox-groff.el (groff):
* ox-freemind.el (freemind):
* ox-deck.el (deck):
* ox-confluence.el (confluence): Use
`org-export-define-backend' or
`org-export-define-derived-backend' as defuns, not macros.
2013-03-19 19:39:34 +01:00
Bastien Guerry 7513f16182 contrib/lisp/*el: Fix license information and add "This file is not part..."
Also do some aesthetic code clean-up in org-drill.el.
2013-03-10 17:57:47 +01:00
Christian Egli c810fd0472 Taskjuggler export: Target tj3 by default
* contrib/lisp/ox-taskjuggler.el (org-taskjuggler-target-version): The
  default target is now tj3

Since taskjuggler is not developed anymore and hardly any
distributions carry it anymore we ought to target tj3 by default now.
2013-03-08 18:17:20 +01:00
Christian Egli 99ee65b73f Taskjuggler export: Only create a milestone if node has no children
* contrib/lisp/ox-taskjuggler.el (org-taskjuggler--build-task): Fix
  the check whether a node has no children

A milestone should only (automatically) be inserted if a node has no
children and no duration defined.
2013-03-08 18:17:18 +01:00
Christian Egli 971afe66d2 Taskjuggler export: Fix a reference to a defcustom
* contrib/lisp/ox-taskjuggler.el (org-taskjuggler--build-task): Fix
  the reference to the target-version defcustom
2013-03-08 18:17:15 +01:00
Bastien Guerry 9c754e2f51 contrib/lisp/: Fix some local variables settings 2013-03-06 23:46:52 +01:00
Bastien Guerry c7092b796d Remove :version keyword in non-emacs libraries 2013-02-26 17:57:13 +01:00
Bastien Guerry 8ee6c13c7f Fix typo: an headline -> a headline. 2013-02-23 13:47:44 +01:00
Nicolas Goaziou af9191d18b ox-taskjuggler: Port TaskJuggler back-end to new export framework
* contrib/lisp/ox-taskjuggler.el: New file.
* lisp/org.el (org-export-backends): Add new back-end in customize
  interface.
2013-02-18 00:26:39 +01:00