Commit Graph

1232 Commits

Author SHA1 Message Date
Nicolas Goaziou e4c2540b68 org-element: Add a function to fill an element
* contrib/lisp/org-element.el (org-element-fill-paragraph): New function.
* testing/lisp/test-org-element.el: Add tests.
2012-05-05 17:43:42 +02:00
Nicolas Goaziou 88032eed64 org-element: `org-element-map' applies to strings and secondary strings
* contrib/lisp/org-element.el (org-element-map): `org-element-map' now
  applies to strings and secondary strings.
* testing/lisp/test-org-element.el: Add tests.
2012-05-05 17:43:42 +02:00
Nicolas Goaziou 5cbc56a175 org-element: Small modification to `org-element-block-name-alist'
* contrib/lisp/org-element.el (org-element-block-name-alist): Directly
  store parser's name in CDR.
2012-05-05 12:41:32 +02:00
Nicolas Goaziou 761add3580 org-element: Remove an obsolete defconst
* contrib/lisp/org-element.el (org-element--element-block-re): Remove
  variable.
2012-05-05 11:31:05 +02:00
Nicolas Goaziou ed9a748057 org-element: Refactor navigation tools
* contrib/lisp/org-element.el (org-element-at-point,
  org-element-backward, org-element-up, org-element-down,
  org-element-drag-backward): Refactor.
(org-element-swap-A-B): Handle the case of the first paragraph in an
item.
(org-element-transpose): New function.
(org-transpose-elements): Removed function.
(org-element-unindent-buffer): Correctly un-indent contents of
headlines.
* testing/lisp/test-org-element.el: Add tests.
2012-05-05 09:15:33 +02:00
Nicolas Goaziou b137cdb296 org-element: Fix to footnote-definition parsing
* contrib/lisp/org-element.el (org-element-footnote-definition-parser):
Fix bug when parsing a footnote definition at end of buffer.
* testing/lisp/test-org-element.el: Add test.
2012-05-05 09:15:33 +02:00
Nicolas Goaziou 2a6b7c87f4 org-element: Remove :level attribute from plain-list elements
* contrib/lisp/org-element.el (org-element-plain-list-parser):
  Remove :level attribute from plain-list elements since it isn't
  directly related to the plain-list and can be computed during export
  process.
* contrib/lisp/org-e-latex.el (org-e-latex-item): Compute list level.
* contrib/lisp/org-e-html.el (org-e-html-item): Remove unneeded
  reference to :level attribute.
* contrib/lisp/org-e-odt.el (org-e-odt-item): Remove unneeded
  reference to :level attribute.
2012-05-05 09:15:33 +02:00
Nicolas Goaziou d83ab52626 org-element: Refactor code, add tests
* contrib/lisp/org-element.el (org-element-babel-call-parser): Be sure
  to match "#+CALL:".
(org-element-block-name-alist): New variable.
(org-element-non-recursive-block-alist): Removed variable.
(org-element-current-element): Refactor.
* testing/lisp/test-org-element.el: Add tests.
2012-05-05 09:15:33 +02:00
Paul Sexton 5412883c1d org-drill: prevent errors caused by attempting to display inline images on a non-graphical display. 2012-05-05 08:09:22 +12:00
Nicolas Goaziou 72ca00ca09 org-e-ascii: Fix table export bug when ignoring sub/superscript
* contrib/lisp/org-e-ascii.el (org-e-ascii--table-cell-width):
  Refactor code.
* contrib/lisp/org-export.el: Do not normalize contents when expanding
  them, since it will be done at the end of the function, and only for
  elements.
2012-05-04 14:02:41 +02:00
Nicolas Goaziou 01d83dc1f4 org-export: Fix table export bug with cells made of only one object
* contrib/lisp/org-export.el (org-export-table-row-is-special-p,
  org-export-table-cell-width, org-export-table-cell-alignment):
  Ensure cell only contains a string before trying to match width
  cookie.
* testing/lisp/test-org-export.el: Modify tests accordingly.

Thanks to Eric Fraga for discovering and investigating about this.
2012-05-03 14:29:30 +02:00
Nicolas Goaziou f4791557e2 org-element: Store fixed-with and comment contents without markers
* contrib/lisp/org-element.el (org-element-comment-parser): Store
  comments without leading hash and maybe plus sign.
(org-element-fixed-width-parser): Store fixed-width contents without
leading colons.
(org-element-comment-interpreter,
org-element-fixed-width-interpreter): Apply changes.
* contrib/lisp/org-e-odt.el (org-e-odt-fixed-width): Apply changes to
  fixed-width `:value' property.
* contrib/lisp/org-e-latex.el (org-e-latex-fixed-width): Apply changes
  to fixed-width `:value' property.
* contrib/lisp/org-e-html.el (org-e-html-fixed-width): Apply changes
  to fixed-width `:value' property.
* contrib/lisp/org-e-ascii.el (org-e-ascii-fixed-width): Apply changes
  to fixed-width `:value' property.
* testing/lisp/test-org-element.el: Add tests.
2012-05-02 17:25:30 +02:00
Nicolas Goaziou 172d7a6f5e org-element: Apply `org-translate-link' when parsing a link
* contrib/lisp/org-element.el (org-element-link-parser): Apply
  `org-translate-link' when parsing a link.
* testing/lisp/test-org-element.el: Add test.
2012-05-01 15:47:14 +02:00
Nicolas Goaziou 32a5920e69 org-element: Internally store headline/inlinetask's tags as a list of strings
* contrib/lisp/org-element.el (org-element-headline-parser,
  org-element-headline-interpreter, org-element-inlinetask-parser,
  org-element-inlinetask-interpreter): Store headline/inlinetask's
  tags as a list of strings.
* contrib/lisp/org-export.el (org-export--selected-trees,
  org-export--skip-p): Use new tag representation.
* contrib/lisp/org-e-ascii.el (org-e-ascii--build-title,
  org-e-ascii-format-inlinetask-function, org-e-ascii-inlinetask): Use
  new tag representation.
* contrib/lisp/org-e-html.el (org-e-html-format-headline-function,
  org-e-html-format-inlinetask-function, org-e-html--tags): Use new
  tag representation.
* contrib/lisp/org-e-latex.el (org-e-latex-format-headline-function,
  org-e-latex-format-inlinetask-function, org-e-latex-headline,
  org-e-latex-inlinetask): Use new tag representation.
* contrib/lisp/org-e-odt.el (org-e-odt-format-org-tags): Use new tag
  representation.
* testing/lisp/test-org-element.el: Update test.
2012-05-01 14:29:40 +02:00
Nicolas Goaziou 4f8e1e85b2 org-element: Interpret headlines without a `:pre-blank' property
* contrib/lisp/org-element.el (org-element-headline-interpreter):
  Interpret headlines without a `:pre-blank' property.
2012-05-01 12:20:06 +02:00
Nicolas Goaziou 49228181ee org-element: code clean-up and some optimizations
* contrib/lisp/org-element.el (org-element-center-block-parser,
  org-element-plain-list-parser, org-element-quote-block-parser,
  org-element-special-block-parser, org-element-comment-parser,
  org-element-comment-block-parser, org-element-example-block-parser,
  org-element-export-block-parser, org-element-fixed-width-parser,
  org-element-horizontal-rule-parser, org-element-keyword-parser,
  org-element-latex-environment-parser, org-element-paragraph-parser,
  org-element-property-drawer-parser, org-element-src-block-parser,
  org-element-table-parser): Since parser will alway be called at the
  beginning of the element, simplify code.
2012-05-01 01:02:48 +02:00
Nicolas Goaziou 2ab6367daf org-element: Interpret correctly switches in example blocks
* contrib/lisp/org-element.el (org-element-example-block-interpreter):
  Interpret correctly switches in example blocks.
* testing/lisp/test-org-element.el: Add test.
2012-04-30 23:44:30 +02:00
Nicolas Goaziou 537ab2ada3 org-element: Interpret secondary strings with `org-element-interpret-data'
* contrib/lisp/org-element.el (org-element-headline-interpreter,
  org-element-inlinetask-interpreter, org-element-item-interpreter,
  org-element-footnote-reference-interpreter,
  org-element-interpret--affiliated-keywords): Use
  `org-element-interpret-data' instead of
  `org-element-interpret-secondary'.
(org-element-interpret-data): Handle secondary strings.  Refactor
code.
(org-element-interpret-secondary): Remove function
* contrib/lisp/org-export.el (org-export-table-cell-alignment): Use
  `org-element-interpret-data' instead of
  `org-element-interpret-secondary'.
2012-04-30 20:10:54 +02:00
Nicolas Goaziou 03813d9bc4 org-export: Secondary strings are transcoded with `org-export-data'
* contrib/lisp/org-export.el (org-export-transcoder): New function.
(org-export-data): Also export secondary strings.  Refactored.
(org-export-secondary-string): Remove function.
(org-export-expand): Fix code indentation.
(org-export-expand-macro): Use `org-export-data' instead of
`org-export-secondary-string'.
* contrib/lisp/org-e-ascii.el (org-e-ascii--build-title,
  org-e-ascii--build-caption, org-e-ascii--list-listings,
  org-e-ascii--list-tables, org-e-ascii--describe-links,
  org-e-ascii-template--document-title, org-e-ascii-inlinetask,
  org-e-ascii-item, org-e-ascii-link, org-e-ascii-quote-section,
  org-e-ascii--table-cell-width): Use `org-export-data' instead of
  `org-export-secondary-string'.
* contrib/lisp/org-e-html.el (org-e-html-footnote-section,
org-e-html--caption/label-string, org-e-html-meta-info,
org-e-html-preamble, org-e-html-template,
org-e-html-format-headline--wrap, org-e-html-headline,
org-e-html-item, org-e-html-link): Use `org-export-data' instead of
`org-export-secondary-string'.
* contrib/lisp/org-e-latex.el (org-e-latex--caption/label-string,
  org-e-latex-template, org-e-latex-footnote-reference,
  org-e-latex-headline, org-e-latex-inlinetask, org-e-latex-item,
  org-e-latex-link, org-e-latex-src-block): Use `org-export-data'
  instead of `org-export-secondary-string'.
* contrib/lisp/org-e-odt.el (org-e-odt-format-preamble,
  org-e-odt-format-label, org-e-odt-update-meta-file,
  org-e-odt--caption/label-string, org-e-odt-footnote-def,
  org-e-odt-format-headline--wrap, org-e-odt-headline, org-e-odt-item,
  org-e-odt-latex-environment, org-e-odt-link, org-e-odt-src-block):
  Use `org-export-data' instead of `org-export-secondary-string'.
2012-04-30 20:10:54 +02:00
Nicolas Goaziou 15315c5cc6 org-element: Fix src-block switches parsing
* contrib/lisp/org-element.el (org-element-src-block-parser): Fix
  switches parsing.
* testing/lisp/test-org-element.el: Add test.
2012-04-30 18:21:35 +02:00
Nicolas Goaziou 99a5d6bea8 org-element: Small fix to previous commit
* contrib/lisp/org-element.el (org-element-export-snippet-parser):
  Small fix.
* testing/lisp/test-org-export.el: Fix test.
2012-04-30 17:49:55 +02:00
Nicolas Goaziou 803d76825a org-element: Change to export-snippet syntax
* contrib/lisp/org-element.el (org-element-export-snippet-parser):
  Change syntax from @back-end{contents} to <back-end@contents>.
(org-element-export-snippet-successor): Use new syntax
* testing/lisp/test-org-element.el: Add test.

This change is required as curly braces conflict with LaTeX syntax
when trying to break a command in two parts.  On the other hand, HTML
tags can be broken easily in two.  More explicitely, both the
following constructs are possible now:

  <latex@\textsc{>Name<latex@}> and <html@<b>>
2012-04-30 17:34:01 +02:00
Nicolas Goaziou bea597be96 org-export: Add `active' and `inactive' alternatives to `org-export-with-timestamps'
* contrib/lisp/org-export.el (org-export-with-timestamps): Allow to
  keep only active timestamps or inactive ones with respectively
  `active' and `inactive' values.
(org-export--skip-p): Update tests to determine if a timestamp should
be ignored.
* testing/lisp/test-org-export.el: Add tests.
* contrib/lisp/org-element.el: Fix some comments.
2012-04-29 22:55:37 +02:00
Nicolas Goaziou e3dfe717c8 org-export: Use (org-version) for creator string
* contrib/lisp/org-export.el (org-export-creator-string):
  Use (org-version) for creator string.
2012-04-29 15:52:14 +02:00
Nicolas Goaziou b5f4b526ca org-element: Rename `time-stamp' object type into `timestamp' 2012-04-29 02:26:57 +02:00
Nicolas Goaziou 941f90a649 org-export: Export `clock' and `planning' elements
* contrib/lisp/org-export.el (org-export-option-alist): Add new
  filters.
(org-export-with-clocks, org-export-with-planning,
org-export-filter-clock-functions,
org-export-filter-planning-functions): New variables.
(org-export--skip-p): Skip `clock' and `planning' types depending on
export options.
* contrib/lisp/org-e-ascii.el (org-e-ascii-clock,
  org-e-ascii-planning): New functions.
(org-e-ascii-time-stamp): Update function.  Use `org-translate-time'.
* contrib/lisp/org-e-html.el (org-e-html-clock, org-e-html-planning):
  New functions.
(org-e-html-time-stamp): Update function.
* contrib/lisp/org-e-latex.el (org-e-latex-clock,
  org-e-latex-planning): New functions.
(org-e-latex-time-stamp): Update function.  Use `org-translate-time'.
* contrib/lisp/org-e-odt.el (org-e-odt-clock, org-e-odt-planning): New
  functions.
