Commit graph

81 commits

Author SHA1 Message Date
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
Jambunathan K fac58412f3 org-e-html: Improve lists, support listified headlines 2012-02-20 22:06:51 +05:30
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 f07929f5f1 org-e-ascii: Fix column width with cells containing an object not exported
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii-table):  width may be
  wrong when some object is removed from a cell during export
2012-02-20 16:37:25 +01:00
Nicolas Goaziou 61f831b923 org-e-latex: Fix label position in LaTeX environments
* EXPERIMENTAL/org-e-latex.el (org-e-latex-latex-environment): label
  should be within the environment.
2012-02-20 01:05:46 +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
Jambunathan K 8fc0dc2f58 org-e-html: Support for generating TOC 2012-02-19 21:27:05 +05:30
Jambunathan K be42548763 org-e-html: Fix crash while exporting to a temp buffer 2012-02-19 03:05:35 +05:30
Jambunathan K 1feac49476 org-e-html: Use prefix consistently and cleanup some code 2012-02-18 22:39:48 +05:30
Nicolas Goaziou 0548051357 org-e-publish: Hook e-html back-end into publishing system
* EXPERIMENTAL/org-e-publish.el (org-e-publish-org-to-html): New function.
2012-02-18 14:37:51 +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 4d77e6adf6 org-e-ascii: Correctly expand syntax in table cells
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii-table): Translate cells
  into ASCII/Latin1/UTF-8 before building back the table.
2012-02-17 18:54:23 +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 34313edab9 org-e-ascii: Fix tables export with a special column
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii-table--column-width): Do
  not return width of special column, if any.
(org-e-ascii-table--build-hline): Add comments to code.
2012-02-17 14:54:20 +01:00
Nicolas Goaziou 3e18c9cad7 org-e-latex: Change list of listings command according to package used
* EXPERIMENTAL/org-e-latex.el (org-e-latex-keyword): Use
  \listoflistings for minted and \lstlistoflistings for listings package.
2012-02-16 20:14:31 +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 dfd7fb23d2 org-e-ascii: Less blank lines in document's title when no author is provided
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii-template--document-title):
  Less blank lines in document's title when no author is provided.
2012-02-12 22:08:44 +01:00
Nicolas Goaziou c804bef74b org-e-latex: Small refactoring
* EXPERIMENTAL/org-e-latex.el (org-e-latex-table--format-string):
  Small refactoring.
2012-02-08 23:26:02 +01:00
Nicolas Goaziou f4a568f06a org-e-latex: Allow formal "booktabs" display of tables
* EXPERIMENTAL/org-e-latex.el (org-e-latex-tables-booktabs): New
  variable.
(org-e-latex-table): Use special "booktabs" rules when previous
variable is non-nil or "booktabs=yes" attribute is provided.
2012-02-08 23:26:02 +01:00
Nicolas Goaziou 678de3fdf0 org-e-latex: Add creator info in hypersetup when it should be commented
* EXPERIMENTAL/org-e-latex.el (org-e-latex-template): Add creator info
  in hypersetup when it should be commented.
2012-02-07 08:20:27 +01:00
Nicolas Goaziou aac1c8b60d org-e-latex: Fix a docstring
* EXPERIMENTAL/org-e-latex.el (org-e-latex-classes): Fix a docstring.
2012-02-06 15:08:05 +01:00
Nicolas Goaziou 6eeca7f9cb org-e-latex: Fix some docstrings 2012-02-05 15:06:49 +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 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 ff19cf5728 org-e-ascii: Enforce a final new line in output
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii-template): Enforce a final
  new line in output.
2012-01-28 14:51:59 +01:00
Nicolas Goaziou bb61ae64a3 org-e-ascii: Make margin for quoted text configurable
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii-quote-margin): New
  variable.
(org-e-ascii--current-text-width, org-e-ascii-quote-block,
org-e-ascii-quote-section, org-e-ascii-verse-block): Use new variable.
2012-01-28 14:51:59 +01:00
Nicolas Goaziou 4d72201b30 org-e-ascii: Insert a title for footnote section
* EXPERIMENTAL/org-e-ascii.el (org-e-ascii-dictionary): Add footnotes
  entry.
