* lisp/org-element.el (org-element-special-block-parser): * lisp/ox-latex.el (org-latex-special-block): * lisp/ox-html.el (org-html-special-block): * lisp/ox-man.el (org-man-special-block): * lisp/ox-odt.el (org-odt-special-block): * lisp/ox-texinfo.el (org-texinfo-special-block): * contrib/lisp/ox-groff.el (org-groff-special-block): Preserve case. * testing/lisp/test-org-element.el (test-org-element/special-block-parser): Add test.
@@ -1478,7 +1478,7 @@ holding contextual information."
"Transcode a SPECIAL-BLOCK element from Org to Groff.
CONTENTS holds the contents of the block. INFO is a plist
holding contextual information."
- (let ((type (downcase (org-element-property :type special-block))))
+ (let ((type (org-element-property :type special-block)))
(org-groff--wrap-label
special-block
(format "%s\n" contents))))
@@ -1526,7 +1526,7 @@ containing `:type', `:begin', `:end', `:contents-begin',
Assume point is at the beginning of the block."
(let* ((case-fold-search t)
(type (progn (looking-at "[ \t]*#\\+BEGIN_\\(\\S-+\\)")
- (upcase (match-string-no-properties 1)))))
+ (match-string-no-properties 1))))
(if (not (save-excursion
(re-search-forward
(format "^[ \t]*#\\+END_%s[ \t]*$" (regexp-quote type))
@@ -3099,8 +3099,7 @@ contextual information."
"Transcode a SPECIAL-BLOCK element from Org to HTML.
- (let* ((block-type (downcase
- (org-element-property :type special-block)))
+ (let* ((block-type (org-element-property :type special-block))
(contents (or contents ""))
(html5-fancy (and (org-html-html5-p info)
(plist-get info :html-html5-fancy)
@@ -2242,7 +2242,7 @@ holding contextual information."
"Transcode a SPECIAL-BLOCK element from Org to LaTeX.
- (let ((type (downcase (org-element-property :type special-block)))
+ (let ((type (org-element-property :type special-block))
(opt (org-export-read-attribute :attr_latex special-block :options)))
(concat (format "\\begin{%s}%s\n" type (or opt ""))
;; Insert any label or caption within the block
@@ -775,7 +775,7 @@ holding contextual information."
"Transcode a SPECIAL-BLOCK element from Org to Man.
(org-man--wrap-label
@@ -3059,7 +3059,7 @@ contextual information."
"Transcode a SPECIAL-BLOCK element from Org to ODT.
(attributes (org-export-read-attribute :attr_odt special-block)))
(cond
;; Annotation.
@@ -1235,7 +1235,8 @@ holding contextual information."
"Transcode a SPECIAL-BLOCK element from Org to Texinfo.
CONTENTS holds the contents of the block. INFO is a plist used
as a communication channel."
- contents)
+ (let ((type (org-element-property :type)))
+ (format "@%s\n%s@end %s" type contents type)))
;;;; Src Block
@@ -1860,6 +1860,11 @@ Outside list"
(equal "SPECIAL"
(org-test-with-temp-text "#+BEGIN_SPECIAL\nText\n#+END_SPECIAL"
(org-element-property :type (org-element-at-point)))))
+ ;; Special blocks are case sensitive.
+ (should
+ (equal "CaSe"
+ (org-test-with-temp-text "#+BEGIN_CaSe\nText\n#+END_CaSe"
+ (org-element-property :type (org-element-at-point)))))
;; Special blocks can contain paragraphs.
(should
(eq 'paragraph