(org-e-odt-time-stamp): Update function.  Use `org-translate-time'.
* testing/lisp/test-org-export.el: Add tests.
2012-04-29 02:26:33 +02:00
Nicolas Goaziou 5cd9c01757 org-element: Add `clock' and `planning' element types
* contrib/lisp/org-element.el (org-element-babel-call-parser): Fix
  property name.
(org-element-babel-call-interpreter, org-element--element-block-re):
Fix docstring.
(org-element-clock-parser, org-element-clock-interpreter,
org-element-planning-parser, org-element-planning-interpreter): New
functions.
(org-element-time-stamp-parser): Move planning keywords out of the
object: no more `:appt-type' property
(org-element-time-stamp-interpreter,
org-element-time-stamp-successor): Apply changes to previous function.
(org-element-paragraph-separate): Time keywords also end paragraphs.
(org-element-all-elements): Register new elements types.
(org-element-current-element): Recognize new elements.
(org-element-parse-elements): Fix comments.
* testing/lisp/test-org-element.el: Add tests.
2012-04-29 02:26:33 +02:00
Nicolas Goaziou 3621634861 org-element: Fix code typo
* contrib/lisp/org-element.el (org-element-object-successor-alist):
  Fix code typo.
2012-04-28 21:12:56 +02:00
Nicolas Goaziou fd5f561a3e org-element: Fix block parsing
* contrib/lisp/org-element.el (org-element-current-element): Fix
  regexp for block boundaries.
* testing/lisp/test-org-element.el (test-org-element/block-switches):
  Fix test.
2012-04-28 21:12:30 +02:00
Nicolas Goaziou 676846cd85 org-element: Don't forget to register new objects
* contrib/lisp/org-element.el (org-element-all-objects): Register new objects.
2012-04-28 19:01:25 +02:00
Nicolas Goaziou f70afc42ef org-export: Fix tests
* contrib/lisp/org-export.el (org-export-filters-alist): Remove
  unexistant filters.
2012-04-28 18:08:37 +02:00
Nicolas Goaziou b21b6ead24 org-element: Define new objects (bold, code, italic, ...)
* contrib/lisp/org-e-ascii.el (org-e-ascii-option-alist): Fix typo.
(org-e-ascii-bold, org-e-ascii-code, org-e-ascii-strike-through,
org-e-ascii-underline): New functions.
(org-e-ascii-emphasis): Remove function.
* contrib/lisp/org-e-html.el (org-e-html-text-markup-alist): Variable
  renamed from `org-e-html-emphasis-alist'.  Change value type.
(org-e-html-bold, org-e-html-italic, org-e-html-strike-through,
org-e-html-underline): New functions.
(org-e-html-verbatim): Update function.
(org-e-html-emphasis): Remove function.
* contrib/lisp/org-e-latex.el (org-e-latex-text-markup-alist):
  Variable renamed from `org-e-latex-emphasis-alist'.  Change value
  type.
(org-e-latex-center-block): Fix docstring.
(org-e-latex--text-markup, org-e-latex-bold, org-e-latex-code,
org-e-latex-italic, org-e-latex-strike-through,
org-e-latex-underline): New functions.
(org-e-latex-verbatim): Update function.
(org-e-latex-emphasis): Remove function.
* contrib/lisp/org-e-odt.el (org-e-odt-bold, org-e-odt-code,
  org-e-odt-italic, org-e-odt-strike-through, org-e-odt-underline):
  New functions.
(org-e-odt-verbatim): Update function.
(org-e-odt-center-block): Fix docstring.
(org-e-odt-emphasis): Remove function.
* contrib/lisp/org-element.el (org-element-bold-parser):
(org-element-bold-interpreter, org-element-code-parser,
org-element-code-interpreter, org-element-italic-parser,
org-element-italic-interpreter, org-element-strike-through-parser,
org-element-strike-through-interpreter, org-element-underline-parser,
org-element-underline-interpreter): New functions.
(org-element-emphasis-parser, org-element-emphasis-interpreter):
Remove functions.
(org-element-verbatim-parser, org-element-verbatim-interpreter,
org-element-text-markup-successor): Update function.
(org-element-object-successor-alist): Add associations for new object
types.
(org-element-recursive-objects): Add `bold', `italic',
`strike-through' and `underline' as recursive types.
(org-element-object-restrictions): Add restrictions for new recursive
object types.
* contrib/lisp/org-export.el (org-export-filters-alist): Add filters
  for new object types.
(org-export-with-todo-keywords): Add missing keywords.
(org-export-filter-center-block-functions,
org-export-filter-drawer-functions,
org-export-filter-dynamic-block-functions,
org-export-filter-headline-functions,
org-export-filter-inlinetask-functions,
org-export-filter-plain-list-functions,
org-export-filter-item-functions, org-export-filter-comment-functions,
org-export-filter-comment-block-functions,
org-export-filter-example-block-functions,
org-export-filter-export-block-functions,
org-export-filter-fixed-width-functions,
org-export-filter-footnote-definition-functions,
org-export-filter-horizontal-rule-functions,
org-export-filter-keyword-functions,
org-export-filter-latex-environment-functions,
org-export-filter-babel-call-functions,
org-export-filter-paragraph-functions,
org-export-filter-property-drawer-functions,
org-export-filter-quote-section-functions,
org-export-filter-quote-block-functions,
org-export-filter-section-functions,
org-export-filter-special-block-functions,
org-export-filter-src-block-functions,
org-export-filter-table-functions,
org-export-filter-table-cell-functions,
org-export-filter-table-row-functions,
org-export-filter-verse-block-functions,
org-export-filter-entity-functions,
org-export-filter-export-snippet-functions,
org-export-filter-footnote-reference-functions,
org-export-filter-inline-babel-call-functions,
org-export-filter-inline-src-block-functions,
org-export-filter-latex-fragment-functions,
org-export-filter-line-break-functions,
org-export-filter-link-functions, org-export-filter-macro-functions,
org-export-filter-radio-target-functions,
org-export-filter-statistics-cookie-functions,
org-export-filter-subscript-functions,
org-export-filter-superscript-functions,
org-export-filter-target-functions,
org-export-filter-time-stamp-functions,
org-export-filter-verbatim-functions): Fix docstring.
(org-export-filter-bold-functions, org-export-filter-code-functions,
org-export-filter-italic-functions,
org-export-filter-strike-through-functions,
org-export-filter-underline-functions): New variables.
(org-export-filter-emphasis-functions): Remove variable.
* testing/lisp/test-org-element.el: Add tests.
2012-04-28 18:00:50 +02:00
Nicolas Goaziou 312e225685 org-export: Remove unnecessary back-end arguments
* contrib/lisp/org-e-ascii.el (org-e-ascii--build-title,
  org-e-ascii--build-caption, org-e-ascii--list-listings,
  org-e-ascii--list-tables, org-e-ascii--describe-links,
  org-e-ascii-template--document-title, org-e-ascii-dynamic-block,
  org-e-ascii-inlinetask, org-e-ascii-item, org-e-ascii-link,
  org-e-ascii-quote-section, org-e-ascii--table-cell-width): Do not
  provide back-end symbol.
* contrib/lisp/org-e-html.el (org-e-html--caption/label-string,
  org-e-html-footnote-section, org-e-html-template,
  org-e-html-dynamic-block, org-e-html-format-headline--wrap,
  org-e-html-headline, org-e-html-item, org-e-html-link,
  org-e-html-time-stamp): Do not provide back-end symbol.
* contrib/lisp/org-e-latex.el (org-e-latex--caption/label-string,
  org-e-latex-template, org-e-latex-dynamic-block,
  org-e-latex-footnote-reference, org-e-latex-headline,
  org-e-latex-inlinetask, org-e-latex-item, org-e-latex-link,
  org-e-latex-src-block): Do not provide back-end symbol.
* contrib/lisp/org-e-odt.el (org-e-odt-format-preamble,
  org-e-odt-format-label, org-e-odt-write-manifest-file,
  org-e-odt--caption/label-string, org-e-odt-dynamic-block,
  org-e-odt-format-headline--wrap, org-e-odt-headline, org-e-odt-item,
  org-e-odt-latex-environment, org-e-odt-link, org-e-odt-src-block,
  org-e-odt-time-stamp): Do not provide back-end symbol.
* contrib/lisp/org-export.el (org-export-get-environment): Provide
  back-end symbol under `:back-end' property.
(org-export-collect-tree-properties, org-export-data,
org-export-filter-verbatim-functions, org-export-install-filters,
org-export-as, org-export-expand-macro,
org-export-filter-apply-functions, org-export-secondary-string):
Remove back-end references.
* testing/lisp/test-org-export.el: Update tests.

Back-end can be found in communication channel with (plist-get
info :back-end).  Hence back-ends do not have to hard-code their name
in any transcoder.  It will allow to derive a back-end from another
one.
2012-04-28 11:41:15 +02:00
Nicolas Goaziou b3e8a8d437 org-export: Run a hook before parsing
* contrib/lisp/org-export.el (org-export-before-parsing-hook): New
  variable.
(org-export-as): Run `org-export-before-parsing-hook'.
* testing/lisp/test-org-export.el: Add test.
2012-04-28 09:35:12 +02:00
Nicolas Goaziou 8e52d1d7f0 org-element: Fix comment block interpreter
* contrib/lisp/org-element.el (org-element-comment-block-interpreter):
  Fix comment block interpreter.
2012-04-27 17:27:28 +02:00
Nicolas Goaziou 7cdd0db287 org-element: Fix headline/inlinetask interpretation
* contrib/lisp/org-element.el (org-element-inlinetask-interpreter,
  org-element-headline-interpreter): Fix headline/inlinetask
  interpretation.
(org-element-inlinetask-interpreter): Prefer degenerate inlinetasks
when they have no contents.
2012-04-27 17:16:32 +02:00
Nicolas Goaziou e4852f7ee9 org-element: Fix dynamic block parsing and interpretation 2012-04-27 17:16:32 +02:00
Nicolas Goaziou 18aef0875a org-element: Fix docstrings 2012-04-27 17:16:32 +02:00
Nicolas Goaziou c6dc6e3d32 org-element: Verse blocks now contain objects
* contrib/lisp/org-element.el (org-element-verse-block-parser): Verse
  blocks now contain objects.
(org-element-verse-block-interpreter, org-element-current-element):
Apply changes to verse blocks.
(org-element-secondary-value-alist): Remove verse blocks from elements
with a secondary string.
* contrib/lisp/org-e-odt.el (org-e-odt-verse-block): Apply changes to
  verse blocks.
* contrib/lisp/org-e-latex.el (org-e-latex-verse-block): Apply changes
  to verse blocks.
* contrib/lisp/org-e-html.el (org-e-html-verse-block): Apply changes
  to verse blocks.
* contrib/lisp/org-e-ascii.el (org-e-ascii-verse-block): Apply changes
  to verse blocks.
* testing/lisp/test-org-element.el: Add tests.
2012-04-26 14:49:29 +02:00
Nicolas Goaziou c3d7d21108 org-e-latex: Fix coderef display for links with no contents
* contrib/lisp/org-e-latex.el (org-e-latex-link): Fix coderef display
  for links with no contents.
* contrib/lisp/org-e-odt.el (org-e-odt-link): Remove useless test.
* contrib/lisp/org-e-html.el (org-e-html-link): Remove useless test.
2012-04-26 14:49:29 +02:00
Nicolas Goaziou 206ce6e0b5 org-element: Ignore blank lines when removing element indentation
* contrib/lisp/org-element.el (org-element-normalize-contents): Ignore
  blank and empty lines when removing element indentation.
* testing/lisp/test-org-element.el: Add tests.
2012-04-26 14:49:29 +02:00
Jambunathan K ac5d8c92a5 org-e-odt.el: Adjust search paths for schema and styles files 2012-04-22 23:49:18 +05:30
Jambunathan K 43ee3a441a rm -rf contrib/odt 2012-04-22 23:05:26 +05:30
Nicolas Goaziou 052247ce81 org-e-ascii: Correctly indent table.el tables
* contrib/lisp/org-e-ascii.el (org-e-ascii-table): Remove indentation
  from table.el tables.
2012-04-22 17:00:32 +02:00
Jambunathan K 0b97c97170 org-e-html/org-e-odt: Use new table infrastructure 2012-04-22 19:48:26 +05:30
Jambunathan K 00cc5d5cef org-export: Minor fixes
* contrib/lisp/org-export.el (org-export-creator-string):
Check for `org-version' being bound before using it.
(org-export-get-inbuffer-options): Use
`org-element-restriction'.
2012-04-22 19:47:53 +05:30
Jambunathan K d73db66a38 Move org-e-* from EXPERIMENTAL/ to contrib/lisp/ 2012-04-22 19:47:37 +05:30
Nicolas Goaziou 0264495f52 org-export: Fix small bug
* contrib/lisp/org-export.el (org-export-get-coderef-format): Handle
  nil descriptions.
