diff --git a/contrib/lisp/ox-confluence.el b/contrib/lisp/ox-confluence.el index c70fe853b..b521b2474 100644 --- a/contrib/lisp/ox-confluence.el +++ b/contrib/lisp/ox-confluence.el @@ -83,16 +83,20 @@ (format "_%s_" contents)) (defun org-confluence-item (item contents info) - (let* ((plain-list (org-export-get-parent item)) - (type (org-element-property :type plain-list)) - (bullet (if (eq type 'ordered) ?\# ?\-))) - (concat (make-string (1+ (org-confluence--li-depth item)) bullet) - " " - (if (eq type 'descriptive) - (concat "*" - (org-export-data (org-element-property :tag item) info) - "* - ")) - (org-trim contents)))) + (let ((list-type (org-element-property :type (org-export-get-parent item)))) + (concat + (make-string (1+ (org-confluence--li-depth item)) + (if (eq list-type 'ordered) ?\# ?\-)) + " " + (pcase (org-element-property :checkbox item) + (`on "*{{(X)}}* ") + (`off "*{{( )}}* ") + (`trans "*{{(\\-)}}* ")) + (when (eq list-type 'descriptive) + (concat "*" + (org-export-data (org-element-property :tag item) info) + "* - ")) + (org-trim contents)))) (defun org-confluence-fixed-width (fixed-width contents info) (org-confluence--block @@ -117,7 +121,6 @@ (string= todo "")) "" (format "*{{%s}}* " todo)))) - ;; Else: Standard headline. (format "h%s. %s%s\n%s" level todo-text text (if (org-string-nw-p contents) contents "")))) @@ -181,7 +184,7 @@ a communication channel." (defun org-confluence-timestamp (timestamp _contents _info) "Transcode a TIMESTAMP object from Org to Confluence. CONTENTS and INFO are ignored." - (let ((translated (org-timestamp-translate timestamp))) + (let ((translated (org-trim (org-timestamp-translate timestamp)))) (if (string-prefix-p "[" translated) (concat "(" (substring translated 1 -1) ")") translated))) @@ -208,7 +211,7 @@ CONTENTS and INFO are ignored." (or (eq tag 'item) ; list items interleave with plain-list (eq tag 'plain-list))) (when (eq tag 'item) - (incf depth)) + (cl-incf depth)) (setq item (org-export-get-parent item))) depth))