summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Goaziou <mail@nicolasgoaziou.fr>2014-07-26 17:42:07 +0200
committerNicolas Goaziou <mail@nicolasgoaziou.fr>2014-07-27 14:29:21 +0200
commitbc43228e6dec408a0f01e1729d1714dba64d06d3 (patch)
treeab52e5c0c5fa87f568db03bb94c195f674153f7b
parent173ade7078804b2b7df23d85cc9c164a3b2da18a (diff)
downloadorg-mode-bc43228e6dec408a0f01e1729d1714dba64d06d3.tar.gz
Remove `export-block' syntax type
* lisp/org-element.el (org-element-all-elements): Remove `export-block' type. (org-element-block-name-alist): Make it a defconst since it is not meant to be changed anymore. (org-element-export-block-parser, org-element-export-block-interpreter): Remove functions. * lisp/ox.el (org-export-filters-alist): Remove export block filter. (org-export-register-backend): Do not alter `org-export-block-name-alist' anymore. (org-export-define-backend, org-export-define-derived-backend): Update docstring. (org-export-filter-export-block-functions): Remove variable. * testing/lisp/test-org-element.el (test-org-element/export-block-parser, test-org-element/export-block-interpreter): Remove tests. * testing/lisp/test-ox.el (test-org-export/define-backend): Update test.
-rw-r--r--lisp/org-element.el76
-rw-r--r--lisp/ox.el15
-rw-r--r--testing/lisp/test-org-element.el39
-rw-r--r--testing/lisp/test-ox.el10
4 files changed, 14 insertions, 126 deletions
diff --git a/lisp/org-element.el b/lisp/org-element.el
index 93ae6f0..a7c2c04 100644
--- a/lisp/org-element.el
+++ b/lisp/org-element.el
@@ -45,11 +45,11 @@
;; and `special-block'.
;;
;; Other element types are: `babel-call', `clock', `comment',
-;; `comment-block', `diary-sexp', `example-block', `export-block',
-;; `fixed-width', `horizontal-rule', `keyword', `latex-environment',
-;; `node-property', `paragraph', `planning', `src-block', `table',
-;; `table-row' and `verse-block'. Among them, `paragraph' and
-;; `verse-block' types can contain Org objects and plain text.
+;; `comment-block', `diary-sexp', `example-block', `fixed-width',
+;; `horizontal-rule', `keyword', `latex-environment', `node-property',
+;; `paragraph', `planning', `src-block', `table', `table-row' and
+;; `verse-block'. Among them, `paragraph' and `verse-block' types can
+;; contain Org objects and plain text.
;;
;; Objects are related to document's contents. Some of them are
;; recursive. Associated types are of the following: `bold', `code',
@@ -173,11 +173,11 @@ is not sufficient to know if point is at a paragraph ending. See
(defconst org-element-all-elements
'(babel-call center-block clock comment comment-block diary-sexp drawer
- dynamic-block example-block export-block fixed-width
- footnote-definition headline horizontal-rule inlinetask item
- keyword latex-environment node-property paragraph plain-list
- planning property-drawer quote-block section
- special-block src-block table table-row verse-block)
+ dynamic-block example-block fixed-width footnote-definition
+ headline horizontal-rule inlinetask item keyword
+ latex-environment node-property paragraph plain-list
+ planning property-drawer quote-block section special-block
+ src-block table table-row verse-block)
"Complete list of element types.")
(defconst org-element-greater-elements
@@ -198,7 +198,7 @@ is not sufficient to know if point is at a paragraph ending. See
superscript table-cell underline)
"List of recursive object types.")
-(defvar org-element-block-name-alist
+(defconst org-element-block-name-alist
'(("CENTER" . org-element-center-block-parser)
("COMMENT" . org-element-comment-block-parser)
("EXAMPLE" . org-element-example-block-parser)
@@ -1899,60 +1899,6 @@ CONTENTS is nil."
"#+END_EXAMPLE")))
-;;;; Export Block
-
-(defun org-element-export-block-parser (limit affiliated)
- "Parse an export block.
-
-LIMIT bounds the search. AFFILIATED is a list of which CAR is
-the buffer position at the beginning of the first affiliated
-keyword and CDR is a plist of affiliated keywords along with
-their value.
-
-Return a list whose CAR is `export-block' and CDR is a plist
-containing `:begin', `:end', `:type', `:value', `:post-blank' and
-`:post-affiliated' keywords.
-
-Assume point is at export-block beginning."
- (let* ((case-fold-search t)
- (type (progn (looking-at "[ \t]*#\\+BEGIN_\\(\\S-+\\)")
- (upcase (org-match-string-no-properties 1)))))
- (if (not (save-excursion
- (re-search-forward
- (format "^[ \t]*#\\+END_%s[ \t]*$" type) limit t)))
- ;; Incomplete block: parse it as a paragraph.
- (org-element-paragraph-parser limit affiliated)
- (let ((contents-end (match-beginning 0)))
- (save-excursion
- (let* ((begin (car affiliated))
- (post-affiliated (point))
- (contents-begin (progn (forward-line) (point)))
- (pos-before-blank (progn (goto-char contents-end)
- (forward-line)
- (point)))
- (end (progn (skip-chars-forward " \r\t\n" limit)
- (if (eobp) (point) (line-beginning-position))))
- (value (buffer-substring-no-properties contents-begin
- contents-end)))
- (list 'export-block
- (nconc
- (list :begin begin
- :end end
- :type type
- :value value
- :post-blank (count-lines pos-before-blank end)
- :post-affiliated post-affiliated)
- (cdr affiliated)))))))))
-
-(defun org-element-export-block-interpreter (export-block contents)
- "Interpret EXPORT-BLOCK element as Org syntax.
-CONTENTS is nil."
- (let ((type (org-element-property :type export-block)))
- (concat (format "#+BEGIN_%s\n" type)
- (org-element-property :value export-block)
- (format "#+END_%s" type))))
-
-
;;;; Fixed-width
(defun org-element-fixed-width-parser (limit affiliated)
diff --git a/lisp/ox.el b/lisp/ox.el
index 236ce84..9b508df 100644
--- a/lisp/ox.el
+++ b/lisp/ox.el
@@ -188,7 +188,6 @@ way they are handled must be hard-coded into
(:filter-dynamic-block . org-export-filter-dynamic-block-functions)
(:filter-entity . org-export-filter-entity-functions)
(:filter-example-block . org-export-filter-example-block-functions)
- (:filter-export-block . org-export-filter-export-block-functions)
(:filter-export-snippet . org-export-filter-export-snippet-functions)
(:filter-final-output . org-export-filter-final-output-functions)
(:filter-fixed-width . org-export-filter-fixed-width-functions)
@@ -935,10 +934,6 @@ BACKEND is a structure with `org-export-backend' type."
(let ((parent (org-export-backend-parent backend)))
(when (and parent (not (org-export-get-backend parent)))
(error "Cannot use unknown \"%s\" back-end as a parent" parent)))
- ;; Register dedicated export blocks in the parser.
- (dolist (name (org-export-backend-blocks backend))
- (add-to-list 'org-element-block-name-alist
- (cons name 'org-element-export-block-parser)))
;; If a back-end with the same name as BACKEND is already
;; registered, replace it with BACKEND. Otherwise, simply add
;; BACKEND to the list of registered back-ends.
@@ -1070,7 +1065,7 @@ keywords are understood:
String, or list of strings, representing block names that
will not be parsed. This is used to specify blocks that will
contain raw code specific to the back-end. These blocks
- still have to be handled by the relative `export-block' type
+ still have to be handled by the `special-block' type
translator.
:filters-alist
@@ -1174,7 +1169,7 @@ keywords are understood:
String, or list of strings, representing block names that
will not be parsed. This is used to specify blocks that will
contain raw code specific to the back-end. These blocks
- still have to be handled by the relative `export-block' type
+ still have to be handled by the `special-block' type
translator.
:filters-alist
@@ -2593,12 +2588,6 @@ Each filter is called with three arguments: the transcoded data,
as a string, the back-end, as a symbol, and the communication
channel, as a plist. It must return a string or nil.")
-(defvar org-export-filter-export-block-functions nil
- "List of functions applied to a transcoded export-block.
-Each filter is called with three arguments: the transcoded data,
-as a string, the back-end, as a symbol, and the communication
-channel, as a plist. It must return a string or nil.")
-
(defvar org-export-filter-fixed-width-functions nil
"List of functions applied to a transcoded fixed-width.
Each filter is called with three arguments: the transcoded data,
diff --git a/testing/lisp/test-org-element.el b/testing/lisp/test-org-element.el
index 8dc8723..1705a4d 100644
--- a/testing/lisp/test-org-element.el
+++ b/testing/lisp/test-org-element.el
@@ -777,39 +777,6 @@ Some other text
(org-element-property :label-fmt (org-element-at-point)))))))
-;;;; Export Block
-
-(ert-deftest test-org-element/export-block-parser ()
- "Test `export-block' parser."
- ;; Standard test.
- (should
- (org-test-with-temp-text "#+BEGIN_LATEX\nText\n#+END_LATEX"
- (org-element-map
- (let ((org-element-block-name-alist
- '(("LATEX" . org-element-export-block-parser))))
- (org-element-parse-buffer))
- 'export-block 'identity)))
- ;; Ignore case.
- (should
- (let ((org-element-block-name-alist
- '(("LATEX" . org-element-export-block-parser))))
- (org-test-with-temp-text "#+begin_latex\nText\n#+end_latex"
- (org-element-map (org-element-parse-buffer) 'export-block 'identity))))
- ;; Ignore incomplete block.
- (should-not
- (let ((org-element-block-name-alist
- '(("LATEX" . org-element-export-block-parser))))
- (org-test-with-temp-text "#+BEGIN_LATEX"
- (org-element-map (org-element-parse-buffer) 'export-block
- 'identity nil t))))
- ;; Handle non-empty blank line at the end of buffer.
- (should
- (let ((org-element-block-name-alist
- '(("LATEX" . org-element-export-block-parser))))
- (org-test-with-temp-text "#+BEGIN_LATEX\nC\n#+END_LATEX\n "
- (= (org-element-property :end (org-element-at-point)) (point-max))))))
-
-
;;;; Export Snippet
(ert-deftest test-org-element/export-snippet-parser ()
@@ -2432,12 +2399,6 @@ CLOCK: [2012-01-01 sun. 00:01]--[2012-01-01 sun. 00:02] => 0:01"))))
"#+BEGIN_EXAMPLE\n,* Headline\n ,#+keyword\nText #+END_EXAMPLE")
"#+BEGIN_EXAMPLE\n,* Headline\n ,#+keyword\nText #+END_EXAMPLE\n")))
-(ert-deftest test-org-element/export-block-interpreter ()
- "Test export block interpreter."
- (should (equal (org-test-parse-and-interpret
- "#+BEGIN_HTML\nTest\n#+END_HTML")
- "#+BEGIN_HTML\nTest\n#+END_HTML\n")))
-
(ert-deftest test-org-element/fixed-width-interpreter ()
"Test fixed width interpreter."
;; Standard test.
diff --git a/testing/lisp/test-ox.el b/testing/lisp/test-ox.el
index 0600884..062b40f 100644
--- a/testing/lisp/test-ox.el
+++ b/testing/lisp/test-ox.el
@@ -1118,15 +1118,7 @@ Footnotes[fn:1], [fn:test] and [fn:inline:anonymous footnote].
(org-export-define-backend 'test
'((headline . my-headline-test))
:menu-entry '(?k "Test Export" test))
- (org-export-backend-menu (org-export-get-backend 'test)))))
- ;; Export Blocks.
- (should
- (equal '(("TEST" . org-element-export-block-parser))
- (let (org-export--registered-backends org-element-block-name-alist)
- (org-export-define-backend 'test
- '((headline . my-headline-test))
- :export-block '("test"))
- org-element-block-name-alist))))
+ (org-export-backend-menu (org-export-get-backend 'test))))))
(ert-deftest test-org-export/define-derived-backend ()
"Test `org-export-define-derived-backend' specifications."