2012-04-22 19:42:47 +05:30
Nicolas Goaziou 172ae310a8 org-export: Define tools for tables, table rows and table cells
* contrib/lisp/org-export.el (org-export-table-cell-width,
  org-export-table-cell-alignment, org-export-table-cell-borders,
  org-export-table-row-group, org-export-table-has-special-column-p,
  org-export-table-row-is-special-p, org-export-get-parent-table,
  org-export-table-dimensions, org-export-table-cell-address,
  org-export-get-table-cell-at, org-export-table-has-header-p,
  org-export-table-cell-starts-colgroup-p,
  org-export-table-cell-ends-colgroup-p,
  org-export-table-row-starts-rowgroup-p,
  org-export-table-row-ends-rowgroup-p,
  org-export-table-row-starts-header-p,
  org-export-table-row-ends-header-p): New functions.
(org-export-table-format-info, org-export-clean-table): Removed
functions.
(org-export-filter-table-cell-functions,
org-export-filter-table-row-functions): New variables.
(org-export-filters-alist): Install new filters.
(org-export-collect-tree-properties, org-export--skip-p): Mark special
rows and cells as ignored.
* testing/lisp/test-org-export.el: Add tests.
2012-04-22 19:41:45 +05:30
Nicolas Goaziou eeeee5f1da org-element: Split tables into table-row elements and table-cell objects
* contrib/lisp/org-element.el (org-element-table-parser): Split tables
  into table-row elements and table-cell objects.
(org-element-table-interpreter): Adapt interpreter to new code.
(org-element-table-row-parser, org-element-table-row-interpreter,
org-element-table-cell-parser, org-element-table-cell-interpreter,
org-element-table-cell-successor, org-element-table-row-successor,
org-element-restriction): New functions.
(org-element-headline-parser,
  org-element-inlinetask-parser, org-element-item-parser,
  org-element-verse-block-parser,
  org-element-footnote-reference-parser,
  org-element-collect-affiliated-keywords, org-element-parse-objects):
  Use new function
(org-element-all-objects): Add new objects.
(org-element-target-parser): Small change to docstring.
(org-element-object-restrictions): Merge `org-element-string-restrictions'
into it.
(org-element-string-restrictions): Remove variable.
(org-element-parse-elements): Parse objects in non-recursive elements
with contents.
(org-element-normalize-string): Small refactoring.
(org-element-at-point): Handle table navigation.
* testing/lisp/test-org-element.el: Add tests.
2012-04-22 19:41:28 +05:30
Jambunathan K aa2e5308ee Move contrib/lisp/org-e-*.el to EXPERIMENTAL/ 2012-04-22 19:41:10 +05:30
Martyn Jago 6b6f0d625b Fix require path due to removal of EXPERIMENTAL
* contrib/lisp/org-export.el:

path relative to org-export.el has changed due
to relocation of org-e-publish.el (removal of
EXPERIMENTAL)
2012-04-21 23:51:38 +02:00
Bastien Guerry abd49c8aae Deleate trailing whitespaces. 2012-04-21 17:44:47 +02:00
François Allisson 0189c5d2d9 Update of contrib/README 2012-04-21 17:44:29 +02:00
Bastien Guerry bafd9a42f8 Move EXPERIMENTAL/* into contrib/lisp/ and change org-export.el accordingly. 2012-04-21 16:22:31 +02:00
Achim Gratz b323d9e5c3 move schema files to etc/ and modify makefile to install them into $(datadir)
etc/Makefile: add "schema" to $(ETCDIRS)

	contrib/odt/etc/schema/od-manifest-schema-v1.2-cs01.rnc: move to etc/schema/od-manifest-schema-v1.2-cs01.rnc

	contrib/odt/etc/schema/od-schema-v1.2-cs01.rnc: move to etc/schema/od-schema-v1.2-cs01.rn

	contrib/odt/etc/schema/schemas.xml: move to etc/schema/schemas.xml
2012-04-20 21:04:12 +02:00
Eric Schulte 66ae794a66 contrib/org-docco.org -- docco side-by-side HTML export of annotated source code
for an example of the code output see
  http://eschulte.github.com/org-docco/org-docco.html
2012-04-20 12:21:50 -04:00
Bastien Guerry e449f12d6f Remove contrib/doc/fr-latex.tex as this is now on Worg.
See http://orgmode.org/worg/code/latex/fr-orgcard.tex
and http://orgmode.org/worg/images/bzg/fr-orgcard.pdf
2012-04-20 13:30:06 +02:00
Nicolas Goaziou f0c737862d org-export: Refactor code 2012-04-17 13:33:38 +02:00
Nicolas Goaziou 36711b05ba org-export: Fix footnotes export outside parsing scope
* contrib/lisp/org-export.el (org-export-get-buffer-attributes):
  Function renamed from `org-export-initial-options'.
(org-export-store-footnote-definitions): New function.
(org-export-as): Store footnote definitions at the appropriate place.
It happens twice if buffer gets expanded.
* testing/lisp/test-org-export.el: Add test.
2012-04-13 15:47:13 +02:00
Eric Schulte 165d34af6a Revert "Revert "in emails, wrap html and images in a multipart/mixed structure""
This reverts commit 3f810ad424.
2012-04-12 08:21:05 -04:00
Eric Schulte 0202817e06 Revert "retain disposition=inline change for images in html mail"
This reverts commit e307d08382.
2012-04-12 08:21:05 -04:00
Eric Schulte e307d08382 retain disposition=inline change for images in html mail
* contrib/lisp/org-mime.el (org-mime-file): Retain disposition=inline
  change for images in html mail.
2012-04-11 09:20:45 -04:00
Eric Schulte 3f810ad424 Revert "in emails, wrap html and images in a multipart/mixed structure"
This reverts commit 718fefa4e3.
2012-04-11 09:18:16 -04:00
Eric Schulte 718fefa4e3 in emails, wrap html and images in a multipart/mixed structure
* contrib/lisp/org-mime.el (org-mime-file): Mark images included as
  part of html portions as "disposition=inline".
  (org-mime-multipart): When images are present wrap html and images
  in a multipart/mixed structure.
  (org-mime-htmlize): When images are present wrap html and images in
  a multipart/mixed structure.
2012-04-11 00:20:33 -04:00
Nicolas Goaziou 97d2db4867 org-element: Fix interpretation of affiliated keywords
* contrib/lisp/org-element.el (org-element-interpret--affiliated-keywords):
  Fix interpretation of affiliated keywords.
(org-element-interpret-data): If no `:post-blank' property is
specified, assumed there is no blank line or whitespace after the
element or object.
* testing/lisp/test-org-element.el: Add a test.
2012-04-10 23:53:11 +02:00
Nicolas Goaziou f188721692 org-element: Fix target interpretation
* contrib/lisp/org-element.el (org-element-target-parser): Fix
  docstring.
(org-element-target-interpreter): Fix target interpretation.
2012-04-08 18:19:17 +02:00
Nicolas Goaziou 2ff3da0f1a org-export: Fix footnotes bug in ODT export
* contrib/lisp/org-export.el (org-export-as): Reorder actions taken to
  fix footnotes bug in ODT export.
2012-04-07 15:14:58 +02:00
Nicolas Goaziou 8453ac1bf3 org-element: Remove dependency on org-footnote predicates
* contrib/lisp/org-element.el (org-element-footnote-definition-parser):
  Remove the need for `org-footnote-at-definition-p'.
  (org-element-footnote-reference-parser): Remove the need for
  `org-footnote-at-reference-p'.
(org-element-footnote-reference-successor): Do not use
`org-footnote-get-next-reference'.
* testing/lisp/test-org-element.el: Add test.
2012-04-06 23:50:00 +02:00
Nicolas Goaziou 4019559ee2 org-footnote: Don't grab trailing blank lines in a footnote definition
* lisp/org-footnote.el (org-footnote-at-definition-p): Don't grab
  trailing blank lines in a footnote definition.
(org-footnote-delete-definitions): Remove both footnote definition and
trailing blank lines.
* testing/lisp/test-org-export.el (test-org-export/fuzzy-links): Fix
  a docstring.
* contrib/lisp/org-element.el (org-element-footnote-definition-parser):
  Apply change to footnote definitions.
2012-04-06 19:14:51 +02:00
Bastien Guerry c9948bc906 Merge branch 'hotfix-7.8.06' 2012-04-02 16:02:53 +02:00
Bastien Guerry 9d01ca1bf3 org-checklist.el: Fix dynamically bound variable name.
* org-checklist.el (org-checklist): Fix dynamically bound
variable name.

Thanks to Bernt Hansen for reporting this.
2012-04-02 16:02:44 +02:00
Jambunathan K e917477005 (org-xhtml.el): Removed 2012-04-01 13:15:49 +05:30
Nicolas Goaziou 82281bcc94 org-element: Fix bug with `greater-element' granularity
* contrib/lisp/org-element.el (org-element-parse-elements): Enter
  section type elements even if granularity is set to
  `greater-element'.
(org-element-parse-buffer): Update doc-string.
* testing/lisp/test-org-element.el: Add test.
2012-03-28 17:29:14 +02:00
Nicolas Goaziou bb671936b5 org-element: Speed up parsing when granularity is bigger than default
* contrib/lisp/org-element.el (org-element-headline-parser,
  org-element-inlinetask-parser, org-element-item-parser,
  org-element-verse-block-parser, org-element-current-element): New
  optional argument so parsing of secondary string is not mandatory.
(org-element-parse-elements): Remove duplicate part from doc-string.
(org-element-at-point): Improve speed of function since secondary
string are never parsed.
(org-element-secondary-value-alist): Simplify doc-string.
* testing/lisp/test-org-element.el: Add test.
2012-03-28 16:31:56 +02:00
Nicolas Goaziou 763991fbda org-element: Store keywords in upper cases
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii-keyword): Apply keywords
  case change.
* EXPERIMENTAL/org-e-html.el (org-e-html-keyword): Apply keywords case
  change.
* EXPERIMENTAL/org-e-latex.el (org-e-latex-keyword): Apply keywords
  case change.
* EXPERIMENTAL/org-e-odt.el (org-e-odt-keyword): Apply keywords case change.
* contrib/lisp/org-element.el (org-element-export-block-parser):
  Internally store type in upper cases.
(org-element-keyword-parser): Internally store keyword `:key' property
in upper cases.
(org-element-non-recursive-block-alist,
org-element-affiliated-keywords,
org-element-keyword-translation-alist, org-element-multiple-keywords,
org-element-parsed-keywords, org-element-dual-keywords):
Use uppercased keywords.
(org-element-current-element): Use uppercase for keywords.
(org-element-collect-affiliated-keywords): Store affiliated keywords
in upper cases.
* contrib/lisp/org-export.el (org-export-get-inbuffer-options,
  org-export-collect-tree-properties, org-export-resolve-fuzzy-link):
  Use upper cased keywords.
* testing/lisp/test-org-export.el: Update tests.
2012-03-28 14:27:15 +02:00
Nicolas Goaziou ada00fb857 org-element: Remove some unneeded element properties
* contrib/lisp/org-element.el (org-element-center-block-parser,
  org-element-quote-block-parser,
  org-element-quote-block-interpreter,
  org-element-special-block-parser,
  org-element-special-block-interpreter,
  org-element-babel-call-interpreter,
  org-element-comment-block-parser,
  org-element-export-block-interpreter,
  org-element-src-block-interpreter,
  org-element-example-block-interpreter): Use standard case for Org
  syntax.
(org-element-inlinetask-parser): Remove `:raw-value' property.
(org-element-headline-interpreter,
org-element-inlinetask-interpreter): Rely on `:title' property instead
of `:raw-value'.
(org-element-item-parser): Remove `:raw-tag' property.
(org-element-item-interpreter): Do not use `:raw-tag' anymore.  Rely
on `:tag' instead.
(org-element-verse-block-parser): Remove `:raw-value' property.  Use
standard case for Org syntax, too.
(org-element-verse-block-interpreter): Rely on `:value' instead of
`:raw-value'.
(org-element-footnote-reference-parser): Remove `:raw-definition'
value.
(org-element-footnote-reference-interpreter): Use `:inline-definition'
property, when non-nil, instead of `:raw-definition'.
(org-element-radio-target-parser): Rename `:raw-value' into `:value'.

Most raw values don't add worthy information to an element, since they
can be retrieved with an interpretation of the secondary string they
represent.
2012-03-28 13:59:18 +02:00
Bastien Guerry 6ca74804c9 Delete trailing whitespaces in contrib/lisp/ files. 2012-03-28 02:08:03 +02:00
Bastien Guerry 5fc7b7d138 Merge branch 'hotfix-7.8.06' 2012-03-27 12:22:04 +02:00
Bastien Guerry 410dd12d89 org-mime.el: Set `org-export-with-LaTeX-fragments' correctly.
* org-mime.el (org-mime-htmlize): Set
`org-export-with-LaTeX-fragments' correctly.
2012-03-27 12:21:56 +02:00
Bastien Guerry 9602e1cb38 org-collector.el: Don't narrow to subtree when collecting properties on the whole buffer.
* org-collector.el (org-dblock-write:propview): Don't narrow
to subtree when collecting properties on the whole buffer.

TINYCHANGE
2012-03-26 17:24:26 +02:00
Bastien Guerry 973695beb3 Add org-notify.el by Peter Münster to contrib/lisp/.
It's useful for getting notifications for todo items and more flexible
than org-agenda-to-appt.

Here a summary:
- different warning periods for different todo-types
- fine grained warning periods (smallest unit is second)
- continue notifications, when deadline is overdue
- easy modification of timestamps (just one click, to say
  "let's do it tomorrow")
- switch from "todo" to "done" by clicking on the notification window
- configurable notification types (email, notifications-notify, beep,
  etc.)