(org-e-ascii-template): Insert a title for footnote section.
2012-01-28 14:51:59 +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 674bb56857 org-e-latex: Change output for links without description pointing to an headline
* EXPERIMENTAL/org-e-latex.el (org-e-latex-link): Use ref command for
  a link pointing to an headline when headlines are numbered and no
  description is provided.
(org-e-latex-headline): Change automatic label for headlines.
2012-01-25 18:23:59 +01:00
Nicolas Goaziou c4fad02b06 org-e-latex: Fix an infloop with inline images
* EXPERIMENTAL/org-e-latex.el (org-e-latex-link--inline-image): Fix an
  infloop.
2012-01-25 13:18:28 +01:00
Nicolas Goaziou cb8847f6fe org-e-latex: Expand path when file name is absolute in an inline image
* EXPERIMENTAL/org-e-latex.el (org-e-latex-link): In links, expand
  path when file name is absolute.
2012-01-23 19:16:30 +01:00
Nicolas Goaziou 32afb61b87 org-e-latex: Fix variable shadowing
* EXPERIMENTAL/org-e-latex.el (org-e-latex-table--format-string): Now
  accept three arguments.
(org-e-latex-table--align-string, org-e-latex-table): Distinguish
between the communication channel (INFO) and informations about
table (TABLE-INFO).
2012-01-22 22:00:44 +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 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 96dc2b01ce org-e-latex: Silence byte-compiler 2012-01-21 16:51:15 +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 812d0a5375 org-e-latex: Fix customize group name and docstrings
* EXPERIMENTAL/org-e-latex.el (org-export-e-latex): Customize group,
  renamed from org-export-latex.
(org-e-latex-listings, org-e-latex-listings-options,
  org-e-latex-minted-options, org-e-latex-custom-lang-environments):
  Fix variable name in docstring.
2012-01-16 08:06:11 +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 85588714ac org-e-latex: Apply changes to org-export-resolve-fuzzy-link
* EXPERIMENTAL/org-e-latex.el (org-e-latex-link): Apply changes to
  org-export-resolve-fuzzy-link.
2012-01-14 01:02:48 +01:00
Nicolas Goaziou cbc5aafe19 org-e-latex: Apply signature modification of functions
* EXPERIMENTAL/org-e-latex.el (org-e-latex-example-block,
  org-e-latex-src-block): Apply changes to `org-export-handle-code'.
(org-e-latex-link): Use new function `org-export-resolve-coderef'.
2012-01-11 16:52:08 +01:00
Nicolas Goaziou c15209c923 org-e-latex: Apply removal of :previous-element and :previous-object properties
* EXPERIMENTAL/org-e-latex.el (org-e-latex-footnote-reference,
  org-e-latex-headline): Use new functions for retrieving previous
  element.
2012-01-11 16:52:08 +01:00
Nicolas Goaziou 3010402b47 org-e-latex: Support for sections
* EXPERIMENTAL/org-e-latex.el (org-e-latex-section): New function
2012-01-08 12:50:29 +01:00
Nicolas Goaziou fc895b9574 org-e-latex: Apply changes to `:genealogy'
* EXPERIMENTAL/org-e-latex.el (org-e-latex-item,
  org-e-latex-link--inline-image): Apply changes to `:genealogy'.
2012-01-07 14:33:48 +01:00
Nicolas Goaziou 08bad014c7 EXPERIMENTAL/org-e-latex.el (org-e-latex-collect-errors): Small fix 2012-01-05 22:29:16 +01:00
Nicolas Goaziou 938f126511 EXPERIMENTAL/org-e-latex: Fix transcoding of example-block elements
* EXPERIMENTAL/org-e-latex.el (org-e-latex-example-block): Fix
transcoding.  Verbatim environment was omitted.
(org-e-latex-fixed-width): Whitespace cleanup.
2012-01-05 20:15:05 +01:00
Nicolas Goaziou 6d2a98552d EXPERIMENTAL/org-e-latex.el: Fix defcustom groups 2012-01-05 20:15:05 +01:00