2023-04-20 12:11:19 +00:00
|
|
|
|
;;; ox-ascii.el --- ASCII Backend for Org Export Engine -*- lexical-binding: t; -*-
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2024-01-02 01:47:10 +00:00
|
|
|
|
;; Copyright (C) 2012-2024 Free Software Foundation, Inc.
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
;; Author: Nicolas Goaziou <n.goaziou at gmail dot com>
|
2021-10-03 06:54:33 +00:00
|
|
|
|
;; Maintainer: Nicolas Goaziou <mail@nicolasgoaziou.fr>
|
2012-01-07 13:01:25 +00:00
|
|
|
|
;; Keywords: outlines, hypermedia, calendar, wp
|
|
|
|
|
|
Backport changes from Emacs revs 115081 and 115082
2013-11-12 Stefan Monnier <monnier@iro.umontreal.ca>
Address some byte-compiler warnings.
* ob-abc.el (org-babel-expand-body:abc): Use dolist.
(org-babel-execute:abc): Fix regexp quoting.
* ob-calc.el (org--var-syms): Rename from `var-syms'.
* ob-lilypond.el (ly-compile-lilyfile): Remove redundant let-binding.
* ob-table.el (sbe): Move debug declaration.
* org-clock.el (org--msg-extra): Rename from `msg-extra'.
* org.el (org-version): Avoid var name starting with _.
(org-inhibit-startup, org-called-with-limited-levels)
(org-link-search-inhibit-query, org-time-was-given)
(org-end-time-was-given, org-def, org-defdecode, org-with-time):
* org-colview.el (org-agenda-overriding-columns-format):
* org-agenda.el (org-agenda-multi, org-depend-tag-blocked)
(org-agenda-show-log-scoped):
* ob-python.el (py-which-bufname, python-shell-buffer-name):
* ob-haskell.el (org-export-copy-to-kill-ring):
* ob-exp.el (org-link-search-inhibit-query):
* ob-R.el (ess-eval-visibly-p):
* ob-core.el (org-src-window-setup): Declare before use.
(org-babel-expand-noweb-references): Remove unused `blocks-in-buffer'.
* ox-odt.el (org-odt-hfy-face-to-css):
* org-src.el (org-src-associate-babel-session, org-src-get-lang-mode):
* org-bibtex.el (org-bibtex-get, org-bibtex-ask, org-bibtex)
(org-bibtex-check):
* ob-tangle.el (org-babel-tangle, org-babel-spec-to-string)
(org-babel-tangle-single-block, org-babel-tangle-comment-links):
* ob-table.el (sbe):
* ob-sqlite.el (org-babel-sqlite-expand-vars):
* ob-sql.el (org-babel-sql-expand-vars):
* ob-shen.el (org-babel-execute:shen):
* ob-sh.el (org-babel-execute:sh, org-babel-sh-evaluate):
* ob-scala.el (org-babel-scala-evaluate):
* ob-ruby.el (org-babel-ruby-table-or-string)
(org-babel-ruby-evaluate):
* ob-python.el (org-babel-python-table-or-string)
(org-babel-python-evaluate-external-process)
(org-babel-python-evaluate-session):
* ob-picolisp.el (org-babel-execute:picolisp):
* ob-perl.el (org-babel-perl-evaluate):
* ob-maxima.el (org-babel-execute:maxima):
* ob-lisp.el (org-babel-execute:lisp):
* ob-java.el (org-babel-execute:java):
* ob-io.el (org-babel-io-evaluate):
* ob-haskell.el (org-babel-execute:haskell):
* ob-fortran.el (org-babel-execute:fortran):
* ob-exp.el (org-babel-exp-code):
* ob-emacs-lisp.el (org-babel-execute:emacs-lisp):
* ob-ditaa.el (org-babel-execute:ditaa):
* ob-core.el (org-babel-execute-src-block, org-babel-sha1-hash)
(org-babel-parse-header-arguments, org-babel-reassemble-table)
(org-babel-goto-src-block-head, org-babel-mark-block)
(org-babel-expand-noweb-references, org-babel-script-escape)
(org-babel-process-file-name):
* ob-clojure.el (org-babel-execute:clojure):
* ob-calc.el (org-babel-execute:calc):
* ob-awk.el (org-babel-execute:awk):
* ob-abc.el (org-babel-execute:abc):
* ob-R.el (org-babel-expand-body:R):
* ob-C.el (org-babel-C-execute): Avoid deprecated ((lambda) ...).
2013-11-12 Glenn Morris <rgm@gnu.org>
* ox-html.el (org-html-scripts): Add 2013 to copyright years.
(org-html-infojs-template): Copyright holder to FSF.
2013-11-12 19:57:31 +00:00
|
|
|
|
;; This file is part of GNU Emacs.
|
|
|
|
|
|
2013-02-23 08:56:24 +00:00
|
|
|
|
;; GNU Emacs is free software: you can redistribute it and/or modify
|
2012-01-07 13:01:25 +00:00
|
|
|
|
;; 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.
|
|
|
|
|
|
2013-02-23 08:56:24 +00:00
|
|
|
|
;; GNU Emacs is distributed in the hope that it will be useful,
|
2012-01-07 13:01:25 +00:00
|
|
|
|
;; 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
|
2017-09-13 22:52:52 +00:00
|
|
|
|
;; along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
;;; Commentary:
|
2012-07-25 10:55:00 +00:00
|
|
|
|
;;
|
2023-04-20 12:11:19 +00:00
|
|
|
|
;; This library implements an ASCII backend for Org generic exporter.
|
2013-10-20 08:58:30 +00:00
|
|
|
|
;; See Org manual for more information.
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
;;; Code:
|
|
|
|
|
|
2022-08-04 13:53:05 +00:00
|
|
|
|
(require 'org-macs)
|
|
|
|
|
(org-assert-version)
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(require 'ox)
|
|
|
|
|
(require 'ox-publish)
|
2016-07-25 13:36:09 +00:00
|
|
|
|
(require 'cl-lib)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2020-01-14 02:07:53 +00:00
|
|
|
|
;;; Function Declarations
|
|
|
|
|
|
2012-08-03 07:56:40 +00:00
|
|
|
|
(declare-function aa2u "ext:ascii-art-to-unicode" ())
|
2022-06-16 05:10:38 +00:00
|
|
|
|
(declare-function org-at-heading-p "org" (&optional _))
|
|
|
|
|
(declare-function org-back-to-heading "org" (&optional invisible-ok))
|
|
|
|
|
(declare-function org-next-visible-heading "org" (arg))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2023-04-20 12:11:19 +00:00
|
|
|
|
;;; Define Backend
|
2012-05-18 08:18:42 +00:00
|
|
|
|
;;
|
2016-01-24 20:30:39 +00:00
|
|
|
|
;; The following setting won't allow modifying preferred charset
|
2012-01-07 13:01:25 +00:00
|
|
|
|
;; through a buffer keyword or an option item, but, since the property
|
2016-01-24 20:30:39 +00:00
|
|
|
|
;; will appear in communication channel nonetheless, it allows
|
|
|
|
|
;; overriding `org-ascii-charset' variable on the fly by the ext-plist
|
2012-01-07 13:01:25 +00:00
|
|
|
|
;; mechanism.
|
2012-05-18 08:18:42 +00:00
|
|
|
|
;;
|
2012-02-13 12:50:28 +00:00
|
|
|
|
;; We also install a filter for headlines and sections, in order to
|
|
|
|
|
;; control blank lines separating them in output string.
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2013-03-19 15:24:40 +00:00
|
|
|
|
(org-export-define-backend 'ascii
|
|
|
|
|
'((bold . org-ascii-bold)
|
|
|
|
|
(center-block . org-ascii-center-block)
|
|
|
|
|
(clock . org-ascii-clock)
|
|
|
|
|
(code . org-ascii-code)
|
|
|
|
|
(drawer . org-ascii-drawer)
|
|
|
|
|
(dynamic-block . org-ascii-dynamic-block)
|
|
|
|
|
(entity . org-ascii-entity)
|
|
|
|
|
(example-block . org-ascii-example-block)
|
2014-09-08 09:57:27 +00:00
|
|
|
|
(export-block . org-ascii-export-block)
|
2013-03-19 15:24:40 +00:00
|
|
|
|
(export-snippet . org-ascii-export-snippet)
|
|
|
|
|
(fixed-width . org-ascii-fixed-width)
|
|
|
|
|
(footnote-reference . org-ascii-footnote-reference)
|
|
|
|
|
(headline . org-ascii-headline)
|
|
|
|
|
(horizontal-rule . org-ascii-horizontal-rule)
|
|
|
|
|
(inline-src-block . org-ascii-inline-src-block)
|
|
|
|
|
(inlinetask . org-ascii-inlinetask)
|
|
|
|
|
(inner-template . org-ascii-inner-template)
|
|
|
|
|
(italic . org-ascii-italic)
|
|
|
|
|
(item . org-ascii-item)
|
|
|
|
|
(keyword . org-ascii-keyword)
|
|
|
|
|
(latex-environment . org-ascii-latex-environment)
|
|
|
|
|
(latex-fragment . org-ascii-latex-fragment)
|
|
|
|
|
(line-break . org-ascii-line-break)
|
|
|
|
|
(link . org-ascii-link)
|
2013-09-25 19:27:29 +00:00
|
|
|
|
(node-property . org-ascii-node-property)
|
2013-03-19 15:24:40 +00:00
|
|
|
|
(paragraph . org-ascii-paragraph)
|
|
|
|
|
(plain-list . org-ascii-plain-list)
|
|
|
|
|
(plain-text . org-ascii-plain-text)
|
|
|
|
|
(planning . org-ascii-planning)
|
2013-09-25 19:27:29 +00:00
|
|
|
|
(property-drawer . org-ascii-property-drawer)
|
2013-03-19 15:24:40 +00:00
|
|
|
|
(quote-block . org-ascii-quote-block)
|
|
|
|
|
(radio-target . org-ascii-radio-target)
|
|
|
|
|
(section . org-ascii-section)
|
|
|
|
|
(special-block . org-ascii-special-block)
|
|
|
|
|
(src-block . org-ascii-src-block)
|
|
|
|
|
(statistics-cookie . org-ascii-statistics-cookie)
|
|
|
|
|
(strike-through . org-ascii-strike-through)
|
|
|
|
|
(subscript . org-ascii-subscript)
|
|
|
|
|
(superscript . org-ascii-superscript)
|
|
|
|
|
(table . org-ascii-table)
|
|
|
|
|
(table-cell . org-ascii-table-cell)
|
|
|
|
|
(table-row . org-ascii-table-row)
|
|
|
|
|
(target . org-ascii-target)
|
|
|
|
|
(template . org-ascii-template)
|
|
|
|
|
(timestamp . org-ascii-timestamp)
|
|
|
|
|
(underline . org-ascii-underline)
|
|
|
|
|
(verbatim . org-ascii-verbatim)
|
|
|
|
|
(verse-block . org-ascii-verse-block))
|
2012-09-09 11:08:52 +00:00
|
|
|
|
:menu-entry
|
2013-03-19 15:24:40 +00:00
|
|
|
|
'(?t "Export to Plain Text"
|
|
|
|
|
((?A "As ASCII buffer"
|
|
|
|
|
(lambda (a s v b)
|
|
|
|
|
(org-ascii-export-as-ascii a s v b '(:ascii-charset ascii))))
|
|
|
|
|
(?a "As ASCII file"
|
|
|
|
|
(lambda (a s v b)
|
|
|
|
|
(org-ascii-export-to-ascii a s v b '(:ascii-charset ascii))))
|
|
|
|
|
(?L "As Latin1 buffer"
|
|
|
|
|
(lambda (a s v b)
|
|
|
|
|
(org-ascii-export-as-ascii a s v b '(:ascii-charset latin1))))
|
|
|
|
|
(?l "As Latin1 file"
|
|
|
|
|
(lambda (a s v b)
|
|
|
|
|
(org-ascii-export-to-ascii a s v b '(:ascii-charset latin1))))
|
|
|
|
|
(?U "As UTF-8 buffer"
|
|
|
|
|
(lambda (a s v b)
|
|
|
|
|
(org-ascii-export-as-ascii a s v b '(:ascii-charset utf-8))))
|
|
|
|
|
(?u "As UTF-8 file"
|
|
|
|
|
(lambda (a s v b)
|
|
|
|
|
(org-ascii-export-to-ascii a s v b '(:ascii-charset utf-8))))))
|
|
|
|
|
:filters-alist '((:filter-headline . org-ascii-filter-headline-blank-lines)
|
|
|
|
|
(:filter-parse-tree org-ascii-filter-paragraph-spacing
|
|
|
|
|
org-ascii-filter-comment-spacing)
|
|
|
|
|
(:filter-section . org-ascii-filter-headline-blank-lines))
|
2014-05-21 07:06:59 +00:00
|
|
|
|
:options-alist
|
ox: Add #+SUBTITLE property in some backends
* ox-texinfo.el (texinfo, org-texinfo-template): Parse subtitle.
* ox-s5.el (org-s5-title-slide-template):
* ox-deck.el (org-deck-title-slide-template):
* ox-odt.el (odt, org-odt-template):
* ox-latex.el (latex, org-latex-template):
* ox-html.el (html, org-html-format-spec, org-html-template):
* ox-ascii.el (ascii, org-ascii-template--document-title):
* ox-beamer.el (beamer, org-beamer-template): Support #+SUBTITLE.
* ox-html.el (org-html-postamble-format)
(org-html-preamble-format):
* ox-latex.el (org-latex-title-command)
(org-latex-hyperref-template): Update docstring.
* ox-html.el (org-html-style-default): New .subtitle css property.
* ox-beamer.el (org-beamer-subtitle-format):
* ox-latex.el (org-latex-subtitle-format)
(org-latex-subtitle-separate): New variable.
* org.texi (ASCII/Latin-1/UTF-8 export)
(Beamer specific export settings)
(HTML Specific export settings)
(@LaTeX{} specific export settings, CSS support)
(ODT specific export settings)
(Texinfo specific export settings, Document preamble)
(Publishing options, Publishing options): Document #+SUBTITLE.
The patch adds a #+SUBTITLE keyword to ox-ascii, ox-latex, ox-html and
ox-odt.
2015-03-01 21:09:19 +00:00
|
|
|
|
'((:subtitle "SUBTITLE" nil nil parse)
|
|
|
|
|
(:ascii-bullets nil nil org-ascii-bullets)
|
2014-05-21 07:06:59 +00:00
|
|
|
|
(:ascii-caption-above nil nil org-ascii-caption-above)
|
|
|
|
|
(:ascii-charset nil nil org-ascii-charset)
|
|
|
|
|
(:ascii-global-margin nil nil org-ascii-global-margin)
|
|
|
|
|
(:ascii-format-drawer-function nil nil org-ascii-format-drawer-function)
|
|
|
|
|
(:ascii-format-inlinetask-function
|
|
|
|
|
nil nil org-ascii-format-inlinetask-function)
|
|
|
|
|
(:ascii-headline-spacing nil nil org-ascii-headline-spacing)
|
|
|
|
|
(:ascii-indented-line-width nil nil org-ascii-indented-line-width)
|
|
|
|
|
(:ascii-inlinetask-width nil nil org-ascii-inlinetask-width)
|
|
|
|
|
(:ascii-inner-margin nil nil org-ascii-inner-margin)
|
|
|
|
|
(:ascii-links-to-notes nil nil org-ascii-links-to-notes)
|
2014-09-20 12:40:01 +00:00
|
|
|
|
(:ascii-list-margin nil nil org-ascii-list-margin)
|
2014-05-21 07:06:59 +00:00
|
|
|
|
(:ascii-paragraph-spacing nil nil org-ascii-paragraph-spacing)
|
|
|
|
|
(:ascii-quote-margin nil nil org-ascii-quote-margin)
|
|
|
|
|
(:ascii-table-keep-all-vertical-lines
|
|
|
|
|
nil nil org-ascii-table-keep-all-vertical-lines)
|
|
|
|
|
(:ascii-table-use-ascii-art nil nil org-ascii-table-use-ascii-art)
|
|
|
|
|
(:ascii-table-widen-columns nil nil org-ascii-table-widen-columns)
|
|
|
|
|
(:ascii-text-width nil nil org-ascii-text-width)
|
|
|
|
|
(:ascii-underline nil nil org-ascii-underline)
|
|
|
|
|
(:ascii-verbatim-format nil nil org-ascii-verbatim-format)))
|
2012-02-13 12:50:28 +00:00
|
|
|
|
|
2012-05-18 08:18:42 +00:00
|
|
|
|
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
;;; User Configurable Variables
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defgroup org-export-ascii nil
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Options for exporting Org mode files to ASCII."
|
|
|
|
|
:tag "Org Export ASCII"
|
|
|
|
|
:group 'org-export)
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defcustom org-ascii-text-width 72
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Maximum width of exported text.
|
|
|
|
|
This number includes margin size, as set in
|
2013-01-27 22:11:34 +00:00
|
|
|
|
`org-ascii-global-margin'."
|
|
|
|
|
:group 'org-export-ascii
|
Add :version and :package-version
* ox.el (org-export-snippet-translation-alist)
(org-export-coding-system, org-export-in-background)
(org-export-async-init-file, org-export-invisible-backends)
(org-export-dispatch-use-expert-ui):
* ox-texinfo.el (org-texinfo-filename, org-texinfo-classes)
(org-texinfo-format-headline-function)
(org-texinfo-node-description-column)
(org-texinfo-active-timestamp-format)
(org-texinfo-link-with-unknown-path-format)
(org-texinfo-tables-verbatim)
(org-texinfo-table-scientific-notation)
(org-texinfo-text-markup-alist)
(org-texinfo-format-drawer-function)
(org-texinfo-format-inlinetask-function)
(org-texinfo-info-process):
* ox-man.el (org-man-tables-centered)
(org-man-table-scientific-notation)
(org-man-source-highlight, org-man-source-highlight-langs)
(org-man-pdf-process, org-man-logfiles-extensions):
* ox-html.el (org-html-allow-name-attribute-in-anchors)
(org-html-coding-system, org-html-divs):
* ox-ascii.el (org-ascii-text-width)
(org-ascii-headline-spacing, org-ascii-indented-line-width)
(org-ascii-paragraph-spacing, org-ascii-charset)
(org-ascii-underline, org-ascii-bullets)
(org-ascii-links-to-notes)
(org-ascii-table-keep-all-vertical-lines)
(org-ascii-table-widen-columns)
(org-ascii-table-use-ascii-art)
(org-ascii-format-drawer-function)
(org-ascii-format-inlinetask-function):
* org.el (org-modules, org-export-backends)
(org-highlight-latex-and-related, orgstruct-setup-hook):
* org-attach.el (org-attach-git-annex-cutoff):
* org-archive.el (org-archive-file-header-format):
* org-agenda.el (org-agenda-todo-ignore-time-comparison-use-seconds):
* ob-python.el (org-babel-python-hline-to)
(org-babel-python-None-to):
* ob-ditaa.el (org-ditaa-eps-jar-path):
* ob-core.el (org-babel-results-keyword): Add :version and
:package-version.
* ox-ascii.el: Use utf-8-emacs as the file coding system.
2013-03-05 15:34:16 +00:00
|
|
|
|
:version "24.4"
|
|
|
|
|
:package-version '(Org . "8.0")
|
2012-01-07 13:01:25 +00:00
|
|
|
|
:type 'integer)
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defcustom org-ascii-global-margin 0
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Width of the left margin, in number of characters."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
:group 'org-export-ascii
|
Add :version and :package-version
* ox.el (org-export-snippet-translation-alist)
(org-export-coding-system, org-export-in-background)
(org-export-async-init-file, org-export-invisible-backends)
(org-export-dispatch-use-expert-ui):
* ox-texinfo.el (org-texinfo-filename, org-texinfo-classes)
(org-texinfo-format-headline-function)
(org-texinfo-node-description-column)
(org-texinfo-active-timestamp-format)
(org-texinfo-link-with-unknown-path-format)
(org-texinfo-tables-verbatim)
(org-texinfo-table-scientific-notation)
(org-texinfo-text-markup-alist)
(org-texinfo-format-drawer-function)
(org-texinfo-format-inlinetask-function)
(org-texinfo-info-process):
* ox-man.el (org-man-tables-centered)
(org-man-table-scientific-notation)
(org-man-source-highlight, org-man-source-highlight-langs)
(org-man-pdf-process, org-man-logfiles-extensions):
* ox-html.el (org-html-allow-name-attribute-in-anchors)
(org-html-coding-system, org-html-divs):
* ox-ascii.el (org-ascii-text-width)
(org-ascii-headline-spacing, org-ascii-indented-line-width)
(org-ascii-paragraph-spacing, org-ascii-charset)
(org-ascii-underline, org-ascii-bullets)
(org-ascii-links-to-notes)
(org-ascii-table-keep-all-vertical-lines)
(org-ascii-table-widen-columns)
(org-ascii-table-use-ascii-art)
(org-ascii-format-drawer-function)
(org-ascii-format-inlinetask-function):
* org.el (org-modules, org-export-backends)
(org-highlight-latex-and-related, orgstruct-setup-hook):
* org-attach.el (org-attach-git-annex-cutoff):
* org-archive.el (org-archive-file-header-format):
* org-agenda.el (org-agenda-todo-ignore-time-comparison-use-seconds):
* ob-python.el (org-babel-python-hline-to)
(org-babel-python-None-to):
* ob-ditaa.el (org-ditaa-eps-jar-path):
* ob-core.el (org-babel-results-keyword): Add :version and
:package-version.
* ox-ascii.el: Use utf-8-emacs as the file coding system.
2013-03-05 15:34:16 +00:00
|
|
|
|
:version "24.4"
|
|
|
|
|
:package-version '(Org . "8.0")
|
2012-01-07 13:01:25 +00:00
|
|
|
|
:type 'integer)
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defcustom org-ascii-inner-margin 2
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Width of the inner margin, in number of characters.
|
|
|
|
|
Inner margin is applied between each headline."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
:group 'org-export-ascii
|
Add :version and :package-version
* ox.el (org-export-snippet-translation-alist)
(org-export-coding-system, org-export-in-background)
(org-export-async-init-file, org-export-invisible-backends)
(org-export-dispatch-use-expert-ui):
* ox-texinfo.el (org-texinfo-filename, org-texinfo-classes)
(org-texinfo-format-headline-function)
(org-texinfo-node-description-column)
(org-texinfo-active-timestamp-format)
(org-texinfo-link-with-unknown-path-format)
(org-texinfo-tables-verbatim)
(org-texinfo-table-scientific-notation)
(org-texinfo-text-markup-alist)
(org-texinfo-format-drawer-function)
(org-texinfo-format-inlinetask-function)
(org-texinfo-info-process):
* ox-man.el (org-man-tables-centered)
(org-man-table-scientific-notation)
(org-man-source-highlight, org-man-source-highlight-langs)
(org-man-pdf-process, org-man-logfiles-extensions):
* ox-html.el (org-html-allow-name-attribute-in-anchors)
(org-html-coding-system, org-html-divs):
* ox-ascii.el (org-ascii-text-width)
(org-ascii-headline-spacing, org-ascii-indented-line-width)
(org-ascii-paragraph-spacing, org-ascii-charset)
(org-ascii-underline, org-ascii-bullets)
(org-ascii-links-to-notes)
(org-ascii-table-keep-all-vertical-lines)
(org-ascii-table-widen-columns)
(org-ascii-table-use-ascii-art)
(org-ascii-format-drawer-function)
(org-ascii-format-inlinetask-function):
* org.el (org-modules, org-export-backends)
(org-highlight-latex-and-related, orgstruct-setup-hook):
* org-attach.el (org-attach-git-annex-cutoff):
* org-archive.el (org-archive-file-header-format):
* org-agenda.el (org-agenda-todo-ignore-time-comparison-use-seconds):
* ob-python.el (org-babel-python-hline-to)
(org-babel-python-None-to):
* ob-ditaa.el (org-ditaa-eps-jar-path):
* ob-core.el (org-babel-results-keyword): Add :version and
:package-version.
* ox-ascii.el: Use utf-8-emacs as the file coding system.
2013-03-05 15:34:16 +00:00
|
|
|
|
:version "24.4"
|
|
|
|
|
:package-version '(Org . "8.0")
|
2012-01-07 13:01:25 +00:00
|
|
|
|
:type 'integer)
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defcustom org-ascii-quote-margin 6
|
2012-01-28 12:51:41 +00:00
|
|
|
|
"Width of margin used for quoting text, in characters.
|
2017-11-06 13:27:45 +00:00
|
|
|
|
This margin is applied on both sides of the text. It is also
|
|
|
|
|
applied on the left side of contents in descriptive lists."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
:group 'org-export-ascii
|
Add :version and :package-version
* ox.el (org-export-snippet-translation-alist)
(org-export-coding-system, org-export-in-background)
(org-export-async-init-file, org-export-invisible-backends)
(org-export-dispatch-use-expert-ui):
* ox-texinfo.el (org-texinfo-filename, org-texinfo-classes)
(org-texinfo-format-headline-function)
(org-texinfo-node-description-column)
(org-texinfo-active-timestamp-format)
(org-texinfo-link-with-unknown-path-format)
(org-texinfo-tables-verbatim)
(org-texinfo-table-scientific-notation)
(org-texinfo-text-markup-alist)
(org-texinfo-format-drawer-function)
(org-texinfo-format-inlinetask-function)
(org-texinfo-info-process):
* ox-man.el (org-man-tables-centered)
(org-man-table-scientific-notation)
(org-man-source-highlight, org-man-source-highlight-langs)
(org-man-pdf-process, org-man-logfiles-extensions):
* ox-html.el (org-html-allow-name-attribute-in-anchors)
(org-html-coding-system, org-html-divs):
* ox-ascii.el (org-ascii-text-width)
(org-ascii-headline-spacing, org-ascii-indented-line-width)
(org-ascii-paragraph-spacing, org-ascii-charset)
(org-ascii-underline, org-ascii-bullets)
(org-ascii-links-to-notes)
(org-ascii-table-keep-all-vertical-lines)
(org-ascii-table-widen-columns)
(org-ascii-table-use-ascii-art)
(org-ascii-format-drawer-function)
(org-ascii-format-inlinetask-function):
* org.el (org-modules, org-export-backends)
(org-highlight-latex-and-related, orgstruct-setup-hook):
* org-attach.el (org-attach-git-annex-cutoff):
* org-archive.el (org-archive-file-header-format):
* org-agenda.el (org-agenda-todo-ignore-time-comparison-use-seconds):
* ob-python.el (org-babel-python-hline-to)
(org-babel-python-None-to):
* ob-ditaa.el (org-ditaa-eps-jar-path):
* ob-core.el (org-babel-results-keyword): Add :version and
:package-version.
* ox-ascii.el: Use utf-8-emacs as the file coding system.
2013-03-05 15:34:16 +00:00
|
|
|
|
:version "24.4"
|
|
|
|
|
:package-version '(Org . "8.0")
|
2012-01-28 12:51:41 +00:00
|
|
|
|
:type 'integer)
|
|
|
|
|
|
2014-09-20 12:40:01 +00:00
|
|
|
|
(defcustom org-ascii-list-margin 0
|
|
|
|
|
"Width of margin used for plain lists, in characters.
|
|
|
|
|
This margin applies to top level list only, not to its
|
|
|
|
|
sub-lists."
|
|
|
|
|
:group 'org-export-ascii
|
2017-01-26 04:39:18 +00:00
|
|
|
|
:version "26.1"
|
2014-09-20 12:40:01 +00:00
|
|
|
|
:package-version '(Org . "8.3")
|
|
|
|
|
:type 'integer)
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defcustom org-ascii-inlinetask-width 30
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Width of inline tasks, in number of characters.
|
|
|
|
|
This number ignores any margin."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
:group 'org-export-ascii
|
Add :version and :package-version
* ox.el (org-export-snippet-translation-alist)
(org-export-coding-system, org-export-in-background)
(org-export-async-init-file, org-export-invisible-backends)
(org-export-dispatch-use-expert-ui):
* ox-texinfo.el (org-texinfo-filename, org-texinfo-classes)
(org-texinfo-format-headline-function)
(org-texinfo-node-description-column)
(org-texinfo-active-timestamp-format)
(org-texinfo-link-with-unknown-path-format)
(org-texinfo-tables-verbatim)
(org-texinfo-table-scientific-notation)
(org-texinfo-text-markup-alist)
(org-texinfo-format-drawer-function)
(org-texinfo-format-inlinetask-function)
(org-texinfo-info-process):
* ox-man.el (org-man-tables-centered)
(org-man-table-scientific-notation)
(org-man-source-highlight, org-man-source-highlight-langs)
(org-man-pdf-process, org-man-logfiles-extensions):
* ox-html.el (org-html-allow-name-attribute-in-anchors)
(org-html-coding-system, org-html-divs):
* ox-ascii.el (org-ascii-text-width)
(org-ascii-headline-spacing, org-ascii-indented-line-width)
(org-ascii-paragraph-spacing, org-ascii-charset)
(org-ascii-underline, org-ascii-bullets)
(org-ascii-links-to-notes)
(org-ascii-table-keep-all-vertical-lines)
(org-ascii-table-widen-columns)
(org-ascii-table-use-ascii-art)
(org-ascii-format-drawer-function)
(org-ascii-format-inlinetask-function):
* org.el (org-modules, org-export-backends)
(org-highlight-latex-and-related, orgstruct-setup-hook):
* org-attach.el (org-attach-git-annex-cutoff):
* org-archive.el (org-archive-file-header-format):
* org-agenda.el (org-agenda-todo-ignore-time-comparison-use-seconds):
* ob-python.el (org-babel-python-hline-to)
(org-babel-python-None-to):
* ob-ditaa.el (org-ditaa-eps-jar-path):
* ob-core.el (org-babel-results-keyword): Add :version and
:package-version.
* ox-ascii.el: Use utf-8-emacs as the file coding system.
2013-03-05 15:34:16 +00:00
|
|
|
|
:version "24.4"
|
|
|
|
|
:package-version '(Org . "8.0")
|
2012-01-07 13:01:25 +00:00
|
|
|
|
:type 'integer)
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defcustom org-ascii-headline-spacing '(1 . 2)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"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."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
:group 'org-export-ascii
|
Add :version and :package-version
* ox.el (org-export-snippet-translation-alist)
(org-export-coding-system, org-export-in-background)
(org-export-async-init-file, org-export-invisible-backends)
(org-export-dispatch-use-expert-ui):
* ox-texinfo.el (org-texinfo-filename, org-texinfo-classes)
(org-texinfo-format-headline-function)
(org-texinfo-node-description-column)
(org-texinfo-active-timestamp-format)
(org-texinfo-link-with-unknown-path-format)
(org-texinfo-tables-verbatim)
(org-texinfo-table-scientific-notation)
(org-texinfo-text-markup-alist)
(org-texinfo-format-drawer-function)
(org-texinfo-format-inlinetask-function)
(org-texinfo-info-process):
* ox-man.el (org-man-tables-centered)
(org-man-table-scientific-notation)
(org-man-source-highlight, org-man-source-highlight-langs)
(org-man-pdf-process, org-man-logfiles-extensions):
* ox-html.el (org-html-allow-name-attribute-in-anchors)
(org-html-coding-system, org-html-divs):
* ox-ascii.el (org-ascii-text-width)
(org-ascii-headline-spacing, org-ascii-indented-line-width)
(org-ascii-paragraph-spacing, org-ascii-charset)
(org-ascii-underline, org-ascii-bullets)
(org-ascii-links-to-notes)
(org-ascii-table-keep-all-vertical-lines)
(org-ascii-table-widen-columns)
(org-ascii-table-use-ascii-art)
(org-ascii-format-drawer-function)
(org-ascii-format-inlinetask-function):
* org.el (org-modules, org-export-backends)
(org-highlight-latex-and-related, orgstruct-setup-hook):
* org-attach.el (org-attach-git-annex-cutoff):
* org-archive.el (org-archive-file-header-format):
* org-agenda.el (org-agenda-todo-ignore-time-comparison-use-seconds):
* ob-python.el (org-babel-python-hline-to)
(org-babel-python-None-to):
* ob-ditaa.el (org-ditaa-eps-jar-path):
* ob-core.el (org-babel-results-keyword): Add :version and
:package-version.
* ox-ascii.el: Use utf-8-emacs as the file coding system.
2013-03-05 15:34:16 +00:00
|
|
|
|
:version "24.4"
|
|
|
|
|
:package-version '(Org . "8.0")
|
2012-01-07 13:01:25 +00:00
|
|
|
|
:type '(choice
|
|
|
|
|
(const :tag "Replicate original spacing" nil)
|
2014-12-10 00:26:46 +00:00
|
|
|
|
(cons :tag "Set a uniform spacing"
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(integer :tag "Number of blank lines before contents")
|
|
|
|
|
(integer :tag "Number of blank lines after contents"))))
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defcustom org-ascii-indented-line-width 'auto
|
2012-09-27 12:53:32 +00:00
|
|
|
|
"Additional indentation width for the first line in a paragraph.
|
|
|
|
|
If the value is an integer, indent the first line of each
|
2014-05-17 08:00:41 +00:00
|
|
|
|
paragraph by this width, unless it is located at the beginning of
|
|
|
|
|
a section, in which case indentation is removed from that line.
|
|
|
|
|
If it is the symbol `auto' preserve indentation from original
|
|
|
|
|
document."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
:group 'org-export-ascii
|
Add :version and :package-version
* ox.el (org-export-snippet-translation-alist)
(org-export-coding-system, org-export-in-background)
(org-export-async-init-file, org-export-invisible-backends)
(org-export-dispatch-use-expert-ui):
* ox-texinfo.el (org-texinfo-filename, org-texinfo-classes)
(org-texinfo-format-headline-function)
(org-texinfo-node-description-column)
(org-texinfo-active-timestamp-format)
(org-texinfo-link-with-unknown-path-format)
(org-texinfo-tables-verbatim)
(org-texinfo-table-scientific-notation)
(org-texinfo-text-markup-alist)
(org-texinfo-format-drawer-function)
(org-texinfo-format-inlinetask-function)
(org-texinfo-info-process):
* ox-man.el (org-man-tables-centered)
(org-man-table-scientific-notation)
(org-man-source-highlight, org-man-source-highlight-langs)
(org-man-pdf-process, org-man-logfiles-extensions):
* ox-html.el (org-html-allow-name-attribute-in-anchors)
(org-html-coding-system, org-html-divs):
* ox-ascii.el (org-ascii-text-width)
(org-ascii-headline-spacing, org-ascii-indented-line-width)
(org-ascii-paragraph-spacing, org-ascii-charset)
(org-ascii-underline, org-ascii-bullets)
(org-ascii-links-to-notes)
(org-ascii-table-keep-all-vertical-lines)
(org-ascii-table-widen-columns)
(org-ascii-table-use-ascii-art)
(org-ascii-format-drawer-function)
(org-ascii-format-inlinetask-function):
* org.el (org-modules, org-export-backends)
(org-highlight-latex-and-related, orgstruct-setup-hook):
* org-attach.el (org-attach-git-annex-cutoff):
* org-archive.el (org-archive-file-header-format):
* org-agenda.el (org-agenda-todo-ignore-time-comparison-use-seconds):
* ob-python.el (org-babel-python-hline-to)
(org-babel-python-None-to):
* ob-ditaa.el (org-ditaa-eps-jar-path):
* ob-core.el (org-babel-results-keyword): Add :version and
:package-version.
* ox-ascii.el: Use utf-8-emacs as the file coding system.
2013-03-05 15:34:16 +00:00
|
|
|
|
:version "24.4"
|
|
|
|
|
:package-version '(Org . "8.0")
|
2012-09-27 12:53:32 +00:00
|
|
|
|
:type '(choice
|
|
|
|
|
(integer :tag "Number of white spaces characters")
|
|
|
|
|
(const :tag "Preserve original width" auto)))
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defcustom org-ascii-paragraph-spacing 'auto
|
2012-09-27 12:53:32 +00:00
|
|
|
|
"Number of white lines between paragraphs.
|
|
|
|
|
If the value is an integer, add this number of blank lines
|
|
|
|
|
between contiguous paragraphs. If is it the symbol `auto', keep
|
|
|
|
|
the same number of blank lines as in the original document."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
:group 'org-export-ascii
|
Add :version and :package-version
* ox.el (org-export-snippet-translation-alist)
(org-export-coding-system, org-export-in-background)
(org-export-async-init-file, org-export-invisible-backends)
(org-export-dispatch-use-expert-ui):
* ox-texinfo.el (org-texinfo-filename, org-texinfo-classes)
(org-texinfo-format-headline-function)
(org-texinfo-node-description-column)
(org-texinfo-active-timestamp-format)
(org-texinfo-link-with-unknown-path-format)
(org-texinfo-tables-verbatim)
(org-texinfo-table-scientific-notation)
(org-texinfo-text-markup-alist)
(org-texinfo-format-drawer-function)
(org-texinfo-format-inlinetask-function)
(org-texinfo-info-process):
* ox-man.el (org-man-tables-centered)
(org-man-table-scientific-notation)
(org-man-source-highlight, org-man-source-highlight-langs)
(org-man-pdf-process, org-man-logfiles-extensions):
* ox-html.el (org-html-allow-name-attribute-in-anchors)
(org-html-coding-system, org-html-divs):
* ox-ascii.el (org-ascii-text-width)
(org-ascii-headline-spacing, org-ascii-indented-line-width)
(org-ascii-paragraph-spacing, org-ascii-charset)
(org-ascii-underline, org-ascii-bullets)
(org-ascii-links-to-notes)
(org-ascii-table-keep-all-vertical-lines)
(org-ascii-table-widen-columns)
(org-ascii-table-use-ascii-art)
(org-ascii-format-drawer-function)
(org-ascii-format-inlinetask-function):
* org.el (org-modules, org-export-backends)
(org-highlight-latex-and-related, orgstruct-setup-hook):
* org-attach.el (org-attach-git-annex-cutoff):
* org-archive.el (org-archive-file-header-format):
* org-agenda.el (org-agenda-todo-ignore-time-comparison-use-seconds):
* ob-python.el (org-babel-python-hline-to)
(org-babel-python-None-to):
* ob-ditaa.el (org-ditaa-eps-jar-path):
* ob-core.el (org-babel-results-keyword): Add :version and
:package-version.
* ox-ascii.el: Use utf-8-emacs as the file coding system.
2013-03-05 15:34:16 +00:00
|
|
|
|
:version "24.4"
|
|
|
|
|
:package-version '(Org . "8.0")
|
2012-09-27 12:53:32 +00:00
|
|
|
|
:type '(choice
|
|
|
|
|
(integer :tag "Number of blank lines")
|
|
|
|
|
(const :tag "Preserve original spacing" auto)))
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defcustom org-ascii-charset 'ascii
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"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"
|
2013-01-27 22:11:34 +00:00
|
|
|
|
:group 'org-export-ascii
|
Add :version and :package-version
* ox.el (org-export-snippet-translation-alist)
(org-export-coding-system, org-export-in-background)
(org-export-async-init-file, org-export-invisible-backends)
(org-export-dispatch-use-expert-ui):
* ox-texinfo.el (org-texinfo-filename, org-texinfo-classes)
(org-texinfo-format-headline-function)
(org-texinfo-node-description-column)
(org-texinfo-active-timestamp-format)
(org-texinfo-link-with-unknown-path-format)
(org-texinfo-tables-verbatim)
(org-texinfo-table-scientific-notation)
(org-texinfo-text-markup-alist)
(org-texinfo-format-drawer-function)
(org-texinfo-format-inlinetask-function)
(org-texinfo-info-process):
* ox-man.el (org-man-tables-centered)
(org-man-table-scientific-notation)
(org-man-source-highlight, org-man-source-highlight-langs)
(org-man-pdf-process, org-man-logfiles-extensions):
* ox-html.el (org-html-allow-name-attribute-in-anchors)
(org-html-coding-system, org-html-divs):
* ox-ascii.el (org-ascii-text-width)
(org-ascii-headline-spacing, org-ascii-indented-line-width)
(org-ascii-paragraph-spacing, org-ascii-charset)
(org-ascii-underline, org-ascii-bullets)
(org-ascii-links-to-notes)
(org-ascii-table-keep-all-vertical-lines)
(org-ascii-table-widen-columns)
(org-ascii-table-use-ascii-art)
(org-ascii-format-drawer-function)
(org-ascii-format-inlinetask-function):
* org.el (org-modules, org-export-backends)
(org-highlight-latex-and-related, orgstruct-setup-hook):
* org-attach.el (org-attach-git-annex-cutoff):
* org-archive.el (org-archive-file-header-format):
* org-agenda.el (org-agenda-todo-ignore-time-comparison-use-seconds):
* ob-python.el (org-babel-python-hline-to)
(org-babel-python-None-to):
* ob-ditaa.el (org-ditaa-eps-jar-path):
* ob-core.el (org-babel-results-keyword): Add :version and
:package-version.
* ox-ascii.el: Use utf-8-emacs as the file coding system.
2013-03-05 15:34:16 +00:00
|
|
|
|
:version "24.4"
|
|
|
|
|
:package-version '(Org . "8.0")
|
2012-01-07 13:01:25 +00:00
|
|
|
|
:type '(choice
|
|
|
|
|
(const :tag "ASCII" ascii)
|
|
|
|
|
(const :tag "Latin-1" latin1)
|
|
|
|
|
(const :tag "UTF-8" utf-8)))
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defcustom org-ascii-underline '((ascii ?= ?~ ?-)
|
2013-03-19 15:24:40 +00:00
|
|
|
|
(latin1 ?= ?~ ?-)
|
|
|
|
|
(utf-8 ?═ ?─ ?╌ ?┄ ?┈))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"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."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
:group 'org-export-ascii
|
Add :version and :package-version
* ox.el (org-export-snippet-translation-alist)
(org-export-coding-system, org-export-in-background)
(org-export-async-init-file, org-export-invisible-backends)
(org-export-dispatch-use-expert-ui):
* ox-texinfo.el (org-texinfo-filename, org-texinfo-classes)
(org-texinfo-format-headline-function)
(org-texinfo-node-description-column)
(org-texinfo-active-timestamp-format)
(org-texinfo-link-with-unknown-path-format)
(org-texinfo-tables-verbatim)
(org-texinfo-table-scientific-notation)
(org-texinfo-text-markup-alist)
(org-texinfo-format-drawer-function)
(org-texinfo-format-inlinetask-function)
(org-texinfo-info-process):
* ox-man.el (org-man-tables-centered)
(org-man-table-scientific-notation)
(org-man-source-highlight, org-man-source-highlight-langs)
(org-man-pdf-process, org-man-logfiles-extensions):
* ox-html.el (org-html-allow-name-attribute-in-anchors)
(org-html-coding-system, org-html-divs):
* ox-ascii.el (org-ascii-text-width)
(org-ascii-headline-spacing, org-ascii-indented-line-width)
(org-ascii-paragraph-spacing, org-ascii-charset)
(org-ascii-underline, org-ascii-bullets)
(org-ascii-links-to-notes)
(org-ascii-table-keep-all-vertical-lines)
(org-ascii-table-widen-columns)
(org-ascii-table-use-ascii-art)
(org-ascii-format-drawer-function)
(org-ascii-format-inlinetask-function):
* org.el (org-modules, org-export-backends)
(org-highlight-latex-and-related, orgstruct-setup-hook):
* org-attach.el (org-attach-git-annex-cutoff):
* org-archive.el (org-archive-file-header-format):
* org-agenda.el (org-agenda-todo-ignore-time-comparison-use-seconds):
* ob-python.el (org-babel-python-hline-to)
(org-babel-python-None-to):
* ob-ditaa.el (org-ditaa-eps-jar-path):
* ob-core.el (org-babel-results-keyword): Add :version and
:package-version.
* ox-ascii.el: Use utf-8-emacs as the file coding system.
2013-03-05 15:34:16 +00:00
|
|
|
|
:version "24.4"
|
|
|
|
|
:package-version '(Org . "8.0")
|
2012-01-07 13:01:25 +00:00
|
|
|
|
: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))))
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defcustom org-ascii-bullets '((ascii ?* ?+ ?-)
|
|
|
|
|
(latin1 ?§ ?¶)
|
|
|
|
|
(utf-8 ?◊))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"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."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
:group 'org-export-ascii
|
Add :version and :package-version
* ox.el (org-export-snippet-translation-alist)
(org-export-coding-system, org-export-in-background)
(org-export-async-init-file, org-export-invisible-backends)
(org-export-dispatch-use-expert-ui):
* ox-texinfo.el (org-texinfo-filename, org-texinfo-classes)
(org-texinfo-format-headline-function)
(org-texinfo-node-description-column)
(org-texinfo-active-timestamp-format)
(org-texinfo-link-with-unknown-path-format)
(org-texinfo-tables-verbatim)
(org-texinfo-table-scientific-notation)
(org-texinfo-text-markup-alist)
(org-texinfo-format-drawer-function)
(org-texinfo-format-inlinetask-function)
(org-texinfo-info-process):
* ox-man.el (org-man-tables-centered)
(org-man-table-scientific-notation)
(org-man-source-highlight, org-man-source-highlight-langs)
(org-man-pdf-process, org-man-logfiles-extensions):
* ox-html.el (org-html-allow-name-attribute-in-anchors)
(org-html-coding-system, org-html-divs):
* ox-ascii.el (org-ascii-text-width)
(org-ascii-headline-spacing, org-ascii-indented-line-width)
(org-ascii-paragraph-spacing, org-ascii-charset)
(org-ascii-underline, org-ascii-bullets)
(org-ascii-links-to-notes)
(org-ascii-table-keep-all-vertical-lines)
(org-ascii-table-widen-columns)
(org-ascii-table-use-ascii-art)
(org-ascii-format-drawer-function)
(org-ascii-format-inlinetask-function):
* org.el (org-modules, org-export-backends)
(org-highlight-latex-and-related, orgstruct-setup-hook):
* org-attach.el (org-attach-git-annex-cutoff):
* org-archive.el (org-archive-file-header-format):
* org-agenda.el (org-agenda-todo-ignore-time-comparison-use-seconds):
* ob-python.el (org-babel-python-hline-to)
(org-babel-python-None-to):
* ob-ditaa.el (org-ditaa-eps-jar-path):
* ob-core.el (org-babel-results-keyword): Add :version and
:package-version.
* ox-ascii.el: Use utf-8-emacs as the file coding system.
2013-03-05 15:34:16 +00:00
|
|
|
|
:version "24.4"
|
|
|
|
|
:package-version '(Org . "8.0")
|
2012-01-07 13:01:25 +00:00
|
|
|
|
: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))))
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defcustom org-ascii-links-to-notes t
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"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."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
:group 'org-export-ascii
|
Add :version and :package-version
* ox.el (org-export-snippet-translation-alist)
(org-export-coding-system, org-export-in-background)
(org-export-async-init-file, org-export-invisible-backends)
(org-export-dispatch-use-expert-ui):
* ox-texinfo.el (org-texinfo-filename, org-texinfo-classes)
(org-texinfo-format-headline-function)
(org-texinfo-node-description-column)
(org-texinfo-active-timestamp-format)
(org-texinfo-link-with-unknown-path-format)
(org-texinfo-tables-verbatim)
(org-texinfo-table-scientific-notation)
(org-texinfo-text-markup-alist)
(org-texinfo-format-drawer-function)
(org-texinfo-format-inlinetask-function)
(org-texinfo-info-process):
* ox-man.el (org-man-tables-centered)
(org-man-table-scientific-notation)
(org-man-source-highlight, org-man-source-highlight-langs)
(org-man-pdf-process, org-man-logfiles-extensions):
* ox-html.el (org-html-allow-name-attribute-in-anchors)
(org-html-coding-system, org-html-divs):
* ox-ascii.el (org-ascii-text-width)
(org-ascii-headline-spacing, org-ascii-indented-line-width)
(org-ascii-paragraph-spacing, org-ascii-charset)
(org-ascii-underline, org-ascii-bullets)
(org-ascii-links-to-notes)
(org-ascii-table-keep-all-vertical-lines)
(org-ascii-table-widen-columns)
(org-ascii-table-use-ascii-art)
(org-ascii-format-drawer-function)
(org-ascii-format-inlinetask-function):
* org.el (org-modules, org-export-backends)
(org-highlight-latex-and-related, orgstruct-setup-hook):
* org-attach.el (org-attach-git-annex-cutoff):
* org-archive.el (org-archive-file-header-format):
* org-agenda.el (org-agenda-todo-ignore-time-comparison-use-seconds):
* ob-python.el (org-babel-python-hline-to)
(org-babel-python-None-to):
* ob-ditaa.el (org-ditaa-eps-jar-path):
* ob-core.el (org-babel-results-keyword): Add :version and
:package-version.
* ox-ascii.el: Use utf-8-emacs as the file coding system.
2013-03-05 15:34:16 +00:00
|
|
|
|
:version "24.4"
|
|
|
|
|
:package-version '(Org . "8.0")
|
2012-01-07 13:01:25 +00:00
|
|
|
|
:type 'boolean)
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defcustom org-ascii-table-keep-all-vertical-lines nil
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Non-nil means keep all vertical lines in ASCII tables.
|
|
|
|
|
When nil, vertical lines will be removed except for those needed
|
|
|
|
|
for column grouping."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
:group 'org-export-ascii
|
Add :version and :package-version
* ox.el (org-export-snippet-translation-alist)
(org-export-coding-system, org-export-in-background)
(org-export-async-init-file, org-export-invisible-backends)
(org-export-dispatch-use-expert-ui):
* ox-texinfo.el (org-texinfo-filename, org-texinfo-classes)
(org-texinfo-format-headline-function)
(org-texinfo-node-description-column)
(org-texinfo-active-timestamp-format)
(org-texinfo-link-with-unknown-path-format)
(org-texinfo-tables-verbatim)
(org-texinfo-table-scientific-notation)
(org-texinfo-text-markup-alist)
(org-texinfo-format-drawer-function)
(org-texinfo-format-inlinetask-function)
(org-texinfo-info-process):
* ox-man.el (org-man-tables-centered)
(org-man-table-scientific-notation)
(org-man-source-highlight, org-man-source-highlight-langs)
(org-man-pdf-process, org-man-logfiles-extensions):
* ox-html.el (org-html-allow-name-attribute-in-anchors)
(org-html-coding-system, org-html-divs):
* ox-ascii.el (org-ascii-text-width)
(org-ascii-headline-spacing, org-ascii-indented-line-width)
(org-ascii-paragraph-spacing, org-ascii-charset)
(org-ascii-underline, org-ascii-bullets)
(org-ascii-links-to-notes)
(org-ascii-table-keep-all-vertical-lines)
(org-ascii-table-widen-columns)
(org-ascii-table-use-ascii-art)
(org-ascii-format-drawer-function)
(org-ascii-format-inlinetask-function):
* org.el (org-modules, org-export-backends)
(org-highlight-latex-and-related, orgstruct-setup-hook):
* org-attach.el (org-attach-git-annex-cutoff):
* org-archive.el (org-archive-file-header-format):
* org-agenda.el (org-agenda-todo-ignore-time-comparison-use-seconds):
* ob-python.el (org-babel-python-hline-to)
(org-babel-python-None-to):
* ob-ditaa.el (org-ditaa-eps-jar-path):
* ob-core.el (org-babel-results-keyword): Add :version and
:package-version.
* ox-ascii.el: Use utf-8-emacs as the file coding system.
2013-03-05 15:34:16 +00:00
|
|
|
|
:version "24.4"
|
|
|
|
|
:package-version '(Org . "8.0")
|
2012-01-07 13:01:25 +00:00
|
|
|
|
:type 'boolean)
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defcustom org-ascii-table-widen-columns t
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"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."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
:group 'org-export-ascii
|
Add :version and :package-version
* ox.el (org-export-snippet-translation-alist)
(org-export-coding-system, org-export-in-background)
(org-export-async-init-file, org-export-invisible-backends)
(org-export-dispatch-use-expert-ui):
* ox-texinfo.el (org-texinfo-filename, org-texinfo-classes)
(org-texinfo-format-headline-function)
(org-texinfo-node-description-column)
(org-texinfo-active-timestamp-format)
(org-texinfo-link-with-unknown-path-format)
(org-texinfo-tables-verbatim)
(org-texinfo-table-scientific-notation)
(org-texinfo-text-markup-alist)
(org-texinfo-format-drawer-function)
(org-texinfo-format-inlinetask-function)
(org-texinfo-info-process):
* ox-man.el (org-man-tables-centered)
(org-man-table-scientific-notation)
(org-man-source-highlight, org-man-source-highlight-langs)
(org-man-pdf-process, org-man-logfiles-extensions):
* ox-html.el (org-html-allow-name-attribute-in-anchors)
(org-html-coding-system, org-html-divs):
* ox-ascii.el (org-ascii-text-width)
(org-ascii-headline-spacing, org-ascii-indented-line-width)
(org-ascii-paragraph-spacing, org-ascii-charset)
(org-ascii-underline, org-ascii-bullets)
(org-ascii-links-to-notes)
(org-ascii-table-keep-all-vertical-lines)
(org-ascii-table-widen-columns)
(org-ascii-table-use-ascii-art)
(org-ascii-format-drawer-function)
(org-ascii-format-inlinetask-function):
* org.el (org-modules, org-export-backends)
(org-highlight-latex-and-related, orgstruct-setup-hook):
* org-attach.el (org-attach-git-annex-cutoff):
* org-archive.el (org-archive-file-header-format):
* org-agenda.el (org-agenda-todo-ignore-time-comparison-use-seconds):
* ob-python.el (org-babel-python-hline-to)
(org-babel-python-None-to):
* ob-ditaa.el (org-ditaa-eps-jar-path):
* ob-core.el (org-babel-results-keyword): Add :version and
:package-version.
* ox-ascii.el: Use utf-8-emacs as the file coding system.
2013-03-05 15:34:16 +00:00
|
|
|
|
:version "24.4"
|
|
|
|
|
:package-version '(Org . "8.0")
|
2012-01-07 13:01:25 +00:00
|
|
|
|
:type 'boolean)
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defcustom org-ascii-table-use-ascii-art nil
|
2017-07-27 11:45:32 +00:00
|
|
|
|
"Non-nil means \"table.el\" tables are turned into ASCII art.
|
2012-07-31 14:30:44 +00:00
|
|
|
|
It only makes sense when export charset is `utf-8'. It is nil by
|
2017-07-27 11:45:32 +00:00
|
|
|
|
default since it requires \"ascii-art-to-unicode.el\" package,
|
|
|
|
|
available through, e.g., GNU ELPA."
|
Add :version and :package-version
* ox.el (org-export-snippet-translation-alist)
(org-export-coding-system, org-export-in-background)
(org-export-async-init-file, org-export-invisible-backends)
(org-export-dispatch-use-expert-ui):
* ox-texinfo.el (org-texinfo-filename, org-texinfo-classes)
(org-texinfo-format-headline-function)
(org-texinfo-node-description-column)
(org-texinfo-active-timestamp-format)
(org-texinfo-link-with-unknown-path-format)
(org-texinfo-tables-verbatim)
(org-texinfo-table-scientific-notation)
(org-texinfo-text-markup-alist)
(org-texinfo-format-drawer-function)
(org-texinfo-format-inlinetask-function)
(org-texinfo-info-process):
* ox-man.el (org-man-tables-centered)
(org-man-table-scientific-notation)
(org-man-source-highlight, org-man-source-highlight-langs)
(org-man-pdf-process, org-man-logfiles-extensions):
* ox-html.el (org-html-allow-name-attribute-in-anchors)
(org-html-coding-system, org-html-divs):
* ox-ascii.el (org-ascii-text-width)
(org-ascii-headline-spacing, org-ascii-indented-line-width)
(org-ascii-paragraph-spacing, org-ascii-charset)
(org-ascii-underline, org-ascii-bullets)
(org-ascii-links-to-notes)
(org-ascii-table-keep-all-vertical-lines)
(org-ascii-table-widen-columns)
(org-ascii-table-use-ascii-art)
(org-ascii-format-drawer-function)
(org-ascii-format-inlinetask-function):
* org.el (org-modules, org-export-backends)
(org-highlight-latex-and-related, orgstruct-setup-hook):
* org-attach.el (org-attach-git-annex-cutoff):
* org-archive.el (org-archive-file-header-format):
* org-agenda.el (org-agenda-todo-ignore-time-comparison-use-seconds):
* ob-python.el (org-babel-python-hline-to)
(org-babel-python-None-to):
* ob-ditaa.el (org-ditaa-eps-jar-path):
* ob-core.el (org-babel-results-keyword): Add :version and
:package-version.
* ox-ascii.el: Use utf-8-emacs as the file coding system.
2013-03-05 15:34:16 +00:00
|
|
|
|
:group 'org-export-ascii
|
|
|
|
|
:version "24.4"
|
|
|
|
|
:package-version '(Org . "8.0")
|
|
|
|
|
:type 'boolean)
|
2012-07-31 14:30:44 +00:00
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defcustom org-ascii-caption-above nil
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"When non-nil, place caption string before the element.
|
|
|
|
|
Otherwise, place it right after it."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
:group 'org-export-ascii
|
Add :version and :package-version
* ox.el (org-export-snippet-translation-alist)
(org-export-coding-system, org-export-in-background)
(org-export-async-init-file, org-export-invisible-backends)
(org-export-dispatch-use-expert-ui):
* ox-texinfo.el (org-texinfo-filename, org-texinfo-classes)
(org-texinfo-format-headline-function)
(org-texinfo-node-description-column)
(org-texinfo-active-timestamp-format)
(org-texinfo-link-with-unknown-path-format)
(org-texinfo-tables-verbatim)
(org-texinfo-table-scientific-notation)
(org-texinfo-text-markup-alist)
(org-texinfo-format-drawer-function)
(org-texinfo-format-inlinetask-function)
(org-texinfo-info-process):
* ox-man.el (org-man-tables-centered)
(org-man-table-scientific-notation)
(org-man-source-highlight, org-man-source-highlight-langs)
(org-man-pdf-process, org-man-logfiles-extensions):
* ox-html.el (org-html-allow-name-attribute-in-anchors)
(org-html-coding-system, org-html-divs):
* ox-ascii.el (org-ascii-text-width)
(org-ascii-headline-spacing, org-ascii-indented-line-width)
(org-ascii-paragraph-spacing, org-ascii-charset)
(org-ascii-underline, org-ascii-bullets)
(org-ascii-links-to-notes)
(org-ascii-table-keep-all-vertical-lines)
(org-ascii-table-widen-columns)
(org-ascii-table-use-ascii-art)
(org-ascii-format-drawer-function)
(org-ascii-format-inlinetask-function):
* org.el (org-modules, org-export-backends)
(org-highlight-latex-and-related, orgstruct-setup-hook):
* org-attach.el (org-attach-git-annex-cutoff):
* org-archive.el (org-archive-file-header-format):
* org-agenda.el (org-agenda-todo-ignore-time-comparison-use-seconds):
* ob-python.el (org-babel-python-hline-to)
(org-babel-python-None-to):
* ob-ditaa.el (org-ditaa-eps-jar-path):
* ob-core.el (org-babel-results-keyword): Add :version and
:package-version.
* ox-ascii.el: Use utf-8-emacs as the file coding system.
2013-03-05 15:34:16 +00:00
|
|
|
|
:version "24.4"
|
|
|
|
|
:package-version '(Org . "8.0")
|
2012-01-07 13:01:25 +00:00
|
|
|
|
:type 'boolean)
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defcustom org-ascii-verbatim-format "`%s'"
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Format string used for verbatim text and inline code."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
:group 'org-export-ascii
|
Add :version and :package-version
* ox.el (org-export-snippet-translation-alist)
(org-export-coding-system, org-export-in-background)
(org-export-async-init-file, org-export-invisible-backends)
(org-export-dispatch-use-expert-ui):
* ox-texinfo.el (org-texinfo-filename, org-texinfo-classes)
(org-texinfo-format-headline-function)
(org-texinfo-node-description-column)
(org-texinfo-active-timestamp-format)
(org-texinfo-link-with-unknown-path-format)
(org-texinfo-tables-verbatim)
(org-texinfo-table-scientific-notation)
(org-texinfo-text-markup-alist)
(org-texinfo-format-drawer-function)
(org-texinfo-format-inlinetask-function)
(org-texinfo-info-process):
* ox-man.el (org-man-tables-centered)
(org-man-table-scientific-notation)
(org-man-source-highlight, org-man-source-highlight-langs)
(org-man-pdf-process, org-man-logfiles-extensions):
* ox-html.el (org-html-allow-name-attribute-in-anchors)
(org-html-coding-system, org-html-divs):
* ox-ascii.el (org-ascii-text-width)
(org-ascii-headline-spacing, org-ascii-indented-line-width)
(org-ascii-paragraph-spacing, org-ascii-charset)
(org-ascii-underline, org-ascii-bullets)
(org-ascii-links-to-notes)
(org-ascii-table-keep-all-vertical-lines)
(org-ascii-table-widen-columns)
(org-ascii-table-use-ascii-art)
(org-ascii-format-drawer-function)
(org-ascii-format-inlinetask-function):
* org.el (org-modules, org-export-backends)
(org-highlight-latex-and-related, orgstruct-setup-hook):
* org-attach.el (org-attach-git-annex-cutoff):
* org-archive.el (org-archive-file-header-format):
* org-agenda.el (org-agenda-todo-ignore-time-comparison-use-seconds):
* ob-python.el (org-babel-python-hline-to)
(org-babel-python-None-to):
* ob-ditaa.el (org-ditaa-eps-jar-path):
* ob-core.el (org-babel-results-keyword): Add :version and
:package-version.
* ox-ascii.el: Use utf-8-emacs as the file coding system.
2013-03-05 15:34:16 +00:00
|
|
|
|
:version "24.4"
|
|
|
|
|
:package-version '(Org . "8.0")
|
2012-01-07 13:01:25 +00:00
|
|
|
|
:type 'string)
|
|
|
|
|
|
2013-11-14 13:05:18 +00:00
|
|
|
|
(defcustom org-ascii-format-drawer-function
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(lambda (_name contents _width) contents)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Function called to format a drawer in ASCII.
|
|
|
|
|
|
2012-11-05 14:44:46 +00:00
|
|
|
|
The function must accept three parameters:
|
2012-01-07 13:01:25 +00:00
|
|
|
|
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.
|
|
|
|
|
|
2013-11-14 13:05:18 +00:00
|
|
|
|
The default value simply returns the value of CONTENTS."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
:group 'org-export-ascii
|
Add :version and :package-version
* ox.el (org-export-snippet-translation-alist)
(org-export-coding-system, org-export-in-background)
(org-export-async-init-file, org-export-invisible-backends)
(org-export-dispatch-use-expert-ui):
* ox-texinfo.el (org-texinfo-filename, org-texinfo-classes)
(org-texinfo-format-headline-function)
(org-texinfo-node-description-column)
(org-texinfo-active-timestamp-format)
(org-texinfo-link-with-unknown-path-format)
(org-texinfo-tables-verbatim)
(org-texinfo-table-scientific-notation)
(org-texinfo-text-markup-alist)
(org-texinfo-format-drawer-function)
(org-texinfo-format-inlinetask-function)
(org-texinfo-info-process):
* ox-man.el (org-man-tables-centered)
(org-man-table-scientific-notation)
(org-man-source-highlight, org-man-source-highlight-langs)
(org-man-pdf-process, org-man-logfiles-extensions):
* ox-html.el (org-html-allow-name-attribute-in-anchors)
(org-html-coding-system, org-html-divs):
* ox-ascii.el (org-ascii-text-width)
(org-ascii-headline-spacing, org-ascii-indented-line-width)
(org-ascii-paragraph-spacing, org-ascii-charset)
(org-ascii-underline, org-ascii-bullets)
(org-ascii-links-to-notes)
(org-ascii-table-keep-all-vertical-lines)
(org-ascii-table-widen-columns)
(org-ascii-table-use-ascii-art)
(org-ascii-format-drawer-function)
(org-ascii-format-inlinetask-function):
* org.el (org-modules, org-export-backends)
(org-highlight-latex-and-related, orgstruct-setup-hook):
* org-attach.el (org-attach-git-annex-cutoff):
* org-archive.el (org-archive-file-header-format):
* org-agenda.el (org-agenda-todo-ignore-time-comparison-use-seconds):
* ob-python.el (org-babel-python-hline-to)
(org-babel-python-None-to):
* ob-ditaa.el (org-ditaa-eps-jar-path):
* ob-core.el (org-babel-results-keyword): Add :version and
:package-version.
* ox-ascii.el: Use utf-8-emacs as the file coding system.
2013-03-05 15:34:16 +00:00
|
|
|
|
:version "24.4"
|
|
|
|
|
:package-version '(Org . "8.0")
|
2012-01-07 13:01:25 +00:00
|
|
|
|
:type 'function)
|
|
|
|
|
|
2013-11-14 13:05:18 +00:00
|
|
|
|
(defcustom org-ascii-format-inlinetask-function
|
|
|
|
|
'org-ascii-format-inlinetask-default
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Function called to format an inlinetask in ASCII.
|
|
|
|
|
|
2013-11-14 13:05:18 +00:00
|
|
|
|
The function must accept nine 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.
|
|
|
|
|
TAGS the inlinetask tags, as a list of strings.
|
|
|
|
|
CONTENTS the contents of the inlinetask, as a string.
|
|
|
|
|
WIDTH the width of the inlinetask, as a number.
|
|
|
|
|
INLINETASK the inlinetask itself.
|
|
|
|
|
INFO the info channel.
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
The function should return either the string to be exported or
|
2013-11-14 13:05:18 +00:00
|
|
|
|
nil to ignore the inline task."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
:group 'org-export-ascii
|
2017-09-07 20:56:11 +00:00
|
|
|
|
:version "26.1"
|
2013-11-14 13:05:18 +00:00
|
|
|
|
:package-version '(Org . "8.3")
|
2012-01-07 13:01:25 +00:00
|
|
|
|
:type 'function)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;; Internal Functions
|
|
|
|
|
|
|
|
|
|
;; Internal functions fall into three categories.
|
|
|
|
|
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
;; The first one is about text formatting. The core functions are
|
|
|
|
|
;; `org-ascii--current-text-width' and
|
|
|
|
|
;; `org-ascii--current-justification', which determine, respectively,
|
|
|
|
|
;; the current text width allowed to a given element and its expected
|
|
|
|
|
;; justification. Once this information is known,
|
|
|
|
|
;; `org-ascii--fill-string', `org-ascii--justify-lines',
|
|
|
|
|
;; `org-ascii--justify-element' `org-ascii--box-string' and
|
|
|
|
|
;; `org-ascii--indent-string' can operate on a given output string.
|
|
|
|
|
;; In particular, justification happens at the regular (i.e.,
|
|
|
|
|
;; non-greater) element level, which means that when the exporting
|
|
|
|
|
;; process reaches a container (e.g., a center block) content are
|
|
|
|
|
;; already justified.
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
;; The second category contains functions handling elements listings,
|
2013-01-27 22:11:34 +00:00
|
|
|
|
;; triggered by "#+TOC:" keyword. As such, `org-ascii--build-toc'
|
|
|
|
|
;; returns a complete table of contents, `org-ascii--list-listings'
|
2012-01-07 13:01:25 +00:00
|
|
|
|
;; returns a list of referenceable src-block elements, and
|
2013-01-27 22:11:34 +00:00
|
|
|
|
;; `org-ascii--list-tables' does the same for table elements.
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
;; The third category includes general helper functions.
|
2013-01-27 22:11:34 +00:00
|
|
|
|
;; `org-ascii--build-title' creates the title for a given headline
|
|
|
|
|
;; or inlinetask element. `org-ascii--build-caption' returns the
|
2012-01-07 13:01:25 +00:00
|
|
|
|
;; caption string associated to a table or a src-block.
|
2013-01-27 22:11:34 +00:00
|
|
|
|
;; `org-ascii--describe-links' creates notes about links for
|
2012-01-07 13:01:25 +00:00
|
|
|
|
;; insertion at the end of a section. It uses
|
2013-01-27 22:11:34 +00:00
|
|
|
|
;; `org-ascii--unique-links' to get the list of links to describe.
|
|
|
|
|
;; Eventually, `org-ascii--translate' translates a string according
|
2012-07-16 16:17:56 +00:00
|
|
|
|
;; to language and charset specification.
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii--fill-string (s text-width info &optional justify)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"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
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
string, see `org-ascii--justify-lines' and
|
2022-10-26 20:41:09 +00:00
|
|
|
|
`org-ascii--justify-element'.
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
Return nil if S isn't a string."
|
2014-09-19 23:05:22 +00:00
|
|
|
|
(when (stringp s)
|
|
|
|
|
(let ((double-space-p sentence-end-double-space))
|
|
|
|
|
(with-temp-buffer
|
|
|
|
|
(let ((fill-column text-width)
|
|
|
|
|
(use-hard-newlines t)
|
|
|
|
|
(sentence-end-double-space double-space-p))
|
|
|
|
|
(insert (if (plist-get info :preserve-breaks)
|
|
|
|
|
(replace-regexp-in-string "\n" hard-newline s)
|
|
|
|
|
s))
|
|
|
|
|
(fill-region (point-min) (point-max) justify))
|
|
|
|
|
(buffer-string)))))
|
2013-01-27 22:11:34 +00:00
|
|
|
|
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(defun org-ascii--justify-lines (s text-width how)
|
|
|
|
|
"Justify all lines in string S.
|
2012-01-07 13:01:25 +00:00
|
|
|
|
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))
|
2013-02-01 22:47:00 +00:00
|
|
|
|
(let ((fill-column text-width)
|
2021-08-17 22:28:01 +00:00
|
|
|
|
;; Ensure that `indent-tabs-mode' is nil so that indentation
|
|
|
|
|
;; will always be achieved using spaces rather than tabs.
|
|
|
|
|
(indent-tabs-mode nil)
|
2013-02-01 22:47:00 +00:00
|
|
|
|
;; Disable `adaptive-fill-mode' so it doesn't prevent
|
|
|
|
|
;; filling lines matching `adaptive-fill-regexp'.
|
|
|
|
|
(adaptive-fill-mode nil))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(while (< (point) (point-max))
|
|
|
|
|
(justify-current-line how)
|
|
|
|
|
(forward-line)))
|
|
|
|
|
(buffer-string)))
|
|
|
|
|
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(defun org-ascii--justify-element (contents element info)
|
|
|
|
|
"Justify CONTENTS of ELEMENT.
|
|
|
|
|
INFO is a plist used as a communication channel. Justification
|
|
|
|
|
is done according to the type of element. More accurately,
|
|
|
|
|
paragraphs are filled and other elements are justified as blocks,
|
|
|
|
|
that is according to the widest non blank line in CONTENTS."
|
|
|
|
|
(if (not (org-string-nw-p contents)) contents
|
|
|
|
|
(let ((text-width (org-ascii--current-text-width element info))
|
|
|
|
|
(how (org-ascii--current-justification element)))
|
2014-07-25 12:03:26 +00:00
|
|
|
|
(cond
|
2023-05-16 10:41:53 +00:00
|
|
|
|
((org-element-type-p element 'paragraph)
|
2014-07-25 12:03:26 +00:00
|
|
|
|
;; Paragraphs are treated specially as they need to be filled.
|
|
|
|
|
(org-ascii--fill-string contents text-width info how))
|
|
|
|
|
((eq how 'left) contents)
|
|
|
|
|
(t (with-temp-buffer
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(insert contents)
|
|
|
|
|
(goto-char (point-min))
|
|
|
|
|
(catch 'exit
|
|
|
|
|
(let ((max-width 0))
|
|
|
|
|
;; Compute maximum width. Bail out if it is greater
|
|
|
|
|
;; than page width, since no justification is
|
|
|
|
|
;; possible.
|
|
|
|
|
(save-excursion
|
|
|
|
|
(while (not (eobp))
|
Remove final parts of XEmacs compatibility code
* lisp/org-compat.el: Declare `org-add-hook', `org-decompose-region',
`org-detach-overlay', `org-file-equal-p', `org-float-time',
`org-indent-line-to', `org-indent-to-column', `org-looking-at-p',
`org-looking-back', `org-propertize', `org-re' and
`org-select-frame-set-input-focus' as obsolete.
(org-overlay-display, org-overlay-before-string, org-find-overlays):
Move to "org.el"
(org-xemacs-key-equivalents, org-xemacs-p): Remove variables.
(org-region-active-p): Drop XEmacs support.
(org-xemacs-without-invisibility): Remove macro.
(org-get-x-clipboard-compat): Remove function.
* lisp/org-macs.el (org-match-string-no-properties): Remove function.
* lisp/ob-core.el:
* lisp/org-agenda.el:
* lisp/org-archive.el:
* lisp/org-clock.el:
* lisp/org-colview.el:
* lisp/org-crypt.el:
* lisp/org-element.el:
* lisp/org-faces.el:
* lisp/org-feed.el:
* lisp/org-footnote.el:
* lisp/org-habit.el:
* lisp/org-id.el:
* lisp/org-indent.el:
* lisp/org-inlinetask.el:
* lisp/org-lint.el:
* lisp/org-list.el:
* lisp/org-mouse.el:
* lisp/org-pcomplete.el:
* lisp/org-src.el:
* lisp/org-table.el:
* lisp/org-timer.el:
* lisp/org.el:
* lisp/ox-ascii.el:
* lisp/ox-odt.el:
* lisp/ox.el:
* contrib/lisp/org-notify.el:
* contrib/lisp/ox-taskjuggler.el:
* contrib/lisp/org-wikinodes.el:
* testing/lisp/test-org-src.el:
* testing/lisp/test-org.el: Silence byte-compiler.
2016-05-26 10:18:00 +00:00
|
|
|
|
(unless (looking-at-p "[ \t]*$")
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(end-of-line)
|
|
|
|
|
(let ((column (current-column)))
|
|
|
|
|
(cond
|
|
|
|
|
((>= column text-width) (throw 'exit contents))
|
|
|
|
|
((> column max-width) (setq max-width column)))))
|
|
|
|
|
(forward-line)))
|
|
|
|
|
;; Justify every line according to TEXT-WIDTH and
|
|
|
|
|
;; MAX-WIDTH.
|
|
|
|
|
(let ((offset (/ (- text-width max-width)
|
|
|
|
|
(if (eq how 'right) 1 2))))
|
|
|
|
|
(if (zerop offset) (throw 'exit contents)
|
|
|
|
|
(while (not (eobp))
|
Remove final parts of XEmacs compatibility code
* lisp/org-compat.el: Declare `org-add-hook', `org-decompose-region',
`org-detach-overlay', `org-file-equal-p', `org-float-time',
`org-indent-line-to', `org-indent-to-column', `org-looking-at-p',
`org-looking-back', `org-propertize', `org-re' and
`org-select-frame-set-input-focus' as obsolete.
(org-overlay-display, org-overlay-before-string, org-find-overlays):
Move to "org.el"
(org-xemacs-key-equivalents, org-xemacs-p): Remove variables.
(org-region-active-p): Drop XEmacs support.
(org-xemacs-without-invisibility): Remove macro.
(org-get-x-clipboard-compat): Remove function.
* lisp/org-macs.el (org-match-string-no-properties): Remove function.
* lisp/ob-core.el:
* lisp/org-agenda.el:
* lisp/org-archive.el:
* lisp/org-clock.el:
* lisp/org-colview.el:
* lisp/org-crypt.el:
* lisp/org-element.el:
* lisp/org-faces.el:
* lisp/org-feed.el:
* lisp/org-footnote.el:
* lisp/org-habit.el:
* lisp/org-id.el:
* lisp/org-indent.el:
* lisp/org-inlinetask.el:
* lisp/org-lint.el:
* lisp/org-list.el:
* lisp/org-mouse.el:
* lisp/org-pcomplete.el:
* lisp/org-src.el:
* lisp/org-table.el:
* lisp/org-timer.el:
* lisp/org.el:
* lisp/ox-ascii.el:
* lisp/ox-odt.el:
* lisp/ox.el:
* contrib/lisp/org-notify.el:
* contrib/lisp/ox-taskjuggler.el:
* contrib/lisp/org-wikinodes.el:
* testing/lisp/test-org-src.el:
* testing/lisp/test-org.el: Silence byte-compiler.
2016-05-26 10:18:00 +00:00
|
|
|
|
(unless (looking-at-p "[ \t]*$")
|
|
|
|
|
(indent-to-column offset))
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(forward-line)))))
|
|
|
|
|
(buffer-string))))))))
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii--indent-string (s width)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Indent string S by WIDTH white spaces.
|
|
|
|
|
Empty lines are not indented."
|
|
|
|
|
(when (stringp s)
|
|
|
|
|
(replace-regexp-in-string
|
2014-04-28 14:48:07 +00:00
|
|
|
|
"\\(^\\)[ \t]*\\S-" (make-string width ?\s) s nil nil 1)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii--box-string (s info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Return string S with a partial box to its left.
|
2013-11-17 08:12:41 +00:00
|
|
|
|
INFO is a plist used as a communication channel."
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(let ((utf8p (eq (plist-get info :ascii-charset) 'utf-8)))
|
2014-09-26 10:12:07 +00:00
|
|
|
|
(format (if utf8p "┌────\n%s\n└────" ",----\n%s\n`----")
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(replace-regexp-in-string
|
|
|
|
|
"^" (if utf8p "│ " "| ")
|
|
|
|
|
;; Remove last newline character.
|
|
|
|
|
(replace-regexp-in-string "\n[ \t]*\\'" "" s)))))
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii--current-text-width (element info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Return maximum text width for ELEMENT's contents.
|
|
|
|
|
INFO is a plist used as a communication channel."
|
2016-07-25 14:34:48 +00:00
|
|
|
|
(pcase (org-element-type 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 12:07:27 +00:00
|
|
|
|
;; Elements with an absolute width: `headline' and `inlinetask'.
|
2016-07-25 14:34:48 +00:00
|
|
|
|
(`inlinetask (plist-get info :ascii-inlinetask-width))
|
|
|
|
|
(`headline
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(- (plist-get info :ascii-text-width)
|
2017-11-06 13:27:45 +00:00
|
|
|
|
(let ((low-level-rank (org-export-low-level-p element info)))
|
|
|
|
|
(if low-level-rank (* low-level-rank 2)
|
|
|
|
|
(plist-get info :ascii-global-margin)))))
|
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 12:07:27 +00:00
|
|
|
|
;; Elements with a relative width: store maximum text width in
|
|
|
|
|
;; TOTAL-WIDTH.
|
2016-07-25 14:34:48 +00:00
|
|
|
|
(_
|
2014-11-16 12:27:34 +00:00
|
|
|
|
(let* ((genealogy (org-element-lineage element nil t))
|
2017-11-06 13:27:45 +00:00
|
|
|
|
;; Total width is determined by the presence, or not, of an
|
|
|
|
|
;; inline task among ELEMENT parents.
|
|
|
|
|
(total-width
|
|
|
|
|
(if (cl-some (lambda (parent)
|
2023-05-16 10:41:53 +00:00
|
|
|
|
(org-element-type-p parent 'inlinetask))
|
2017-11-06 13:27:45 +00:00
|
|
|
|
genealogy)
|
|
|
|
|
(plist-get info :ascii-inlinetask-width)
|
|
|
|
|
;; No inlinetask: Remove global margin from text width.
|
|
|
|
|
(- (plist-get info :ascii-text-width)
|
|
|
|
|
(plist-get info :ascii-global-margin)
|
2023-05-18 11:35:35 +00:00
|
|
|
|
(let ((parent (org-element-lineage element 'headline)))
|
2017-11-06 13:27:45 +00:00
|
|
|
|
;; 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)
|
|
|
|
|
(plist-get info :ascii-inner-margin)))))))))
|
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 12:07:27 +00:00
|
|
|
|
(- total-width
|
2017-11-06 13:27:45 +00:00
|
|
|
|
;; Each `quote-block' and `verse-block' above narrows text
|
|
|
|
|
;; width by twice the standard margin size.
|
|
|
|
|
(+ (* (cl-count-if (lambda (parent)
|
2023-05-16 10:41:53 +00:00
|
|
|
|
(org-element-type-p
|
|
|
|
|
parent '(quote-block verse-block)))
|
2017-11-06 13:27:45 +00:00
|
|
|
|
genealogy)
|
|
|
|
|
2
|
|
|
|
|
(plist-get info :ascii-quote-margin))
|
|
|
|
|
;; Apply list margin once per "top-level" plain-list
|
|
|
|
|
;; containing current line
|
|
|
|
|
(* (cl-count-if
|
|
|
|
|
(lambda (e)
|
2023-05-16 10:41:53 +00:00
|
|
|
|
(and (org-element-type-p e 'plain-list)
|
|
|
|
|
(not (org-element-type-p
|
2023-05-03 12:56:35 +00:00
|
|
|
|
(org-element-parent e) 'item))))
|
2017-11-06 13:27:45 +00:00
|
|
|
|
genealogy)
|
|
|
|
|
(plist-get info :ascii-list-margin))
|
|
|
|
|
;; Compute indentation offset due to current list. It is
|
|
|
|
|
;; `org-ascii-quote-margin' per descriptive item in the
|
|
|
|
|
;; genealogy, bullet's length otherwise.
|
|
|
|
|
(let ((indentation 0))
|
|
|
|
|
(dolist (e genealogy)
|
|
|
|
|
(cond
|
2023-05-16 10:41:53 +00:00
|
|
|
|
((not (org-element-type-p e 'item)))
|
2023-05-03 12:56:35 +00:00
|
|
|
|
((eq (org-element-property :type (org-element-parent e))
|
2017-11-06 13:27:45 +00:00
|
|
|
|
'descriptive)
|
|
|
|
|
(cl-incf indentation org-ascii-quote-margin))
|
|
|
|
|
(t
|
|
|
|
|
(cl-incf indentation
|
|
|
|
|
(+ (string-width
|
|
|
|
|
(or (org-ascii--checkbox e info) ""))
|
|
|
|
|
(string-width
|
|
|
|
|
(org-element-property :bullet e)))))))
|
|
|
|
|
indentation)))))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(defun org-ascii--current-justification (element)
|
|
|
|
|
"Return expected justification for ELEMENT's contents.
|
|
|
|
|
Return value is a symbol among `left', `center', `right' and
|
|
|
|
|
`full'."
|
2023-05-22 13:13:41 +00:00
|
|
|
|
(or (org-element-lineage-map
|
2023-11-17 08:28:32 +00:00
|
|
|
|
element
|
|
|
|
|
(lambda (el)
|
|
|
|
|
(pcase (org-element-type el)
|
|
|
|
|
(`center-block 'center)
|
|
|
|
|
(`special-block
|
|
|
|
|
(let ((name (org-element-property :type el)))
|
|
|
|
|
(cond ((string= name "JUSTIFYRIGHT") 'right)
|
|
|
|
|
((string= name "JUSTIFYLEFT") 'left))))))
|
|
|
|
|
'(center-block special-block)
|
|
|
|
|
nil 'first-match)
|
2023-05-22 13:13:41 +00:00
|
|
|
|
;; default
|
|
|
|
|
'left))
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii--build-title
|
2017-11-15 16:43:08 +00:00
|
|
|
|
(element info text-width &optional underline notags toc)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"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,
|
2013-01-27 22:11:34 +00:00
|
|
|
|
without the tags, according to `org-ascii-underline'
|
2012-01-07 13:01:25 +00:00
|
|
|
|
specifications.
|
|
|
|
|
|
2013-02-23 21:02:37 +00:00
|
|
|
|
If optional argument NOTAGS is non-nil, no tags will be added to
|
|
|
|
|
the title.
|
|
|
|
|
|
|
|
|
|
When optional argument TOC is non-nil, use optional title if
|
2013-02-24 08:15:26 +00:00
|
|
|
|
possible. It doesn't apply to `inlinetask' elements."
|
2023-05-16 10:41:53 +00:00
|
|
|
|
(let* ((headlinep (org-element-type-p element 'headline))
|
2012-01-27 13:49:32 +00:00
|
|
|
|
(numbers
|
|
|
|
|
;; Numbering is specific to headlines.
|
2017-11-15 16:43:08 +00:00
|
|
|
|
(and headlinep
|
|
|
|
|
(org-export-numbered-headline-p element info)
|
|
|
|
|
(let ((numbering (org-export-get-headline-number element info)))
|
|
|
|
|
(if toc (format "%d. " (org-last numbering))
|
|
|
|
|
(concat (mapconcat #'number-to-string numbering ".")
|
|
|
|
|
" ")))))
|
2013-02-23 21:02:37 +00:00
|
|
|
|
(text
|
|
|
|
|
(org-trim
|
|
|
|
|
(org-export-data
|
2013-02-26 23:00:33 +00:00
|
|
|
|
(if (and toc headlinep) (org-export-get-alt-title element info)
|
2013-02-24 08:15:26 +00:00
|
|
|
|
(org-element-property :title element))
|
|
|
|
|
info)))
|
2012-01-07 13:01:25 +00: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 12:47:20 +00: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-30 00:04:03 +00:00
|
|
|
|
(and todo (concat (org-export-data todo info) " ")))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(tags (and (not notags)
|
|
|
|
|
(plist-get info :with-tags)
|
2012-05-26 11:44:13 +00:00
|
|
|
|
(let ((tag-list (org-export-get-tags element info)))
|
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 12:10:12 +00:00
|
|
|
|
(and tag-list
|
2018-04-18 21:57:51 +00:00
|
|
|
|
(org-make-tag-string tag-list)))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(priority
|
|
|
|
|
(and (plist-get info :with-priority)
|
2012-07-27 22:44:07 +00:00
|
|
|
|
(let ((char (org-element-property :priority element)))
|
|
|
|
|
(and char (format "(#%c) " char)))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(first-part (concat numbers todo priority text)))
|
|
|
|
|
(concat
|
|
|
|
|
first-part
|
|
|
|
|
;; Align tags, if any.
|
|
|
|
|
(when tags
|
|
|
|
|
(format
|
|
|
|
|
(format " %%%ds"
|
2014-01-16 15:09:30 +00:00
|
|
|
|
(max (- text-width (1+ (string-width first-part)))
|
|
|
|
|
(string-width tags)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
tags))
|
2012-01-27 13:49:32 +00:00
|
|
|
|
;; Maybe underline text, if ELEMENT type is `headline' and an
|
|
|
|
|
;; underline character has been defined.
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(when (and underline headlinep)
|
|
|
|
|
(let ((under-char
|
|
|
|
|
(nth (1- (org-export-get-relative-level element info))
|
|
|
|
|
(cdr (assq (plist-get info :ascii-charset)
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(plist-get info :ascii-underline))))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(and under-char
|
|
|
|
|
(concat "\n"
|
2014-01-16 15:09:30 +00:00
|
|
|
|
(make-string (/ (string-width first-part)
|
|
|
|
|
(char-width under-char))
|
|
|
|
|
under-char))))))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii--has-caption-p (element _info)
|
2012-05-21 19:38:42 +00:00
|
|
|
|
"Non-nil when ELEMENT has a caption affiliated keyword.
|
|
|
|
|
INFO is a plist used as a communication channel. This function
|
|
|
|
|
is meant to be used as a predicate for `org-export-get-ordinal'."
|
|
|
|
|
(org-element-property :caption element))
|
2012-05-20 11:57:58 +00:00
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii--build-caption (element info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Return caption string for ELEMENT, if applicable.
|
|
|
|
|
|
|
|
|
|
INFO is a plist used as a communication channel.
|
|
|
|
|
|
2012-05-21 19:38:42 +00:00
|
|
|
|
The caption string contains the sequence number of ELEMENT along
|
|
|
|
|
with its real caption. Return nil when ELEMENT has no affiliated
|
|
|
|
|
caption keyword."
|
2012-09-13 14:56:15 +00:00
|
|
|
|
(let ((caption (org-export-get-caption element)))
|
2012-05-21 19:38:42 +00:00
|
|
|
|
(when caption
|
2012-01-07 13:01:25 +00:00
|
|
|
|
;; Get sequence number of current src-block among every
|
2012-05-21 19:38:42 +00:00
|
|
|
|
;; src-block with a caption.
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(let ((reference
|
|
|
|
|
(org-export-get-ordinal
|
2013-01-27 22:11:34 +00:00
|
|
|
|
element info nil 'org-ascii--has-caption-p))
|
|
|
|
|
(title-fmt (org-ascii--translate
|
2016-07-25 14:34:48 +00:00
|
|
|
|
(pcase (org-element-type element)
|
|
|
|
|
(`table "Table %d:")
|
|
|
|
|
(`src-block "Listing %d:"))
|
2012-05-21 19:38:42 +00:00
|
|
|
|
info)))
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(org-ascii--fill-string
|
2013-06-25 07:29:18 +00:00
|
|
|
|
(concat (format title-fmt reference)
|
|
|
|
|
" "
|
|
|
|
|
(org-export-data caption info))
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(org-ascii--current-text-width element info) info)))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2019-05-15 18:22:05 +00:00
|
|
|
|
(defun org-ascii--build-toc (info &optional n keyword scope)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"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
|
2014-10-25 15:14:34 +00:00
|
|
|
|
which the table of contents generation has been initiated.
|
|
|
|
|
|
2019-05-15 18:22:05 +00:00
|
|
|
|
When optional argument SCOPE is non-nil, build a table of
|
|
|
|
|
contents according to the specified scope."
|
2014-10-25 15:14:34 +00:00
|
|
|
|
(concat
|
2019-05-15 18:22:05 +00:00
|
|
|
|
(unless scope
|
2014-10-25 15:14:34 +00:00
|
|
|
|
(let ((title (org-ascii--translate "Table of Contents" info)))
|
|
|
|
|
(concat title "\n"
|
|
|
|
|
(make-string
|
|
|
|
|
(string-width title)
|
|
|
|
|
(if (eq (plist-get info :ascii-charset) 'utf-8) ?─ ?_))
|
|
|
|
|
"\n\n")))
|
|
|
|
|
(let ((text-width
|
|
|
|
|
(if keyword (org-ascii--current-text-width keyword info)
|
|
|
|
|
(- (plist-get info :ascii-text-width)
|
|
|
|
|
(plist-get info :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-ascii--build-title
|
|
|
|
|
headline info (- text-width indent) nil
|
|
|
|
|
(or (not (plist-get info :with-tags))
|
|
|
|
|
(eq (plist-get info :with-tags) 'not-in-toc))
|
|
|
|
|
'toc))))
|
2019-05-15 18:22:05 +00:00
|
|
|
|
(org-export-collect-headlines info n scope) "\n"))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii--list-listings (keyword info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"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."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(let ((title (org-ascii--translate "List of Listings" info)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(concat
|
2012-07-12 11:20:09 +00:00
|
|
|
|
title "\n"
|
2014-01-16 15:09:30 +00:00
|
|
|
|
(make-string (string-width title)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(if (eq (plist-get info :ascii-charset) 'utf-8) ?─ ?_))
|
|
|
|
|
"\n\n"
|
|
|
|
|
(let ((text-width
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(if keyword (org-ascii--current-text-width keyword info)
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(- (plist-get info :ascii-text-width)
|
|
|
|
|
(plist-get info :ascii-global-margin))))
|
2013-11-17 08:12:41 +00:00
|
|
|
|
;; Use a counter instead of retrieving ordinal of each
|
2012-01-07 13:01:25 +00:00
|
|
|
|
;; 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).
|
2014-01-16 15:09:30 +00:00
|
|
|
|
(let* ((initial-text
|
|
|
|
|
(format (org-ascii--translate "Listing %d:" info)
|
2016-07-25 13:36:09 +00:00
|
|
|
|
(cl-incf count)))
|
2014-01-16 15:09:30 +00:00
|
|
|
|
(initial-width (string-width initial-text)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(concat
|
2012-07-12 11:20:09 +00:00
|
|
|
|
initial-text " "
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(org-trim
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(org-ascii--indent-string
|
|
|
|
|
(org-ascii--fill-string
|
2012-09-13 14:56:15 +00:00
|
|
|
|
;; Use short name in priority, if available.
|
|
|
|
|
(let ((caption (or (org-export-get-caption src-block t)
|
|
|
|
|
(org-export-get-caption src-block))))
|
|
|
|
|
(org-export-data caption info))
|
2014-01-16 15:09:30 +00:00
|
|
|
|
(- text-width initial-width) info)
|
|
|
|
|
initial-width)))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(org-export-collect-listings info) "\n")))))
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii--list-tables (keyword info)
|
2013-02-24 15:16:54 +00:00
|
|
|
|
"Return a list of tables.
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2013-02-24 15:16:54 +00:00
|
|
|
|
KEYWORD is the keyword that initiated the list of tables
|
2012-01-07 13:01:25 +00:00
|
|
|
|
generation. INFO is a plist used as a communication channel."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(let ((title (org-ascii--translate "List of Tables" info)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(concat
|
2012-07-12 11:20:09 +00:00
|
|
|
|
title "\n"
|
2014-01-16 15:09:30 +00:00
|
|
|
|
(make-string (string-width title)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(if (eq (plist-get info :ascii-charset) 'utf-8) ?─ ?_))
|
|
|
|
|
"\n\n"
|
|
|
|
|
(let ((text-width
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(if keyword (org-ascii--current-text-width keyword info)
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(- (plist-get info :ascii-text-width)
|
|
|
|
|
(plist-get info :ascii-global-margin))))
|
2013-11-17 08:12:41 +00:00
|
|
|
|
;; Use a counter instead of retrieving ordinal of each
|
2012-01-07 13:01:25 +00:00
|
|
|
|
;; 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).
|
2014-01-16 15:09:30 +00:00
|
|
|
|
(let* ((initial-text
|
|
|
|
|
(format (org-ascii--translate "Table %d:" info)
|
2016-07-25 13:36:09 +00:00
|
|
|
|
(cl-incf count)))
|
2014-01-16 15:09:30 +00:00
|
|
|
|
(initial-width (string-width initial-text)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(concat
|
2012-07-12 11:20:09 +00:00
|
|
|
|
initial-text " "
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(org-trim
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(org-ascii--indent-string
|
|
|
|
|
(org-ascii--fill-string
|
2012-09-13 14:56:15 +00:00
|
|
|
|
;; Use short name in priority, if available.
|
|
|
|
|
(let ((caption (or (org-export-get-caption table t)
|
|
|
|
|
(org-export-get-caption table))))
|
|
|
|
|
(org-export-data caption info))
|
2014-01-16 15:09:30 +00:00
|
|
|
|
(- text-width initial-width) info)
|
|
|
|
|
initial-width)))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(org-export-collect-tables info) "\n")))))
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii--unique-links (element info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Return a list of unique link references in ELEMENT.
|
2013-02-23 12:47:44 +00:00
|
|
|
|
ELEMENT is either a headline element or a section element. INFO
|
2012-05-21 19:54:09 +00:00
|
|
|
|
is a plist used as a communication channel."
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(let* (seen
|
|
|
|
|
(unique-link-p
|
2016-04-13 21:16:25 +00:00
|
|
|
|
;; Return LINK if it wasn't referenced so far, or nil.
|
|
|
|
|
;; Update SEEN links along the way.
|
|
|
|
|
(lambda (link)
|
|
|
|
|
(let ((footprint
|
|
|
|
|
;; Normalize description in footprints.
|
|
|
|
|
(cons (org-element-property :raw-link link)
|
|
|
|
|
(let ((contents (org-element-contents link)))
|
|
|
|
|
(and contents
|
|
|
|
|
(replace-regexp-in-string
|
|
|
|
|
"[ \r\t\n]+" " "
|
|
|
|
|
(org-trim
|
|
|
|
|
(org-element-interpret-data contents))))))))
|
|
|
|
|
;; Ignore LINK if it hasn't been translated already. It
|
|
|
|
|
;; can happen if it is located in an affiliated keyword
|
|
|
|
|
;; that was ignored.
|
|
|
|
|
(when (and (org-string-nw-p
|
|
|
|
|
(gethash link (plist-get info :exported-data)))
|
|
|
|
|
(not (member footprint seen)))
|
|
|
|
|
(push footprint seen) link)))))
|
2023-05-16 10:41:53 +00:00
|
|
|
|
(org-element-map (if (org-element-type-p element 'section)
|
2016-04-26 11:23:47 +00:00
|
|
|
|
element
|
|
|
|
|
;; In a headline, only retrieve links in title
|
|
|
|
|
;; and relative section, not in children.
|
|
|
|
|
(list (org-element-property :title element)
|
|
|
|
|
(car (org-element-contents element))))
|
|
|
|
|
'link unique-link-p info nil 'headline t)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2016-12-15 14:59:11 +00:00
|
|
|
|
(defun org-ascii--describe-datum (datum info)
|
|
|
|
|
"Describe DATUM object or element.
|
|
|
|
|
If DATUM is a string, consider it to be a file name, per
|
|
|
|
|
`org-export-resolve-id-link'. INFO is the communication channel,
|
|
|
|
|
as a plist."
|
|
|
|
|
(pcase (org-element-type datum)
|
|
|
|
|
(`plain-text (format "See file %s" datum)) ;External file
|
|
|
|
|
(`headline
|
|
|
|
|
(format (org-ascii--translate "See section %s" info)
|
|
|
|
|
(if (org-export-numbered-headline-p datum info)
|
|
|
|
|
(mapconcat #'number-to-string
|
|
|
|
|
(org-export-get-headline-number datum info)
|
|
|
|
|
".")
|
|
|
|
|
(org-export-data (org-element-property :title datum) info))))
|
|
|
|
|
(_
|
|
|
|
|
(let ((number (org-export-get-ordinal
|
|
|
|
|
datum info nil #'org-ascii--has-caption-p))
|
|
|
|
|
;; If destination is a target, make sure we can name the
|
|
|
|
|
;; container it refers to.
|
|
|
|
|
(enumerable
|
2017-07-06 07:23:30 +00:00
|
|
|
|
(org-element-lineage datum
|
|
|
|
|
'(headline paragraph src-block table) t)))
|
2016-12-15 14:59:11 +00:00
|
|
|
|
(pcase (org-element-type enumerable)
|
|
|
|
|
(`headline
|
|
|
|
|
(format (org-ascii--translate "See section %s" info)
|
|
|
|
|
(if (org-export-numbered-headline-p enumerable info)
|
|
|
|
|
(mapconcat #'number-to-string number ".")
|
|
|
|
|
(org-export-data
|
|
|
|
|
(org-element-property :title enumerable) info))))
|
|
|
|
|
((guard (not number))
|
|
|
|
|
(org-ascii--translate "Unknown reference" info))
|
|
|
|
|
(`paragraph
|
|
|
|
|
(format (org-ascii--translate "See figure %s" info) number))
|
|
|
|
|
(`src-block
|
|
|
|
|
(format (org-ascii--translate "See listing %s" info) number))
|
|
|
|
|
(`table
|
|
|
|
|
(format (org-ascii--translate "See table %s" info) number))
|
|
|
|
|
(_ (org-ascii--translate "Unknown reference" info)))))))
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii--describe-links (links width info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Return a string describing a list of links.
|
|
|
|
|
LINKS is a list of link type objects, as returned by
|
2013-01-27 22:11:34 +00:00
|
|
|
|
`org-ascii--unique-links'. WIDTH is the text width allowed for
|
2012-01-07 13:01:25 +00:00
|
|
|
|
the output string. INFO is a plist used as a communication
|
|
|
|
|
channel."
|
|
|
|
|
(mapconcat
|
|
|
|
|
(lambda (link)
|
2016-12-15 14:59:11 +00:00
|
|
|
|
(let* ((type (org-element-property :type link))
|
|
|
|
|
(description (org-element-contents link))
|
|
|
|
|
(anchor (org-export-data
|
|
|
|
|
(or description (org-element-property :raw-link link))
|
|
|
|
|
info)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(cond
|
2016-12-15 14:59:11 +00:00
|
|
|
|
((member type '("coderef" "radio")) nil)
|
|
|
|
|
((member type '("custom-id" "fuzzy" "id"))
|
|
|
|
|
;; Only links with a description need an entry. Other are
|
|
|
|
|
;; already handled in `org-ascii-link'.
|
|
|
|
|
(when description
|
|
|
|
|
(let ((dest (if (equal type "fuzzy")
|
|
|
|
|
(org-export-resolve-fuzzy-link link info)
|
2022-07-23 06:07:20 +00:00
|
|
|
|
;; Ignore broken links. On broken link,
|
|
|
|
|
;; `org-export-resolve-id-link' will throw an
|
2022-07-24 12:09:12 +00:00
|
|
|
|
;; error and we will return nil.
|
|
|
|
|
(condition-case nil
|
|
|
|
|
(org-export-resolve-id-link link info)
|
|
|
|
|
(org-link-broken nil)))))
|
2022-07-23 06:07:20 +00:00
|
|
|
|
(when dest
|
|
|
|
|
(concat
|
|
|
|
|
(org-ascii--fill-string
|
|
|
|
|
(format "[%s] %s" anchor (org-ascii--describe-datum dest info))
|
|
|
|
|
width info)
|
|
|
|
|
"\n\n")))))
|
2012-01-07 13:01:25 +00: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 12:47:20 +00:00
|
|
|
|
((not (org-element-contents link)) nil)
|
2015-01-01 20:28:02 +00:00
|
|
|
|
;; Do not add a link already handled by custom export
|
|
|
|
|
;; functions.
|
2020-02-14 09:00:15 +00:00
|
|
|
|
((org-export-custom-protocol-maybe link anchor 'ascii info) nil)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(t
|
|
|
|
|
(concat
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(org-ascii--fill-string
|
2018-02-10 13:16:37 +00:00
|
|
|
|
(format "[%s] <%s>" anchor (org-element-property :raw-link link))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
width info)
|
|
|
|
|
"\n\n")))))
|
|
|
|
|
links ""))
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii--checkbox (item info)
|
2012-06-09 13:34:27 +00:00
|
|
|
|
"Return checkbox string for ITEM or nil.
|
|
|
|
|
INFO is a plist used as a communication channel."
|
|
|
|
|
(let ((utf8p (eq (plist-get info :ascii-charset) 'utf-8)))
|
2016-07-25 14:34:48 +00:00
|
|
|
|
(pcase (org-element-property :checkbox item)
|
|
|
|
|
(`on (if utf8p "☑ " "[X] "))
|
|
|
|
|
(`off (if utf8p "☐ " "[ ] "))
|
|
|
|
|
(`trans (if utf8p "☒ " "[-] ")))))
|
2012-06-09 13:34:27 +00:00
|
|
|
|
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;; Template
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii-template--document-title (info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Return document title, as a string.
|
|
|
|
|
INFO is a plist used as a communication channel."
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(let* ((text-width (plist-get info :ascii-text-width))
|
2012-09-30 21:56:00 +00:00
|
|
|
|
;; Links in the title will not be resolved later, so we make
|
|
|
|
|
;; sure their path is located right after them.
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(info (org-combine-plists info '(:ascii-links-to-notes nil)))
|
ox: Add #+SUBTITLE property in some backends
* ox-texinfo.el (texinfo, org-texinfo-template): Parse subtitle.
* ox-s5.el (org-s5-title-slide-template):
* ox-deck.el (org-deck-title-slide-template):
* ox-odt.el (odt, org-odt-template):
* ox-latex.el (latex, org-latex-template):
* ox-html.el (html, org-html-format-spec, org-html-template):
* ox-ascii.el (ascii, org-ascii-template--document-title):
* ox-beamer.el (beamer, org-beamer-template): Support #+SUBTITLE.
* ox-html.el (org-html-postamble-format)
(org-html-preamble-format):
* ox-latex.el (org-latex-title-command)
(org-latex-hyperref-template): Update docstring.
* ox-html.el (org-html-style-default): New .subtitle css property.
* ox-beamer.el (org-beamer-subtitle-format):
* ox-latex.el (org-latex-subtitle-format)
(org-latex-subtitle-separate): New variable.
* org.texi (ASCII/Latin-1/UTF-8 export)
(Beamer specific export settings)
(HTML Specific export settings)
(@LaTeX{} specific export settings, CSS support)
(ODT specific export settings)
(Texinfo specific export settings, Document preamble)
(Publishing options, Publishing options): Document #+SUBTITLE.
The patch adds a #+SUBTITLE keyword to ox-ascii, ox-latex, ox-html and
ox-odt.
2015-03-01 21:09:19 +00:00
|
|
|
|
(with-title (plist-get info :with-title))
|
|
|
|
|
(title (org-export-data
|
|
|
|
|
(when with-title (plist-get info :title)) info))
|
|
|
|
|
(subtitle (org-export-data
|
|
|
|
|
(when with-title (plist-get info :subtitle)) info))
|
2012-09-30 21:56:00 +00:00
|
|
|
|
(author (and (plist-get info :with-author)
|
|
|
|
|
(let ((auth (plist-get info :author)))
|
|
|
|
|
(and auth (org-export-data auth info)))))
|
|
|
|
|
(email (and (plist-get info :with-email)
|
|
|
|
|
(org-export-data (plist-get info :email) info)))
|
2012-11-09 10:04:07 +00:00
|
|
|
|
(date (and (plist-get info :with-date)
|
2013-04-02 21:59:00 +00:00
|
|
|
|
(org-export-data (org-export-get-date info) info))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
;; 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
|
2014-01-16 15:09:30 +00:00
|
|
|
|
(make-string (- text-width (string-width date) (string-width author))
|
|
|
|
|
?\s)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
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
|
2014-01-16 15:09:30 +00:00
|
|
|
|
(make-string (- text-width (string-width date) (string-width email))
|
|
|
|
|
?\s)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
date "\n\n\n"))
|
|
|
|
|
((org-string-nw-p date)
|
|
|
|
|
(concat
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(org-ascii--justify-lines date text-width 'right)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"\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.
|
2015-04-05 19:11:20 +00:00
|
|
|
|
(title-len (min (apply #'max
|
2021-05-02 15:48:47 +00:00
|
|
|
|
(mapcar #'string-width
|
ox: Add #+SUBTITLE property in some backends
* ox-texinfo.el (texinfo, org-texinfo-template): Parse subtitle.
* ox-s5.el (org-s5-title-slide-template):
* ox-deck.el (org-deck-title-slide-template):
* ox-odt.el (odt, org-odt-template):
* ox-latex.el (latex, org-latex-template):
* ox-html.el (html, org-html-format-spec, org-html-template):
* ox-ascii.el (ascii, org-ascii-template--document-title):
* ox-beamer.el (beamer, org-beamer-template): Support #+SUBTITLE.
* ox-html.el (org-html-postamble-format)
(org-html-preamble-format):
* ox-latex.el (org-latex-title-command)
(org-latex-hyperref-template): Update docstring.
* ox-html.el (org-html-style-default): New .subtitle css property.
* ox-beamer.el (org-beamer-subtitle-format):
* ox-latex.el (org-latex-subtitle-format)
(org-latex-subtitle-separate): New variable.
* org.texi (ASCII/Latin-1/UTF-8 export)
(Beamer specific export settings)
(HTML Specific export settings)
(@LaTeX{} specific export settings, CSS support)
(ODT specific export settings)
(Texinfo specific export settings, Document preamble)
(Publishing options, Publishing options): Document #+SUBTITLE.
The patch adds a #+SUBTITLE keyword to ox-ascii, ox-latex, ox-html and
ox-odt.
2015-03-01 21:09:19 +00:00
|
|
|
|
(org-split-string
|
|
|
|
|
(concat title "\n" subtitle) "\n")))
|
2015-04-05 19:11:20 +00:00
|
|
|
|
(/ (* 2 text-width) 3)))
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(formatted-title (org-ascii--fill-string title title-len info))
|
ox: Add #+SUBTITLE property in some backends
* ox-texinfo.el (texinfo, org-texinfo-template): Parse subtitle.
* ox-s5.el (org-s5-title-slide-template):
* ox-deck.el (org-deck-title-slide-template):
* ox-odt.el (odt, org-odt-template):
* ox-latex.el (latex, org-latex-template):
* ox-html.el (html, org-html-format-spec, org-html-template):
* ox-ascii.el (ascii, org-ascii-template--document-title):
* ox-beamer.el (beamer, org-beamer-template): Support #+SUBTITLE.
* ox-html.el (org-html-postamble-format)
(org-html-preamble-format):
* ox-latex.el (org-latex-title-command)
(org-latex-hyperref-template): Update docstring.
* ox-html.el (org-html-style-default): New .subtitle css property.
* ox-beamer.el (org-beamer-subtitle-format):
* ox-latex.el (org-latex-subtitle-format)
(org-latex-subtitle-separate): New variable.
* org.texi (ASCII/Latin-1/UTF-8 export)
(Beamer specific export settings)
(HTML Specific export settings)
(@LaTeX{} specific export settings, CSS support)
(ODT specific export settings)
(Texinfo specific export settings, Document preamble)
(Publishing options, Publishing options): Document #+SUBTITLE.
The patch adds a #+SUBTITLE keyword to ox-ascii, ox-latex, ox-html and
ox-odt.
2015-03-01 21:09:19 +00:00
|
|
|
|
(formatted-subtitle (when (org-string-nw-p subtitle)
|
|
|
|
|
(org-ascii--fill-string subtitle title-len info)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(line
|
|
|
|
|
(make-string
|
2014-01-16 15:09:30 +00:00
|
|
|
|
(min (+ (max title-len
|
|
|
|
|
(string-width (or author ""))
|
|
|
|
|
(string-width (or email "")))
|
|
|
|
|
2)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
text-width) (if utf8p ?━ ?_))))
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(org-ascii--justify-lines
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(concat line "\n"
|
|
|
|
|
(unless utf8p "\n")
|
|
|
|
|
(upcase formatted-title)
|
ox: Add #+SUBTITLE property in some backends
* ox-texinfo.el (texinfo, org-texinfo-template): Parse subtitle.
* ox-s5.el (org-s5-title-slide-template):
* ox-deck.el (org-deck-title-slide-template):
* ox-odt.el (odt, org-odt-template):
* ox-latex.el (latex, org-latex-template):
* ox-html.el (html, org-html-format-spec, org-html-template):
* ox-ascii.el (ascii, org-ascii-template--document-title):
* ox-beamer.el (beamer, org-beamer-template): Support #+SUBTITLE.
* ox-html.el (org-html-postamble-format)
(org-html-preamble-format):
* ox-latex.el (org-latex-title-command)
(org-latex-hyperref-template): Update docstring.
* ox-html.el (org-html-style-default): New .subtitle css property.
* ox-beamer.el (org-beamer-subtitle-format):
* ox-latex.el (org-latex-subtitle-format)
(org-latex-subtitle-separate): New variable.
* org.texi (ASCII/Latin-1/UTF-8 export)
(Beamer specific export settings)
(HTML Specific export settings)
(@LaTeX{} specific export settings, CSS support)
(ODT specific export settings)
(Texinfo specific export settings, Document preamble)
(Publishing options, Publishing options): Document #+SUBTITLE.
The patch adds a #+SUBTITLE keyword to ox-ascii, ox-latex, ox-html and
ox-odt.
2015-03-01 21:09:19 +00:00
|
|
|
|
(and formatted-subtitle (concat "\n" formatted-subtitle))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(cond
|
|
|
|
|
((and (org-string-nw-p author) (org-string-nw-p email))
|
2015-03-22 14:19:36 +00:00
|
|
|
|
(concat "\n\n" author "\n" email))
|
|
|
|
|
((org-string-nw-p author) (concat "\n\n" author))
|
|
|
|
|
((org-string-nw-p email) (concat "\n\n" email)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"\n" line
|
|
|
|
|
(when (org-string-nw-p date) (concat "\n\n\n" date))
|
|
|
|
|
"\n\n\n") text-width 'center)))))
|
|
|
|
|
|
2013-02-13 12:55:49 +00:00
|
|
|
|
(defun org-ascii-inner-template (contents info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Return complete document string after ASCII conversion.
|
|
|
|
|
CONTENTS is the transcoded contents string. INFO is a plist
|
|
|
|
|
holding export options."
|
2012-01-28 13:49:50 +00:00
|
|
|
|
(org-element-normalize-string
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(let ((global-margin (plist-get info :ascii-global-margin)))
|
|
|
|
|
(org-ascii--indent-string
|
|
|
|
|
(concat
|
|
|
|
|
;; 1. Document's body.
|
|
|
|
|
contents
|
|
|
|
|
;; 2. Footnote definitions.
|
2015-02-20 17:06:23 +00:00
|
|
|
|
(let ((definitions (org-export-collect-footnote-definitions info))
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
;; Insert full links right inside the footnote definition
|
|
|
|
|
;; as they have no chance to be inserted later.
|
|
|
|
|
(info (org-combine-plists info '(:ascii-links-to-notes nil))))
|
|
|
|
|
(when definitions
|
|
|
|
|
(concat
|
|
|
|
|
"\n\n\n"
|
|
|
|
|
(let ((title (org-ascii--translate "Footnotes" info)))
|
|
|
|
|
(concat
|
|
|
|
|
title "\n"
|
|
|
|
|
(make-string
|
|
|
|
|
(string-width title)
|
|
|
|
|
(if (eq (plist-get info :ascii-charset) 'utf-8) ?─ ?_))))
|
|
|
|
|
"\n\n"
|
|
|
|
|
(let ((text-width (- (plist-get info :ascii-text-width)
|
|
|
|
|
global-margin)))
|
|
|
|
|
(mapconcat
|
|
|
|
|
(lambda (ref)
|
|
|
|
|
(let ((id (format "[%s] " (car ref))))
|
|
|
|
|
;; Distinguish between inline definitions and
|
|
|
|
|
;; full-fledged definitions.
|
|
|
|
|
(org-trim
|
|
|
|
|
(let ((def (nth 2 ref)))
|
2015-11-06 19:58:14 +00:00
|
|
|
|
(if (org-element-map def org-element-all-elements
|
|
|
|
|
#'identity info 'first-match)
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00: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.
|
|
|
|
|
(let ((first (car (org-element-contents def))))
|
2023-05-16 10:41:53 +00:00
|
|
|
|
(if (not (org-element-type-p first 'paragraph))
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(concat id "\n" (org-export-data def info))
|
|
|
|
|
(push id (nthcdr 2 first))
|
|
|
|
|
(org-export-data def info)))
|
|
|
|
|
;; Fill paragraph once footnote ID is inserted
|
|
|
|
|
;; in order to have a correct length for first
|
|
|
|
|
;; line.
|
|
|
|
|
(org-ascii--fill-string
|
|
|
|
|
(concat id (org-export-data def info))
|
|
|
|
|
text-width info))))))
|
|
|
|
|
definitions "\n\n"))))))
|
|
|
|
|
global-margin))))
|
2013-02-13 12:55:49 +00:00
|
|
|
|
|
|
|
|
|
(defun org-ascii-template (contents info)
|
|
|
|
|
"Return complete document string after ASCII conversion.
|
|
|
|
|
CONTENTS is the transcoded contents string. INFO is a plist
|
|
|
|
|
holding export options."
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(let ((global-margin (plist-get info :ascii-global-margin)))
|
|
|
|
|
(concat
|
2015-03-17 14:40:52 +00:00
|
|
|
|
;; Build title block.
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(org-ascii--indent-string
|
|
|
|
|
(concat (org-ascii-template--document-title info)
|
|
|
|
|
;; 2. Table of contents.
|
|
|
|
|
(let ((depth (plist-get info :with-toc)))
|
|
|
|
|
(when depth
|
|
|
|
|
(concat
|
|
|
|
|
(org-ascii--build-toc info (and (wholenump depth) depth))
|
|
|
|
|
"\n\n\n"))))
|
|
|
|
|
global-margin)
|
2015-03-17 14:40:52 +00:00
|
|
|
|
;; Document's body.
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
contents
|
2015-03-17 14:40:52 +00:00
|
|
|
|
;; Creator. Justify it to the bottom right.
|
|
|
|
|
(and (plist-get info :with-creator)
|
|
|
|
|
(org-ascii--indent-string
|
|
|
|
|
(let ((text-width
|
|
|
|
|
(- (plist-get info :ascii-text-width) global-margin)))
|
|
|
|
|
(concat
|
|
|
|
|
"\n\n\n"
|
|
|
|
|
(org-ascii--fill-string
|
|
|
|
|
(plist-get info :creator) text-width info 'right)))
|
|
|
|
|
global-margin)))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii--translate (s info)
|
2012-07-12 11:20:09 +00:00
|
|
|
|
"Translate string S according to specified language and charset.
|
|
|
|
|
INFO is a plist used as a communication channel."
|
|
|
|
|
(let ((charset (intern (format ":%s" (plist-get info :ascii-charset)))))
|
|
|
|
|
(org-export-translate s charset info)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;; Transcode Functions
|
|
|
|
|
|
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 16:00:50 +00:00
|
|
|
|
;;;; Bold
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-bold (_bold contents _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 16:00:50 +00:00
|
|
|
|
"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 13:01:25 +00:00
|
|
|
|
;;;; Center Block
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-center-block (_center-block contents _info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Transcode a CENTER-BLOCK element from Org to ASCII.
|
|
|
|
|
CONTENTS holds the contents of the block. INFO is a plist
|
|
|
|
|
holding contextual information."
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
;; Center has already been taken care of at a lower level, so
|
|
|
|
|
;; there's nothing left to do.
|
|
|
|
|
contents)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
2012-04-29 00:11:22 +00:00
|
|
|
|
;;;; Clock
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-clock (clock _contents info)
|
2012-04-29 00:11:22 +00:00
|
|
|
|
"Transcode a CLOCK object from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual
|
|
|
|
|
information."
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(org-ascii--justify-element
|
|
|
|
|
(concat org-clock-string " "
|
2014-12-03 16:09:43 +00:00
|
|
|
|
(org-timestamp-translate (org-element-property :value clock))
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(let ((time (org-element-property :duration clock)))
|
|
|
|
|
(and time
|
|
|
|
|
(concat " => "
|
|
|
|
|
(apply 'format
|
|
|
|
|
"%2s:%02s"
|
|
|
|
|
(org-split-string time ":"))))))
|
|
|
|
|
clock info))
|
2012-04-29 00:11:22 +00: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 16:00:50 +00:00
|
|
|
|
;;;; Code
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-code (code _contents 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 16:00:50 +00:00
|
|
|
|
"Return a CODE object from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual
|
|
|
|
|
information."
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(format (plist-get info :ascii-verbatim-format)
|
|
|
|
|
(org-element-property :value code)))
|
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 16:00:50 +00:00
|
|
|
|
|
|
|
|
|
|
2012-01-07 13:01:25 +00:00
|
|
|
|
;;;; Drawer
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii-drawer (drawer contents info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"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 12:47:20 +00:00
|
|
|
|
(let ((name (org-element-property :drawer-name drawer))
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(width (org-ascii--current-text-width drawer info)))
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(funcall (plist-get info :ascii-format-drawer-function)
|
|
|
|
|
name contents width)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Dynamic Block
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-dynamic-block (_dynamic-block contents _info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Transcode a DYNAMIC-BLOCK element from Org to ASCII.
|
|
|
|
|
CONTENTS holds the contents of the block. INFO is a plist
|
2012-05-04 12:02:41 +00:00
|
|
|
|
holding contextual information."
|
2012-01-07 13:01:25 +00:00
|
|
|
|
contents)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Entity
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-entity (entity _contents info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"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 12:47:20 +00:00
|
|
|
|
(org-element-property
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(intern (concat ":" (symbol-name (plist-get info :ascii-charset))))
|
|
|
|
|
entity))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Example Block
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-example-block (example-block _contents info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Transcode a EXAMPLE-BLOCK element from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual information."
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(org-ascii--justify-element
|
|
|
|
|
(org-ascii--box-string
|
|
|
|
|
(org-export-format-code-default example-block info) info)
|
|
|
|
|
example-block info))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Export Snippet
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-export-snippet (export-snippet _contents _info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Transcode a EXPORT-SNIPPET object from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual information."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(when (eq (org-export-snippet-backend export-snippet) 'ascii)
|
2012-02-23 17:10:14 +00:00
|
|
|
|
(org-element-property :value export-snippet)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
2014-09-08 09:57:27 +00:00
|
|
|
|
;;;; Export Block
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-export-block (export-block _contents info)
|
2014-09-08 09:57:27 +00:00
|
|
|
|
"Transcode a EXPORT-BLOCK element from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual information."
|
|
|
|
|
(when (string= (org-element-property :type export-block) "ASCII")
|
|
|
|
|
(org-ascii--justify-element
|
|
|
|
|
(org-element-property :value export-block) export-block info)))
|
|
|
|
|
|
|
|
|
|
|
2012-01-07 13:01:25 +00:00
|
|
|
|
;;;; Fixed Width
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-fixed-width (fixed-width _contents info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Transcode a FIXED-WIDTH element from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual information."
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(org-ascii--justify-element
|
|
|
|
|
(org-ascii--box-string
|
|
|
|
|
(org-remove-indentation
|
2020-02-18 21:57:37 +00:00
|
|
|
|
(org-element-property :value fixed-width))
|
|
|
|
|
info)
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
fixed-width info))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Footnote Definition
|
|
|
|
|
|
|
|
|
|
;; Footnote Definitions are ignored. They are compiled at the end of
|
2013-04-21 21:51:54 +00:00
|
|
|
|
;; the document, by `org-ascii-inner-template'.
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Footnote Reference
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-footnote-reference (footnote-reference _contents info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"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
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii-headline (headline contents info)
|
2013-02-23 12:47:44 +00:00
|
|
|
|
"Transcode a HEADLINE element from Org to ASCII.
|
2012-01-07 13:01:25 +00:00
|
|
|
|
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 12:47:20 +00:00
|
|
|
|
(unless (org-element-property :footnote-section-p headline)
|
2016-04-13 21:16:25 +00:00
|
|
|
|
(let* ((low-level (org-export-low-level-p headline info))
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(width (org-ascii--current-text-width headline info))
|
2016-04-13 21:16:25 +00:00
|
|
|
|
;; Export title early so that any link in it can be
|
|
|
|
|
;; exported and seen in `org-ascii--unique-links'.
|
|
|
|
|
(title (org-ascii--build-title headline info width (not low-level)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
;; Blank lines between headline and its contents.
|
2013-01-27 22:11:34 +00:00
|
|
|
|
;; `org-ascii-headline-spacing', when set, overwrites
|
2012-01-07 13:01:25 +00:00
|
|
|
|
;; original buffer's spacing.
|
|
|
|
|
(pre-blanks
|
2016-04-13 21:16:25 +00:00
|
|
|
|
(make-string (or (car (plist-get info :ascii-headline-spacing))
|
|
|
|
|
(org-element-property :pre-blank headline)
|
|
|
|
|
0)
|
|
|
|
|
?\n))
|
|
|
|
|
(links (and (plist-get info :ascii-links-to-notes)
|
|
|
|
|
(org-ascii--describe-links
|
|
|
|
|
(org-ascii--unique-links headline info) width info)))
|
|
|
|
|
;; Re-build contents, inserting section links at the right
|
|
|
|
|
;; place. The cost is low since build results are cached.
|
|
|
|
|
(body
|
|
|
|
|
(if (not (org-string-nw-p links)) contents
|
|
|
|
|
(let* ((contents (org-element-contents headline))
|
|
|
|
|
(section (let ((first (car contents)))
|
2023-05-16 10:41:53 +00:00
|
|
|
|
(and (org-element-type-p first 'section)
|
2016-04-13 21:16:25 +00:00
|
|
|
|
first))))
|
|
|
|
|
(concat (and section
|
|
|
|
|
(concat (org-element-normalize-string
|
|
|
|
|
(org-export-data section info))
|
|
|
|
|
"\n\n"))
|
|
|
|
|
links
|
|
|
|
|
(mapconcat (lambda (e) (org-export-data e info))
|
|
|
|
|
(if section (cdr contents) contents)
|
|
|
|
|
""))))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
;; Deep subtree: export it as a list item.
|
2016-04-13 21:16:25 +00:00
|
|
|
|
(if low-level
|
|
|
|
|
(let* ((bullets (cdr (assq (plist-get info :ascii-charset)
|
|
|
|
|
(plist-get info :ascii-bullets))))
|
|
|
|
|
(bullet
|
|
|
|
|
(format "%c "
|
|
|
|
|
(nth (mod (1- low-level) (length bullets)) bullets))))
|
|
|
|
|
(concat bullet title "\n" pre-blanks
|
|
|
|
|
;; Contents, indented by length of bullet.
|
|
|
|
|
(org-ascii--indent-string body (length bullet))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
;; Else: Standard headline.
|
2016-04-13 21:16:25 +00:00
|
|
|
|
(concat title "\n" pre-blanks body)))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Horizontal Rule
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-horizontal-rule (horizontal-rule _contents info)
|
2012-07-23 07:43:29 +00:00
|
|
|
|
"Transcode an HORIZONTAL-RULE object from Org to ASCII.
|
2012-01-07 13:01:25 +00:00
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual
|
|
|
|
|
information."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(let ((text-width (org-ascii--current-text-width horizontal-rule info))
|
2012-07-25 10:55:00 +00:00
|
|
|
|
(spec-width
|
|
|
|
|
(org-export-read-attribute :attr_ascii horizontal-rule :width)))
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(org-ascii--justify-lines
|
2013-03-08 23:58:31 +00:00
|
|
|
|
(make-string (if (and spec-width (string-match "^[0-9]+$" spec-width))
|
|
|
|
|
(string-to-number spec-width)
|
|
|
|
|
text-width)
|
2012-07-25 10:55:00 +00:00
|
|
|
|
(if (eq (plist-get info :ascii-charset) 'utf-8) ?― ?-))
|
|
|
|
|
text-width 'center)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Inline Src Block
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-inline-src-block (inline-src-block _contents info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Transcode an INLINE-SRC-BLOCK element from Org to ASCII.
|
|
|
|
|
CONTENTS holds the contents of the item. INFO is a plist holding
|
|
|
|
|
contextual information."
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(format (plist-get info :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 12:47:20 +00:00
|
|
|
|
(org-element-property :value inline-src-block)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Inlinetask
|
|
|
|
|
|
2013-11-14 13:05:18 +00:00
|
|
|
|
(defun org-ascii-format-inlinetask-default
|
2021-09-29 07:22:47 +00:00
|
|
|
|
(_todo _type _priority _name _tags contents width inlinetask info)
|
2013-11-14 13:05:18 +00:00
|
|
|
|
"Format an inline task element for ASCII export.
|
|
|
|
|
See `org-ascii-format-inlinetask-function' for a description
|
2023-12-13 14:47:11 +00:00
|
|
|
|
of the parameters CONTENTS, WIDTH, INLINETASK, and INFO."
|
2013-11-14 13:05:18 +00:00
|
|
|
|
(let* ((utf8p (eq (plist-get info :ascii-charset) 'utf-8))
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(width (or width (plist-get info :ascii-inlinetask-width))))
|
2013-11-14 13:05:18 +00:00
|
|
|
|
(org-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-ascii--build-title inlinetask info width)))
|
2014-01-16 15:09:30 +00:00
|
|
|
|
(if (<= (string-width title) width) title
|
2013-11-14 13:05:18 +00:00
|
|
|
|
(org-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.
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(- (plist-get info :ascii-text-width) (plist-get info :ascii-global-margin)
|
2023-05-18 11:35:35 +00:00
|
|
|
|
(if (not (org-element-lineage inlinetask 'headline)) 0
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(plist-get info :ascii-inner-margin))
|
2013-11-14 13:05:18 +00:00
|
|
|
|
(org-ascii--current-text-width inlinetask info)))))
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii-inlinetask (inlinetask contents info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Transcode an INLINETASK element from Org to ASCII.
|
|
|
|
|
CONTENTS holds the contents of the block. INFO is a plist
|
|
|
|
|
holding contextual information."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(let ((width (org-ascii--current-text-width inlinetask info)))
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(funcall (plist-get info :ascii-format-inlinetask-function)
|
2013-11-14 13:05:18 +00: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 inlinetask info)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2012-11-23 17:43:05 +00: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 16:00:50 +00:00
|
|
|
|
;;;; Italic
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-italic (_italic contents _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 16:00:50 +00:00
|
|
|
|
"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 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
;;;; Item
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii-item (item contents info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Transcode an ITEM element from Org to ASCII.
|
|
|
|
|
CONTENTS holds the contents of the item. INFO is a plist holding
|
|
|
|
|
contextual information."
|
2012-06-09 13:34:27 +00:00
|
|
|
|
(let* ((utf8p (eq (plist-get info :ascii-charset) 'utf-8))
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(checkbox (org-ascii--checkbox item info))
|
2023-05-03 12:56:35 +00:00
|
|
|
|
(list-type (org-element-property :type (org-element-parent item)))
|
2012-06-09 13:34:27 +00:00
|
|
|
|
(bullet
|
|
|
|
|
;; First parent of ITEM is always the plain-list. Get
|
|
|
|
|
;; `:type' property from it.
|
2017-11-06 13:27:45 +00:00
|
|
|
|
(pcase list-type
|
|
|
|
|
(`descriptive
|
|
|
|
|
(concat checkbox
|
|
|
|
|
(org-export-data (org-element-property :tag item)
|
|
|
|
|
info)))
|
|
|
|
|
(`ordered
|
|
|
|
|
;; Return correct number for ITEM, paying attention to
|
|
|
|
|
;; counters.
|
|
|
|
|
(let* ((struct (org-element-property :structure item))
|
|
|
|
|
(bul (org-list-bullet-string
|
|
|
|
|
(org-element-property :bullet item)))
|
|
|
|
|
(num (number-to-string
|
|
|
|
|
(car (last (org-list-get-item-number
|
2023-05-03 14:26:41 +00:00
|
|
|
|
(org-element-begin item)
|
2017-11-06 13:27:45 +00:00
|
|
|
|
struct
|
|
|
|
|
(org-list-prevs-alist struct)
|
|
|
|
|
(org-list-parents-alist struct)))))))
|
2023-10-07 10:22:09 +00:00
|
|
|
|
(replace-regexp-in-string "[0-9A-Za-z]+" num bul)))
|
2017-11-06 13:27:45 +00:00
|
|
|
|
(_ (let ((bul (org-list-bullet-string
|
|
|
|
|
(org-element-property :bullet item))))
|
|
|
|
|
;; Change bullets into more visible form if UTF-8 is active.
|
|
|
|
|
(if (not utf8p) bul
|
|
|
|
|
(replace-regexp-in-string
|
|
|
|
|
"-" "•"
|
2012-02-20 16:15:04 +00:00
|
|
|
|
(replace-regexp-in-string
|
2019-03-05 02:00:00 +00:00
|
|
|
|
"\\+" "⁃"
|
|
|
|
|
(replace-regexp-in-string "\\*" "‣" bul))))))))
|
2017-11-06 13:27:45 +00:00
|
|
|
|
(indentation (if (eq list-type 'descriptive) org-ascii-quote-margin
|
|
|
|
|
(string-width bullet))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(concat
|
2012-02-20 16:15:04 +00:00
|
|
|
|
bullet
|
2017-11-06 13:27:45 +00:00
|
|
|
|
checkbox
|
2012-01-07 13:01:25 +00: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.
|
2017-11-06 13:27:45 +00:00
|
|
|
|
(let ((contents (org-ascii--indent-string contents indentation)))
|
2017-11-06 22:07:17 +00:00
|
|
|
|
;; Determine if contents should follow the bullet or start
|
|
|
|
|
;; a new line. Do the former when the first contributing
|
|
|
|
|
;; element to contents is a paragraph. In descriptive lists
|
|
|
|
|
;; however, contents always start a new line.
|
|
|
|
|
(if (and (not (eq list-type 'descriptive))
|
|
|
|
|
(org-string-nw-p contents)
|
|
|
|
|
(eq 'paragraph
|
|
|
|
|
(org-element-type
|
|
|
|
|
(cl-some (lambda (e)
|
|
|
|
|
(and (org-string-nw-p (org-export-data e info))
|
|
|
|
|
e))
|
|
|
|
|
(org-element-contents item)))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(org-trim contents)
|
|
|
|
|
(concat "\n" contents))))))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Keyword
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-keyword (keyword _contents info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Transcode a KEYWORD element from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual
|
|
|
|
|
information."
|
2014-10-25 15:14:34 +00:00
|
|
|
|
(let ((key (org-element-property :key keyword))
|
|
|
|
|
(value (org-element-property :value keyword)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(cond
|
2014-10-25 15:14:34 +00:00
|
|
|
|
((string= key "ASCII") (org-ascii--justify-element value keyword info))
|
2012-03-28 12:04:26 +00:00
|
|
|
|
((string= key "TOC")
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(org-ascii--justify-element
|
2014-10-25 15:14:34 +00:00
|
|
|
|
(let ((case-fold-search t))
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(cond
|
2016-07-25 13:21:12 +00:00
|
|
|
|
((string-match-p "\\<headlines\\>" value)
|
2014-10-25 15:14:34 +00:00
|
|
|
|
(let ((depth (and (string-match "\\<[0-9]+\\>" value)
|
|
|
|
|
(string-to-number (match-string 0 value))))
|
2019-05-15 18:22:05 +00:00
|
|
|
|
(scope
|
|
|
|
|
(cond
|
|
|
|
|
((string-match ":target +\\(\".+?\"\\|\\S-+\\)" value) ;link
|
|
|
|
|
(org-export-resolve-link
|
|
|
|
|
(org-strip-quotes (match-string 1 value)) info))
|
|
|
|
|
((string-match-p "\\<local\\>" value) keyword)))) ;local
|
|
|
|
|
(org-ascii--build-toc info depth keyword scope)))
|
2016-07-25 13:21:12 +00:00
|
|
|
|
((string-match-p "\\<tables\\>" value)
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(org-ascii--list-tables keyword info))
|
2016-07-25 13:21:12 +00:00
|
|
|
|
((string-match-p "\\<listings\\>" value)
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(org-ascii--list-listings keyword info))))
|
|
|
|
|
keyword info)))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
2023-03-05 21:01:11 +00:00
|
|
|
|
;;;; LaTeX Environment
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-latex-environment (latex-environment _contents info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Transcode a LATEX-ENVIRONMENT element from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual
|
|
|
|
|
information."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(when (plist-get info :with-latex)
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(org-ascii--justify-element
|
|
|
|
|
(org-remove-indentation (org-element-property :value latex-environment))
|
|
|
|
|
latex-environment info)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
2023-03-05 21:01:11 +00:00
|
|
|
|
;;;; LaTeX Fragment
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-latex-fragment (latex-fragment _contents info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Transcode a LATEX-FRAGMENT object from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual
|
|
|
|
|
information."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(when (plist-get info :with-latex)
|
|
|
|
|
(org-element-property :value latex-fragment)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Line Break
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-line-break (_line-break _contents _info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Transcode a LINE-BREAK object from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual
|
|
|
|
|
information." hard-newline)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Link
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii-link (link desc info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"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."
|
2020-02-20 08:29:21 +00:00
|
|
|
|
(let ((type (org-element-property :type link)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(cond
|
2020-02-14 09:00:15 +00:00
|
|
|
|
((org-export-custom-protocol-maybe link desc 'ascii info))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
((string= type "coderef")
|
2020-02-20 08:29:21 +00:00
|
|
|
|
(let ((ref (org-element-property :path link)))
|
|
|
|
|
(format (org-export-get-coderef-format ref desc)
|
|
|
|
|
(org-export-resolve-coderef ref info))))
|
2014-03-20 17:21:29 +00:00
|
|
|
|
;; Do not apply a special syntax on radio links. Though, use
|
|
|
|
|
;; transcoded target's contents as output.
|
2014-03-23 17:04:22 +00:00
|
|
|
|
((string= type "radio") desc)
|
2016-12-15 14:59:11 +00:00
|
|
|
|
((member type '("custom-id" "fuzzy" "id"))
|
|
|
|
|
(let ((destination (if (string= type "fuzzy")
|
|
|
|
|
(org-export-resolve-fuzzy-link link info)
|
|
|
|
|
(org-export-resolve-id-link link info))))
|
|
|
|
|
(pcase (org-element-type destination)
|
|
|
|
|
((guard desc)
|
|
|
|
|
(if (plist-get info :ascii-links-to-notes)
|
|
|
|
|
(format "[%s]" desc)
|
2023-10-24 14:45:36 +00:00
|
|
|
|
(format "[%s] (%s)"
|
|
|
|
|
desc
|
|
|
|
|
(org-ascii--describe-datum destination info))))
|
2016-12-15 14:59:11 +00:00
|
|
|
|
;; External file.
|
|
|
|
|
(`plain-text destination)
|
|
|
|
|
(`headline
|
|
|
|
|
(if (org-export-numbered-headline-p destination info)
|
|
|
|
|
(mapconcat #'number-to-string
|
|
|
|
|
(org-export-get-headline-number destination info)
|
|
|
|
|
".")
|
|
|
|
|
(org-export-data (org-element-property :title destination) info)))
|
|
|
|
|
;; Handle enumerable elements and targets within them.
|
|
|
|
|
((and (let number (org-export-get-ordinal
|
|
|
|
|
destination info nil #'org-ascii--has-caption-p))
|
|
|
|
|
(guard number))
|
|
|
|
|
(if (atom number) (number-to-string number)
|
|
|
|
|
(mapconcat #'number-to-string number ".")))
|
|
|
|
|
;; Don't know what to do. Signal it.
|
|
|
|
|
(_ "???"))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(t
|
2020-02-20 08:29:21 +00:00
|
|
|
|
(let ((path (org-element-property :raw-link link)))
|
|
|
|
|
(if (not (org-string-nw-p desc)) (format "<%s>" path)
|
|
|
|
|
(concat (format "[%s]" desc)
|
|
|
|
|
(and (not (plist-get info :ascii-links-to-notes))
|
|
|
|
|
(format " (<%s>)" path)))))))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
2013-09-25 19:27:29 +00:00
|
|
|
|
;;;; Node Properties
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-node-property (node-property _contents _info)
|
2013-09-25 19:27:29 +00:00
|
|
|
|
"Transcode a NODE-PROPERTY element from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual
|
|
|
|
|
information."
|
|
|
|
|
(format "%s:%s"
|
|
|
|
|
(org-element-property :key node-property)
|
|
|
|
|
(let ((value (org-element-property :value node-property)))
|
|
|
|
|
(if value (concat " " value) ""))))
|
|
|
|
|
|
|
|
|
|
|
2012-01-07 13:01:25 +00:00
|
|
|
|
;;;; Paragraph
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii-paragraph (paragraph contents info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"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."
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(org-ascii--justify-element
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(let ((indented-line-width (plist-get info :ascii-indented-line-width)))
|
|
|
|
|
(if (not (wholenump indented-line-width)) contents
|
|
|
|
|
(concat
|
|
|
|
|
;; Do not indent first paragraph in a section.
|
|
|
|
|
(unless (and (not (org-export-get-previous-element paragraph info))
|
2023-05-16 10:41:53 +00:00
|
|
|
|
(org-element-type-p
|
2023-05-03 12:56:35 +00:00
|
|
|
|
(org-element-parent paragraph) 'section))
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(make-string indented-line-width ?\s))
|
|
|
|
|
(replace-regexp-in-string "\\`[ \t]+" "" contents))))
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
paragraph info))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Plain List
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii-plain-list (plain-list contents info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Transcode a PLAIN-LIST element from Org to ASCII.
|
|
|
|
|
CONTENTS is the contents of the list. INFO is a plist holding
|
|
|
|
|
contextual information."
|
2014-09-20 12:40:01 +00:00
|
|
|
|
(let ((margin (plist-get info :ascii-list-margin)))
|
|
|
|
|
(if (or (< margin 1)
|
2023-05-03 12:56:35 +00:00
|
|
|
|
(org-element-type-p (org-element-parent plain-list) 'item))
|
2014-09-20 12:40:01 +00:00
|
|
|
|
contents
|
|
|
|
|
(org-ascii--indent-string contents margin))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Plain Text
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii-plain-text (text info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Transcode a TEXT string from Org to ASCII.
|
|
|
|
|
INFO is a plist used as a communication channel."
|
2012-10-26 22:36:00 +00:00
|
|
|
|
(let ((utf8p (eq (plist-get info :ascii-charset) 'utf-8)))
|
|
|
|
|
(when (and utf8p (plist-get info :with-smart-quotes))
|
|
|
|
|
(setq text (org-export-activate-smart-quotes text :utf-8 info)))
|
|
|
|
|
(if (not (plist-get info :with-special-strings)) text
|
|
|
|
|
(setq text (replace-regexp-in-string "\\\\-" "" text))
|
|
|
|
|
(if (not utf8p) text
|
|
|
|
|
;; Usual replacements in utf-8 with proper option set.
|
|
|
|
|
(replace-regexp-in-string
|
|
|
|
|
"\\.\\.\\." "…"
|
|
|
|
|
(replace-regexp-in-string
|
|
|
|
|
"--" "–"
|
|
|
|
|
(replace-regexp-in-string "---" "—" text)))))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
2012-04-29 00:11:22 +00:00
|
|
|
|
;;;; Planning
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-planning (planning _contents info)
|
2012-04-29 00:11:22 +00:00
|
|
|
|
"Transcode a PLANNING element from Org to ASCII.
|
2012-01-07 13:01:25 +00:00
|
|
|
|
CONTENTS is nil. INFO is a plist used as a communication
|
|
|
|
|
channel."
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(org-ascii--justify-element
|
|
|
|
|
(mapconcat
|
|
|
|
|
#'identity
|
|
|
|
|
(delq nil
|
|
|
|
|
(list (let ((closed (org-element-property :closed planning)))
|
|
|
|
|
(when closed
|
|
|
|
|
(concat org-closed-string " "
|
2014-12-03 16:09:43 +00:00
|
|
|
|
(org-timestamp-translate closed))))
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(let ((deadline (org-element-property :deadline planning)))
|
|
|
|
|
(when deadline
|
|
|
|
|
(concat org-deadline-string " "
|
2014-12-03 16:09:43 +00:00
|
|
|
|
(org-timestamp-translate deadline))))
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(let ((scheduled (org-element-property :scheduled planning)))
|
|
|
|
|
(when scheduled
|
|
|
|
|
(concat org-scheduled-string " "
|
2014-12-03 16:09:43 +00:00
|
|
|
|
(org-timestamp-translate scheduled))))))
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
" ")
|
|
|
|
|
planning info))
|
2012-04-29 00:11:22 +00:00
|
|
|
|
|
|
|
|
|
|
2013-09-25 19:27:29 +00:00
|
|
|
|
;;;; Property Drawer
|
|
|
|
|
|
|
|
|
|
(defun org-ascii-property-drawer (property-drawer contents info)
|
|
|
|
|
"Transcode a PROPERTY-DRAWER element from Org to ASCII.
|
|
|
|
|
CONTENTS holds the contents of the drawer. INFO is a plist
|
|
|
|
|
holding contextual information."
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(and (org-string-nw-p contents)
|
|
|
|
|
(org-ascii--justify-element contents property-drawer info)))
|
2013-09-25 19:27:29 +00:00
|
|
|
|
|
|
|
|
|
|
2012-01-07 13:01:25 +00:00
|
|
|
|
;;;; Quote Block
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-quote-block (_quote-block contents info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Transcode a QUOTE-BLOCK element from Org to ASCII.
|
|
|
|
|
CONTENTS holds the contents of the block. INFO is a plist
|
|
|
|
|
holding contextual information."
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(org-ascii--indent-string contents (plist-get info :ascii-quote-margin)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Radio Target
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-radio-target (_radio-target contents _info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Transcode a RADIO-TARGET object from Org to ASCII.
|
|
|
|
|
CONTENTS is the contents of the target. INFO is a plist holding
|
|
|
|
|
contextual information."
|
|
|
|
|
contents)
|
|
|
|
|
|
2012-11-23 17:43:05 +00:00
|
|
|
|
|
2012-01-07 13:01:25 +00:00
|
|
|
|
;;;; Section
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii-section (section contents info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Transcode a SECTION element from Org to ASCII.
|
|
|
|
|
CONTENTS is the contents of the section. INFO is a plist holding
|
|
|
|
|
contextual information."
|
2016-04-13 21:16:25 +00:00
|
|
|
|
(let ((links
|
|
|
|
|
(and (plist-get info :ascii-links-to-notes)
|
|
|
|
|
;; Take care of links in first section of the document.
|
2023-05-18 11:35:35 +00:00
|
|
|
|
(not (org-element-lineage section 'headline))
|
2016-04-13 21:16:25 +00:00
|
|
|
|
(org-ascii--describe-links
|
|
|
|
|
(org-ascii--unique-links section info)
|
|
|
|
|
(org-ascii--current-text-width section info)
|
|
|
|
|
info))))
|
|
|
|
|
(org-ascii--indent-string
|
|
|
|
|
(if (not (org-string-nw-p links)) contents
|
|
|
|
|
(concat (org-element-normalize-string contents) "\n\n" links))
|
|
|
|
|
;; Do not apply inner margin if parent headline is low level.
|
2023-05-18 11:35:35 +00:00
|
|
|
|
(let ((headline (org-element-lineage section 'headline)))
|
2016-04-13 21:16:25 +00:00
|
|
|
|
(if (or (not headline) (org-export-low-level-p headline info)) 0
|
|
|
|
|
(plist-get info :ascii-inner-margin))))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Special Block
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-special-block (_special-block contents _info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Transcode a SPECIAL-BLOCK element from Org to ASCII.
|
|
|
|
|
CONTENTS holds the contents of the block. INFO is a plist
|
|
|
|
|
holding contextual information."
|
2017-07-06 07:23:30 +00:00
|
|
|
|
;; "JUSTIFYLEFT" and "JUSTIFYRIGHT" have already been taken care of
|
2014-09-08 09:57:27 +00:00
|
|
|
|
;; at a lower level. There is no other special block type to
|
|
|
|
|
;; handle.
|
|
|
|
|
contents)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Src Block
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-src-block (src-block _contents info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Transcode a SRC-BLOCK element from Org to ASCII.
|
|
|
|
|
CONTENTS holds the contents of the item. INFO is a plist holding
|
|
|
|
|
contextual information."
|
2013-03-03 18:10:42 +00:00
|
|
|
|
(let ((caption (org-ascii--build-caption src-block info))
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(caption-above-p (plist-get info :ascii-caption-above))
|
2013-03-03 18:10:42 +00:00
|
|
|
|
(code (org-export-format-code-default src-block info)))
|
|
|
|
|
(if (equal code "") ""
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(org-ascii--justify-element
|
|
|
|
|
(concat
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(and caption caption-above-p (concat caption "\n"))
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(org-ascii--box-string code info)
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(and caption (not caption-above-p) (concat "\n" caption)))
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
src-block info))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2012-11-23 17:43:05 +00:00
|
|
|
|
|
2012-01-07 13:01:25 +00:00
|
|
|
|
;;;; Statistics Cookie
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-statistics-cookie (statistics-cookie _contents _info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"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 12:47:20 +00:00
|
|
|
|
(org-element-property :value statistics-cookie))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Subscript
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-subscript (subscript contents _info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Transcode a SUBSCRIPT object from Org to ASCII.
|
|
|
|
|
CONTENTS is the contents of the object. INFO is a plist holding
|
|
|
|
|
contextual information."
|
2017-03-11 10:21:26 +00:00
|
|
|
|
(if (org-element-property :use-brackets-p subscript)
|
|
|
|
|
(format "_{%s}" contents)
|
|
|
|
|
(format "_%s" contents)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Superscript
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-superscript (superscript contents _info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Transcode a SUPERSCRIPT object from Org to ASCII.
|
|
|
|
|
CONTENTS is the contents of the object. INFO is a plist holding
|
|
|
|
|
contextual information."
|
2017-03-11 10:21:26 +00:00
|
|
|
|
(if (org-element-property :use-brackets-p superscript)
|
|
|
|
|
(format "^{%s}" contents)
|
|
|
|
|
(format "^%s" contents)))
|
2012-01-07 13:01:25 +00: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 16:00:50 +00:00
|
|
|
|
;;;; Strike-through
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-strike-through (_strike-through contents _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 16:00:50 +00:00
|
|
|
|
"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 13:01:25 +00:00
|
|
|
|
;;;; Table
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii-table (table contents info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Transcode a TABLE element from Org to ASCII.
|
2012-05-23 21:21:25 +00:00
|
|
|
|
CONTENTS is the contents of the table. INFO is a plist holding
|
|
|
|
|
contextual information."
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(let ((caption (org-ascii--build-caption table info))
|
|
|
|
|
(caption-above-p (plist-get info :ascii-caption-above)))
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(org-ascii--justify-element
|
|
|
|
|
(concat
|
|
|
|
|
;; Possibly add a caption string above.
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(and caption caption-above-p (concat caption "\n"))
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
;; Insert table. Note: "table.el" tables are left unmodified.
|
|
|
|
|
(cond ((eq (org-element-property :type table) 'org) contents)
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
((and (plist-get info :ascii-table-use-ascii-art)
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(eq (plist-get info :ascii-charset) 'utf-8)
|
2023-01-23 15:06:46 +00:00
|
|
|
|
(org-require-package 'ascii-art-to-unicode nil 'noerror))
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(with-temp-buffer
|
|
|
|
|
(insert (org-remove-indentation
|
|
|
|
|
(org-element-property :value table)))
|
|
|
|
|
(goto-char (point-min))
|
|
|
|
|
(aa2u)
|
|
|
|
|
(goto-char (point-max))
|
|
|
|
|
(skip-chars-backward " \r\t\n")
|
|
|
|
|
(buffer-substring (point-min) (point))))
|
|
|
|
|
(t (org-remove-indentation (org-element-property :value table))))
|
|
|
|
|
;; Possible add a caption string below.
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(and (not caption-above-p) caption))
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
table info)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
2012-04-21 07:52:08 +00:00
|
|
|
|
;;;; Table Cell
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii--table-cell-width (table-cell info)
|
2012-04-21 07:52:08 +00:00
|
|
|
|
"Return width of TABLE-CELL.
|
|
|
|
|
|
2012-05-23 21:21:25 +00:00
|
|
|
|
INFO is a plist used as a communication channel.
|
|
|
|
|
|
2012-04-21 07:52:08 +00:00
|
|
|
|
Width of a cell is determined either by a width cookie in the
|
2012-05-23 21:21:25 +00:00
|
|
|
|
same column as the cell, or by the maximum cell's length in that
|
|
|
|
|
column.
|
2012-04-21 07:52:08 +00:00
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
When `org-ascii-table-widen-columns' is non-nil, width cookies
|
2012-05-23 21:21:25 +00:00
|
|
|
|
are ignored."
|
2023-05-03 12:56:35 +00:00
|
|
|
|
(let* ((row (org-element-parent table-cell))
|
|
|
|
|
(table (org-element-parent row))
|
2013-05-18 16:22:11 +00:00
|
|
|
|
(col (let ((cells (org-element-contents row)))
|
|
|
|
|
(- (length cells) (length (memq table-cell cells)))))
|
|
|
|
|
(cache
|
|
|
|
|
(or (plist-get info :ascii-table-cell-width-cache)
|
|
|
|
|
(plist-get (setq info
|
|
|
|
|
(plist-put info :ascii-table-cell-width-cache
|
|
|
|
|
(make-hash-table :test 'equal)))
|
|
|
|
|
:ascii-table-cell-width-cache)))
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(key (cons table col))
|
|
|
|
|
(widenp (plist-get info :ascii-table-widen-columns)))
|
2013-05-18 16:22:11 +00:00
|
|
|
|
(or (gethash key cache)
|
|
|
|
|
(puthash
|
|
|
|
|
key
|
2014-06-26 10:17:28 +00:00
|
|
|
|
(let ((cookie-width (org-export-table-cell-width table-cell info)))
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(or (and (not widenp) cookie-width)
|
2014-06-26 10:17:28 +00:00
|
|
|
|
(let ((contents-width
|
|
|
|
|
(let ((max-width 0))
|
|
|
|
|
(org-element-map table 'table-row
|
|
|
|
|
(lambda (row)
|
|
|
|
|
(setq max-width
|
|
|
|
|
(max (string-width
|
|
|
|
|
(org-export-data
|
|
|
|
|
(org-element-contents
|
|
|
|
|
(elt (org-element-contents row) col))
|
|
|
|
|
info))
|
|
|
|
|
max-width)))
|
|
|
|
|
info)
|
|
|
|
|
max-width)))
|
|
|
|
|
(cond ((not cookie-width) contents-width)
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(widenp (max cookie-width contents-width))
|
2014-06-26 10:17:28 +00:00
|
|
|
|
(t cookie-width)))))
|
2013-05-18 16:22:11 +00:00
|
|
|
|
cache))))
|
2012-04-21 07:52:08 +00:00
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii-table-cell (table-cell contents info)
|
2012-04-21 07:52:08 +00:00
|
|
|
|
"Transcode a TABLE-CELL object from Org to ASCII.
|
|
|
|
|
CONTENTS is the cell contents. INFO is a plist used as
|
|
|
|
|
a communication channel."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
;; Determine column width. When `org-ascii-table-widen-columns'
|
2012-04-21 07:52:08 +00:00
|
|
|
|
;; 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.
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(let ((width (org-ascii--table-cell-width table-cell info)))
|
2012-04-21 07:52:08 +00:00
|
|
|
|
;; When contents are too large, truncate them.
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(unless (or (plist-get info :ascii-table-widen-columns)
|
2014-01-16 15:09:30 +00:00
|
|
|
|
(<= (string-width (or contents "")) width))
|
2012-04-21 07:52:08 +00:00
|
|
|
|
(setq contents (concat (substring contents 0 (- width 2)) "=>")))
|
|
|
|
|
;; Align contents correctly within the cell.
|
2012-01-07 13:01:25 +00:00
|
|
|
|
(let* ((indent-tabs-mode nil)
|
2012-04-21 07:52:08 +00:00
|
|
|
|
(data
|
|
|
|
|
(when contents
|
ox-ascii: Implement "justifyright" and "justifyleft" blocks
* lisp/ox-ascii.el
(org-ascii--justify-lines): New function. Renamed from
`org-ascii--justify-string'.
(org-ascii--justify-element, org-ascii--current-justification): New
functions.
(org-ascii-verse-block, org-ascii-table-cell, org-ascii-table
org-ascii-src-block, org-ascii-property-drawer, org-ascii-planning,
org-ascii-paragraph, org-ascii-paragraph,
org-ascii-latex-environment, org-ascii-keyword,
org-ascii-horizontal-rule, org-ascii-fixed-width,
org-ascii-export-block, org-ascii-example-block, org-ascii-clock,
org-ascii-template--document-title,
org-ascii-template--document-title): Use new functions.
(org-ascii-center-block): Do not process contents anymore since they
are already justified.
* doc/org.texi (ASCII/Latin-1/UTF-8 export): Document new feature.
Also document `org-ascii-text-width' since this is closely related.
This patches also fixes centering of tables.
2014-05-21 21:37:00 +00:00
|
|
|
|
(org-ascii--justify-lines
|
2012-04-21 07:52:08 +00:00
|
|
|
|
contents width
|
|
|
|
|
(org-export-table-cell-alignment table-cell info)))))
|
2014-01-16 15:09:30 +00:00
|
|
|
|
(setq contents
|
|
|
|
|
(concat data
|
2022-01-14 13:56:09 +00:00
|
|
|
|
;; FIXME: If CONTENTS was transformed by filters,
|
|
|
|
|
;; the whole width calculation can be wrong.
|
|
|
|
|
;; At least, make sure that we do not throw error
|
|
|
|
|
;; when CONTENTS is larger than width.
|
|
|
|
|
(make-string (max 0 (- width (string-width (or data "")))) ?\s))))
|
2012-04-21 07:52:08 +00:00
|
|
|
|
;; 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
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii-table-row (table-row contents info)
|
2012-04-21 07:52:08 +00:00
|
|
|
|
"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
|
2020-11-17 16:35:49 +00:00
|
|
|
|
(lambda (lcorner horiz vert rcorner)
|
|
|
|
|
(concat
|
|
|
|
|
(apply
|
|
|
|
|
'concat
|
|
|
|
|
(org-element-map table-row 'table-cell
|
|
|
|
|
(lambda (cell)
|
|
|
|
|
(let ((width (org-ascii--table-cell-width cell info))
|
|
|
|
|
(borders (org-export-table-cell-borders cell info)))
|
|
|
|
|
(concat
|
|
|
|
|
;; In order to know if CELL starts the row, do
|
|
|
|
|
;; not compare it with the first cell in the
|
|
|
|
|
;; row as there might be a special column.
|
|
|
|
|
;; Instead, compare it with first exportable
|
|
|
|
|
;; cell, obtained with `org-element-map'.
|
|
|
|
|
(when (and (memq 'left borders)
|
|
|
|
|
(eq (org-element-map table-row 'table-cell
|
|
|
|
|
'identity info t)
|
|
|
|
|
cell))
|
|
|
|
|
lcorner)
|
|
|
|
|
(make-string (+ 2 width) (string-to-char horiz))
|
|
|
|
|
(cond
|
|
|
|
|
((not (memq 'right borders)) nil)
|
|
|
|
|
((eq (car (last (org-element-contents table-row))) cell)
|
|
|
|
|
rcorner)
|
|
|
|
|
(t vert)))))
|
|
|
|
|
info)) "\n")))
|
2012-04-21 07:52:08 +00:00
|
|
|
|
(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 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
2012-04-29 00:23:09 +00:00
|
|
|
|
;;;; Timestamp
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-timestamp (timestamp _contents info)
|
2012-04-29 00:23:09 +00:00
|
|
|
|
"Transcode a TIMESTAMP object from Org to ASCII.
|
2012-01-07 13:01:25 +00:00
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual information."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(org-ascii-plain-text (org-timestamp-translate timestamp) info))
|
2012-01-07 13:01:25 +00: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 16:00:50 +00:00
|
|
|
|
;;;; Underline
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-underline (_underline contents _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 16:00:50 +00:00
|
|
|
|
"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 13:01:25 +00:00
|
|
|
|
;;;; Verbatim
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-verbatim (verbatim _contents info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Return a VERBATIM object from Org to ASCII.
|
|
|
|
|
CONTENTS is nil. INFO is a plist holding contextual information."
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(format (plist-get info :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 12:47:20 +00:00
|
|
|
|
(org-element-property :value verbatim)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
;;;; Verse Block
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii-verse-block (verse-block contents info)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"Transcode a VERSE-BLOCK element from Org to ASCII.
|
2012-04-25 20:15:29 +00:00
|
|
|
|
CONTENTS is verse block contents. INFO is a plist holding
|
|
|
|
|
contextual information."
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(org-ascii--indent-string
|
|
|
|
|
(org-ascii--justify-element contents verse-block info)
|
|
|
|
|
(plist-get info :ascii-quote-margin)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2012-11-23 17:43:05 +00:00
|
|
|
|
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2012-09-27 12:53:32 +00:00
|
|
|
|
;;; Filters
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-filter-headline-blank-lines (headline _backend info)
|
2013-02-23 12:47:44 +00:00
|
|
|
|
"Filter controlling number of blank lines after a headline.
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
HEADLINE is a string representing a transcoded headline. BACKEND
|
2023-04-20 12:11:19 +00:00
|
|
|
|
is symbol specifying backend used for export. INFO is plist
|
2015-10-26 00:56:00 +00:00
|
|
|
|
containing the communication channel.
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2023-04-20 12:11:19 +00:00
|
|
|
|
This function only applies to `ascii' backend. See
|
2013-01-27 22:11:34 +00:00
|
|
|
|
`org-ascii-headline-spacing' for information."
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(let ((headline-spacing (plist-get info :ascii-headline-spacing)))
|
|
|
|
|
(if (not headline-spacing) headline
|
|
|
|
|
(let ((blanks (make-string (1+ (cdr headline-spacing)) ?\n)))
|
|
|
|
|
(replace-regexp-in-string "\n\\(?:\n[ \t]*\\)*\\'" blanks headline)))))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-filter-paragraph-spacing (tree _backend info)
|
2012-09-27 12:53:32 +00:00
|
|
|
|
"Filter controlling number of blank lines between paragraphs.
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
TREE is the parse tree. BACKEND is the symbol specifying
|
2023-04-20 12:11:19 +00:00
|
|
|
|
backend used for export. INFO is a plist used as
|
2012-09-27 12:53:32 +00:00
|
|
|
|
a communication channel.
|
|
|
|
|
|
2013-02-25 08:17:51 +00:00
|
|
|
|
See `org-ascii-paragraph-spacing' for information."
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(let ((paragraph-spacing (plist-get info :ascii-paragraph-spacing)))
|
2014-08-03 19:41:37 +00:00
|
|
|
|
(when (wholenump paragraph-spacing)
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(org-element-map tree 'paragraph
|
|
|
|
|
(lambda (p)
|
2023-05-16 10:41:53 +00:00
|
|
|
|
(when (org-element-type-p
|
|
|
|
|
(org-export-get-next-element p info) 'paragraph)
|
ox-ascii: Use options instead of defcustoms in code
* lisp/ox-ascii.el (org-ascii--current-text-width,
org-ascii--build-title, org-ascii--build-toc,
org-ascii--list-listings, org-ascii--list-tables,
org-ascii-template--document-title, org-ascii-inner-template,
org-ascii-template, org-ascii-code, org-ascii-drawer,
org-ascii-headline, org-ascii-inline-src-block,
org-ascii-format-inlinetask-default, org-ascii-inlinetask,
org-ascii-link, org-ascii-paragraph, org-ascii-quote-block,
org-ascii-section, org-ascii-src-block, org-ascii-table,
org-ascii--table-cell-width, org-ascii-table-cell,
org-ascii-verbatim, org-ascii-verse-block,
org-ascii-filter-headline-blank-lines,
org-ascii-filter-paragraph-spacing): Use options instead of
hard coded variables.
2014-07-25 11:48:28 +00:00
|
|
|
|
(org-element-put-property p :post-blank paragraph-spacing))))))
|
2012-09-27 12:53:32 +00:00
|
|
|
|
tree)
|
|
|
|
|
|
2015-10-26 00:56:00 +00:00
|
|
|
|
(defun org-ascii-filter-comment-spacing (tree _backend info)
|
2013-02-25 08:17:51 +00:00
|
|
|
|
"Filter removing blank lines between comments.
|
2015-10-26 00:56:00 +00:00
|
|
|
|
TREE is the parse tree. BACKEND is the symbol specifying
|
2023-04-20 12:11:19 +00:00
|
|
|
|
backend used for export. INFO is a plist used as
|
2013-02-25 08:17:51 +00:00
|
|
|
|
a communication channel."
|
|
|
|
|
(org-element-map tree '(comment comment-block)
|
|
|
|
|
(lambda (c)
|
2023-05-16 10:41:53 +00:00
|
|
|
|
(when (org-element-type-p
|
|
|
|
|
(org-export-get-next-element c info)
|
|
|
|
|
'(comment comment-block))
|
2013-02-25 08:17:51 +00:00
|
|
|
|
(org-element-put-property c :post-blank 0))))
|
|
|
|
|
tree)
|
|
|
|
|
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
|
2012-10-08 12:20:56 +00:00
|
|
|
|
;;; End-user functions
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2018-10-25 14:53:30 +00:00
|
|
|
|
;;;###autoload
|
|
|
|
|
(defun org-ascii-convert-region-to-ascii ()
|
|
|
|
|
"Assume region has Org syntax, and convert it to plain ASCII."
|
|
|
|
|
(interactive)
|
|
|
|
|
(let ((org-ascii-charset 'ascii))
|
|
|
|
|
(org-export-replace-region-by 'ascii)))
|
|
|
|
|
|
2023-06-29 19:18:01 +00:00
|
|
|
|
(defalias 'org-export-region-to-ascii #'org-ascii-convert-region-to-ascii)
|
|
|
|
|
|
2018-10-25 14:53:30 +00:00
|
|
|
|
;;;###autoload
|
|
|
|
|
(defun org-ascii-convert-region-to-utf8 ()
|
|
|
|
|
"Assume region has Org syntax, and convert it to UTF-8."
|
|
|
|
|
(interactive)
|
|
|
|
|
(let ((org-ascii-charset 'utf-8))
|
|
|
|
|
(org-export-replace-region-by 'ascii)))
|
|
|
|
|
|
2023-06-29 19:18:01 +00:00
|
|
|
|
(defalias 'org-export-region-to-utf8 #'org-ascii-convert-region-to-utf8)
|
|
|
|
|
|
2012-07-20 11:11:44 +00:00
|
|
|
|
;;;###autoload
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii-export-as-ascii
|
2021-09-29 07:22:47 +00:00
|
|
|
|
(&optional async subtreep visible-only body-only ext-plist)
|
2012-07-20 11:11:44 +00:00
|
|
|
|
"Export current buffer to a text buffer.
|
|
|
|
|
|
|
|
|
|
If narrowing is active in the current buffer, only export its
|
|
|
|
|
narrowed part.
|
|
|
|
|
|
|
|
|
|
If a region is active, export that region.
|
|
|
|
|
|
2012-12-02 16:24:19 +00:00
|
|
|
|
A non-nil optional argument ASYNC means the process should happen
|
|
|
|
|
asynchronously. The resulting buffer should be accessible
|
|
|
|
|
through the `org-export-stack' interface.
|
|
|
|
|
|
2012-07-20 11:11:44 +00:00
|
|
|
|
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.
|
|
|
|
|
|
2013-02-13 12:55:49 +00:00
|
|
|
|
When optional argument BODY-ONLY is non-nil, strip title and
|
|
|
|
|
table of contents from output.
|
2012-07-20 11:11:44 +00:00
|
|
|
|
|
|
|
|
|
EXT-PLIST, when provided, is a property list with external
|
|
|
|
|
parameters overriding Org default settings, but still inferior to
|
|
|
|
|
file-local settings.
|
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
Export is done in a buffer named \"*Org ASCII Export*\", which
|
2012-07-26 12:51:45 +00:00
|
|
|
|
will be displayed when `org-export-show-temporary-export-buffer'
|
|
|
|
|
is non-nil."
|
2012-07-20 11:11:44 +00:00
|
|
|
|
(interactive)
|
Export back-ends: Apply changes to export functions
* contrib/lisp/ox-confluence.el (org-confluence-export-as-confluence):
* contrib/lisp/ox-deck.el (org-deck-export-as-html,
org-deck-export-to-html):
* contrib/lisp/ox-freemind.el (org-freemind-export-to-freemind):
* contrib/lisp/ox-groff.el (org-groff-export-to-groff,
org-groff-export-to-pdf):
* contrib/lisp/ox-koma-letter.el (org-koma-letter-export-as-latex,
org-koma-letter-export-to-latex, org-koma-letter-export-to-pdf):
* contrib/lisp/ox-rss.el (org-rss-export-as-rss,
org-rss-export-to-rss):
* contrib/lisp/ox-s5.el (org-s5-export-as-html,
org-s5-export-to-html):
* contrib/lisp/ox-taskjuggler.el (org-taskjuggler-export):
* lisp/ob-haskell.el:
* lisp/ox-ascii.el (org-ascii-export-as-ascii,
org-ascii-export-to-ascii):
* lisp/ox-beamer.el (org-beamer-export-as-latex,
org-beamer-export-to-latex, org-beamer-export-to-pdf):
* lisp/ox-html.el (org-html-export-as-html, org-html-export-to-html):
* lisp/ox-icalendar.el (org-icalendar-export-to-ics):
* lisp/ox-latex.el (org-latex-export-as-latex,
org-latex-export-to-pdf):
* lisp/ox-man.el (org-man-export-to-man, org-man-export-to-pdf):
* lisp/ox-md.el (org-md-export-as-markdown,
org-md-export-to-markdown):
* lisp/ox-odt.el (org-odt-export-to-odt):
* lisp/ox-org.el (org-org-export-as-org, org-org-export-to-org):
* lisp/ox-publish.el (org-publish-org-to):
* lisp/ox-texinfo.el (org-texinfo-export-to-texinfo,
org-texinfo-export-to-info):
* testing/lisp/test-ob-exp.el (test-ob-exp/org-babel-exp-src-blocks/w-no-file):
2013-08-07 08:35:42 +00:00
|
|
|
|
(org-export-to-buffer 'ascii "*Org ASCII Export*"
|
|
|
|
|
async subtreep visible-only body-only ext-plist (lambda () (text-mode))))
|
2012-07-20 11:11:44 +00:00
|
|
|
|
|
|
|
|
|
;;;###autoload
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii-export-to-ascii
|
2021-09-29 07:22:47 +00:00
|
|
|
|
(&optional async subtreep visible-only body-only ext-plist)
|
2012-01-07 13:01:25 +00:00
|
|
|
|
"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.
|
|
|
|
|
|
2012-12-02 16:24:19 +00:00
|
|
|
|
A non-nil optional argument ASYNC means the process should happen
|
|
|
|
|
asynchronously. The resulting file should be accessible through
|
|
|
|
|
the `org-export-stack' interface.
|
|
|
|
|
|
2012-01-07 13:01:25 +00:00
|
|
|
|
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.
|
|
|
|
|
|
2013-02-13 12:55:49 +00:00
|
|
|
|
When optional argument BODY-ONLY is non-nil, strip title and
|
|
|
|
|
table of contents from output.
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
|
|
|
|
EXT-PLIST, when provided, is a property list with external
|
|
|
|
|
parameters overriding Org default settings, but still inferior to
|
|
|
|
|
file-local settings.
|
|
|
|
|
|
|
|
|
|
Return output file's name."
|
|
|
|
|
(interactive)
|
Export back-ends: Apply changes to export functions
* contrib/lisp/ox-confluence.el (org-confluence-export-as-confluence):
* contrib/lisp/ox-deck.el (org-deck-export-as-html,
org-deck-export-to-html):
* contrib/lisp/ox-freemind.el (org-freemind-export-to-freemind):
* contrib/lisp/ox-groff.el (org-groff-export-to-groff,
org-groff-export-to-pdf):
* contrib/lisp/ox-koma-letter.el (org-koma-letter-export-as-latex,
org-koma-letter-export-to-latex, org-koma-letter-export-to-pdf):
* contrib/lisp/ox-rss.el (org-rss-export-as-rss,
org-rss-export-to-rss):
* contrib/lisp/ox-s5.el (org-s5-export-as-html,
org-s5-export-to-html):
* contrib/lisp/ox-taskjuggler.el (org-taskjuggler-export):
* lisp/ob-haskell.el:
* lisp/ox-ascii.el (org-ascii-export-as-ascii,
org-ascii-export-to-ascii):
* lisp/ox-beamer.el (org-beamer-export-as-latex,
org-beamer-export-to-latex, org-beamer-export-to-pdf):
* lisp/ox-html.el (org-html-export-as-html, org-html-export-to-html):
* lisp/ox-icalendar.el (org-icalendar-export-to-ics):
* lisp/ox-latex.el (org-latex-export-as-latex,
org-latex-export-to-pdf):
* lisp/ox-man.el (org-man-export-to-man, org-man-export-to-pdf):
* lisp/ox-md.el (org-md-export-as-markdown,
org-md-export-to-markdown):
* lisp/ox-odt.el (org-odt-export-to-odt):
* lisp/ox-org.el (org-org-export-as-org, org-org-export-to-org):
* lisp/ox-publish.el (org-publish-org-to):
* lisp/ox-texinfo.el (org-texinfo-export-to-texinfo,
org-texinfo-export-to-info):
* testing/lisp/test-ob-exp.el (test-ob-exp/org-babel-exp-src-blocks/w-no-file):
2013-08-07 08:35:42 +00:00
|
|
|
|
(let ((file (org-export-output-file-name ".txt" subtreep)))
|
|
|
|
|
(org-export-to-file 'ascii file
|
|
|
|
|
async subtreep visible-only body-only ext-plist)))
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2012-10-08 12:20:56 +00:00
|
|
|
|
;;;###autoload
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii-publish-to-ascii (plist filename pub-dir)
|
2012-10-08 12:20:56 +00:00
|
|
|
|
"Publish an Org file to ASCII.
|
|
|
|
|
|
|
|
|
|
FILENAME is the filename of the Org file to be published. PLIST
|
|
|
|
|
is the property list for the given project. PUB-DIR is the
|
|
|
|
|
publishing directory.
|
|
|
|
|
|
|
|
|
|
Return output file name."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(org-publish-org-to
|
|
|
|
|
'ascii filename ".txt" `(:ascii-charset ascii ,@plist) pub-dir))
|
2012-10-08 12:20:56 +00:00
|
|
|
|
|
|
|
|
|
;;;###autoload
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii-publish-to-latin1 (plist filename pub-dir)
|
2012-10-08 12:20:56 +00:00
|
|
|
|
"Publish an Org file to Latin-1.
|
|
|
|
|
|
|
|
|
|
FILENAME is the filename of the Org file to be published. PLIST
|
|
|
|
|
is the property list for the given project. PUB-DIR is the
|
|
|
|
|
publishing directory.
|
|
|
|
|
|
|
|
|
|
Return output file name."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(org-publish-org-to
|
|
|
|
|
'ascii filename ".txt" `(:ascii-charset latin1 ,@plist) pub-dir))
|
2012-10-08 12:20:56 +00:00
|
|
|
|
|
|
|
|
|
;;;###autoload
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(defun org-ascii-publish-to-utf8 (plist filename pub-dir)
|
2012-10-08 12:20:56 +00:00
|
|
|
|
"Publish an org file to UTF-8.
|
|
|
|
|
|
|
|
|
|
FILENAME is the filename of the Org file to be published. PLIST
|
|
|
|
|
is the property list for the given project. PUB-DIR is the
|
|
|
|
|
publishing directory.
|
|
|
|
|
|
|
|
|
|
Return output file name."
|
2013-01-27 22:11:34 +00:00
|
|
|
|
(org-publish-org-to
|
|
|
|
|
'ascii filename ".txt" `(:ascii-charset utf-8 ,@plist) pub-dir))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
(provide 'ox-ascii)
|
2012-10-08 12:20:56 +00:00
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
;; Local variables:
|
|
|
|
|
;; generated-autoload-file: "org-loaddefs.el"
|
2015-04-29 05:56:37 +00:00
|
|
|
|
;; coding: utf-8
|
2013-01-27 22:11:34 +00:00
|
|
|
|
;; End:
|
2012-01-07 13:01:25 +00:00
|
|
|
|
|
2013-01-27 22:11:34 +00:00
|
|
|
|
;;; ox-ascii.el ends here
|