- configurable notification period
- configurable notification duration
- crescendo notifications (be more aggressive, when time gets closer to
  deadline)

There was a little thread about this subject:
http://thread.gmane.org/gmane.emacs.orgmode/48832

Example usage:
  (org-notify-add 'appt
                  '(:time "-1s" :period "20s" :duration 10
                    :actions (-message -ding))
                  '(:time "15m" :period "2m" :duration 100
                    :actions -notify/window)
                  '(:time "2h" :period "5m" :actions -message)
                  '(:time "1d" :actions -email))

This means for todo-items with `notify' property set to `appt': 1 day before
deadline, send a reminder-email, 2 hours before deadline, start to send
messages every 5 minutes, then, 15 minutes before deadline, start to pop up
notification windows every 2 minutes. The timeout of the window is set to
100 seconds. Finally, when deadline is overdue, send messages and make
noise.
2012-03-24 07:48:07 +01:00
Bastien Guerry eb7f7159c9 Merge branch 'hotfix-7.8.06' 2012-03-23 13:42:29 +01:00
Ilya Shlyakhter 532a1ac40a Tags/properties matcher: Fixed issues with todo-only matches
lisp/org.el (org-scan-tags): Require todo-only argument, and document
that it should be the same one set by make-org-tags-matcher.
Fix documentation to explain that todo-only is really
not-done-todo-only.

(org-make-tags-matcher): If todo part of matcher starts with /!,
matcher now always checks that the TODO keyword is present and
is a not-done state.  This matters e.g. for org-map-entries
which unlike org-scan-tags does not do its own separate todo-only
filtering.  Added docs to explain matcher dependencies.

(org-map-entries): Make sure todo-only is correctly passed from
org-make-tags-matcher to org-scan-tags.

* lisp/org-clock.el: (org-clock-get-table-data): Make sure todo-only
does not leak when it is set by make-org-tags-macher.

* lisp/org-crypt.el: (org-encrypt-entries, org-decrypt-entries): Make
sure todo-only is correctly passed from org-make-tags-matcher to
org-scan-tags.

* contrib/lisp/contacts.el: (org-contacts-filter) : Make sure todo-only
is correctly passed from org-make-tags-matcher to org-scan-tags.
2012-03-23 13:42:06 +01:00
Nicolas Goaziou 1581b16c78 org-element: Small refactoring
* contrib/lisp/org-element.el (org-element-swap-A-B,
  org-element-drag-backward, org-element-drag-forward): Small
  refactoring.
* testing/lisp/test-org-element.el: Add tests.
2012-03-22 19:32:09 +01:00
Nicolas Goaziou 5e950a9e56 org-element: Remove an unused argument
* contrib/lisp/org-element.el (org-element-parse-secondary-string):
  Remove unused optional argument.
2012-03-22 18:26:34 +01:00
Nicolas Goaziou dd7aa8ece9 org-export: Fix export with Babel calls outside export scope
* contrib/lisp/org-export.el (org-export-as): Fix export with Babel
  calls outside export scope by providing buffer's name holding full
  data instead of the one holding its copy limited to scope.
* testing/lisp/test-org-export.el (test-org-export/export-scope): Add
  a test.
2012-03-22 16:49:19 +01:00
Tom Alexander ce7579e1f7 contrib/lisp/org-export-generic.el: Added variables for exporting tables and a mediawiki exporter. 2012-03-20 17:01:21 +01:00
Bastien Guerry 6c911234ac Remove files coming from maint. 2012-03-20 01:50:59 +01:00
Bastien Guerry df82832fb7 Merge maint fixup and finish master fixup 2012-03-20 00:35:55 +01:00
Bastien Guerry 4e5c24ea81 Delete files that sneaked in while fixing the master branch. 2012-03-19 23:48:07 +01:00
Bastien Guerry ecd0562c5f Fix the master branch.
I started from the 78ec8e commit then cherry-picked and squashed
commits that have been done in master since then, except the bad
commits that overwrote the tree (in master) with the tree in maint.

This commit also bumps the version number to 7.8.06.

The only "fix" that was made between 78ec8e and the previous commit
is e0072f which has been reported to break stuff.
2012-03-19 22:01:29 +01:00
Bastien Guerry c44e07a4fa Fix the maint branch.
Thanks to Achim Gratz for his precious help on this.
2012-03-19 20:27:28 +01:00
Bastien Guerry 6e306f65ff Fix copyright years in maint. 2012-03-17 16:31:04 +01:00
Bastien Guerry de42649f7b Manually revert maint to e85080.
e85080 is the last correct commit in the maint branch
before releasing 7.8.04.  The 7.8.05 release should be
done from this commit.
2012-03-17 16:28:46 +01:00
Bastien Guerry eea3802bba Whitespace cleanup. 2012-03-17 15:59:38 +01:00
Bastien Guerry 73bb18ba37 Manually revert to the Release 7.8.04 tag. 2012-03-17 15:52:24 +01:00
Bastien Guerry fdc20f7792 Fix more copyright years. 2012-03-17 14:39:43 +01:00
Bastien Guerry 6e534f9c61 Manually revert back to commit e85080.
This fixes a wrong merge that should not have happened:
commit 7e903a merges the master branch into the maint branch,
while we really want to keep the maint branch a bugfix-only
branch.

This commit reverts back the maint branch to its state before
merging the master branch.  From there, we will fix remaining
problems with the maint branch (e.g. copyright issues) then
release this maint branch as Org-mode 7.8.05.
2012-03-17 14:34:01 +01:00
Nicolas Goaziou 3fda301b07 org-element: Unhide contents of collapsed elements before entering them
* contrib/lisp/org-element.el (org-element-down): Unhide contents of
  collapsed elements before entering them.
2012-03-14 18:47:38 +01:00
David Maus 21391e2f84 Merge branch 'maint' 2012-03-14 06:00:49 +01:00
Tassilo Horn 429cf28ebe Add missing word to org-contacts y-or-n-p question
* org-contacts.el (org-contacts-check-mail-address): Add missing word
to y-or-n-p question.
2012-03-14 05:46:04 +01:00
Nicolas Goaziou beb024687b org-export: Remove useless INFO argument from `org-export-unravel-code'
* contrib/lisp/org-export.el (org-export-unravel-code): Remove INFO
  argument.  Fix a bug preventing code references to be properly
  recognized.
(org-export-format-code-default): Apply signature change.
(org-export-resolve-coderef): Fix a bug preventing code references to
be properly recognized.
* EXPERIMENTAL/org-e-latex.el (org-e-latex-src-block): Apply signature
  change.
* testing/lisp/test-org-export.el: Add tests.
2012-03-10 20:25:32 +01:00
Nicolas Goaziou c7203b4142 org-export: Change source code handling API
* contrib/lisp/org-element.el (org-element-example-block-parser,
  org-element-src-block-parser): Add `:number-lines',
  `:preserve-indent, `:retain-labels', `:use-labels'  and
  `:label-fmt' properties.
* contrib/lisp/org-export.el (org-export-resolve-coderef,
  org-export-get-loc): Apply changes to src-block and example-block
  elements' properties.
(org-export-unravel-code, org-export-format-code,
org-export-format-code-default): New functions.
(org-export-handle-code): Removed function.
* EXPERIMENTAL/org-e-latex.el (org-e-latex-example-block): Use new
  function.
(org-e-latex-src-block): Use new API.  Better handling of numbered
lines with special packages.
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii-example-block,
  org-e-ascii-src-block): Use new functions.
* testing/lisp/test-org-element.el: Add tests.
* testing/lisp/test-org-export.el: Add tests.
2012-03-10 13:42:46 +01:00
Nicolas Goaziou 86131a8b50 org-element: New `org-element-down' function
* contrib/lisp/org-element.el (org-element-down): New function.
* testing/lisp/test-org-element.el: Add test.
2012-03-09 19:47:50 +01:00
Nicolas Goaziou 62a631e236 org-export: Small fix
* contrib/lisp/org-export.el (org-export-get-ordinal): Change signature.
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii--build-caption): Apply
  changes to previous function
2012-03-07 18:02:57 +01:00
Nicolas Goaziou bbbdff9f81 org-export: Predicate in `org-export-get-ordinal' accepts two arguments
* contrib/lisp/org-export.el (org-export-get-ordinal): Predicate in
  `org-export-get-ordinal' accepts two arguments.
2012-03-07 17:18:20 +01:00
Nicolas Goaziou bf609d8844 org-export: Avoid duplicates in `org-export-collect-footnote-definitions'
* contrib/lisp/org-element.el (org-element-map): New optional argument
  to avoid recursion into certain recursive types.
* contrib/lisp/org-export.el (org-export-footnote-first-reference-p,
  org-export-get-footnote-number,
  org-export-collect-footnote-definitions): Use new argument from
  `org-element-map'.
* testing/lisp/test-org-export.el: Add test.

The new argument allows to force entering footnotes definitions at
a certain time (when their first reference is found) but not a second
time when they are encountered in the parse tree.

Thanks to Jambunathan for reporting this.
2012-03-04 11:57:16 +01:00
Nicolas Goaziou 933c0fa441 Implement numbered cross-references
* lisp/org.el (org-link-search): Search for #+name affiliated keywords
  and invisible targets.
* contrib/lisp/org-element.el (org-element-link-parser): Remove "ref"
  links relative part.
(org-element-target-parser): Move property name from `:raw-value' to
`:value'.
(org-element-recursive-objects): Remove targets from tables.  Cells
are not parsed unless explicitely asked by back-end developer, too
late.  A target wouldn't be noticed in time.  One solution could be to
parse every table, but that's time consumming.
(org-element-object-restrictions): Target are not recursive anymore.
* contrib/lisp/org-export.el (org-export-resolve-fuzzy-link): Find
  elements with a matching "#+name: path" affiliated keyword.
(org-export-get-ordinal): Make special cases for headlines, items,
footnotes definitions and references.
(org-export-resolve-ref-link): Removed function.
* EXPERIMENTAL/org-e-latex.el (org-e-latex-link): Handle
  cross-reference numbers.
(org-e-latex-target): Targets have no contents.
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii--describe-links): Ignore
  fuzzy links in link description at the end of the section.
(org-e-ascii-link): Handle cross-reference numbers.
* testing/contrib/lisp/test-org-export.el: Add tests.
* testing/lisp/test-org.el: Add tests.
2012-03-01 14:49:53 +01:00
Nicolas Goaziou 701e99e923 org-element: Fix misleading comments 2012-02-29 19:06:50 +01:00
Nicolas Goaziou 73c5044963 org-export: Add `org-export-headline-numbered-p' predicate
* contrib/lisp/org-export.el (org-export-numbered-headline-p): New function.
* EXPERIMENTAL/org-e-ascii.el: Apply new function.
* EXPERIMENTAL/org-e-latex.el: Apply new function.
* testing/lisp/test-org-export.el: Add a test.
2012-02-29 19:05:45 +01:00
Eric Schulte e4ac36225d org-bibtex-extras --- extras for working with org-bibtex entries
A contributed package which is still in early development, but
  should eventually have some fun extras for working with org-mode
  bibtex entries
2012-02-28 13:01:22 -07:00
Nicolas Goaziou fcd4418a70 org-element: Refactor code 2012-02-26 13:24:27 +01:00
Nicolas Goaziou 29e633f7cd org-element: Fix small bug in org-element-map
* contrib/lisp/org-element.el (org-element-map): Don't forget to apply
  function on paragraph even when no object should be mapped.  Just
  don't recurse in it.
2012-02-26 11:24:26 +01:00
Nicolas Goaziou c166bfbb1a org-export: fix bug with nested footnotes in invisible definitions
* contrib/lisp/org-export.el (org-export-collect-footnote-definitions):
  Also collect footnotes in footnote definitions
(org-export-get-footnote-number): Remove unused check.
* testing/contrib/lisp/test-org-export.el: Add test.
2012-02-26 10:57:42 +01:00
Nicolas Goaziou 12c94310a2 org-export: Allow nested footnotes (part 2)
* EXPERIMENTAL/org-e-latex.el (org-e-latex-footnote-reference):
  Correctly handle numbering with nested footnotes.
* contrib/lisp/org-element.el (org-element-map): Apply function to
  element or object before applying it to its secondary string, if
  any.  Otherwise, linearity is broken.
* contrib/lisp/org-export.el (org-export-footnote-first-reference-p,
  org-export-get-footnote-number): Take care of recursive footnotes.
(org-export-get-genealogy): Correctly get genealogy of an item within
a secondary string.
* testing/contrib/lisp/test-org-export.el: Add tests.
2012-02-26 01:38:26 +01:00
Nicolas Goaziou 81cc6dff19 org-e-latex: Allow nested footnotes
* EXPERIMENTAL/org-e-latex.el (org-e-latex-footnote-reference): Allow
  nested footnotes.
* contrib/lisp/org-element.el (org-element-string-restrictions): Allow
  footnote references within a footnote reference.
* testing/contrib/lisp/test-org-export.el: Add a test for nested
  footnotes.
2012-02-25 14:56:37 +01:00
Nicolas Goaziou 5313dc9d09 org-export: Allow user to explicitely ignore parts of parse tree
* contrib/lisp/org-export.el (org-export-collect-tree-properties):
  Do not overwrite any user's ignore list.
* testing/contrib/lisp/test-org-export.el: Add test.

A good way to populate `:ignore-list' is through the use of
`org-export-filter-parse-tree-functions', with the help of
`org-element-map' and `org-export-ignore-element'.  As an example, the
following code will skip every headline containing the word "note"
in its title during a LaTeX export:

