2012-01-07 08:01:25 -05:00
|
|
|
|
;;; org-e-ascii.el --- ASCII Back-End For Org Export Engine
|
|
|
|
|
|
|
|
|
|
;; Copyright (C) 2012 Free Software Foundation, Inc.
|
|
|
|
|
|
|
|
|
|
;; Author: Nicolas Goaziou <n.goaziou at gmail dot com>
|
|
|
|
|
;; Keywords: outlines, hypermedia, calendar, wp
|
|
|
|
|
|
|
|
|
|
;; This program is free software; you can redistribute it and/or modify
|
|
|
|
|
;; it under the terms of the GNU General Public License as published by
|
|
|
|
|
;; the Free Software Foundation, either version 3 of the License, or
|
|
|
|
|
;; (at your option) any later version.
|
|
|
|
|
|
|
|
|
|
;; This program is distributed in the hope that it will be useful,
|
|
|
|
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
;; GNU General Public License for more details.
|
|
|
|
|
|
|
|
|
|
;; You should have received a copy of the GNU General Public License
|
|
|
|
|
;; along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
|
|
|
|
|
;;; Commentary:
|
|
|
|
|
|
|
|
|
|
;; This library implements an ASCII back-end for Org generic exporter.
|
|
|
|
|
|
|
|
|
|
;; To test it, run
|
|
|
|
|
;;
|
|
|
|
|
;; M-: (org-export-to-buffer 'e-ascii "*Test e-ASCII*") RET
|
|
|
|
|
;;
|
|
|
|
|
;; in an Org mode buffer then switch to that buffer to see the ASCII
|
|
|
|
|
;; export. See contrib/lisp/org-export.el for more details on how
|
|
|
|
|
;; this exporter works.
|
|
|
|
|
|
|
|
|
|
;;; Code:
|
|
|
|
|
|
|
|
|
|
(eval-when-compile (require 'cl))
|
|
|
|
|
|
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 07:47:20 -05:00
|
|
|
|
(declare-function org-element-contents "org-element" (element))
|
|
|
|
|
(declare-function org-element-property "org-element" (property element))
|
2012-01-28 08:49:50 -05:00
|
|
|
|
(declare-function org-element-normalize-string "org-element" (s))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(declare-function org-element-map "org-element"
|
|
|
|
|
(data types fun &optional info first-match))
|
|
|
|
|
|
|
|
|
|
(declare-function org-export-collect-footnote-definitions
|
|
|
|
|
"org-export" (data info))
|
|
|
|
|
(declare-function org-export-collect-headlines "org-export" (info &optional n))
|
|
|
|
|
(declare-function org-export-collect-listings "org-export" (info))
|
|
|
|
|
(declare-function org-export-collect-tables "org-export" (info))
|
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 05:33:16 -04:00
|
|
|
|
(declare-function org-export-data "org-export" (data info))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(declare-function org-export-expand-macro "org-export" (macro info))
|
2012-03-10 05:37:13 -05:00
|
|
|
|
(declare-function org-export-format-code-default "org-export" (element info))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(declare-function org-export-get-coderef-format "org-export" (path desc))
|
|
|
|
|
(declare-function org-export-get-footnote-number "org-export" (footnote info))
|
|
|
|
|
(declare-function org-export-get-headline-number "org-export" (headline info))
|
|
|
|
|
(declare-function org-export-get-ordinal "org-export"
|
2012-03-07 12:02:57 -05:00
|
|
|
|
(element info &optional types predicate))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(declare-function org-export-get-parent-headline "org-export" (blob info))
|
|
|
|
|
(declare-function org-export-get-relative-level "org-export" (headline info))
|
|
|
|
|
(declare-function org-export-low-level-p "org-export" (headline info))
|
|
|
|
|
(declare-function org-export-output-file-name "org-export"
|
|
|
|
|
(extension &optional subtreep pub-dir))
|
|
|
|
|
(declare-function org-export-resolve-coderef "org-export" (ref info))
|
|
|
|
|
(declare-function org-export-resolve-fuzzy-link "org-export" (link info))
|
|
|
|
|
(declare-function org-export-resolve-id-link "org-export" (link info))
|
2012-05-18 05:20:00 -04:00
|
|
|
|
(declare-function org-export-resolve-radio-link "org-export" (link info))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(declare-function
|
|
|
|
|
org-export-to-file "org-export"
|
|
|
|
|
(backend file &optional subtreep visible-only body-only ext-plist))
|
|
|
|
|
|
|
|
|
|
|
2012-05-18 04:18:42 -04:00
|
|
|
|
;;; Define Back-End
|
|
|
|
|
;;
|
2012-01-07 08:01:25 -05:00
|
|
|
|
;; The following setting won't allow to modify preferred charset
|
|
|
|
|
;; through a buffer keyword or an option item, but, since the property
|
|
|
|
|
;; will appear in communication channel nonetheless, it allows to
|
|
|
|
|
;; override `org-e-ascii-charset' variable on the fly by the ext-plist
|
|
|
|
|
;; mechanism.
|
2012-05-18 04:18:42 -04:00
|
|
|
|
;;
|
2012-02-13 07:50:28 -05:00
|
|
|
|
;; We also install a filter for headlines and sections, in order to
|
|
|
|
|
;; control blank lines separating them in output string.
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
2012-05-18 04:18:42 -04:00
|
|
|
|
(defvar org-e-ascii-translate-alist
|
|
|
|
|
'((babel-call . org-e-ascii-babel-call)
|
|
|
|
|
(bold . org-e-ascii-bold)
|
|
|
|
|
(center-block . org-e-ascii-center-block)
|
|
|
|
|
(clock . org-e-ascii-clock)
|
|
|
|
|
(code . org-e-ascii-code)
|
|
|
|
|
(comment . org-e-ascii-comment)
|
|
|
|
|
(comment-block . org-e-ascii-comment-block)
|
|
|
|
|
(drawer . org-e-ascii-drawer)
|
|
|
|
|
(dynamic-block . org-e-ascii-dynamic-block)
|
|
|
|
|
(entity . org-e-ascii-entity)
|
|
|
|
|
(example-block . org-e-ascii-example-block)
|
|
|
|
|
(export-block . org-e-ascii-export-block)
|
|
|
|
|
(export-snippet . org-e-ascii-export-snippet)
|
|
|
|
|
(fixed-width . org-e-ascii-fixed-width)
|
|
|
|
|
(footnote-definition . org-e-ascii-footnote-definition)
|
|
|
|
|
(footnote-reference . org-e-ascii-footnote-reference)
|
|
|
|
|
(headline . org-e-ascii-headline)
|
|
|
|
|
(horizontal-rule . org-e-ascii-horizontal-rule)
|
|
|
|
|
(inline-babel-call . org-e-ascii-inline-babel-call)
|
|
|
|
|
(inline-src-block . org-e-ascii-inline-src-block)
|
|
|
|
|
(inlinetask . org-e-ascii-inlinetask)
|
|
|
|
|
(italic . org-e-ascii-italic)
|
|
|
|
|
(item . org-e-ascii-item)
|
|
|
|
|
(keyword . org-e-ascii-keyword)
|
|
|
|
|
(latex-environment . org-e-ascii-latex-environment)
|
|
|
|
|
(latex-fragment . org-e-ascii-latex-fragment)
|
|
|
|
|
(line-break . org-e-ascii-line-break)
|
|
|
|
|
(link . org-e-ascii-link)
|
|
|
|
|
(macro . org-e-ascii-macro)
|
|
|
|
|
(paragraph . org-e-ascii-paragraph)
|
|
|
|
|
(plain-list . org-e-ascii-plain-list)
|
|
|
|
|
(plain-text . org-e-ascii-plain-text)
|
|
|
|
|
(planning . org-e-ascii-planning)
|
|
|
|
|
(property-drawer . org-e-ascii-property-drawer)
|
|
|
|
|
(quote-block . org-e-ascii-quote-block)
|
|
|
|
|
(quote-section . org-e-ascii-quote-section)
|
|
|
|
|
(radio-target . org-e-ascii-radio-target)
|
|
|
|
|
(section . org-e-ascii-section)
|
|
|
|
|
(special-block . org-e-ascii-special-block)
|
|
|
|
|
(src-block . org-e-ascii-src-block)
|
|
|
|
|
(statistics-cookie . org-e-ascii-statistics-cookie)
|
|
|
|
|
(strike-through . org-e-ascii-strike-through)
|
|
|
|
|
(subscript . org-e-ascii-subscript)
|
|
|
|
|
(superscript . org-e-ascii-superscript)
|
|
|
|
|
(table . org-e-ascii-table)
|
|
|
|
|
(table-cell . org-e-ascii-table-cell)
|
|
|
|
|
(table-row . org-e-ascii-table-row)
|
|
|
|
|
(target . org-e-ascii-target)
|
|
|
|
|
(template . org-e-ascii-template)
|
|
|
|
|
(timestamp . org-e-ascii-timestamp)
|
|
|
|
|
(underline . org-e-ascii-underline)
|
|
|
|
|
(verbatim . org-e-ascii-verbatim)
|
|
|
|
|
(verse-block . org-e-ascii-verse-block))
|
|
|
|
|
"Alist between element or object types and translators.")
|
|
|
|
|
|
2012-05-18 04:33:21 -04:00
|
|
|
|
(defconst org-e-ascii-options-alist
|
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 12:00:50 -04:00
|
|
|
|
'((:ascii-charset nil nil org-e-ascii-charset))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
"Alist between ASCII export properties and ways to set them.
|
2012-05-18 04:33:21 -04:00
|
|
|
|
See `org-export-options-alist' for more information on the
|
2012-05-18 04:18:42 -04:00
|
|
|
|
structure of the values.")
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
2012-02-13 07:50:28 -05:00
|
|
|
|
(defconst org-e-ascii-filters-alist
|
|
|
|
|
'((:filter-headline . org-e-ascii-filter-headline-blank-lines)
|
|
|
|
|
(:filter-section . org-e-ascii-filter-headline-blank-lines))
|
|
|
|
|
"Alist between filters keywords and back-end specific filters.
|
|
|
|
|
See `org-export-filters-alist' for more information.")
|
|
|
|
|
|
2012-05-18 04:18:42 -04:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;; Internal Variables
|
|
|
|
|
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(defconst org-e-ascii-dictionary
|
2012-01-28 07:41:50 -05:00
|
|
|
|
'(("Footnotes\n"
|
2012-01-07 08:01:25 -05:00
|
|
|
|
("en"
|
2012-01-28 07:41:50 -05:00
|
|
|
|
:ascii "Footnotes\n"
|
|
|
|
|
:latin1 "Footnotes\n"
|
|
|
|
|
:utf-8 "Footnotes\n")
|
2012-01-07 08:01:25 -05:00
|
|
|
|
("fr"
|
2012-01-28 07:41:50 -05:00
|
|
|
|
:ascii "Notes de bas de page\n"
|
|
|
|
|
:latin1 "Notes de bas de page\n"
|
|
|
|
|
:utf-8 "Notes de bas de page\n"))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
("Listing %d: %s"
|
|
|
|
|
("en"
|
|
|
|
|
:ascii "Listing %d: %s"
|
|
|
|
|
:latin1 "Listing %d: %s"
|
|
|
|
|
:utf-8 "Listing %d: %s")
|
|
|
|
|
("fr"
|
|
|
|
|
:ascii "Programme %d : %s"
|
|
|
|
|
:latin1 "Programme %d : %s"
|
|
|
|
|
:utf-8 "Programme nº %d : %s"))
|
|
|
|
|
("List Of Listings\n"
|
|
|
|
|
("en"
|
|
|
|
|
:ascii "List Of Listings\n"
|
|
|
|
|
:latin1 "List Of Listings\n"
|
|
|
|
|
:utf-8 "List Of Listings\n")
|
|
|
|
|
("fr"
|
|
|
|
|
:ascii "Liste des programmes\n"
|
|
|
|
|
:latin1 "Liste des programmes\n"
|
|
|
|
|
:utf-8 "Liste des programmes\n"))
|
|
|
|
|
("List Of Tables\n"
|
|
|
|
|
("en"
|
|
|
|
|
:ascii "List Of Tables\n"
|
|
|
|
|
:latin1 "List Of Tables\n"
|
|
|
|
|
:utf-8 "List Of Tables\n")
|
|
|
|
|
("fr"
|
|
|
|
|
:ascii "Liste des tableaux\n"
|
|
|
|
|
:latin1 "Liste des tableaux\n"
|
|
|
|
|
:utf-8 "Liste des tableaux\n"))
|
|
|
|
|
("Listing %d: "
|
|
|
|
|
("en"
|
|
|
|
|
:ascii "Listing %d: "
|
|
|
|
|
:latin1 "Listing %d: "
|
|
|
|
|
:utf-8 "Listing %d: ")
|
|
|
|
|
("fr"
|
|
|
|
|
:ascii "Programme %d : "
|
|
|
|
|
:latin1 "Programme %d : "
|
|
|
|
|
:utf-8 "Programme nº %d : "))
|
2012-01-28 07:41:50 -05:00
|
|
|
|
("Table Of Contents\n"
|
|
|
|
|
("en"
|
|
|
|
|
:ascii "Table Of Contents\n"
|
|
|
|
|
:latin1 "Table Of Contents\n"
|
|
|
|
|
:utf-8 "Table Of Contents\n")
|
|
|
|
|
("fr"
|
|
|
|
|
:ascii "Sommaire\n"
|
|
|
|
|
:latin1 "Table des matières\n"
|
|
|
|
|
:utf-8 "Table des matières\n"))
|
|
|
|
|
("Table %d: %s"
|
|
|
|
|
("en"
|
|
|
|
|
:ascii "Table %d: %s"
|
|
|
|
|
:latin1 "Table %d: %s"
|
|
|
|
|
:utf-8 "Table %d: %s")
|
|
|
|
|
("fr"
|
|
|
|
|
:ascii "Tableau %d : %s"
|
|
|
|
|
:latin1 "Tableau %d : %s"
|
|
|
|
|
:utf-8 "Tableau nº %d : %s"))
|
|
|
|
|
("See section %s"
|
|
|
|
|
("en"
|
|
|
|
|
:ascii "See section %s"
|
|
|
|
|
:latin1 "See section %s"
|
|
|
|
|
:utf-8 "See section %s")
|
|
|
|
|
("fr"
|
|
|
|
|
:ascii "cf. section %s"
|
|
|
|
|
:latin1 "cf. section %s"
|
|
|
|
|
:utf-8 "cf. section %s"))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
("Table %d: "
|
|
|
|
|
("en"
|
|
|
|
|
:ascii "Table %d: "
|
|
|
|
|
:latin1 "Table %d: "
|
|
|
|
|
:utf-8 "Table %d: ")
|
|
|
|
|
("fr"
|
|
|
|
|
:ascii "Tableau %d : "
|
|
|
|
|
:latin1 "Tableau %d : "
|
|
|
|
|
:utf-8 "Tableau nº %d : "))
|
|
|
|
|
("Unknown reference"
|
|
|
|
|
("en"
|
|
|
|
|
:ascii "Unknown reference"
|
|
|
|
|
:latin1 "Unknown reference"
|
|
|
|
|
:utf-8 "Unknown reference")
|
|
|
|
|
("fr"
|
|
|
|
|
:ascii "Destination inconnue"
|
|
|
|
|
:latin1 "Référence inconnue"
|
2012-01-28 07:41:50 -05:00
|
|
|
|
:utf-8 "Référence inconnue")))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
"Dictionary for ASCII back-end.
|
|
|
|
|
|
|
|
|
|
Alist whose car is the string to translate and cdr is an alist
|
|
|
|
|
whose car is the language string and cdr is a plist whose
|
|
|
|
|
properties are possible charsets and value the translated term.
|
|
|
|
|
|
|
|
|
|
It is used as a database for `org-e-ascii--translate'.")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;; User Configurable Variables
|
|
|
|
|
|
|
|
|
|
(defgroup org-export-e-ascii nil
|
|
|
|
|
"Options for exporting Org mode files to ASCII."
|
|
|
|
|
:tag "Org Export ASCII"
|
|
|
|
|
:group 'org-export)
|
|
|
|
|
|
|
|
|
|
(defcustom org-e-ascii-text-width 72
|
|
|
|
|
"Maximum width of exported text.
|
|
|
|
|
This number includes margin size, as set in
|
|
|
|
|
`org-e-ascii-global-margin'."
|
|
|
|
|
:group 'org-export-e-ascii
|
|
|
|
|
:type 'integer)
|
|
|
|
|
|
|
|
|
|
(defcustom org-e-ascii-global-margin 0
|
|
|
|
|
"Width of the left margin, in number of characters."
|
|
|
|
|
:group 'org-export-e-ascii
|
|
|
|
|
:type 'integer)
|
|
|
|
|
|
|
|
|
|
(defcustom org-e-ascii-inner-margin 2
|
|
|
|
|
"Width of the inner margin, in number of characters.
|
|
|
|
|
Inner margin is applied between each headline."
|
|
|
|
|
:group 'org-export-e-ascii
|
|
|
|
|
:type 'integer)
|
|
|
|
|
|
2012-01-28 07:51:41 -05:00
|
|
|
|
(defcustom org-e-ascii-quote-margin 6
|
|
|
|
|
"Width of margin used for quoting text, in characters.
|
|
|
|
|
This margin is applied on both sides of the text."
|
|
|
|
|
:group 'org-export-e-ascii
|
|
|
|
|
:type 'integer)
|
|
|
|
|
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(defcustom org-e-ascii-inlinetask-width 30
|
|
|
|
|
"Width of inline tasks, in number of characters.
|
|
|
|
|
This number ignores any margin."
|
|
|
|
|
:group 'org-export-e-ascii
|
|
|
|
|
:type 'integer)
|
|
|
|
|
|
|
|
|
|
(defcustom org-e-ascii-headline-spacing '(1 . 2)
|
|
|
|
|
"Number of blank lines inserted around headlines.
|
|
|
|
|
|
|
|
|
|
This variable can be set to a cons cell. In that case, its car
|
|
|
|
|
represents the number of blank lines present before headline
|
|
|
|
|
contents whereas its cdr reflects the number of blank lines after
|
|
|
|
|
contents.
|
|
|
|
|
|
|
|
|
|
A nil value replicates the number of blank lines found in the
|
|
|
|
|
original Org buffer at the same place."
|
|
|
|
|
:group 'org-export-e-ascii
|
|
|
|
|
:type '(choice
|
|
|
|
|
(const :tag "Replicate original spacing" nil)
|
|
|
|
|
(cons :tag "Set an uniform spacing"
|
|
|
|
|
(integer :tag "Number of blank lines before contents")
|
|
|
|
|
(integer :tag "Number of blank lines after contents"))))
|
|
|
|
|
|
|
|
|
|
(defcustom org-e-ascii-charset 'ascii
|
|
|
|
|
"The charset allowed to represent various elements and objects.
|
|
|
|
|
Possible values are:
|
|
|
|
|
`ascii' Only use plain ASCII characters
|
|
|
|
|
`latin1' Include Latin-1 characters
|
|
|
|
|
`utf-8' Use all UTF-8 characters"
|
|
|
|
|
:group 'org-export-e-ascii
|
|
|
|
|
:type '(choice
|
|
|
|
|
(const :tag "ASCII" ascii)
|
|
|
|
|
(const :tag "Latin-1" latin1)
|
|
|
|
|
(const :tag "UTF-8" utf-8)))
|
|
|
|
|
|
|
|
|
|
(defcustom org-e-ascii-underline '((ascii ?= ?~ ?-)
|
|
|
|
|
(latin1 ?= ?~ ?-)
|
|
|
|
|
(utf-8 ?═ ?─ ?╌ ?┄ ?┈))
|
|
|
|
|
"Characters for underlining headings in ASCII export.
|
|
|
|
|
|
|
|
|
|
Alist whose key is a symbol among `ascii', `latin1' and `utf-8'
|
|
|
|
|
and whose value is a list of characters.
|
|
|
|
|
|
|
|
|
|
For each supported charset, this variable associates a sequence
|
|
|
|
|
of underline characters. In a sequence, the characters will be
|
|
|
|
|
used in order for headlines level 1, 2, ... If no character is
|
|
|
|
|
available for a given level, the headline won't be underlined."
|
|
|
|
|
:group 'org-export-e-ascii
|
|
|
|
|
:type '(list
|
|
|
|
|
(cons :tag "Underline characters sequence"
|
|
|
|
|
(const :tag "ASCII charset" ascii)
|
|
|
|
|
(repeat character))
|
|
|
|
|
(cons :tag "Underline characters sequence"
|
|
|
|
|
(const :tag "Latin-1 charset" latin1)
|
|
|
|
|
(repeat character))
|
|
|
|
|
(cons :tag "Underline characters sequence"
|
|
|
|
|
(const :tag "UTF-8 charset" utf-8)
|
|
|
|
|
(repeat character))))
|
|
|
|
|
|
|
|
|
|
(defcustom org-e-ascii-bullets '((ascii ?* ?+ ?-)
|
|
|
|
|
(latin1 ?§ ?¶)
|
|
|
|
|
(utf-8 ?◊))
|
|
|
|
|
"Bullet characters for headlines converted to lists in ASCII export.
|
|
|
|
|
|
|
|
|
|
Alist whose key is a symbol among `ascii', `latin1' and `utf-8'
|
|
|
|
|
and whose value is a list of characters.
|
|
|
|
|
|
|
|
|
|
The first character is used for the first level considered as low
|
|
|
|
|
level, and so on. If there are more levels than characters given
|
|
|
|
|
here, the list will be repeated.
|
|
|
|
|
|
|
|
|
|
Note that this variable doesn't affect plain lists
|
|
|
|
|
representation."
|
|
|
|
|
:group 'org-export-e-ascii
|
|
|
|
|
:type '(list
|
|
|
|
|
(cons :tag "Bullet characters for low level headlines"
|
|
|
|
|
(const :tag "ASCII charset" ascii)
|
|
|
|
|
(repeat character))
|
|
|
|
|
(cons :tag "Bullet characters for low level headlines"
|
|
|
|
|
(const :tag "Latin-1 charset" latin1)
|
|
|
|
|
(repeat character))
|
|
|
|
|
(cons :tag "Bullet characters for low level headlines"
|
|
|
|
|
(const :tag "UTF-8 charset" utf-8)
|
|
|
|
|
(repeat character))))
|
|
|
|
|
|
|
|
|
|
(defcustom org-e-ascii-links-to-notes t
|
|
|
|
|
"Non-nil means convert links to notes before the next headline.
|
|
|
|
|
When nil, the link will be exported in place. If the line
|
|
|
|
|
becomes long in this way, it will be wrapped."
|
|
|
|
|
:group 'org-export-e-ascii
|
|
|
|
|
:type 'boolean)
|
|
|
|
|
|
|
|
|
|
(defcustom org-e-ascii-table-keep-all-vertical-lines nil
|
|
|
|
|
"Non-nil means keep all vertical lines in ASCII tables.
|
|
|
|
|
When nil, vertical lines will be removed except for those needed
|
|
|
|
|
for column grouping."
|
|
|
|
|
:group 'org-export-e-ascii
|
|
|
|
|
:type 'boolean)
|
|
|
|
|
|
|
|
|
|
(defcustom org-e-ascii-table-widen-columns t
|
|
|
|
|
"Non-nil means widen narrowed columns for export.
|
|
|
|
|
When nil, narrowed columns will look in ASCII export just like in
|
|
|
|
|
Org mode, i.e. with \"=>\" as ellipsis."
|
|
|
|
|
:group 'org-export-e-ascii
|
|
|
|
|
:type 'boolean)
|
|
|
|
|
|
|
|
|
|
(defcustom org-e-ascii-caption-above nil
|
|
|
|
|
"When non-nil, place caption string before the element.
|
|
|
|
|
Otherwise, place it right after it."
|
|
|
|
|
:group 'org-export-e-ascii
|
|
|
|
|
:type 'boolean)
|
|
|
|
|
|
|
|
|
|
(defcustom org-e-ascii-verbatim-format "`%s'"
|
|
|
|
|
"Format string used for verbatim text and inline code."
|
|
|
|
|
:group 'org-export-e-ascii
|
|
|
|
|
:type 'string)
|
|
|
|
|
|
|
|
|
|
(defcustom org-e-ascii-format-drawer-function nil
|
|
|
|
|
"Function called to format a drawer in ASCII.
|
|
|
|
|
|
|
|
|
|
The function must accept two parameters:
|
|
|
|
|
NAME the drawer name, like \"LOGBOOK\"
|
|
|
|
|
CONTENTS the contents of the drawer.
|
|
|
|
|
WIDTH the text width within the drawer.
|
|
|
|
|
|
|
|
|
|
The function should return either the string to be exported or
|
|
|
|
|
nil to ignore the drawer.
|
|
|
|
|
|
|
|
|
|
For example, the variable could be set to the following function
|
|
|
|
|
in order to mimic default behaviour:
|
|
|
|
|
|
|
|
|
|
\(defun org-e-ascii-format-drawer-default \(name contents width\)
|
|
|
|
|
\"Format a drawer element for ASCII export.\"
|
|
|
|
|
contents\)"
|
|
|
|
|
:group 'org-export-e-ascii
|
|
|
|
|
:type 'function)
|
|
|
|
|
|
|
|
|
|
(defcustom org-e-ascii-format-inlinetask-function nil
|
|
|
|
|
"Function called to format an inlinetask in ASCII.
|
|
|
|
|
|
|
|
|
|
The function must accept six parameters:
|
|
|
|
|
TODO the todo keyword, as a string
|
|
|
|
|
TODO-TYPE the todo type, a symbol among `todo', `done' and nil.
|
|
|
|
|
PRIORITY the inlinetask priority, as a string
|
|
|
|
|
NAME the inlinetask name, as a string.
|
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 08:10:12 -04:00
|
|
|
|
TAGS the inlinetask tags, as a list of strings.
|
2012-01-07 08:01:25 -05:00
|
|
|
|
CONTENTS the contents of the inlinetask, as a string.
|
|
|
|
|
|
|
|
|
|
The function should return either the string to be exported or
|
|
|
|
|
nil to ignore the inline task.
|
|
|
|
|
|
|
|
|
|
For example, the variable could be set to the following function
|
|
|
|
|
in order to mimic default behaviour:
|
|
|
|
|
|
|
|
|
|
\(defun org-e-ascii-format-inlinetask-default
|
|
|
|
|
\(todo type priority name tags contents\)
|
|
|
|
|
\"Format an inline task element for ASCII export.\"
|
|
|
|
|
\(let* \(\(utf8p \(eq \(plist-get info :ascii-charset\) 'utf-8\)\)
|
|
|
|
|
\(width org-e-ascii-inlinetask-width\)
|
|
|
|
|
\(org-e-ascii--indent-string
|
|
|
|
|
\(concat
|
|
|
|
|
;; Top line, with an additional blank line if not in UTF-8.
|
|
|
|
|
\(make-string width \(if utf8p ?━ ?_\)\) \"\\n\"
|
|
|
|
|
\(unless utf8p \(concat \(make-string width ? \) \"\\n\"\)\)
|
|
|
|
|
;; Add title. Fill it if wider than inlinetask.
|
|
|
|
|
\(let \(\(title \(org-e-ascii--build-title inlinetask info width\)\)\)
|
|
|
|
|
\(if \(<= \(length title\) width\) title
|
|
|
|
|
\(org-e-ascii--fill-string title width info\)\)\)
|
|
|
|
|
\"\\n\"
|
|
|
|
|
;; If CONTENTS is not empty, insert it along with
|
|
|
|
|
;; a separator.
|
|
|
|
|
\(when \(org-string-nw-p contents\)
|
|
|
|
|
\(concat \(make-string width \(if utf8p ?─ ?-\)\) \"\\n\" contents\)\)
|
|
|
|
|
;; Bottom line.
|
|
|
|
|
\(make-string width \(if utf8p ?━ ?_\)\)\)
|
|
|
|
|
;; Flush the inlinetask to the right.
|
|
|
|
|
\(- \(plist-get info :ascii-width\)
|
|
|
|
|
\(plist-get info :ascii-margin\)
|
|
|
|
|
\(plist-get info :ascii-inner-margin\)
|
|
|
|
|
\(org-e-ascii--current-text-width inlinetask info\)\)"
|
|
|
|
|
:group 'org-export-e-ascii
|
|
|
|
|
:type 'function)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;; Internal Functions
|
|
|
|
|
|
|
|
|
|
;; Internal functions fall into three categories.
|
|
|
|
|
|
|
|
|
|
;; The first one is about text formatting. The core function is
|
|
|
|
|
;; `org-e-ascii--current-text-width', which determines the current
|
|
|
|
|
;; text width allowed to a given element. In other words, it helps
|
|
|
|
|
;; keeping each line width within maximum text width defined in
|
|
|
|
|
;; `org-e-ascii-text-width'. Once this information is known,
|
|
|
|
|
;; `org-e-ascii--fill-string', `org-e-ascii--justify-string',
|
|
|
|
|
;; `org-e-ascii--box-string' and `org-e-ascii--indent-string' can
|
|
|
|
|
;; operate on a given output string.
|
|
|
|
|
|
|
|
|
|
;; The second category contains functions handling elements listings,
|
|
|
|
|
;; triggered by "#+TOC:" keyword. As such, `org-e-ascii--build-toc'
|
|
|
|
|
;; returns a complete table of contents, `org-e-ascii--list-listings'
|
|
|
|
|
;; returns a list of referenceable src-block elements, and
|
|
|
|
|
;; `org-e-ascii--list-tables' does the same for table elements.
|
|
|
|
|
|
|
|
|
|
;; The third category includes general helper functions.
|
|
|
|
|
;; `org-e-ascii--build-title' creates the title for a given headline
|
|
|
|
|
;; or inlinetask element. `org-e-ascii--build-caption' returns the
|
|
|
|
|
;; caption string associated to a table or a src-block.
|
|
|
|
|
;; `org-e-ascii--describe-links' creates notes about links for
|
|
|
|
|
;; insertion at the end of a section. It uses
|
|
|
|
|
;; `org-e-ascii--unique-links' to get the list of links to describe.
|
|
|
|
|
;; Eventually, `org-e-ascii--translate' reads `org-e-ascii-dictionary'
|
|
|
|
|
;; to internationalize output.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii--fill-string (s text-width info &optional justify)
|
|
|
|
|
"Fill a string with specified text-width and return it.
|
|
|
|
|
|
|
|
|
|
S is the string being filled. TEXT-WIDTH is an integer
|
|
|
|
|
specifying maximum length of a line. INFO is the plist used as
|
|
|
|
|
a communication channel.
|
|
|
|
|
|
|
|
|
|
Optional argument JUSTIFY can specify any type of justification
|
|
|
|
|
among `left', `center', `right' or `full'. A nil value is
|
|
|
|
|
equivalent to `left'. For a justification that doesn't also fill
|
|
|
|
|
string, see `org-e-ascii--justify-string'.
|
|
|
|
|
|
|
|
|
|
Return nil if S isn't a string."
|
|
|
|
|
;; Don't fill paragraph when break should be preserved.
|
|
|
|
|
(cond ((not (stringp s)) nil)
|
|
|
|
|
((plist-get info :preserve-breaks) s)
|
|
|
|
|
(t (with-temp-buffer
|
|
|
|
|
(let ((fill-column text-width)
|
|
|
|
|
(use-hard-newlines t))
|
|
|
|
|
(insert s)
|
|
|
|
|
(fill-region (point-min) (point-max) justify))
|
|
|
|
|
(buffer-string)))))
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii--justify-string (s text-width how)
|
|
|
|
|
"Justify string S.
|
|
|
|
|
TEXT-WIDTH is an integer specifying maximum length of a line.
|
|
|
|
|
HOW determines the type of justification: it can be `left',
|
|
|
|
|
`right', `full' or `center'."
|
|
|
|
|
(with-temp-buffer
|
|
|
|
|
(insert s)
|
|
|
|
|
(goto-char (point-min))
|
|
|
|
|
(let ((fill-column text-width))
|
|
|
|
|
(while (< (point) (point-max))
|
|
|
|
|
(justify-current-line how)
|
|
|
|
|
(forward-line)))
|
|
|
|
|
(buffer-string)))
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii--indent-string (s width)
|
|
|
|
|
"Indent string S by WIDTH white spaces.
|
|
|
|
|
Empty lines are not indented."
|
|
|
|
|
(when (stringp s)
|
|
|
|
|
(replace-regexp-in-string
|
|
|
|
|
"\\(^\\)\\(?:.*\\S-\\)" (make-string width ? ) s nil nil 1)))
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii--box-string (s info)
|
|
|
|
|
"Return string S with a partial box to its left.
|
|
|
|
|
INFO is a plist used as a communicaton channel."
|
|
|
|
|
(let ((utf8p (eq (plist-get info :ascii-charset) 'utf-8)))
|
|
|
|
|
(format (if utf8p "╭────\n%s\n╰────" ",----\n%s\n`----")
|
|
|
|
|
(replace-regexp-in-string
|
|
|
|
|
"^" (if utf8p "│ " "| ")
|
|
|
|
|
;; Remove last newline character.
|
|
|
|
|
(replace-regexp-in-string "\n[ \t]*\\'" "" s)))))
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii--current-text-width (element info)
|
|
|
|
|
"Return maximum text width for ELEMENT's contents.
|
|
|
|
|
INFO is a plist used as a communication channel."
|
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 07:07:27 -05:00
|
|
|
|
(case (org-element-type element)
|
|
|
|
|
;; Elements with an absolute width: `headline' and `inlinetask'.
|
|
|
|
|
(inlinetask org-e-ascii-inlinetask-width)
|
|
|
|
|
('headline
|
|
|
|
|
(- org-e-ascii-text-width
|
|
|
|
|
(let ((low-level-rank (org-export-low-level-p element info)))
|
|
|
|
|
(if low-level-rank (* low-level-rank 2) org-e-ascii-global-margin))))
|
|
|
|
|
;; Elements with a relative width: store maximum text width in
|
|
|
|
|
;; TOTAL-WIDTH.
|
|
|
|
|
(otherwise
|
2012-02-22 11:35:52 -05:00
|
|
|
|
(let* ((genealogy (cons element (org-export-get-genealogy element info)))
|
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 07:07:27 -05:00
|
|
|
|
;; Total width is determined by the presence, or not, of an
|
|
|
|
|
;; inline task among ELEMENT parents.
|
|
|
|
|
(total-width
|
|
|
|
|
(if (loop for parent in genealogy
|
|
|
|
|
thereis (eq (org-element-type parent) 'inlinetask))
|
|
|
|
|
org-e-ascii-inlinetask-width
|
|
|
|
|
;; No inlinetask: Remove global margin from text width.
|
|
|
|
|
(- org-e-ascii-text-width
|
|
|
|
|
org-e-ascii-global-margin
|
|
|
|
|
(let ((parent (org-export-get-parent-headline element info)))
|
|
|
|
|
;; Inner margin doesn't apply to text before first
|
|
|
|
|
;; headline.
|
|
|
|
|
(if (not parent) 0
|
|
|
|
|
(let ((low-level-rank
|
|
|
|
|
(org-export-low-level-p parent info)))
|
|
|
|
|
;; Inner margin doesn't apply to contents of
|
|
|
|
|
;; low level headlines, since they've got their
|
|
|
|
|
;; own indentation mechanism.
|
|
|
|
|
(if low-level-rank (* low-level-rank 2)
|
|
|
|
|
org-e-ascii-inner-margin))))))))
|
|
|
|
|
(- total-width
|
|
|
|
|
;; Each `quote-block', `quote-section' and `verse-block' above
|
|
|
|
|
;; narrows text width by twice the standard margin size.
|
|
|
|
|
(+ (* (loop for parent in genealogy
|
|
|
|
|
when (memq (org-element-type parent)
|
|
|
|
|
'(quote-block quote-section verse-block))
|
|
|
|
|
count parent)
|
|
|
|
|
2 org-e-ascii-quote-margin)
|
|
|
|
|
;; Text width within a plain-list is restricted by
|
|
|
|
|
;; indentation of current item. If that's the case,
|
|
|
|
|
;; compute it with the help of `:structure' property from
|
|
|
|
|
;; parent item, if any.
|
|
|
|
|
(let ((parent-item
|
|
|
|
|
(if (eq (org-element-type element) 'item) element
|
|
|
|
|
(loop for parent in genealogy
|
|
|
|
|
when (eq (org-element-type parent) 'item)
|
|
|
|
|
return parent))))
|
|
|
|
|
(if (not parent-item) 0
|
|
|
|
|
;; Compute indentation offset of the current item,
|
|
|
|
|
;; that is the sum of the difference between its
|
|
|
|
|
;; indentation and the indentation of the top item in
|
|
|
|
|
;; the list and current item bullet's length. Also
|
|
|
|
|
;; remove tag length (for description lists) or bullet
|
|
|
|
|
;; length.
|
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 07:47:20 -05:00
|
|
|
|
(let ((struct (org-element-property :structure parent-item))
|
|
|
|
|
(beg-item (org-element-property :begin parent-item)))
|
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 07:07:27 -05:00
|
|
|
|
(+ (- (org-list-get-ind beg-item struct)
|
|
|
|
|
(org-list-get-ind
|
|
|
|
|
(org-list-get-top-point struct) struct))
|
|
|
|
|
(length
|
|
|
|
|
(or (org-list-get-tag beg-item struct)
|
|
|
|
|
(org-list-get-bullet beg-item struct)))))))))))))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
|
|
|
|
(defun org-e-ascii--build-title
|
|
|
|
|
(element info text-width &optional underline notags)
|
|
|
|
|
"Format ELEMENT title and return it.
|
|
|
|
|
|
|
|
|
|
ELEMENT is either an `headline' or `inlinetask' element. INFO is
|
|
|
|
|
a plist used as a communication channel. TEXT-WIDTH is an
|
|
|
|
|
integer representing the maximum length of a line.
|
|
|
|
|
|
|
|
|
|
When optional argument UNDERLINE is non-nil, underline title,
|
|
|
|
|
without the tags, according to `org-e-ascii-underline'
|
|
|
|
|
specifications.
|
|
|
|
|
|
|
|
|
|
if optional argument NOTAGS is nil, no tags will be added to the
|
|
|
|
|
title."
|
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 07:07:27 -05:00
|
|
|
|
(let* ((headlinep (eq (org-element-type element) 'headline))
|
2012-01-27 08:49:32 -05:00
|
|
|
|
(numbers
|
|
|
|
|
;; Numbering is specific to headlines.
|
2012-02-29 13:05:45 -05:00
|
|
|
|
(and headlinep (org-export-numbered-headline-p element info)
|
2012-01-27 08:49:32 -05:00
|
|
|
|
;; All tests passed: build numbering string.
|
|
|
|
|
(concat
|
|
|
|
|
(mapconcat
|
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 08:10:12 -04:00
|
|
|
|
'number-to-string
|
2012-01-27 08:49:32 -05:00
|
|
|
|
(org-export-get-headline-number element info) ".")
|
|
|
|
|
" ")))
|
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-29 20:04:03 -04:00
|
|
|
|
(text (org-export-data (org-element-property :title element) info))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(todo
|
|
|
|
|
(and (plist-get info :with-todo-keywords)
|
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 07:47:20 -05:00
|
|
|
|
(let ((todo (org-element-property :todo-keyword element)))
|
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-29 20:04:03 -04:00
|
|
|
|
(and todo (concat (org-export-data todo info) " ")))))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(tags (and (not notags)
|
|
|
|
|
(plist-get info :with-tags)
|
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 08:10:12 -04:00
|
|
|
|
(let ((tag-list (org-element-property :tags element)))
|
|
|
|
|
(and tag-list
|
|
|
|
|
(format ":%s:"
|
|
|
|
|
(mapconcat 'identity tag-list ":"))))))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(priority
|
|
|
|
|
(and (plist-get info :with-priority)
|
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 07:47:20 -05:00
|
|
|
|
(concat (org-element-property :priority element) " ")))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(first-part (concat numbers todo priority text)))
|
|
|
|
|
(concat
|
|
|
|
|
first-part
|
|
|
|
|
;; Align tags, if any.
|
|
|
|
|
(when tags
|
|
|
|
|
(format
|
|
|
|
|
(format " %%%ds"
|
|
|
|
|
(max (- text-width (1+ (length first-part))) (length tags)))
|
|
|
|
|
tags))
|
2012-01-27 08:49:32 -05:00
|
|
|
|
;; Maybe underline text, if ELEMENT type is `headline' and an
|
|
|
|
|
;; underline character has been defined.
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(when (and underline headlinep)
|
|
|
|
|
(let ((under-char
|
|
|
|
|
(nth (1- (org-export-get-relative-level element info))
|
|
|
|
|
(cdr (assq (plist-get info :ascii-charset)
|
|
|
|
|
org-e-ascii-underline)))))
|
|
|
|
|
(and under-char
|
|
|
|
|
(concat "\n"
|
|
|
|
|
(make-string (length first-part) under-char))))))))
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii--build-caption (element info)
|
|
|
|
|
"Return caption string for ELEMENT, if applicable.
|
|
|
|
|
|
|
|
|
|
INFO is a plist used as a communication channel.
|
|
|
|
|
|
|
|
|
|
The caption string contains the sequence number of ELEMENT if it
|
|
|
|
|
has a name affiliated keyword, along with the real caption, if
|
|
|
|
|
any. Return nil when ELEMENT has no affiliated caption or name
|
|
|
|
|
keyword."
|
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 07:47:20 -05:00
|
|
|
|
(let ((caption (org-element-property :caption element))
|
|
|
|
|
(name (org-element-property :name element)))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(when (or caption name)
|
|
|
|
|
;; Get sequence number of current src-block among every
|
|
|
|
|
;; src-block with either a caption or a name.
|
|
|
|
|
(let ((reference
|
|
|
|
|
(org-export-get-ordinal
|
2012-03-07 12:02:57 -05:00
|
|
|
|
element info nil
|
2012-04-21 09:15:47 -04:00
|
|
|
|
(lambda (el info) (or (org-element-property :caption el)
|
|
|
|
|
(org-element-property :name el)))))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(title-fmt (org-e-ascii--translate
|
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 07:07:27 -05:00
|
|
|
|
(case (org-element-type element)
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(table "Table %d: %s")
|
|
|
|
|
(src-block "Listing %d: %s")) info)))
|
|
|
|
|
(org-e-ascii--fill-string
|
|
|
|
|
(format
|
2012-01-22 15:34:00 -05:00
|
|
|
|
title-fmt reference
|
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-29 20:04:03 -04:00
|
|
|
|
(if (not caption) name (org-export-data (car caption) info)))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(org-e-ascii--current-text-width element info) info)))))
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii--build-toc (info &optional n keyword)
|
|
|
|
|
"Return a table of contents.
|
|
|
|
|
|
|
|
|
|
INFO is a plist used as a communication channel.
|
|
|
|
|
|
|
|
|
|
Optional argument N, when non-nil, is an integer specifying the
|
|
|
|
|
depth of the table.
|
|
|
|
|
|
|
|
|
|
Optional argument KEYWORD specifies the TOC keyword, if any, from
|
|
|
|
|
which the table of contents generation has been initiated."
|
|
|
|
|
(let ((title (org-e-ascii--translate "Table Of Contents\n" info)))
|
|
|
|
|
(concat
|
|
|
|
|
title
|
|
|
|
|
(make-string (1- (length title))
|
|
|
|
|
(if (eq (plist-get info :ascii-charset) 'utf-8) ?─ ?_))
|
|
|
|
|
"\n\n"
|
|
|
|
|
(let ((text-width
|
|
|
|
|
(if keyword (org-e-ascii--current-text-width keyword info)
|
|
|
|
|
(- org-e-ascii-text-width org-e-ascii-global-margin))))
|
|
|
|
|
(mapconcat
|
|
|
|
|
(lambda (headline)
|
|
|
|
|
(let* ((level (org-export-get-relative-level headline info))
|
|
|
|
|
(indent (* (1- level) 3)))
|
|
|
|
|
(concat
|
|
|
|
|
(unless (zerop indent) (concat (make-string (1- indent) ?.) " "))
|
|
|
|
|
(org-e-ascii--build-title
|
|
|
|
|
headline info (- text-width indent) nil
|
|
|
|
|
(eq (plist-get info :with-tags) 'not-in-toc)))))
|
|
|
|
|
(org-export-collect-headlines info n) "\n")))))
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii--list-listings (keyword info)
|
|
|
|
|
"Return a list of listings.
|
|
|
|
|
|
|
|
|
|
KEYWORD is the keyword that initiated the list of listings
|
|
|
|
|
generation. INFO is a plist used as a communication channel."
|
|
|
|
|
(let ((title (org-e-ascii--translate "List Of Listings\n" info)))
|
|
|
|
|
(concat
|
|
|
|
|
title
|
|
|
|
|
(make-string (1- (length title))
|
|
|
|
|
(if (eq (plist-get info :ascii-charset) 'utf-8) ?─ ?_))
|
|
|
|
|
"\n\n"
|
|
|
|
|
(let ((text-width
|
|
|
|
|
(if keyword (org-e-ascii--current-text-width keyword info)
|
|
|
|
|
(- org-e-ascii-text-width org-e-ascii-global-margin)))
|
|
|
|
|
;; Use a counter instead of retreiving ordinal of each
|
|
|
|
|
;; src-block.
|
|
|
|
|
(count 0))
|
|
|
|
|
(mapconcat
|
|
|
|
|
(lambda (src-block)
|
|
|
|
|
;; Store initial text so its length can be computed. This is
|
|
|
|
|
;; used to properly align caption right to it in case of
|
|
|
|
|
;; filling (like contents of a description list item).
|
|
|
|
|
(let ((initial-text
|
|
|
|
|
(format (org-e-ascii--translate "Listing %d: " info)
|
|
|
|
|
(incf count))))
|
|
|
|
|
(concat
|
|
|
|
|
initial-text
|
|
|
|
|
(org-trim
|
|
|
|
|
(org-e-ascii--indent-string
|
|
|
|
|
(org-e-ascii--fill-string
|
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 07:47:20 -05:00
|
|
|
|
(let ((caption (org-element-property :caption src-block)))
|
|
|
|
|
(if (not caption) (org-element-property :name src-block)
|
2012-01-22 15:34:00 -05:00
|
|
|
|
;; Use short name in priority, if available.
|
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-29 20:04:03 -04:00
|
|
|
|
(org-export-data (or (cdr caption) (car caption)) info)))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(- text-width (length initial-text)) info)
|
|
|
|
|
(length initial-text))))))
|
|
|
|
|
(org-export-collect-listings info) "\n")))))
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii--list-tables (keyword info)
|
|
|
|
|
"Return a list of listings.
|
|
|
|
|
|
|
|
|
|
KEYWORD is the keyword that initiated the list of listings
|
|
|
|
|
generation. INFO is a plist used as a communication channel."
|
|
|
|
|
(let ((title (org-e-ascii--translate "List Of Tables\n" info)))
|
|
|
|
|
(concat
|
|
|
|
|
title
|
|
|
|
|
(make-string (1- (length title))
|
|
|
|
|
(if (eq (plist-get info :ascii-charset) 'utf-8) ?─ ?_))
|
|
|
|
|
"\n\n"
|
|
|
|
|
(let ((text-width
|
|
|
|
|
(if keyword (org-e-ascii--current-text-width keyword info)
|
|
|
|
|
(- org-e-ascii-text-width org-e-ascii-global-margin)))
|
|
|
|
|
;; Use a counter instead of retreiving ordinal of each
|
|
|
|
|
;; src-block.
|
|
|
|
|
(count 0))
|
|
|
|
|
(mapconcat
|
|
|
|
|
(lambda (table)
|
|
|
|
|
;; Store initial text so its length can be computed. This is
|
|
|
|
|
;; used to properly align caption right to it in case of
|
|
|
|
|
;; filling (like contents of a description list item).
|
|
|
|
|
(let ((initial-text
|
|
|
|
|
(format (org-e-ascii--translate "Table %d: " info)
|
|
|
|
|
(incf count))))
|
|
|
|
|
(concat
|
|
|
|
|
initial-text
|
|
|
|
|
(org-trim
|
|
|
|
|
(org-e-ascii--indent-string
|
|
|
|
|
(org-e-ascii--fill-string
|
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 07:47:20 -05:00
|
|
|
|
(let ((caption (org-element-property :caption table)))
|
|
|
|
|
(if (not caption) (org-element-property :name table)
|
2012-01-22 15:34:00 -05:00
|
|
|
|
;; Use short name in priority, if available.
|
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-29 20:04:03 -04:00
|
|
|
|
(org-export-data (or (cdr caption) (car caption)) info)))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(- text-width (length initial-text)) info)
|
|
|
|
|
(length initial-text))))))
|
|
|
|
|
(org-export-collect-tables info) "\n")))))
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii--unique-links (element info)
|
|
|
|
|
"Return a list of unique link references in ELEMENT.
|
|
|
|
|
|
|
|
|
|
ELEMENT is either an headline element or a section element. INFO
|
|
|
|
|
is a plist used as a communication channel.
|
|
|
|
|
|
|
|
|
|
It covers links that may be found current headline's title, in
|
|
|
|
|
the following section and in any inlinetask's title there."
|
|
|
|
|
(let* (seen
|
|
|
|
|
(unique-link-p
|
|
|
|
|
(function
|
|
|
|
|
;; Return LINK if it wasn't referenced so far, or nil.
|
|
|
|
|
;; Update SEEN links along the way.
|
|
|
|
|
(lambda (link)
|
|
|
|
|
(let ((footprint
|
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 07:47:20 -05:00
|
|
|
|
(cons (org-element-property :raw-link link)
|
|
|
|
|
(org-element-contents link))))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(unless (member footprint seen)
|
|
|
|
|
(push footprint seen) link)))))
|
|
|
|
|
(harvest-links-in-title
|
|
|
|
|
(function
|
|
|
|
|
;; Return a list of all unique links in ELEMENT. ELEMENT
|
|
|
|
|
;; may be an headline or an inlinetask element.
|
|
|
|
|
(lambda (element)
|
|
|
|
|
(let (acc)
|
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 07:47:20 -05:00
|
|
|
|
(dolist (obj (org-element-property :title element) acc)
|
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 07:07:27 -05:00
|
|
|
|
(when (eq (org-element-type obj) 'link)
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(let ((link (funcall unique-link-p obj)))
|
|
|
|
|
(and link (push link acc)))))))))
|
2012-02-20 12:52:30 -05:00
|
|
|
|
;; Retrieve HEADLINE's section, if it exists.
|
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 07:07:27 -05:00
|
|
|
|
(section (if (eq (org-element-type element) 'section) element
|
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 07:47:20 -05:00
|
|
|
|
(let ((sec (car (org-element-contents element))))
|
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 07:07:27 -05:00
|
|
|
|
(and (eq (org-element-type sec) 'section) sec))))
|
|
|
|
|
(headline (if (eq (org-element-type element) 'headline) element
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(org-export-get-parent-headline element info))))
|
|
|
|
|
(append
|
|
|
|
|
;; Links that may be in HEADLINE's title.
|
|
|
|
|
(funcall harvest-links-in-title headline)
|
|
|
|
|
;; Get all links in SECTION.
|
|
|
|
|
(org-element-map
|
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 07:02:01 -05:00
|
|
|
|
section 'link (lambda (link) (funcall unique-link-p link)) info))))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
|
|
|
|
(defun org-e-ascii--describe-links (links width info)
|
|
|
|
|
"Return a string describing a list of links.
|
|
|
|
|
|
|
|
|
|
LINKS is a list of link type objects, as returned by
|
|
|
|
|
`org-e-ascii--unique-links'. WIDTH is the text width allowed for
|
|
|
|
|
the output string. INFO is a plist used as a communication
|
|
|
|
|
channel."
|
|
|
|
|
(mapconcat
|
|
|
|
|
(lambda (link)
|
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 07:47:20 -05:00
|
|
|
|
(let ((type (org-element-property :type link))
|
|
|
|
|
(anchor (let ((desc (org-element-contents link)))
|
|
|
|
|
(if (not desc) (org-element-property :raw-link link)
|
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-29 20:04:03 -04:00
|
|
|
|
(org-export-data desc info)))))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(cond
|
2012-02-20 16:24:38 -05:00
|
|
|
|
;; Coderefs, radio links and fuzzy links are ignored.
|
|
|
|
|
((member type '("coderef" "radio" "fuzzy")) nil)
|
|
|
|
|
;; Id and custom-id links: Headlines refer to their numbering.
|
|
|
|
|
((member type '("custom-id" "id"))
|
|
|
|
|
(let ((dest (org-export-resolve-id-link link info)))
|
|
|
|
|
(concat
|
|
|
|
|
(org-e-ascii--fill-string
|
|
|
|
|
(format
|
|
|
|
|
"[%s] %s"
|
|
|
|
|
anchor
|
|
|
|
|
(if (not dest) (org-e-ascii--translate "Unknown reference" info)
|
|
|
|
|
(format
|
|
|
|
|
(org-e-ascii--translate "See section %s" info)
|
|
|
|
|
(mapconcat 'number-to-string
|
|
|
|
|
(org-export-get-headline-number dest info) "."))))
|
|
|
|
|
width info) "\n\n")))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
;; Do not add a link that cannot be resolved and doesn't have
|
|
|
|
|
;; any description: destination is already visible in the
|
|
|
|
|
;; paragraph.
|
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 07:47:20 -05:00
|
|
|
|
((not (org-element-contents link)) nil)
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(t
|
|
|
|
|
(concat
|
|
|
|
|
(org-e-ascii--fill-string
|
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 07:47:20 -05:00
|
|
|
|
(format "[%s] %s" anchor (org-element-property :raw-link link))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
width info)
|
|
|
|
|
"\n\n")))))
|
|
|
|
|
links ""))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;; Template
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-template--document-title (info)
|
|
|
|
|
"Return document title, as a string.
|
|
|
|
|
INFO is a plist used as a communication channel."
|
|
|
|
|
(let ((text-width org-e-ascii-text-width)
|
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-29 20:04:03 -04:00
|
|
|
|
(title (org-export-data (plist-get info :title) info))
|
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 05:33:16 -04:00
|
|
|
|
(author (and (plist-get info :with-author)
|
|
|
|
|
(let ((auth (plist-get info :author)))
|
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-29 20:04:03 -04:00
|
|
|
|
(and auth (org-export-data auth info)))))
|
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 05:33:16 -04:00
|
|
|
|
(email (and (plist-get info :with-email)
|
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-29 20:04:03 -04:00
|
|
|
|
(org-export-data (plist-get info :email) info)))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(date (plist-get info :date)))
|
|
|
|
|
;; There are two types of title blocks depending on the presence
|
|
|
|
|
;; of a title to display.
|
|
|
|
|
(if (string= title "")
|
|
|
|
|
;; Title block without a title. DATE is positioned at the top
|
|
|
|
|
;; right of the document, AUTHOR to the top left and EMAIL
|
|
|
|
|
;; just below.
|
|
|
|
|
(cond
|
|
|
|
|
((and (org-string-nw-p date) (org-string-nw-p author))
|
|
|
|
|
(concat
|
|
|
|
|
author
|
|
|
|
|
(make-string (- text-width (length date) (length author)) ? )
|
|
|
|
|
date
|
|
|
|
|
(when (org-string-nw-p email) (concat "\n" email))
|
|
|
|
|
"\n\n\n"))
|
|
|
|
|
((and (org-string-nw-p date) (org-string-nw-p email))
|
|
|
|
|
(concat
|
|
|
|
|
email
|
|
|
|
|
(make-string (- text-width (length date) (length email)) ? )
|
|
|
|
|
date "\n\n\n"))
|
|
|
|
|
((org-string-nw-p date)
|
|
|
|
|
(concat
|
|
|
|
|
(org-e-ascii--justify-string date text-width 'right)
|
|
|
|
|
"\n\n\n"))
|
|
|
|
|
((and (org-string-nw-p author) (org-string-nw-p email))
|
|
|
|
|
(concat author "\n" email "\n\n\n"))
|
|
|
|
|
((org-string-nw-p author) (concat author "\n\n\n"))
|
|
|
|
|
((org-string-nw-p email) (concat email "\n\n\n")))
|
|
|
|
|
;; Title block with a title. Document's TITLE, along with the
|
|
|
|
|
;; AUTHOR and its EMAIL are both overlined and an underlined,
|
|
|
|
|
;; centered. Date is just below, also centered.
|
|
|
|
|
(let* ((utf8p (eq (plist-get info :ascii-charset) 'utf-8))
|
|
|
|
|
;; Format TITLE. It may be filled if it is too wide,
|
|
|
|
|
;; that is wider than the two thirds of the total width.
|
|
|
|
|
(title-len (min (length title) (/ (* 2 text-width) 3)))
|
|
|
|
|
(formatted-title (org-e-ascii--fill-string title title-len info))
|
|
|
|
|
(line
|
|
|
|
|
(make-string
|
|
|
|
|
(min (+ (max title-len (length author) (length email)) 2)
|
|
|
|
|
text-width) (if utf8p ?━ ?_))))
|
|
|
|
|
(org-e-ascii--justify-string
|
|
|
|
|
(concat line "\n"
|
|
|
|
|
(unless utf8p "\n")
|
|
|
|
|
(upcase formatted-title)
|
|
|
|
|
(cond
|
|
|
|
|
((and (org-string-nw-p author) (org-string-nw-p email))
|
2012-02-12 16:08:44 -05:00
|
|
|
|
(concat (if utf8p "\n\n\n" "\n\n") author "\n" email))
|
|
|
|
|
((org-string-nw-p author)
|
|
|
|
|
(concat (if utf8p "\n\n\n" "\n\n") author))
|
|
|
|
|
((org-string-nw-p email)
|
|
|
|
|
(concat (if utf8p "\n\n\n" "\n\n") email)))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
"\n" line
|
|
|
|
|
(when (org-string-nw-p date) (concat "\n\n\n" date))
|
|
|
|
|
"\n\n\n") text-width 'center)))))
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-template (contents info)
|
|
|
|
|
"Return complete document string after ASCII conversion.
|
|
|
|
|
CONTENTS is the transcoded contents string. INFO is a plist
|
|
|
|
|
holding export options."
|
2012-01-28 08:49:50 -05:00
|
|
|
|
(org-element-normalize-string
|
|
|
|
|
(org-e-ascii--indent-string
|
|
|
|
|
(let ((text-width (- org-e-ascii-text-width org-e-ascii-global-margin)))
|
|
|
|
|
;; 1. Build title block.
|
|
|
|
|
(concat
|
|
|
|
|
(org-e-ascii-template--document-title info)
|
|
|
|
|
;; 2. Table of contents.
|
|
|
|
|
(let ((depth (plist-get info :with-toc)))
|
|
|
|
|
(when depth
|
|
|
|
|
(concat
|
|
|
|
|
(org-e-ascii--build-toc info (and (wholenump depth) depth))
|
|
|
|
|
"\n\n\n")))
|
|
|
|
|
;; 3. Document's body.
|
|
|
|
|
contents
|
|
|
|
|
;; 4. Footnote definitions.
|
|
|
|
|
(let ((definitions (org-export-collect-footnote-definitions
|
|
|
|
|
(plist-get info :parse-tree) info))
|
|
|
|
|
;; Insert full links right inside the footnote definition
|
|
|
|
|
;; as they have no chance to be inserted later.
|
|
|
|
|
(org-e-ascii-links-to-notes nil))
|
|
|
|
|
(when definitions
|
|
|
|
|
(concat
|
|
|
|
|
"\n\n\n"
|
|
|
|
|
(let ((title (org-e-ascii--translate "Footnotes\n" info)))
|
|
|
|
|
(concat
|
|
|
|
|
title
|
|
|
|
|
(make-string
|
|
|
|
|
(1- (length title))
|
|
|
|
|
(if (eq (plist-get info :ascii-charset) 'utf-8) ?─ ?_))))
|
|
|
|
|
"\n\n"
|
|
|
|
|
(mapconcat
|
|
|
|
|
(lambda (ref)
|
|
|
|
|
(let ((id (format "[%s] " (car ref))))
|
|
|
|
|
;; Distinguish between inline definitions and
|
|
|
|
|
;; full-fledged definitions.
|
|
|
|
|
(org-trim
|
|
|
|
|
(let ((def (nth 2 ref)))
|
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 07:07:27 -05:00
|
|
|
|
(if (eq (org-element-type def) 'org-data)
|
2012-01-28 08:49:50 -05:00
|
|
|
|
;; Full-fledged definition: footnote ID is
|
|
|
|
|
;; inserted inside the first parsed paragraph
|
|
|
|
|
;; (FIRST), if any, to be sure filling will
|
|
|
|
|
;; take it into consideration.
|
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 07:47:20 -05:00
|
|
|
|
(let ((first (car (org-element-contents def))))
|
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 07:07:27 -05:00
|
|
|
|
(if (not (eq (org-element-type first) 'paragraph))
|
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 05:33:16 -04:00
|
|
|
|
(concat id "\n" (org-export-data def info))
|
2012-01-28 08:49:50 -05:00
|
|
|
|
(push id (nthcdr 2 first))
|
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 05:33:16 -04:00
|
|
|
|
(org-export-data def info)))
|
2012-01-28 08:49:50 -05:00
|
|
|
|
;; Fill paragraph once footnote ID is inserted in
|
|
|
|
|
;; order to have a correct length for first line.
|
|
|
|
|
(org-e-ascii--fill-string
|
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-29 20:04:03 -04:00
|
|
|
|
(concat id (org-export-data def info))
|
2012-01-28 08:49:50 -05:00
|
|
|
|
text-width info))))))
|
|
|
|
|
definitions "\n\n"))))
|
|
|
|
|
;; 5. Creator. Ignore `comment' value as there are no comments in
|
|
|
|
|
;; ASCII. Justify it to the bottom right.
|
|
|
|
|
(let ((creator-info (plist-get info :with-creator)))
|
|
|
|
|
(unless (or (not creator-info) (eq creator-info 'comment))
|
|
|
|
|
(concat
|
|
|
|
|
"\n\n\n"
|
|
|
|
|
(org-e-ascii--fill-string
|
|
|
|
|
(plist-get info :creator) text-width info 'right))))))
|
|
|
|
|
org-e-ascii-global-margin)))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
|
|
|
|
(defun org-e-ascii--translate (s info)
|
|
|
|
|
"Translate string S.
|
|
|
|
|
|
|
|
|
|
INFO is a plist used as a communication channel.
|
|
|
|
|
|
|
|
|
|
Translation depends on `:language' property and allowed charset.
|
|
|
|
|
If no translation in found for a given language and a given
|
|
|
|
|
charset, fall-back to S."
|
|
|
|
|
(let* ((charset (intern (format ":%s" (plist-get info :ascii-charset))))
|
|
|
|
|
(lang (plist-get info :language))
|
|
|
|
|
(translations (cdr (assoc s org-e-ascii-dictionary))))
|
|
|
|
|
(or (plist-get (cdr (assoc lang translations)) charset) s)))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;; Transcode Functions
|
|
|
|
|
|
|
|
|
|
;;;; Babel Call
|
|
|
|
|
|
|
|
|
|
;; Babel Calls are ignored.
|
|
|
|
|
|
|
|
|
|
|
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 12:00:50 -04:00
|
|
|
|
;;;; Bold
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-bold (bold contents info)
|
|
|
|
|
"Transcode BOLD from Org to ASCII.
|
|
|
|
|
CONTENTS is the text with bold markup. INFO is a plist holding
|
|
|
|
|
contextual information."
|
|
|
|
|
(format "*%s*" contents))
|
|
|
|
|
|
|
|
|
|
|
2012-01-07 08:01:25 -05:00
|
|
|
|
;;;; Center Block
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-center-block (center-block contents info)
|
|
|
|
|
"Transcode a CENTER-BLOCK element from Org to ASCII.
|
|
|
|
|
CONTENTS holds the contents of the block. INFO is a plist
|
|
|
|
|
holding contextual information."
|
|
|
|
|
(org-e-ascii--justify-string
|
|
|
|
|
contents (org-e-ascii--current-text-width center-block info) 'center))
|
|
|
|
|
|
|
|
|
|
|
2012-04-28 20:11:22 -04:00
|
|
|
|
;;;; Clock
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-clock (clock contents info)
|
|
|
|
|
"Transcode a CLOCK object from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual
|
|
|
|
|
information."
|
|
|
|
|
(concat org-clock-string " "
|
|
|
|
|
(org-translate-time (org-element-property :value clock))
|
|
|
|
|
(let ((time (org-element-property :time clock)))
|
|
|
|
|
(and time
|
|
|
|
|
(concat " => "
|
|
|
|
|
(apply 'format
|
|
|
|
|
"%2s:%02s"
|
|
|
|
|
(org-split-string time ":")))))))
|
|
|
|
|
|
|
|
|
|
|
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 12:00:50 -04:00
|
|
|
|
;;;; Code
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-code (code contents info)
|
|
|
|
|
"Return a CODE object from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual
|
|
|
|
|
information."
|
|
|
|
|
(format org-e-ascii-verbatim-format (org-element-property :value code)))
|
|
|
|
|
|
|
|
|
|
|
2012-01-07 08:01:25 -05:00
|
|
|
|
;;;; Comment
|
|
|
|
|
|
|
|
|
|
;; Comments are ignored.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Comment Block
|
|
|
|
|
|
|
|
|
|
;; Comment Blocks are ignored.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Drawer
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-drawer (drawer contents info)
|
|
|
|
|
"Transcode a DRAWER element from Org to ASCII.
|
|
|
|
|
CONTENTS holds the contents of the block. INFO is a plist
|
|
|
|
|
holding contextual information."
|
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 07:47:20 -05:00
|
|
|
|
(let ((name (org-element-property :drawer-name drawer))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(width (org-e-ascii--current-text-width drawer info)))
|
|
|
|
|
(if (functionp org-e-ascii-format-drawer-function)
|
|
|
|
|
(funcall org-e-ascii-format-drawer-function name contents width)
|
|
|
|
|
;; If there's no user defined function: simply
|
|
|
|
|
;; display contents of the drawer.
|
|
|
|
|
contents)))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Dynamic Block
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-dynamic-block (dynamic-block contents info)
|
|
|
|
|
"Transcode a DYNAMIC-BLOCK element from Org to ASCII.
|
|
|
|
|
CONTENTS holds the contents of the block. INFO is a plist
|
2012-05-04 08:02:41 -04:00
|
|
|
|
holding contextual information."
|
2012-01-07 08:01:25 -05:00
|
|
|
|
contents)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Entity
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-entity (entity contents info)
|
|
|
|
|
"Transcode an ENTITY object from Org to ASCII.
|
|
|
|
|
CONTENTS are the definition itself. INFO is a plist holding
|
|
|
|
|
contextual information."
|
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 07:47:20 -05:00
|
|
|
|
(org-element-property
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(intern (concat ":" (symbol-name (plist-get info :ascii-charset))))
|
|
|
|
|
entity))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Example Block
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-example-block (example-block contents info)
|
|
|
|
|
"Transcode a EXAMPLE-BLOCK element from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual information."
|
2012-03-10 05:37:13 -05:00
|
|
|
|
(org-e-ascii--box-string
|
|
|
|
|
(org-export-format-code-default example-block info) info))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Export Snippet
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-export-snippet (export-snippet contents info)
|
|
|
|
|
"Transcode a EXPORT-SNIPPET object from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual information."
|
2012-02-23 12:10:14 -05:00
|
|
|
|
(when (eq (org-export-snippet-backend export-snippet) 'e-ascii)
|
|
|
|
|
(org-element-property :value export-snippet)))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Export Block
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-export-block (export-block contents info)
|
|
|
|
|
"Transcode a EXPORT-BLOCK element from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual information."
|
2012-05-05 16:47:00 -04:00
|
|
|
|
(when (string= (org-element-property :type export-block) "ASCII")
|
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 07:47:20 -05:00
|
|
|
|
(org-remove-indentation (org-element-property :value export-block))))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Fixed Width
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-fixed-width (fixed-width contents info)
|
|
|
|
|
"Transcode a FIXED-WIDTH element from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual information."
|
|
|
|
|
(org-e-ascii--box-string
|
2012-05-02 11:18:14 -04:00
|
|
|
|
(org-remove-indentation
|
|
|
|
|
(org-element-property :value fixed-width)) info))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Footnote Definition
|
|
|
|
|
|
|
|
|
|
;; Footnote Definitions are ignored. They are compiled at the end of
|
|
|
|
|
;; the document, by `org-e-ascii-template'.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Footnote Reference
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-footnote-reference (footnote-reference contents info)
|
|
|
|
|
"Transcode a FOOTNOTE-REFERENCE element from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual information."
|
|
|
|
|
(format "[%s]" (org-export-get-footnote-number footnote-reference info)))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Headline
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-headline (headline contents info)
|
|
|
|
|
"Transcode an HEADLINE element from Org to ASCII.
|
|
|
|
|
CONTENTS holds the contents of the headline. INFO is a plist
|
|
|
|
|
holding contextual information."
|
|
|
|
|
;; Don't export footnote section, which will be handled at the end
|
|
|
|
|
;; of the template.
|
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 07:47:20 -05:00
|
|
|
|
(unless (org-element-property :footnote-section-p headline)
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(let* ((low-level-rank (org-export-low-level-p headline info))
|
|
|
|
|
(width (org-e-ascii--current-text-width headline info))
|
|
|
|
|
;; Blank lines between headline and its contents.
|
|
|
|
|
;; `org-e-ascii-headline-spacing', when set, overwrites
|
|
|
|
|
;; original buffer's spacing.
|
|
|
|
|
(pre-blanks
|
|
|
|
|
(make-string
|
|
|
|
|
(if org-e-ascii-headline-spacing (car org-e-ascii-headline-spacing)
|
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 07:47:20 -05:00
|
|
|
|
(org-element-property :pre-blank headline)) ?\n))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
;; Even if HEADLINE has no section, there might be some
|
|
|
|
|
;; links in its title that we shouldn't forget to describe.
|
|
|
|
|
(links
|
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 07:47:20 -05:00
|
|
|
|
(unless (eq (caar (org-element-contents headline)) 'section)
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(org-e-ascii--describe-links
|
|
|
|
|
(org-e-ascii--unique-links headline info) width info))))
|
|
|
|
|
;; Deep subtree: export it as a list item.
|
|
|
|
|
(if low-level-rank
|
|
|
|
|
(concat
|
|
|
|
|
;; Bullet.
|
|
|
|
|
(let ((bullets (cdr (assq (plist-get info :ascii-charset)
|
|
|
|
|
org-e-ascii-bullets))))
|
|
|
|
|
(char-to-string
|
|
|
|
|
(nth (mod (1- low-level-rank) (length bullets)) bullets)))
|
|
|
|
|
" "
|
|
|
|
|
;; Title.
|
|
|
|
|
(org-e-ascii--build-title headline info width) "\n"
|
|
|
|
|
;; Contents, indented by length of bullet.
|
|
|
|
|
pre-blanks
|
|
|
|
|
(org-e-ascii--indent-string
|
|
|
|
|
(concat contents
|
|
|
|
|
(when (org-string-nw-p links) (concat "\n\n" links)))
|
|
|
|
|
2))
|
|
|
|
|
;; Else: Standard headline.
|
|
|
|
|
(concat
|
|
|
|
|
(org-e-ascii--build-title headline info width 'underline)
|
|
|
|
|
"\n" pre-blanks
|
|
|
|
|
(concat (when (org-string-nw-p links) links) contents))))))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Horizontal Rule
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-horizontal-rule (horizontal-rule contents info)
|
|
|
|
|
"Transcode an HORIZONTAL-RULE object from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual
|
|
|
|
|
information."
|
|
|
|
|
(let ((attr
|
|
|
|
|
(read
|
|
|
|
|
(format
|
|
|
|
|
"(%s)"
|
|
|
|
|
(mapconcat
|
|
|
|
|
#'identity
|
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 07:47:20 -05:00
|
|
|
|
(org-element-property :attr_ascii horizontal-rule)
|
2012-01-07 08:01:25 -05:00
|
|
|
|
" ")))))
|
|
|
|
|
(make-string (or (and (wholenump (plist-get attr :width))
|
|
|
|
|
(plist-get attr :width))
|
|
|
|
|
(org-e-ascii--current-text-width horizontal-rule info))
|
|
|
|
|
(if (eq (plist-get info :ascii-charset) 'utf-8) ?― ?-))))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Inline Babel Call
|
|
|
|
|
|
|
|
|
|
;; Inline Babel Calls are ignored.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Inline Src Block
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-inline-src-block (inline-src-block contents info)
|
|
|
|
|
"Transcode an INLINE-SRC-BLOCK element from Org to ASCII.
|
|
|
|
|
CONTENTS holds the contents of the item. INFO is a plist holding
|
|
|
|
|
contextual information."
|
|
|
|
|
(format org-e-ascii-verbatim-format
|
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 07:47:20 -05:00
|
|
|
|
(org-element-property :value inline-src-block)))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Inlinetask
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-inlinetask (inlinetask contents info)
|
|
|
|
|
"Transcode an INLINETASK element from Org to ASCII.
|
|
|
|
|
CONTENTS holds the contents of the block. INFO is a plist
|
|
|
|
|
holding contextual information."
|
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 08:10:12 -04:00
|
|
|
|
(let ((width (org-e-ascii--current-text-width inlinetask info)))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
;; If `org-e-ascii-format-inlinetask-function' is provided, call it
|
|
|
|
|
;; with appropriate arguments.
|
|
|
|
|
(if (functionp org-e-ascii-format-inlinetask-function)
|
|
|
|
|
(funcall org-e-ascii-format-inlinetask-function
|
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 08:10:12 -04:00
|
|
|
|
;; todo.
|
|
|
|
|
(and (plist-get info :with-todo-keywords)
|
|
|
|
|
(let ((todo (org-element-property
|
|
|
|
|
:todo-keyword inlinetask)))
|
|
|
|
|
(and todo (org-export-data todo info))))
|
|
|
|
|
;; todo-type
|
|
|
|
|
(org-element-property :todo-type inlinetask)
|
|
|
|
|
;; priority
|
|
|
|
|
(and (plist-get info :with-priority)
|
|
|
|
|
(org-element-property :priority inlinetask))
|
|
|
|
|
;; title
|
|
|
|
|
(org-export-data (org-element-property :title inlinetask) info)
|
|
|
|
|
;; tags
|
|
|
|
|
(and (plist-get info :with-tags)
|
|
|
|
|
(org-element-property :tags inlinetask))
|
|
|
|
|
;; contents and width
|
|
|
|
|
contents width)
|
2012-01-07 08:01:25 -05:00
|
|
|
|
;; Otherwise, use a default template.
|
|
|
|
|
(let* ((utf8p (eq (plist-get info :ascii-charset) 'utf-8)))
|
|
|
|
|
(org-e-ascii--indent-string
|
|
|
|
|
(concat
|
|
|
|
|
;; Top line, with an additional blank line if not in UTF-8.
|
|
|
|
|
(make-string width (if utf8p ?━ ?_)) "\n"
|
|
|
|
|
(unless utf8p (concat (make-string width ? ) "\n"))
|
|
|
|
|
;; Add title. Fill it if wider than inlinetask.
|
|
|
|
|
(let ((title (org-e-ascii--build-title inlinetask info width)))
|
|
|
|
|
(if (<= (length title) width) title
|
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 05:33:16 -04:00
|
|
|
|
(org-e-ascii--fill-string title width info)))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
"\n"
|
|
|
|
|
;; If CONTENTS is not empty, insert it along with
|
|
|
|
|
;; a separator.
|
|
|
|
|
(when (org-string-nw-p contents)
|
|
|
|
|
(concat (make-string width (if utf8p ?─ ?-)) "\n" contents))
|
|
|
|
|
;; Bottom line.
|
|
|
|
|
(make-string width (if utf8p ?━ ?_)))
|
|
|
|
|
;; Flush the inlinetask to the right.
|
|
|
|
|
(- org-e-ascii-text-width org-e-ascii-global-margin
|
|
|
|
|
(if (not (org-export-get-parent-headline inlinetask info)) 0
|
|
|
|
|
org-e-ascii-inner-margin)
|
|
|
|
|
(org-e-ascii--current-text-width inlinetask info)))))))
|
|
|
|
|
|
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 12:00:50 -04:00
|
|
|
|
;;;; Italic
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-italic (italic contents info)
|
|
|
|
|
"Transcode italic from Org to ASCII.
|
|
|
|
|
CONTENTS is the text with italic markup. INFO is a plist holding
|
|
|
|
|
contextual information."
|
|
|
|
|
(format "/%s/" contents))
|
|
|
|
|
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
|
|
|
|
;;;; Item
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-item (item contents info)
|
|
|
|
|
"Transcode an ITEM element from Org to ASCII.
|
|
|
|
|
CONTENTS holds the contents of the item. INFO is a plist holding
|
|
|
|
|
contextual information."
|
|
|
|
|
(let ((bullet
|
|
|
|
|
;; First parent of ITEM is always the plain-list. Get
|
|
|
|
|
;; `:type' property from it.
|
2012-02-20 11:15:04 -05:00
|
|
|
|
(org-list-bullet-string
|
2012-02-22 11:46:59 -05:00
|
|
|
|
(case (org-element-property :type (org-export-get-parent item info))
|
|
|
|
|
(descriptive
|
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-29 20:04:03 -04:00
|
|
|
|
(concat (org-export-data (org-element-property :tag item) info)
|
|
|
|
|
": "))
|
2012-02-22 11:46:59 -05:00
|
|
|
|
(ordered
|
|
|
|
|
;; Return correct number for ITEM, paying attention to
|
|
|
|
|
;; counters.
|
|
|
|
|
(let* ((struct (org-element-property :structure item))
|
|
|
|
|
(bul (org-element-property :bullet item))
|
|
|
|
|
(num
|
|
|
|
|
(number-to-string
|
|
|
|
|
(car (last (org-list-get-item-number
|
|
|
|
|
(org-element-property :begin item)
|
|
|
|
|
struct
|
|
|
|
|
(org-list-prevs-alist struct)
|
|
|
|
|
(org-list-parents-alist struct)))))))
|
|
|
|
|
(replace-regexp-in-string "[0-9]+" num bul)))
|
|
|
|
|
(t (let ((bul (org-element-property :bullet item)))
|
|
|
|
|
;; Change bullets into more visible form if UTF-8 is active.
|
|
|
|
|
(if (not (eq (plist-get info :ascii-charset) 'utf-8)) bul
|
|
|
|
|
(replace-regexp-in-string
|
|
|
|
|
"-" "•"
|
2012-02-20 11:15:04 -05:00
|
|
|
|
(replace-regexp-in-string
|
2012-02-22 11:46:59 -05:00
|
|
|
|
"+" "⁃"
|
|
|
|
|
(replace-regexp-in-string "*" "‣" bul))))))))))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(concat
|
2012-02-20 11:15:04 -05:00
|
|
|
|
bullet
|
2012-01-07 08:01:25 -05:00
|
|
|
|
;; Contents: Pay attention to indentation. Note: check-boxes are
|
|
|
|
|
;; already taken care of at the paragraph level so they don't
|
|
|
|
|
;; interfere with indentation.
|
|
|
|
|
(let ((contents (org-e-ascii--indent-string contents (length bullet))))
|
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 07:47:20 -05:00
|
|
|
|
(if (eq (caar (org-element-contents item)) 'paragraph)
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(org-trim contents)
|
|
|
|
|
(concat "\n" contents))))))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Keyword
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-keyword (keyword contents info)
|
|
|
|
|
"Transcode a KEYWORD element from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual
|
|
|
|
|
information."
|
2012-03-28 08:04:26 -04:00
|
|
|
|
(let ((key (org-element-property :key keyword))
|
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 07:47:20 -05:00
|
|
|
|
(value (org-element-property :value keyword)))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(cond
|
2012-03-28 08:04:26 -04:00
|
|
|
|
((string= key "ASCII") value)
|
|
|
|
|
((string= key "TOC")
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(let ((value (downcase value)))
|
|
|
|
|
(cond
|
|
|
|
|
((string-match "\\<headlines\\>" value)
|
|
|
|
|
(let ((depth (or (and (string-match "[0-9]+" value)
|
|
|
|
|
(string-to-number (match-string 0 value)))
|
|
|
|
|
(plist-get info :with-toc))))
|
|
|
|
|
(org-e-ascii--build-toc
|
|
|
|
|
info (and (wholenump depth) depth) keyword)))
|
|
|
|
|
((string= "tables" value)
|
|
|
|
|
(org-e-ascii--list-tables keyword info))
|
|
|
|
|
((string= "listings" value)
|
2012-02-04 15:49:58 -05:00
|
|
|
|
(org-e-ascii--list-listings keyword info))))))))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Latex Environment
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-latex-environment (latex-environment contents info)
|
|
|
|
|
"Transcode a LATEX-ENVIRONMENT element from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual
|
|
|
|
|
information."
|
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 07:47:20 -05:00
|
|
|
|
(org-remove-indentation (org-element-property :value latex-environment)))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Latex Fragment
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-latex-fragment (latex-fragment contents info)
|
|
|
|
|
"Transcode a LATEX-FRAGMENT object from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual
|
|
|
|
|
information."
|
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 07:47:20 -05:00
|
|
|
|
(org-element-property :value latex-fragment))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Line Break
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-line-break (line-break contents info)
|
|
|
|
|
"Transcode a LINE-BREAK object from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual
|
|
|
|
|
information." hard-newline)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Link
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-link (link desc info)
|
|
|
|
|
"Transcode a LINK object from Org to ASCII.
|
|
|
|
|
|
|
|
|
|
DESC is the description part of the link, or the empty string.
|
|
|
|
|
INFO is a plist holding contextual information."
|
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 07:47:20 -05:00
|
|
|
|
(let ((raw-link (org-element-property :raw-link link))
|
|
|
|
|
(type (org-element-property :type link)))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(cond
|
|
|
|
|
((string= type "coderef")
|
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 07:47:20 -05:00
|
|
|
|
(let ((ref (org-element-property :path link)))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(format (org-export-get-coderef-format ref desc)
|
|
|
|
|
(org-export-resolve-coderef ref info))))
|
2012-02-17 10:20:17 -05:00
|
|
|
|
;; Do not apply a special syntax on radio links. Though, parse
|
|
|
|
|
;; and transcode path to have a proper display of contents.
|
|
|
|
|
((string= type "radio")
|
2012-05-18 05:20:00 -04:00
|
|
|
|
(let ((destination (org-export-resolve-radio-link link info)))
|
|
|
|
|
(when destination
|
|
|
|
|
(org-export-data (org-element-contents destination) info))))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
;; Do not apply a special syntax on fuzzy links pointing to
|
|
|
|
|
;; targets.
|
2012-02-20 16:24:38 -05:00
|
|
|
|
((string= type "fuzzy")
|
|
|
|
|
(let ((destination (org-export-resolve-fuzzy-link link info)))
|
|
|
|
|
;; Ignore invisible "#+target: path".
|
|
|
|
|
(unless (eq (org-element-type destination) 'keyword)
|
|
|
|
|
(if (org-string-nw-p desc) desc
|
|
|
|
|
(when destination
|
|
|
|
|
(let ((number (org-export-get-ordinal destination info)))
|
|
|
|
|
(when number
|
|
|
|
|
(if (atom number) (number-to-string number)
|
|
|
|
|
(mapconcat 'number-to-string number ".")))))))))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(t
|
2012-02-20 16:24:38 -05:00
|
|
|
|
(if (not (org-string-nw-p desc)) (format "[%s]" raw-link)
|
|
|
|
|
(concat
|
|
|
|
|
(format "[%s]" desc)
|
|
|
|
|
(unless org-e-ascii-links-to-notes (format " (%s)" raw-link))))))))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Macro
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-macro (macro contents info)
|
|
|
|
|
"Transcode a MACRO element from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual
|
|
|
|
|
information."
|
|
|
|
|
(org-export-expand-macro macro info))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Paragraph
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-paragraph (paragraph contents info)
|
|
|
|
|
"Transcode a PARAGRAPH element from Org to ASCII.
|
|
|
|
|
CONTENTS is the contents of the paragraph, as a string. INFO is
|
|
|
|
|
the plist used as a communication channel."
|
|
|
|
|
(org-e-ascii--fill-string
|
2012-02-22 11:46:59 -05:00
|
|
|
|
(let ((parent (org-export-get-parent paragraph info)))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
;; If PARAGRAPH is the first one in a list element, be sure to
|
|
|
|
|
;; add the check-box in front of it, before any filling. Later,
|
|
|
|
|
;; it would interfere with line width.
|
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 07:07:27 -05:00
|
|
|
|
(if (and (eq (org-element-type parent) 'item)
|
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 07:47:20 -05:00
|
|
|
|
(equal (car (org-element-contents parent)) paragraph))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(let ((utf8p (eq (plist-get info :ascii-charset) 'utf-8)))
|
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 07:47:20 -05:00
|
|
|
|
(concat (case (org-element-property :checkbox parent)
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(on (if utf8p "☑ " "[X] "))
|
|
|
|
|
(off (if utf8p "☐ " "[ ] "))
|
|
|
|
|
(trans (if utf8p "☒ " "[-] ")))
|
|
|
|
|
contents))
|
|
|
|
|
contents))
|
|
|
|
|
(org-e-ascii--current-text-width paragraph info) info))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Plain List
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-plain-list (plain-list contents info)
|
|
|
|
|
"Transcode a PLAIN-LIST element from Org to ASCII.
|
|
|
|
|
CONTENTS is the contents of the list. INFO is a plist holding
|
|
|
|
|
contextual information."
|
|
|
|
|
contents)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Plain Text
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-plain-text (text info)
|
|
|
|
|
"Transcode a TEXT string from Org to ASCII.
|
|
|
|
|
INFO is a plist used as a communication channel."
|
|
|
|
|
(if (not (and (eq (plist-get info :ascii-charset) 'utf-8)
|
|
|
|
|
(plist-get info :with-special-strings)))
|
|
|
|
|
text
|
|
|
|
|
;; Usual replacements in utf-8 with proper option set.
|
|
|
|
|
(replace-regexp-in-string
|
|
|
|
|
"\\.\\.\\." "…"
|
|
|
|
|
(replace-regexp-in-string
|
|
|
|
|
"--" "–"
|
|
|
|
|
(replace-regexp-in-string "---" "—" text)))))
|
|
|
|
|
|
|
|
|
|
|
2012-04-28 20:11:22 -04:00
|
|
|
|
;;;; Planning
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
2012-04-28 20:11:22 -04:00
|
|
|
|
(defun org-e-ascii-planning (planning contents info)
|
|
|
|
|
"Transcode a PLANNING element from Org to ASCII.
|
2012-01-07 08:01:25 -05:00
|
|
|
|
CONTENTS is nil. INFO is a plist used as a communication
|
|
|
|
|
channel."
|
2012-04-28 20:11:22 -04:00
|
|
|
|
(mapconcat
|
|
|
|
|
'identity
|
|
|
|
|
(delq nil
|
|
|
|
|
(list (let ((closed (org-element-property :closed planning)))
|
|
|
|
|
(when closed (concat org-closed-string " "
|
|
|
|
|
(org-translate-time closed))))
|
|
|
|
|
(let ((deadline (org-element-property :deadline planning)))
|
|
|
|
|
(when deadline (concat org-deadline-string " "
|
|
|
|
|
(org-translate-time deadline))))
|
|
|
|
|
(let ((scheduled (org-element-property :scheduled planning)))
|
|
|
|
|
(when scheduled (concat org-scheduled-string " "
|
|
|
|
|
(org-translate-time scheduled))))))
|
|
|
|
|
" "))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Property Drawer
|
|
|
|
|
;;
|
|
|
|
|
;; Property drawers are ignored.
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Quote Block
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-quote-block (quote-block contents info)
|
|
|
|
|
"Transcode a QUOTE-BLOCK element from Org to ASCII.
|
|
|
|
|
CONTENTS holds the contents of the block. INFO is a plist
|
|
|
|
|
holding contextual information."
|
2012-01-28 07:51:41 -05:00
|
|
|
|
(let ((width (org-e-ascii--current-text-width quote-block info)))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(org-e-ascii--indent-string
|
|
|
|
|
(org-remove-indentation
|
2012-01-28 07:51:41 -05:00
|
|
|
|
(org-e-ascii--fill-string contents width info))
|
|
|
|
|
org-e-ascii-quote-margin)))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Quote Section
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-quote-section (quote-section contents info)
|
|
|
|
|
"Transcode a QUOTE-SECTION element from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual information."
|
2012-01-28 07:51:41 -05:00
|
|
|
|
(let ((width (org-e-ascii--current-text-width quote-section info))
|
|
|
|
|
(value
|
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-29 20:04:03 -04:00
|
|
|
|
(org-export-data
|
|
|
|
|
(org-remove-indentation (org-element-property :value quote-section))
|
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 05:33:16 -04:00
|
|
|
|
info)))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(org-e-ascii--indent-string
|
|
|
|
|
value
|
2012-01-28 07:51:41 -05:00
|
|
|
|
(+ org-e-ascii-quote-margin
|
2012-01-07 08:01:25 -05:00
|
|
|
|
;; Don't apply inner margin if parent headline is low level.
|
|
|
|
|
(let ((headline (org-export-get-parent-headline quote-section info)))
|
|
|
|
|
(if (org-export-low-level-p headline info) 0
|
|
|
|
|
org-e-ascii-inner-margin))))))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Radio Target
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-radio-target (radio-target contents info)
|
|
|
|
|
"Transcode a RADIO-TARGET object from Org to ASCII.
|
|
|
|
|
CONTENTS is the contents of the target. INFO is a plist holding
|
|
|
|
|
contextual information."
|
|
|
|
|
contents)
|
|
|
|
|
|
|
|
|
|
;;;; Section
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-section (section contents info)
|
|
|
|
|
"Transcode a SECTION element from Org to ASCII.
|
|
|
|
|
CONTENTS is the contents of the section. INFO is a plist holding
|
|
|
|
|
contextual information."
|
|
|
|
|
(org-e-ascii--indent-string
|
|
|
|
|
(concat
|
|
|
|
|
contents
|
|
|
|
|
(when org-e-ascii-links-to-notes
|
|
|
|
|
;; Add list of links at the end of SECTION.
|
|
|
|
|
(let ((links (org-e-ascii--describe-links
|
|
|
|
|
(org-e-ascii--unique-links section info)
|
|
|
|
|
(org-e-ascii--current-text-width section info) info)))
|
|
|
|
|
;; Separate list of links and section contents.
|
|
|
|
|
(when (org-string-nw-p links) (concat "\n\n" links)))))
|
|
|
|
|
;; Do not apply inner margin if parent headline is low level.
|
|
|
|
|
(let ((headline (org-export-get-parent-headline section info)))
|
|
|
|
|
(if (or (not headline) (org-export-low-level-p headline info)) 0
|
|
|
|
|
org-e-ascii-inner-margin))))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Special Block
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-special-block (special-block contents info)
|
|
|
|
|
"Transcode a SPECIAL-BLOCK element from Org to ASCII.
|
|
|
|
|
CONTENTS holds the contents of the block. INFO is a plist
|
|
|
|
|
holding contextual information."
|
|
|
|
|
contents)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Src Block
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-src-block (src-block contents info)
|
|
|
|
|
"Transcode a SRC-BLOCK element from Org to ASCII.
|
|
|
|
|
CONTENTS holds the contents of the item. INFO is a plist holding
|
|
|
|
|
contextual information."
|
|
|
|
|
(let ((caption (org-e-ascii--build-caption src-block info)))
|
|
|
|
|
(concat
|
|
|
|
|
(when (and caption org-e-ascii-caption-above) (concat caption "\n"))
|
2012-03-10 05:37:13 -05:00
|
|
|
|
(org-e-ascii--box-string
|
|
|
|
|
(org-export-format-code-default src-block info) info)
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(when (and caption (not org-e-ascii-caption-above))
|
|
|
|
|
(concat "\n" caption)))))
|
|
|
|
|
|
|
|
|
|
;;;; Statistics Cookie
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-statistics-cookie (statistics-cookie contents info)
|
|
|
|
|
"Transcode a STATISTICS-COOKIE object from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual information."
|
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 07:47:20 -05:00
|
|
|
|
(org-element-property :value statistics-cookie))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Subscript
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-subscript (subscript contents info)
|
|
|
|
|
"Transcode a SUBSCRIPT object from Org to ASCII.
|
|
|
|
|
CONTENTS is the contents of the object. INFO is a plist holding
|
|
|
|
|
contextual information."
|
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 07:47:20 -05:00
|
|
|
|
(if (org-element-property :use-brackets-p subscript)
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(format "_{%s}" contents)
|
|
|
|
|
(format "_%s" contents)))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Superscript
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-superscript (superscript contents info)
|
|
|
|
|
"Transcode a SUPERSCRIPT object from Org to ASCII.
|
|
|
|
|
CONTENTS is the contents of the object. INFO is a plist holding
|
|
|
|
|
contextual information."
|
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 07:47:20 -05:00
|
|
|
|
(if (org-element-property :use-brackets-p superscript)
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(format "_{%s}" contents)
|
|
|
|
|
(format "_%s" contents)))
|
|
|
|
|
|
|
|
|
|
|
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 12:00:50 -04:00
|
|
|
|
;;;; Strike-through
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-strike-through (strike-through contents info)
|
|
|
|
|
"Transcode STRIKE-THROUGH from Org to ASCII.
|
|
|
|
|
CONTENTS is text with strike-through markup. INFO is a plist
|
|
|
|
|
holding contextual information."
|
|
|
|
|
(format "+%s+" contents))
|
|
|
|
|
|
|
|
|
|
|
2012-01-07 08:01:25 -05:00
|
|
|
|
;;;; Table
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-table (table contents info)
|
|
|
|
|
"Transcode a TABLE element from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual information."
|
2012-04-21 03:52:08 -04:00
|
|
|
|
(let ((caption (org-e-ascii--build-caption table info)))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(concat
|
|
|
|
|
;; Possibly add a caption string above.
|
|
|
|
|
(when (and caption org-e-ascii-caption-above) (concat caption "\n"))
|
|
|
|
|
;; Insert table. Note: "table.el" tables are left unmodified.
|
2012-04-21 03:52:08 -04:00
|
|
|
|
(if (eq (org-element-property :type table) 'org) contents
|
2012-04-22 11:00:32 -04:00
|
|
|
|
(org-remove-indentation (org-element-property :value table)))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
;; Possible add a caption string below.
|
|
|
|
|
(when (and caption (not org-e-ascii-caption-above))
|
|
|
|
|
(concat "\n" caption)))))
|
|
|
|
|
|
|
|
|
|
|
2012-04-21 03:52:08 -04:00
|
|
|
|
;;;; Table Cell
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii--table-cell-width (table-cell info)
|
|
|
|
|
"Return width of TABLE-CELL.
|
|
|
|
|
|
|
|
|
|
Width of a cell is determined either by a width cookie in the
|
|
|
|
|
same column as the cell, or by the length of its contents.
|
|
|
|
|
|
|
|
|
|
When `org-e-ascii-table-widen-columns' is non-nil, width cookies
|
|
|
|
|
are ignored. "
|
|
|
|
|
(or (and (not org-e-ascii-table-widen-columns)
|
|
|
|
|
(org-export-table-cell-width table-cell info))
|
|
|
|
|
(let* ((max-width 0)
|
|
|
|
|
(table (org-export-get-parent-table table-cell info))
|
|
|
|
|
(specialp (org-export-table-has-special-column-p table))
|
|
|
|
|
(col (cdr (org-export-table-cell-address table-cell info))))
|
|
|
|
|
(org-element-map
|
|
|
|
|
table 'table-row
|
|
|
|
|
(lambda (row)
|
|
|
|
|
(setq max-width
|
|
|
|
|
(max (length
|
2012-05-04 08:02:41 -04:00
|
|
|
|
(org-export-data
|
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-29 20:04:03 -04:00
|
|
|
|
(org-element-contents
|
|
|
|
|
(elt (if specialp (car (org-element-contents row))
|
|
|
|
|
(org-element-contents row))
|
|
|
|
|
col))
|
2012-05-04 08:02:41 -04:00
|
|
|
|
info))
|
2012-05-17 16:35:48 -04:00
|
|
|
|
max-width)))
|
|
|
|
|
info)
|
2012-04-21 03:52:08 -04:00
|
|
|
|
max-width)))
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-table-cell (table-cell contents info)
|
|
|
|
|
"Transcode a TABLE-CELL object from Org to ASCII.
|
|
|
|
|
CONTENTS is the cell contents. INFO is a plist used as
|
|
|
|
|
a communication channel."
|
|
|
|
|
;; Determine column width. When `org-e-ascii-table-widen-columns'
|
|
|
|
|
;; is nil and some width cookie has set it, use that value.
|
|
|
|
|
;; Otherwise, compute the maximum width among transcoded data of
|
|
|
|
|
;; each cell in the column.
|
|
|
|
|
(let ((width (org-e-ascii--table-cell-width table-cell info)))
|
|
|
|
|
;; When contents are too large, truncate them.
|
|
|
|
|
(unless (or org-e-ascii-table-widen-columns (<= (length contents) width))
|
|
|
|
|
(setq contents (concat (substring contents 0 (- width 2)) "=>")))
|
|
|
|
|
;; Align contents correctly within the cell.
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(let* ((indent-tabs-mode nil)
|
2012-04-21 03:52:08 -04:00
|
|
|
|
(data
|
|
|
|
|
(when contents
|
|
|
|
|
(org-e-ascii--justify-string
|
|
|
|
|
contents width
|
|
|
|
|
(org-export-table-cell-alignment table-cell info)))))
|
|
|
|
|
(setq contents (concat data (make-string (- width (length data)) ? ))))
|
|
|
|
|
;; Return cell.
|
|
|
|
|
(concat (format " %s " contents)
|
|
|
|
|
(when (memq 'right (org-export-table-cell-borders table-cell info))
|
|
|
|
|
(if (eq (plist-get info :ascii-charset) 'utf-8) "│" "|")))))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Table Row
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-table-row (table-row contents info)
|
|
|
|
|
"Transcode a TABLE-ROW element from Org to ASCII.
|
|
|
|
|
CONTENTS is the row contents. INFO is a plist used as
|
|
|
|
|
a communication channel."
|
|
|
|
|
(when (eq (org-element-property :type table-row) 'standard)
|
|
|
|
|
(let ((build-hline
|
|
|
|
|
(function
|
|
|
|
|
(lambda (lcorner horiz vert rcorner)
|
|
|
|
|
(concat
|
|
|
|
|
(apply
|
|
|
|
|
'concat
|
|
|
|
|
(org-element-map
|
|
|
|
|
table-row 'table-cell
|
|
|
|
|
(lambda (cell)
|
|
|
|
|
(let ((width (org-e-ascii--table-cell-width cell info))
|
|
|
|
|
(borders (org-export-table-cell-borders cell info)))
|
|
|
|
|
(concat
|
|
|
|
|
(when (and (memq 'left borders)
|
|
|
|
|
(equal (org-element-map
|
|
|
|
|
table-row 'table-cell 'identity info t)
|
|
|
|
|
cell)))
|
|
|
|
|
(make-string (+ 2 width) (string-to-char horiz))
|
|
|
|
|
(cond
|
|
|
|
|
((not (memq 'right borders)) nil)
|
|
|
|
|
((equal (car (last (org-element-contents table-row)))
|
|
|
|
|
cell)
|
|
|
|
|
rcorner)
|
|
|
|
|
(t vert)))))
|
|
|
|
|
info)) "\n"))))
|
|
|
|
|
(utf8p (eq (plist-get info :ascii-charset) 'utf-8))
|
|
|
|
|
(borders (org-export-table-cell-borders
|
|
|
|
|
(org-element-map table-row 'table-cell 'identity info t)
|
|
|
|
|
info)))
|
|
|
|
|
(concat (cond
|
|
|
|
|
((and (memq 'top borders) (or utf8p (memq 'above borders)))
|
|
|
|
|
(if utf8p (funcall build-hline "┍" "━" "┯" "┑")
|
|
|
|
|
(funcall build-hline "+" "-" "+" "+")))
|
|
|
|
|
((memq 'above borders)
|
|
|
|
|
(if utf8p (funcall build-hline "├" "─" "┼" "┤")
|
|
|
|
|
(funcall build-hline "+" "-" "+" "+"))))
|
|
|
|
|
(when (memq 'left borders) (if utf8p "│" "|"))
|
|
|
|
|
contents "\n"
|
|
|
|
|
(when (and (memq 'bottom borders) (or utf8p (memq 'below borders)))
|
|
|
|
|
(if utf8p (funcall build-hline "┕" "━" "┷" "┙")
|
|
|
|
|
(funcall build-hline "+" "-" "+" "+")))))))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Target
|
|
|
|
|
|
2012-02-20 16:24:38 -05:00
|
|
|
|
;; Targets are invisible.
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
|
|
|
|
|
2012-04-28 20:23:09 -04:00
|
|
|
|
;;;; Timestamp
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
2012-04-28 20:23:09 -04:00
|
|
|
|
(defun org-e-ascii-timestamp (timestamp contents info)
|
|
|
|
|
"Transcode a TIMESTAMP object from Org to ASCII.
|
2012-01-07 08:01:25 -05:00
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual information."
|
2012-04-28 20:23:09 -04:00
|
|
|
|
(org-translate-time (org-element-property :value timestamp)))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
|
|
|
|
|
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 12:00:50 -04:00
|
|
|
|
;;;; Underline
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-underline (underline contents info)
|
|
|
|
|
"Transcode UNDERLINE from Org to ASCII.
|
|
|
|
|
CONTENTS is the text with underline markup. INFO is a plist
|
|
|
|
|
holding contextual information."
|
|
|
|
|
(format "_%s_" contents))
|
|
|
|
|
|
|
|
|
|
|
2012-01-07 08:01:25 -05:00
|
|
|
|
;;;; Verbatim
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-verbatim (verbatim contents info)
|
|
|
|
|
"Return a VERBATIM object from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual information."
|
|
|
|
|
(format org-e-ascii-verbatim-format
|
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 07:47:20 -05:00
|
|
|
|
(org-element-property :value verbatim)))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Verse Block
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-verse-block (verse-block contents info)
|
|
|
|
|
"Transcode a VERSE-BLOCK element from Org to ASCII.
|
2012-04-25 16:15:29 -04:00
|
|
|
|
CONTENTS is verse block contents. INFO is a plist holding
|
|
|
|
|
contextual information."
|
2012-01-07 08:01:25 -05:00
|
|
|
|
(let ((verse-width (org-e-ascii--current-text-width verse-block info)))
|
|
|
|
|
(org-e-ascii--indent-string
|
2012-04-25 16:15:29 -04:00
|
|
|
|
(org-e-ascii--justify-string contents verse-width 'left)
|
2012-01-28 07:51:41 -05:00
|
|
|
|
org-e-ascii-quote-margin)))
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;; Filter
|
|
|
|
|
|
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 06:20:49 -05:00
|
|
|
|
(defun org-e-ascii-filter-headline-blank-lines (headline back-end info)
|
2012-01-07 08:01:25 -05:00
|
|
|
|
"Filter controlling number of blank lines after an headline.
|
|
|
|
|
|
|
|
|
|
HEADLINE is a string representing a transcoded headline.
|
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 06:20:49 -05:00
|
|
|
|
BACK-END is symbol specifying back-end used for export. INFO is
|
|
|
|
|
plist containing the communication channel.
|
2012-01-07 08:01:25 -05:00
|
|
|
|
|
|
|
|
|
This function only applies to `e-ascii' back-end. See
|
|
|
|
|
`org-e-ascii-headline-spacing' for information.
|
|
|
|
|
|
|
|
|
|
For any other back-end, HEADLINE is returned as-is."
|
|
|
|
|
(if (not (and (eq back-end 'e-ascii) org-e-ascii-headline-spacing)) headline
|
|
|
|
|
(let ((blanks (make-string (1+ (cdr org-e-ascii-headline-spacing)) ?\n)))
|
|
|
|
|
(replace-regexp-in-string "\n\\(?:\n[ \t]*\\)*\\'" blanks headline))))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;; Interactive function
|
|
|
|
|
|
|
|
|
|
(defun org-e-ascii-export-to-ascii
|
|
|
|
|
(&optional subtreep visible-only body-only ext-plist pub-dir)
|
|
|
|
|
"Export current buffer to a text file.
|
|
|
|
|
|
|
|
|
|
If narrowing is active in the current buffer, only export its
|
|
|
|
|
narrowed part.
|
|
|
|
|
|
|
|
|
|
If a region is active, export that region.
|
|
|
|
|
|
|
|
|
|
When optional argument SUBTREEP is non-nil, export the sub-tree
|
|
|
|
|
at point, extracting information from the headline properties
|
|
|
|
|
first.
|
|
|
|
|
|
|
|
|
|
When optional argument VISIBLE-ONLY is non-nil, don't export
|
|
|
|
|
contents of hidden elements.
|
|
|
|
|
|
|
|
|
|
When optional argument BODY-ONLY is non-nil, strip title, table
|
|
|
|
|
of contents and footnote definitions from output.
|
|
|
|
|
|
|
|
|
|
EXT-PLIST, when provided, is a property list with external
|
|
|
|
|
parameters overriding Org default settings, but still inferior to
|
|
|
|
|
file-local settings.
|
|
|
|
|
|
|
|
|
|
When optional argument PUB-DIR is set, use it as the publishing
|
|
|
|
|
directory.
|
|
|
|
|
|
|
|
|
|
Return output file's name."
|
|
|
|
|
(interactive)
|
|
|
|
|
(let ((outfile (org-export-output-file-name ".txt" subtreep pub-dir)))
|
|
|
|
|
(org-export-to-file
|
|
|
|
|
'e-ascii outfile subtreep visible-only body-only ext-plist)))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(provide 'org-e-ascii)
|
|
|
|
|
;;; org-e-ascii.el ends here
|