(defun user-skip-note-headlines (data backend info)
  ;; For now LaTeX back-end is called `e-latex'.
  (when (eq backend 'test)
    ;; Traverse the parse tree, adding to ignore list any headline
    ;; matching criteria.
    (org-element-map
     data 'headline
     (lambda (headline)
       (when (string-match "\\<note\\>"
                           (org-element-property :raw-value headline))
         (org-export-ignore-element headline info)))
     info))
  ;; Return original DATA.
  data)

Then install it in parse-tree filters:

(add-to-list 'user-skip-note-headlines org-export-filter-parse-tree-functions)

Back-end delevopers will install it via `org-BACKEND-filters-alist'
where BACKEND stands for the name of the back-end considered.  Se
`org-export-filters-alist' for more information.
2012-02-25 14:55:21 +01:00
Nicolas Goaziou 9f7965a80e org-element: Function mapped through org-element-map accepts only one argument
* contrib/lisp/org-element.el (org-element-map): Remove use of an
  alternate communication channel.  Function is now called with only
  one argument.
* contrib/lisp/org-export.el (org-export-collect-tree-properties):
(org-export-collect-headline-numbering, org-export--selected-trees,
org-export-collect-footnote-definitions,
org-export-footnote-first-reference-p,
org-export-get-footnote-number, org-export-resolve-fuzzy-link,
org-export-resolve-id-link, org-export-resolve-ref-link,
org-export-resolve-coderef, org-export-get-ordinal,
org-export-get-loc, org-export-collect-headlines): Apply changes.
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii--unique-links): Apply
  changes.
* EXPERIMENTAL/org-e-publish.el (org-e-publish-collect-index): Apply
  changes.
2012-02-25 14:53:35 +01:00
Nicolas Goaziou 3b3936b9a9 org-export: Do not ignore automatically elements with empty output
* contrib/lisp/org-export.el (org-export-data): org-export: Do not
  ignore automatically elements with empty output.
2012-02-25 14:53:34 +01:00
Nicolas Goaziou 752a531eb5 org-element: Refactor code 2012-02-24 22:33:16 +01:00
Nicolas Goaziou 404ede23fc org-element: Change algorithm for `org-element-at-point'
* contrib/lisp/org-element.el (org-element-at-point): Change
  algorithm.
(org-element-guess-type): Removed function.
(org-element--element-block-types): Removed variable.
(org-element-forward, org-element-backward, org-element-up): Rewrite
functions.
* testing/contrib/lisp/test-org-element.el: Add tests.
2012-02-24 17:52:43 +01:00
Nicolas Goaziou fc7c80c37e org-export: Minor UI change
* contrib/lisp/org-export.el (org-export-dispatch-ui): Small UI change.
2012-02-24 17:52:43 +01:00
Nicolas Goaziou 94185eac92 org-export: Fix bug with recursive file inclusion and relative paths
* contrib/lisp/org-export.el (org-export-expand-include-keyword): Use
  another optional argument to specify the current working directory.
(org-export-as): Apply changes.
* testing/contrib/lisp/test-org-export.el: Add tests.
* testing/examples/include.org: New test file.
* testing/examples/include2.org: New test file.
2012-02-23 21:28:15 +01:00
Nicolas Goaziou 186f0f7594 org-element: Small refactoring
* contrib/lisp/org-element.el (org-element-parse-elements): Small refactoring.
2012-02-23 19:08:23 +01:00
Nicolas Goaziou 0fa24209cf org-export: Export snippets are not skipped automatically: back-ends decide
* contrib/lisp/org-export.el (org-export-snippet-backend): New
  function.
(org-export--skip-p): Remove automatic skip of export snippets.
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii-export-snippet): Use new
  function.
* EXPERIMENTAL/org-e-html.el (org-e-html-export-snippet): Use new
  function.
* EXPERIMENTAL/org-e-latex.el (org-e-latex-export-snippet): Use new
  function.
* EXPERIMENTAL/org-e-odt.el (org-e-odt-export-snippet): Use new
  function.
* testing/contrib/lisp/test-org-export.el: Add test.

The idea behind this change is that a given back-end may decide to
keep an export snippet not directly targetted at it (i.e. a beamer
back-end that would want to keep latex snippets).  Hence, filtering
snippets is on back-ends side, and a new function is added to help
them in that task.
2012-02-23 18:21:29 +01:00
Nicolas Goaziou 8714fba308 org-element: COMMENT and QUOTE keywords, ARCHIVE tags are case sensitive
* contrib/lisp/org-element.el (org-element-headline-parser): COMMENT
  and QUOTE keywords, ARCHIVE tags are case sensitive.
* testing/contrib/lisp/test-org-element.el: New file.
2012-02-23 16:30:06 +01:00
Nicolas Goaziou 675713c539 org-export: Fix select-tag handling
* contrib/lisp/org-export.el (org-export-collect-tree-properties):
  Remove `:use-select-tags' property.
(org-export-populate-ignore-list): Renamed from
`org-export-get-ignore-list'.
(org-export--selected-trees): Renamed from
`org-export-use-select-tag-p'.
(org-export--skip-p): Use an additional argument to specify list of
trees containing a select tag.
(org-export-select-tags, org-export-exclude-tags,
org-export-with-priority): Change doc-string.
* testing/contrib/lisp/test-org-export.el: Tests modified
  accordingly.
2012-02-23 14:57:16 +01:00
Nicolas Goaziou a87c463818 org-element: Move archived tree handling out of org-element-map
* contrib/lisp/org-element.el: Move archived tree handling out of
  org-element-map.
* contrib/lisp/org-export.el (org-export-get-ignore-list): Properly
  ignore archived with `org-export-with-archived-trees' set to
  `headline'.
* testing/contrib/lisp/test-org-export.el (test-org-export/handle-options):
  Add a test for that.
2012-02-23 11:24:58 +01:00
Nicolas Goaziou 5e849070be org-export: Add a require to e-odt back-end
* contrib/lisp/org-export.el (org-e-odt): Add a require to e-odt
  back-end.
2012-02-23 09:13:06 +01:00
Nicolas Goaziou 6b0a302ead org-export: Remove call to a phantom function
* contrib/lisp/org-export.el (org-export-get-min-level): Remove call
  to a phantom function.
2012-02-23 08:33:35 +01:00
Nicolas Goaziou a940e3d22c org-export: Fix some small bugs, include tests
* contrib/lisp/org-export.el (org-export-get-inbuffer-options): Fix
  but with incomplete macros returning an error.  Also with behaviour
  `nil', only insert new value if none was defined before.
(org-export-use-select-tags-p): Fix bug preventing it from properly
detecting select-tags.
(org-export--skip-p): Small refactoring
* testing/contrib/lisp/test-org-export.el: New test file.
2012-02-23 00:58:55 +01:00
Nicolas Goaziou 04a064d623 org-element: New variable defining complete list of objects
* contrib/lisp/org-element.el (org-element-all-objects): New variable.
2012-02-22 21:09:00 +01:00
Nicolas Goaziou c20402fd14 org-export: Fix export to subtree
* contrib/lisp/org-export.el (org-export-as): Subtree option was
  ignored.  Also, narrowing to region and to subtree are exclusive.
2012-02-22 19:29:05 +01:00
Nicolas Goaziou 7f816c6073 org-export: Small changes to UI, allow q to quit
* contrib/lisp/org-export.el (org-export-dispatch): Small changes to
  UI, allow q to quit.
2012-02-22 19:05:07 +01:00
Nicolas Goaziou 40e42b9dca org-export: New function `org-export-get-parent'
* contrib/lisp/org-export.el (org-export-get-parent): New function.
(org-export-data, org-export-get-previous-element,
org-export-get-next-element): Use new function.
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii-item): Use new function.
  Refactor code.
(org-e-ascii-paragraph): Use new function.
* EXPERIMENTAL/org-e-latex.el (org-e-latex-item): Use new function.
* EXPERIMENTAL/org-e-html.el (org-e-html-item): Use new function.
* EXPERIMENTAL/org-e-odt.el (org-e-odt-item): Use new function.
2012-02-22 18:23:44 +01:00
Nicolas Goaziou 620f1d5181 org-export: Remove `:genealogy', introduce `:ignore-list'
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii--current-text-width,
  org-e-ascii-item, org-e-ascii-paragraph): Apply `:genealogy' removal.
* EXPERIMENTAL/org-e-latex.el (org-e-latex-item): Apply `:genealogy'
  removal.
* contrib/lisp/org-element.el (org-element-map): Do not compile
  genealogy.  Also use `:ignore-list' when possible.
* contrib/lisp/org-export.el (org-export-collect-tree-properties):
  Populate `:ignore-list' before starting to transcode each element in
  subtree.
(org-export-get-min-level): Use `:ignore-list'.
(org-export--skip-p): Renamed from `org-export-skip-p'.  This is now
an internal function.
(org-export-data): Use and update `:ignore-list'.  Do not update
genealogy.
(org-export-ignore-element): New function
(org-export-last-sibling-p): Small refactoring.
(org-export-resolve-fuzzy-link): Apply `:genealogy' removal.
(org-export-get-genealogy): Use a more efficient algorithm.

The equivalent of (plist-get info :genealogy) is
now (org-export-get-genealogy blob info), blob being any element or
object.
2012-02-22 18:19:09 +01:00
Jambunathan K bfd31d7268 org-export: Modify dispatcher to accommodate e-odt backend
* contrib/lisp/org-export.el (org-export-dispatch)
(org-export-dispatch-ui): New entries for ODT backend.
2012-02-22 20:17:25 +05:30
Nicolas Goaziou 60caccc7e9 org-element: Rename accessors
* contrib/lisp/org-element.el (org-element-property,
  org-element-contents): New functions, renamed from, respecively
  `org-element-get-property' and `org-element-get-contents'.
(org-element-link-successor): Small refactoring.
(org-element-drawer-interpreter,
  org-element-dynamic-block-interpreter,
  org-element-footnote-definition-interpreter,
  org-element-headline-interpreter,
  org-element-inlinetask-interpreter, org-element-item-interpreter,
  org-element-special-block-interpreter,
  org-element-babel-call-interpreter,
  org-element-comment-interpreter,
  org-element-comment-block-interpreter,
  org-element-example-block-interpreter,
  org-element-export-block-interpreter,
  org-element-fixed-width-interpreter,
  org-element-keyword-interpreter,
  org-element-latex-environment-interpreter,
  org-element-property-drawer-interpreter,
  org-element-quote-section-interpreter,
  org-element-src-block-interpreter, org-element-table-interpreter,
  org-element-verse-block-interpreter,
  org-element-emphasis-interpreter, org-element-entity-interpreter,
  org-element-export-snippet-interpreter,
  org-element-footnote-reference-interpreter,
  org-element-inline-babel-call-interpreter,
  org-element-inline-src-block-interpreter,
  org-element-latex-fragment-interpreter,
  org-element-link-interpreter, org-element-macro-interpreter,
  org-element-statistics-cookie-interpreter,
  org-element-subscript-interpreter,
  org-element-superscript-interpreter,
  org-element-time-stamp-interpreter,
  org-element-verbatim-interpreter, org-element-map,
  org-element-parse-elements, org-element-parse-objects,
  org-element-interpret-data,
  org-element-interpret--affiliated-keywords,
  org-element-normalize-contents, org-element-swap-A-B,
  org-element-backward, org-element-drag-backward,
  org-element-drag-forward, org-element-forward,
  org-element-mark-element, org-narrow-to-element,
  org-transpose-elements, org-element-unindent-buffer,
  org-element-up): Use new names.
* contrib/lisp/org-export.el (org-export-get-inbuffer-options,
  org-export-use-select-tags-p, org-export-get-min-level,
  org-export-data, org-export-skip-p, org-export-interpret-p,
  org-export-collect-footnote-definitions,
  org-export-footnote-first-reference-p,
  org-export-get-footnote-number, org-export-get-relative-level,
  org-export-last-sibling-p, org-export-inline-image-p,
  org-export-resolve-fuzzy-link, org-export-resolve-id-link,
  org-export-resolve-ref-link, org-export-resolve-coderef,
  org-export-expand-macro, org-export-get-loc,
  org-export-handle-code, org-export-collect-elements,
  org-export-get-genealogy, org-export-get-previous-element): Use new names.
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii--current-text-width,
  org-e-ascii--build-title, org-e-ascii--build-caption,
  org-e-ascii--list-listings, org-e-ascii--list-tables,
  org-e-ascii--unique-links, org-e-ascii--describe-links,
  org-e-ascii-template, org-e-ascii-drawer, org-e-ascii-emphasis,
  org-e-ascii-entity, org-e-ascii-export-snippet,
  org-e-ascii-export-block, org-e-ascii-fixed-width,
  org-e-ascii-headline, org-e-ascii-horizontal-rule,
  org-e-ascii-inline-src-block, org-e-ascii-inlinetask,
  org-e-ascii-item, org-e-ascii-keyword,
  org-e-ascii-latex-environment, org-e-ascii-latex-fragment,
  org-e-ascii-link, org-e-ascii-paragraph, org-e-ascii-quote-section,
  org-e-ascii-statistics-cookie, org-e-ascii-subscript,
  org-e-ascii-superscript, org-e-ascii-table, org-e-ascii-verbatim,
  org-e-ascii-verse-block): Use new names
* EXPERIMENTAL/org-e-latex.el (org-e-latex--wrap-label,
  org-e-latex-drawer, org-e-latex-emphasis, org-e-latex-entity,
  org-e-latex-example-block, org-e-latex-export-snippet,
  org-e-latex-export-block, org-e-latex-fixed-width,
  org-e-latex-footnote-reference, org-e-latex-headline,
  org-e-latex-link--inline-image, org-e-latex-latex-fragment,
  org-e-latex-latex-environment, org-e-latex-keyword,
  org-e-latex-item, org-e-latex-inlinetask,
  org-e-latex-inline-src-block, org-e-latex-special-block,
  org-e-latex-radio-target, org-e-latex-quote-section,
  org-e-latex-plain-list, org-e-latex-src-block,
  org-e-latex-statistics-cookie, org-e-latex-table--format-string,
  org-e-latex-target, org-e-latex-time-stamp, org-e-latex-verbatim):
  Use new names
* EXPERIMENTAL/org-e-publish.el (org-e-publish-collect-index,
  org-e-publish-index-generate-theindex): Use new names.
2012-02-22 13:47:20 +01:00
Nicolas Goaziou 0ff3d47d13 org-element: Introduce a new accessor: `org-element-type'
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii--current-text-width,
  org-e-ascii--build-caption, org-e-ascii--build-title,
  org-e-ascii--describe-links, org-e-ascii-template,
  org-e-ascii-paragraph): Use new accessor
* EXPERIMENTAL/org-e-latex.el (org-e-latex--guess-inputenc): Small
  refactoring.
  (org-e-latex-footnote-reference, org-e-latex-link):  Use new
  accessor.
* contrib/lisp/org-element.el (org-element-type): New function.
  (org-element-map, org-element-parse-elements,
  org-element-interpret-data, org-element-normalize-contents,
  org-element-forward, org-element-unindent-buffer): Use new
  accessor.
* contrib/lisp/org-export.el (org-export-get-inbuffer-options,
  org-export-get-min-level, org-export-data, org-export-skip-p,
  org-export-interpret-p, org-export-expand,
  org-export-expand-include-keyword,
  org-export-prepare-file-contents, org-export-first-sibling-p,
  org-export-resolve-fuzzy-link, org-export-get-ordinal,
  org-export-get-loc, org-export-get-genealogy,
  org-export-get-parent-headline): Use new accessor.
2012-02-22 13:21:13 +01:00
Nicolas Goaziou 0ab12148bc org-export: Don't export tables rows containing parameters for formulas
* contrib/lisp/org-export.el (org-export-clean-table): Don't export
  tables rows containing parameters for formulas.
2012-02-22 09:34:06 +01:00
Nicolas Goaziou 58019df5b2 org-element: Normalize paragraph contents recursively
* contrib/lisp/org-element.el (org-element-normalize-contents): Global
  indentation is also removed from recursive objects in the
  paragraph.
2012-02-21 14:01:50 +01:00
Nicolas Goaziou a8fcca7526 org-export: Small cosmetic changes to export UI
* contrib/lisp/org-export.el (org-export-dispatch-ui): Small cosmetic
  changes to export UI.
2012-02-20 23:08:18 +01:00
Nicolas Goaziou f272093768 org-element: Tweak restrictions for objects and secondary strings
* contrib/lisp/org-element.el (org-element-footnote-reference-parser):
  Take restrictions into account.
(org-element-object-restrictions, org-element-string-restrictions):
Tweak restrictions.
2012-02-20 20:18:30 +01:00
Nicolas Goaziou 8736d92d0e org-element: org-element-map also checks secondary strings
* contrib/lisp/org-element.el (org-element-object-restrictions):
  Modify docstring.
(org-element-secondary-value-alist): New variable.
(org-element-map): Possibly look into secondary strings when mapping
through objects.  Also sanitize some function names.
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii--unique-links): Make use of
  org-element-map improvement.
2012-02-20 20:18:29 +01:00
Nicolas Goaziou abaeb42a3a org-e-ascii: Get item number right
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii-item): Use new
  `org-list-get-item-number' function.
* contrib/lisp/org-element.el (org-element-item-interpreter): Use new
  `org-list-get-item-number' function.
2012-02-20 17:17:39 +01:00
Nicolas Goaziou d426d0f030 org-element: Allow targets in tables
* contrib/lisp/org-element.el (org-element-string-restrictions): Allow
  targets in tables.  Also fix wrong symbol for verse-blocks.
  (org-element-verse-block-parser): Apply change.
2012-02-20 16:10:27 +01:00
Nicolas Goaziou af2a46a76f org-export: Implement "ref" type links
* contrib/lisp/org-element.el (org-element-link-parser): Recognize
  "ref" type links as a new type of Org link.
* contrib/lisp/org-export.el (org-export-resolve-ref-link): New
  function.
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii--describe-links): Do not
  describe "ref" type links at the end of each section.
(org-e-ascii-link): Handle "ref" type links.
* EXPERIMENTAL/org-e-latex.el (org-e-latex-link): Handle "ref" type
  links.

"ref" type links are Org answer to LaTeXisms like "\ref{some-label}".
Hence, [[ref:some-label]] will be replaced with the sequence number of
the element with name "#+name: some-label" during export.
2012-02-19 18:24:22 +01:00
Bastien Guerry 16ea957cd0 Copyright year fixes for contrib/. 2012-02-19 08:16:54 -07:00
Bastien Guerry 01f7b698a7 More copyright year fixes. 2012-02-19 08:16:27 -07:00
Jambunathan K f1e5dfdbe9 org-export: Put HTML buffers in either nxhtml-mode or nxml-mode
* contrib/lisp/org-export.el (org-export-dispatch): Put
temporary buffer that holds exported HTML source in either
`nxhtml-mode' or `nxml-mode'.

`nxhtml-mode' is *not* part of stock Emacs while `nxml-mode' is.
2012-02-18 22:39:58 +05:30
Eric Schulte 9a15619654 Merge branch 'origin-maint' 2012-02-18 09:16:20 -07:00
Sebastien Vauban 2d78957c5c Fix old Babel syntax 2012-02-18 09:15:44 -07:00
Nicolas Goaziou 5fa426bfe2 org-export: Allow to have HTML back-end output in a temporary buffer
* contrib/lisp/org-export.el (org-export-dispatch,
  org-export-dispatch-ui): Add a key to export to a temporary buffer.
2012-02-18 10:11:10 +01:00
Jambunathan K 93ec2c7a50 org-e-html: New HTML exporter - a first attempt
* contrib/lisp/org-export.el (org-export-dispatch)
(org-export-dispatch-ui): Add new entries for the new HTML
exporter.

* EXPERIMENTAL/org-e-html.el: New file.  This is a very rough
cut based out on org-xhtml.el and org-e-latex.el.  The file
retains all the LaTeXisms in either commented form or
otherwise.  This is deliberate so as to have a quick look at
the reference implementation.  Retaining the organization
style of org-xhtml.el would enable easy creation of
org-e-odt.el by simply replacing e-html with e-odt for the
most part.
The changes here covers fairly a good ground - say 90% - of my
unit test file.
2012-02-18 12:25:53 +05:30
Nicolas Goaziou 1cc27e0d3a org-export: allow toggling Babel execution and file inclusion
* contrib/lisp/org-export.el (org-export-as, org-export-to-buffer,
  org-export-to-file): Add an optional argument to prevent including
  files and executing Babel code.

This can be used as a basis for an Org to Org exporter.
2012-02-17 20:48:57 +01:00
Nicolas Goaziou 4b33c23af8 org-export: Make macros recursives
* contrib/lisp/org-element.el (org-element-recursive-objects): Add
  macro object type to recursive types.
(org-element-object-restrictions): Macros can only contain other
macros.
* contrib/lisp/org-export.el (org-export-get-inbuffer-options): Parse
  macro value, unless it it meant to be eval'ed.
(org-export-expand-macro): Expand macros recursively.
2012-02-17 20:20:38 +01:00
Nicolas Goaziou 6782d6f77b Fix infloop when parsing radio targets
* contrib/lisp/org-element.el (org-element-link-parser): Do not parse
  radio link as a recursive link.
* contrib/lisp/org-export.el (org-export-solidify-link-text): Make
  sure "\" isn't allowed in solidified strings.  This is required to
  allow entities in radio targets.
* EXPERIMENTAL/org-e-latex.el (org-e-latex-link): Apply changes to
  radio links.
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii-link): Apply changes to
  radio links.
2012-02-17 18:46:05 +01:00
Nicolas Goaziou de0c86ffeb org-export: Fix small bug in `org-export-get-genealogy'
* contrib/lisp/org-export.el (org-export-get-genealogy): Return
  `:genealgy' value, not the full communication channel.
2012-02-17 14:20:19 +01:00
Nicolas Goaziou 664271cde7 org-export: New `org-export-get-parent-paragraph' function
* contrib/lisp/org-export.el (org-export-get-genealogy,
org-export-get-parent-paragraph): New functions.
(org-export-get-parent-headline, org-export-get-previous-element,
org-export-get-next-element): Internally use new function.
* EXPERIMENTAL/org-e-latex.el (org-e-latex-link--inline-image,
org-e-latex-link): Apply changes to topology functions.

This new function is especially useful since every object derives its
properties from those the containing paragraph.
2012-02-16 20:14:31 +01:00
Nicolas Goaziou 7d3f7f60e0 Make inline image definition more configurable
* contrib/lisp/org-element.el (org-element-object-restrictions): Allow
  plain links in link description.
* contrib/lisp/org-export.el (org-export-default-inline-image-rule):
  New variable.
(org-export-inline-image-p): Use rules instead of extensions. A rule
is a regexp applied to path for a given type of link.  It allows to
extend inline images to non-local files.
* EXPERIMENTAL/org-e-latex.el (org-e-latex-inline-image-rules): New
  variable.
(org-e-latex-inline-image-extensions): Removed variable

There are two motivations behind this change.  The first one is to
allow, for example, an HTML exporter to define a rule like the
following:

 ("http" . "\\.\\(png\\|jpg\\|jpeg\\|gif\\)\\(\\?\\(\\w+=\\w+&?\\)*\\)?")

The other one is to properly define thumbnails (clickable images),
like the following:

  [[http://orgmode.org][file:~/my-logo.png]]
2012-02-16 20:14:31 +01:00
Nicolas Goaziou 432c3d60c6 Implement a cleaner way to install back-end specific filters in new exporter
* contrib/lisp/org-export.el (org-export-filters-alist): New variable.
(org-export-install-filters): New function.
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii-filters-alist): New variable.

Back-end specific filters can now be installed in communication
channel with `org-BACKEND-filters-alist' variable.
2012-02-13 13:51:22 +01:00
Nicolas Goaziou b5082974c8 Publishing system compatible with new export engine
* contrib/lisp/org-e-publish.el: New file.
* contrib/lisp/org-export.el (org-export-dispatch,
  org-export-dispatch-ui): Install publishing commands into dispatcher.
2012-02-12 23:00:33 +01:00
Nicolas Goaziou 862fc8f479 org-export: Small documentation and indentation changes 2012-02-12 21:37:02 +01:00
Nicolas Goaziou 6bde2dfd1a org-export: Internal modification to in-buffer options retrieval
* contrib/lisp/org-export.el (org-export-get-environment): Renamed
  function from org-export-collect-options.  Also make arguments
  optionals.
(org-export-as): Apply renaming.  Refactor code a bit.
(org-export-get-inbuffer-options): Remove string argument from
signature.  Backend is now optional.  Also, check if option match is
really a keyword.
(org-export-get-global-options, org-export-parse-option-keyword): Make
backend argument optional.
2012-02-12 21:33:05 +01:00
Jambunathan K eda5eb1f3a Retire support for BasicODConverter 2012-02-12 16:59:37 +05:30
Nicolas Goaziou be43806794 org-export: Allow access to input file's full path in communication channel
* contrib/lisp/org-export.el (org-export-collect-options): Remove
  useless argument.
(org-export-initial-options): Add an `:input-file' property in
communication channel.
2012-02-06 12:26:01 +01:00
Nicolas Goaziou 223b618393 org-export: Fix bug when a macro returns a nil value
* contrib/lisp/org-export.el (org-export-initial-options): Initialize
  correctly some macros when buffer is a clone.
(org-export-expand-macro): Ignore output when macro's value is nil.
2012-02-05 18:04:55 +01:00
Nicolas Goaziou 8d57abc669 org-element: Fix small bug in org-element-map
* contrib/lisp/org-element.el (org-element-map): Fix small bug.
2012-02-05 14:38:07 +01:00
Nicolas Goaziou 176b959c4f Handling of file inclusion through keywords is done before export
* contrib/lisp/org-element.el (org-element-map): Remove included file
  expansion part.
* contrib/lisp/org-export.el (org-export-as): Expand include keywords
  before executing blocks.
(org-export-expand-include-keyword, org-export-prepare-file-contents):
  New functions.
(org-export-included-file, org-export-parse-included-file): Removed
  functions.
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii-keyword): Remove include
  keyword handling.
* EXPERIMENTAL/org-e-latex.el (org-e-latex-keyword): Remove include
  keyword handling.

Back-ends do not need anymore to take care of #+include keywords.
This change is required since file inclusion can potentially break any
structure.  Hence, it should be done before parsing.
2012-02-05 12:57:50 +01:00
Nicolas Goaziou d2fbf45c82 org-export: Fix docstrings 2012-02-04 15:32:03 +01:00
Nicolas Goaziou c8d9f1438f Fix bugs related to includes files in new export system 2012-02-04 12:39:31 +01:00
Nicolas Goaziou 42c96c4c26 org-export: Filters now require a third argument: the communication channel
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii-filter-headline-blank-lines):
  Apply signature change.
* contrib/lisp/org-export.el (org-export-filter-apply-functions): Call
  filter with the info channel as the third argument.
(org-export-data): Apply signature change
(org-export-filter-parse-tree-functions,
org-export-filter-final-output-functions,
org-export-filter-plain-text-functions,
org-export-filter-center-block-functions,
org-export-filter-drawer-functions,
org-export-filter-dynamic-block-functions,
org-export-filter-headline-functions,
org-export-filter-inlinetask-functions,
org-export-filter-plain-list-functions,
org-export-filter-item-functions, org-export-filter-comment-functions,
org-export-filter-comment-block-functions,
org-export-filter-example-block-functions,
org-export-filter-export-block-functions,
org-export-filter-fixed-width-functions,
org-export-filter-footnote-definition-functions,
org-export-filter-horizontal-rule-functions,
org-export-filter-keyword-functions,
org-export-filter-latex-environment-functions,
org-export-filter-babel-call-functions,
org-export-filter-paragraph-functions,
org-export-filter-property-drawer-functions,
org-export-filter-quote-block-functions,
org-export-filter-quote-section-functions,
org-export-filter-section-functions,
org-export-filter-special-block-functions,
org-export-filter-src-block-functions,
org-export-filter-table-functions,
org-export-filter-verse-block-functions,
org-export-filter-emphasis-functions,
org-export-filter-entity-functions,
org-export-filter-export-snippet-functions,
org-export-filter-footnote-reference-functions,
org-export-filter-inline-babel-call-functions,
org-export-filter-inline-src-block-functions,
org-export-filter-latex-fragment-functions,
org-export-filter-line-break-functions,
org-export-filter-link-functions, org-export-filter-macro-functions,
org-export-filter-radio-target-functions,
org-export-filter-statistics-cookie-functions,
org-export-filter-subscript-functions,
org-export-filter-superscript-functions,
org-export-filter-target-functions,
org-export-filter-time-stamp-functions,
org-export-filter-verbatim-functions): Update docstring.
2012-02-04 12:20:49 +01:00
Nicolas Goaziou 4b201ab66d org-export: Fix error when exporting a buffer with a code block
* contrib/lisp/org-export.el (org-export-as): Set a default value for
  org-current-export-file.
2012-02-03 17:56:51 +01:00
Nicolas Goaziou efc10c9286 org-export: Fix bug preveting low level headlines to close properly in e-latex
* contrib/lisp/org-export.el (org-export-with-current-buffer-copy):
  Copy `outline-level' value in the temporary buffer.  This fixes
  a bug introduced by commit
  10b06ae53c.
2012-02-02 20:29:33 +01:00
Nicolas Goaziou a623767a90 org-element: Fix item parsing with an empty first line and a child below
* contrib/lisp/org-element.el (org-element-item-parser): If item's
  first line is empty, ensure contents start at a beginning of line so
  that child can be correctly parsed.
2012-01-30 20:43:09 +01:00
Nicolas Goaziou d9970d1bd9 Implement limited headine numbering for e-latex and e-ascii back-ends
* contrib/lisp/org-export.el (org-export-with-section-numbers): Modify
  doc-string to document the changes.
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii--build-title): Implement
  limited headline numbering.
* EXPERIMENTAL/org-e-latex.el (org-e-latex-template): Implement
  limited headline numbering.
2012-01-27 14:49:32 +01:00
Nicolas Goaziou 10b06ae53c org-export: Fix bug with false-positive inline tasks
* contrib/lisp/org-export.el (org-export-with-current-buffer-copy):
  Fix bug with false-positive inline tasks.
2012-01-23 22:41:00 +01:00
Nicolas Goaziou a47713717b org-export: Add function to retrieve next element/object in parse tree
* contrib/lisp/org-export.el (org-export-get-next-element): New function.
2012-01-23 22:15:39 +01:00
Nicolas Goaziou 711d2ef0e0 org-element: Syntax change for caption
* contrib/lisp/org-element.el (org-element-dual-keywords): Move
  caption in the dual keywords category.
(org-element--affiliated-re): Change regexp matching a dual keyword.
(org-element-collect-affiliated-keywords): Dual parsed keywords also
  get their optional value parsed as a secondary string.
* EXPERIMENTAL/org-e-latex.el (org-e-latex--caption/label-string,
  org-e-latex-src-block): Apply caption status change.
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii--build-caption): Apply
  caption status change.
(org-e-ascii--list-listings, org-e-ascii--list-tables): Apply caption
  status change.  Also use short caption name when available.

The status change implies a syntax change.  Captions can now share
#+results: syntax, which mean that they can have a secondary
value. Thus, the following Org snippets are valid, the first two being
equivalent.

#+caption: long name
#+caption[]: long name
#+caption[short name]: long name
2012-01-22 21:34:00 +01:00
Nicolas Goaziou 0f29f23b06 org-element: Fix code typo
* contrib/lisp/org-element.el (org-element-string-restrictions):
  Correct name for both verbatim and emphasis successor is
  text-markup.
2012-01-22 14:30:03 +01:00
Nicolas Goaziou d41b9803e2 org-export: Do not export subtree titles as-is
* contrib/lisp/org-export.el (org-export-get-subtree-options):
  Interpret subtree title as a secondary string, not as a simple string.
2012-01-22 14:27:51 +01:00
Nicolas Goaziou f694c3d996 org-export: Fix some errors and corner cases with macros
* contrib/lisp/org-export.el (org-export-get-inbuffer-options):
  Replace macro with an empty string when no value is provided.
  Ignore macros with an ill-formed key.
2012-01-22 10:37:28 +01:00
Nicolas Goaziou fc93b6f340 org-export: Ask user for a file name when exporting from temporary buffer
* contrib/lisp/org-export.el (org-export-output-file-name): Ask user
  for a file name when exporting from temporary buffer.
2012-01-21 22:58:23 +01:00
Nicolas Goaziou 58b509c091 ASCII back-end for new export engine
* EXPERIMENTAL/org-e-ascii.el: New file.
* contrib/lisp/org-export.el (org-export-dispatch): Reference E-ASCII
  back-end in dispatcher.
2012-01-21 20:40:15 +01:00
Nicolas Goaziou 588a7c261b org-element: Correctly parse inlinetasks before first headline
* contrib/lisp/org-element.el (org-element-section-parser): Correctly
  parse inlinetasks before first headline.
2012-01-21 20:38:22 +01:00
Nicolas Goaziou f86de3d233 org-export: Export standard drawers by default
* contrib/lisp/org-export.el (org-export-with-drawers): Export
  standard drawers by default.
2012-01-21 20:16:33 +01:00
Nicolas Goaziou a5766a98d5 org-export: Fix option item for drawers
* contrib/lisp/org-export.el (org-export-option-alist): Use "d"
  instead of "drawer".
2012-01-21 20:04:51 +01:00
Nicolas Goaziou 76f249b4f3 org-export: Filters can only be list of functions
* contrib/lisp/org-export.el
  (org-export-filter-center-block-functions,
  org-export-filter-drawer-functions,
  org-export-filter-dynamic-block-functions,
  org-export-filter-headline-functions,
  org-export-filter-inlinetask-functions,
  org-export-filter-plain-list-functions,
  org-export-filter-item-functions,
  org-export-filter-comment-functions,
  org-export-filter-comment-block-functions,
  org-export-filter-example-block-functions,
  org-export-filter-export-block-functions,
  org-export-filter-fixed-width-functions,
  org-export-filter-footnote-definition-functions,
  org-export-filter-horizontal-rule-functions,
  org-export-filter-keyword-functions,
  org-export-filter-latex-environment-functions,
  org-export-filter-babel-call-functions,
  org-export-filter-paragraph-functions,
  org-export-filter-property-drawer-functions,
  org-export-filter-quote-block-functions,
  org-export-filter-quote-section-functions,
  org-export-filter-section-functions,
  org-export-filter-special-block-functions,
  org-export-filter-src-block-functions,
  org-export-filter-table-functions,
  org-export-filter-verse-block-functions,
  org-export-filter-emphasis-functions,
  org-export-filter-entity-functions,
  org-export-filter-export-snippet-functions,
  org-export-filter-footnote-reference-functions,
  org-export-filter-inline-babel-call-functions,
  org-export-filter-inline-src-block-functions,
  org-export-filter-latex-fragment-functions,
  org-export-filter-line-break-functions,
  org-export-filter-link-functions, org-export-filter-macro-functions,
  org-export-filter-radio-target-functions,
  org-export-filter-statistics-cookie-functions,
  org-export-filter-subscript-functions,
  org-export-filter-superscript-functions,
  org-export-filter-target-functions,
  org-export-filter-time-stamp-functions,
  org-export-filter-verbatim-functions): Only allow list of functions.
2012-01-21 15:29:25 +01:00
Nicolas Goaziou 5f81b563e0 org-export: Implement access to filters through communication channel
* contrib/lisp/org-export.el (org-export-option-alist): Add filters as
  properties in the communication channel.  This allows back-end
  developers to install their own filters at run time instead of
  making them reside in a global variable.
(org-export-data, org-export-as): Read filters from communication
  channel instead of global variables.
(org-export-filter-apply-functions): Only accept list of functions.
  Also change order of calling: it is now LIFO.
2012-01-21 15:23:49 +01:00
Nicolas Goaziou e760c0c1f2 org-export: Fix code typos 2012-01-20 20:27:04 +01:00
Nicolas Goaziou b6610f8609 org-export: Change signature of collect functions
* contrib/lisp/org-export.el (org-export-collect-elements): Change
  output to list of elements instead of their beginning position.
  Also add an optional predicate argument for fine grain control.
  Remove back-end argument.
(org-export-collect-tables, org-export-collect-listings): Apply
  changes from previous function.
(org-export-collect-figures): Apply changes from previous function.
  Also require a predicate to correctly define the concept of figure.
2012-01-20 20:12:30 +01:00
Nicolas Goaziou 3dc734eaf2 org-export: Correctly handle predicate in `org-export-get-ordinal'
* contrib/lisp/org-export.el (org-export-get-ordinal): Correctly
  handle predicate in `org-export-get-ordinal'. Also allow to count
  more than one element type in the same sequence with optional
  argument TYPES.
2012-01-20 20:12:30 +01:00
Nicolas Goaziou 95744ce7f8 org-element: Fix docstrings 2012-01-19 19:14:41 +01:00
Nicolas Goaziou 3bace4b335 org-element: Use correct regexp to identify comments at column 0
* contrib/lisp/org-element.el (org-element-guess-type,
org-element-current-element): Use correct regexp to identify comments
at column 0.
2012-01-19 19:14:41 +01:00
Nicolas Goaziou c2fd307df3 org-element: Fix `quote-section' detection and parsing
* contrib/lisp/org-element.el (org-element-quote-section-parser):
  Assume point is at quote-section beginning.
(org-element-guess-type): Move point to section beginning before
  calling for quote-section parser.
(org-element-parse-elements, org-element-current-element): Correctly
  detect and parse quote section.
2012-01-19 18:09:10 +01:00
Nicolas Goaziou 6c9c6eff05 org-export: Fix docstrings 2012-01-19 17:14:22 +01:00
Nicolas Goaziou c12246931f org-export: Add a function to resolve id or custom-id links
* contrib/lisp/org-export.el (org-export-resolve-id-link): New function.
2012-01-19 17:07:18 +01:00
Nicolas Goaziou 46ff3b7a56 org-export: Remove :point-max property
* contrib/lisp/org-export.el (org-export-last-sibling-p): Make use
  of :genealogy property instead.
(org-export-get-point-max): Removed function.
(org-export-collect-tree-properties): Remove :point-max property.
2012-01-18 23:45:02 +01:00
Nicolas Goaziou 0bd090379b org-element: Fix block parsing
* contrib/lisp/org-element.el (org-element-parse-elements): Fix
  erroneous block parsing introduced by recent speed improvements.
  Also refactor code a bit.
2012-01-18 22:12:36 +01:00
Nicolas Goaziou 3c4a0795df Fix some docstrings 2012-01-17 21:06:30 +01:00
Nicolas Goaziou ecfb12de19 New interactive export functions for 'e-latex back-end
* EXPERIMENTAL/org-e-latex.el (org-e-latex-export-to-latex,
  org-e-latex-export-to-pdf): New functions.
* contrib/lisp/org-export.el (org-export-dispatch): Make use of new
  functions.
2012-01-17 20:27:38 +01:00
Nicolas Goaziou 418f63c8b1 org-export: Externalize output file name retrieval
* contrib/lisp/org-export.el (org-export-output-file-name): New function.
(org-export-to-file): Remove post-process and pub-dir arguments. Add
a file argument to specify an output file.
2012-01-17 19:14:14 +01:00
Nicolas Goaziou e270792bd8 org-export: Fix regression in headline numbering
* contrib/lisp/org-export.el (org-export-collect-tree-properties):
  Ensure `:headline-offset' is filled before `:headline-numbering'
  since the latter depends on the former.
(org-export-collect-headline-numbering): Use headline elements as keys
  in the returned alist, instead of just beginning numbers.
(org-export-get-headline-number): Apply key change.
2012-01-16 00:36:26 +01:00
Nicolas Goaziou 5e970e407a org-export: Add a new predicate to test if an headline is low level
* contrib/lisp/org-export.el (org-export-low-level-p): New function.
* EXPERIMENTAL/org-e-latex.el (org-e-latex-headline): Make use of new function.
2012-01-15 18:40:40 +01:00
Nicolas Goaziou b03ec00a0e org-export: Change output from org-export-resolve-fuzzy-link
* contrib/lisp/org-export.el (org-export-resolve-fuzzy-link): Now
  return the full object (for a target) or element (for an headline)
  when a match is found.  Also rewrite internals so it doesn't rely
  on :headline-alist.
(org-export-collect-tree-properties): Remove :headline-alist property
  from communication channel, since `org-export-resolve-fuzzy-link'
  doesn't use it anymore. Also store full target objects
  in :target-list property, not only raw names. Fix an argument name
  mismatch, too.

Previous version of org-export-resolve-fuzzy-link returned beginning
position as the identifier for the headline found, which is pretty
weak when files are included in the parsed buffer.
2012-01-14 01:02:07 +01:00
Nicolas Goaziou 117ee610e5 org-element: Fix small bug
* contrib/lisp/org-element.el (org-element-non-recursive-block-alist):
  Fix small bug.
2012-01-13 18:00:27 +01:00
Nicolas Goaziou fb046f5b59 org-element: Speed optimizations
* contrib/lisp/org-element.el (org-element--element-block-re): New
  variable.
(org-element-current-element): New function.
(org-element-parse-elements): Make use of the new specialized function
  instead of `org-element-at-point'.  Also narrow buffer to current
  container (greater element or recursive object) being parsed to
  improve search speed.
(org-element-comment-parser): Speed-up parsing for comments at column 0.
(org-element-guess-type): Make comment regexp less restrictive, due to
  comment optimizations.
2012-01-13 17:56:56 +01:00
Nicolas Goaziou 5b407eaabf org-export: Add another way to handle source code
* contrib/lisp/org-export.el (org-export-handle-code): Allow to delay
  processing of source code by storing line numbers and references in
  text properties attached it.
2012-01-12 20:29:25 +01:00
Nicolas Goaziou 57f51dce5d org-export: Default title doesn't overwrite a blank #+title keyword
* contrib/lisp/org-export.el (org-export-collect-options): Default
  title is retrieved before in-buffer settings are read.  Also, be
  more careful about indirect buffers.
2012-01-12 17:53:47 +01:00
Nicolas Goaziou 64b554cedc org-element: Minor fix
* contrib/lisp/org-element.el (org-element-line-break-interpreter):
  Add forgotten characters from previous commit.
2012-01-12 15:35:28 +01:00
Nicolas Goaziou a566f810e2 org-element: Fix line-break object
* contrib/lisp/org-element.el (org-element-line-break-parser,
org-element-line-break-interpreter): Fix line-break object.
2012-01-12 15:25:12 +01:00
Nicolas Goaziou 886154898c org-export: Prevent footnotes definitons from being enclosed with a section
* contrib/lisp/org-export.el (org-export-initial-options): Prevent
  footnotes definitons from being enclosed with a section.
2012-01-12 12:43:30 +01:00
Nicolas Goaziou a3e4459bee org-export: Properly reset LOC count when encountering a "-n" switch
* contrib/lisp/org-export.el (org-export-get-loc): Properly reset LOC
  count when encountering a "-n" switch
2012-01-11 18:05:51 +01:00
Nicolas Goaziou cd1e356da2 org-element: Rename :options property from example to :switches
* contrib/lisp/org-element.el (org-element-example-block-parser):
  Rename :options property from example to :switches.
2012-01-11 17:30:00 +01:00
Nicolas Goaziou 4725d00f84 org-element: Untabify strings without semantics during parsing
* contrib/lisp/org-element.el (org-element-parse-objects): Untabify
  strings between objects to avoid any `tab-width' mismatch.
* contrib/lisp/org-element.el (org-element-normalize-contents): No
  longer need to handle tabs.
2012-01-11 16:52:08 +01:00
Nicolas Goaziou 3fc0afb5ee org-element: Add missing inline-src-block interpreter
* contrib/lisp/org-element.el
  (org-element-inline-src-block-interpreter): New function.
2012-01-11 16:52:08 +01:00
Nicolas Goaziou 096ffd571c org-element: White space fixing and trivial refactoring 2012-01-11 16:52:08 +01:00
Nicolas Goaziou 6951f9af15 org-export: Remove useless test
* contrib/lisp/org-export.el (org-export-get-previous-element): Remove
  useless test.
2012-01-11 16:52:08 +01:00
Nicolas Goaziou b73a8d6d82 Removal of persistent properties (:total-loc, :code-refs) in export engine
* contrib/lisp/org-element.el (org-element-map): Remove use of
  `org-export-update-info'.
* contrib/lisp/org-export.el (org-export-persistent-properties,
org-export-persistent-properties-list): Remove variables
(org-export-collect-tree-properties): Rename from
  `org-export-initialize-persistent-properties'.
(org-export-data): Get rid of `org-export-update-info' calls.
(org-export-as): Use new `org-export-collect-tree-properties' name.
(org-export-resolve-coderef, org-export-get-loc): New functions.
(org-export-handle-code): Use new functions instead of removed
  properties.  Reformat code.  Change signature.
2012-01-11 16:52:08 +01:00
Nicolas Goaziou acc6fa3a44 org-export: New function to retrieve previous element and object
* contrib/lisp/org-export.el (org-export-first-sibling-p,
  org-export-data): Apply changes.
(org-export-get-previous-element): New function.
2012-01-11 16:52:08 +01:00
Nicolas Goaziou bc22518812 org-export: Remove :previous-element :previous-object properties
* contrib/lisp/org-export.el (org-export-set-property):
2012-01-11 16:52:07 +01:00
Nicolas Goaziou aae20190a3 org-element: Remove empty strings between objects in parse tree
* contrib/lisp/org-element.el (org-element-parse-objects): Remove
  empty strings between objects in parse tree.
2012-01-11 16:52:07 +01:00
Nicolas Goaziou 27f3a7cb05 org-element: Fix infloop when an heading is the first line of a buffer
* contrib/lisp/org-element.el (org-element-section-parser): Fix
  infloop when an heading is the first line of a buffer.
2012-01-08 20:38:28 +01:00
Nicolas Goaziou bb39f7ea20 org-element: Small fix
* contrib/lisp/org-element.el (org-element-radio-target-interpreter):
  Correct interpreter for radio targets.
2012-01-08 19:34:15 +01:00
Nicolas Goaziou e09f92bf7e org-element: Correctly get section beginning
* contrib/lisp/org-element.el (org-element-section-parser): Fix
  `:begin' property, which was preventing correct parsing of text
  before first headline.
2012-01-08 19:33:50 +01:00
Nicolas Goaziou 3638097e5a org-element: Fix small bug when parsing visible headlines only
* contrib/lisp/org-element.el (org-element-parse-elements): Fix bug
  when restricting parsing to visible headlines only.
2012-01-08 12:50:29 +01:00
Nicolas Goaziou 25ab746fc9 org-export: Add a filter for new section element
* contrib/lisp/org-export.el (org-export-filter-section-functions):
  New variable.
2012-01-08 12:50:29 +01:00
Nicolas Goaziou daef88b0a8 org-element: Add a new greater element (section)
* contrib/lisp/org-element.el (org-element-section-parser,
  org-element-section-interpreter): New functions
(org-element-greater-elements): Add new element to the list.
(org-element-at-point): Change arguments to handle a new section mode.
(org-element-guess-type): Accept an optional argument to look for
  sections in priority.
(org-element-parse-buffer): Start in section mode by default.  Thus
  any text before the first headline is still in a section of his
  own.
(org-element-parse-elements): Handle new section mode.
2012-01-08 12:50:29 +01:00
Nicolas Goaziou ced1878fe4 org-export: Remove `:footnote-seen-labels' persistent property altogether
* contrib/lisp/org-export.el (org-export-update-info): No longer need
to keep it updated.
(org-export-collect-footnote-definitions,
org-export-footnote-first-reference-p): Get rid of dependency on the
removed property.
2012-01-08 02:06:34 +01:00
Nicolas Goaziou f4d8a55282 org-export: Code typo
* contrib/lisp/org-export.el (org-export-get-parent-headline): Code typo.
2012-01-08 00:22:37 +01:00
Nicolas Goaziou 5ef692030f org-export: Fix small bug
* contrib/lisp/org-export.el (org-export-table-format-info): Fix
  confusion between "\" which means nothing in special columns, and
  "/".
2012-01-07 18:33:06 +01:00
Nicolas Goaziou a9f9db68c1 org-export: Fix information returned from table analysis
* contrib/lisp/org-export.el (org-export-table-format-info): Now
  `:width' is properly retrieved with cookies where alignement is
  missing (i.e. "<6>").  Also `:row-groups' contains groups of
  standard lines only (colgroups and width lines are skipped).
2012-01-07 18:12:07 +01:00
Nicolas Goaziou 50213d28cb org-export: Improve `:genealogy' property in communication channel
* contrib/lisp/org-export.el (org-export-update-info): `:genealogy' is
  now a full flat list of objects and elements containing current
  object or element.  Thus, `:parent-properties' and
  `:inherited-properties' are now obsolete, and removed.
(org-export-data): Apply change to `:genealogy' property.
(org-export-get-parent-headline): New function to fullfil one common
  need.
(org-export-last-sibling-p, org-export-included-file): Make use of the
  new function.
2012-01-07 14:33:48 +01:00
Nicolas Goaziou aeb1ee1c66 contrib/lisp/org-export: Add a dispatcher for new export engine
* contrib/lisp/org-export.el (org-export-initial-scope,
  org-export-show-temporary-export-buffer,
  org-export-dispatch-use-expert-ui): New variables.
(org-export-dispatch, org-export-dispatch-ui): New functions.
2012-01-06 16:04:13 +01:00
Nicolas Goaziou 427327a94e contrib/lisp/org-export: Possibly add transcoded string to kill ring
* contrib/lisp/org-export.el (org-export-copy-to-kill-ring): New
  variable.
(org-export-as): Make use of new variable.
2012-01-05 22:21:57 +01:00
Nicolas Goaziou 9d47c4f23d contrib/lisp/org-export: Customize coding system for export to file
* contrib/lisp/org-export.el (org-export-coding-system): New variable.
(org-export-to-file): Use new variable.
2012-01-05 20:15:05 +01:00
Nicolas Goaziou a496c3af47 contrib/lisp/org-export: Fix subtree export
* contrib/lisp/org-export.el (org-export-get-subtree-options):
  Correctly get `:title: from headline when no "EXPORT_TITLE" property
  is defined.  Also assume point is at subtree beginning.
(org-export-as): Fix subtree parsing.  The subtree starts at point or
  at first heading above.  Contents do not include the first headline.
2012-01-05 20:15:05 +01:00
Nicolas Goaziou 3ada986ba3 contrib/lisp/org-export: Make export to file compatible with org-publish
* contrib/lisp/org-export.el (org-export-to-file): Automatically
  retrieve output file name.  Also add a PUB-DIR optional argument.
2012-01-05 20:15:05 +01:00
Bastien Guerry 346ee30e42 Fix trailing whitespaces for *.el files in contrib/. 2012-01-04 16:21:56 +01:00
Bastien Guerry 681914f32b Copyright year fixes for contrib/. 2012-01-04 15:48:18 +01:00
Bastien Guerry 575ecebcac More copyright year fixes. 2012-01-04 15:11:23 +01:00
Bastien Guerry e44d2975ff Fix copyright (to 2012) year and Org version (to 7.8.03). 2012-01-03 18:47:01 +01:00
Bastien Guerry b73075a8d2 Code cleanup up: rename org-on-*-p to org-at-*-p.
Rename `org-on-heading-p' and `org-on-target-p' to
`org-at-heading-p' and `org-at-target-p' to be more
consistent with the org-at-*-p family.

Also define two aliases.
2012-01-02 19:52:35 +01:00
Nicolas Goaziou 44bd38556c contrib/lisp/org-element.el: Fix docstrings 2011-12-29 19:41:16 +01:00
Bastien Guerry 371b0cf9aa org-drill.el: fix a few wrong :type spec.
* org-drill.el (org-drill-leech-method, org-drill-scope)
(org-drill-spaced-repetition-algorithm): Fix wrong :type spec.

Thanks to Joost Kremers for spotting this.
2011-12-26 15:40:02 +01:00
Bastien Guerry 80dd8f47f0 org-element.el: Added "This file is not part of GNU Emacs". 2011-12-26 15:34:36 +01:00
Sebastien Vauban 8e1eeaa190 Fix old-way variable assignments. 2011-12-26 14:42:22 +01:00
Nicolas Goaziou 732725a79b contrib/lisp/org-element: Translate "data" affiliated keyword into "name"
* contrib/lisp/org-element.el (org-element-keyword-translation-alist):
  Make "data" an alternate from "name" according to code blocks standardization.
2011-12-26 12:33:58 +01:00
Nicolas Goaziou 5136d2ee41 contrib/lisp/org-export: Add footnote number to footnotes definitions collection
* contrib/lisp/org-export.el
  (org-export-collect-footnote-definitions): Change key to footnote
  number, retrieved with `org-export-get-footnote-number'.  Also, do
  not use beginning position as label for inline footnotes, as those
  are weak identifiers.
2011-12-26 09:59:53 +01:00