add single row table

This commit is contained in:
2025-12-27 11:27:35 +01:00
parent 74597545f6
commit 40f24268a1
3 changed files with 62 additions and 1 deletions

View File

@@ -16,3 +16,7 @@ ox-rst_ox-rst.el_add-code-block-caption.patch
patch -d . -p1 -i lisp/0patches/ox-rst_ox-rst.el_add-code-block-caption.patch
- reverse patch
patch -R -d . -p1 -i lisp/0patches/ox-rst_ox-rst.el_add-code-block-caption.patch
ox-rst_ox-rst.el_add-single-row-table.patch
- create the patch using git
git diff lisp/ox-rst/ox-rst.el >lisp/0patches/ox-rst_ox-rst.el_add-single-row-table.patch

View File

@@ -0,0 +1,35 @@
diff --git a/lisp/ox-rst/ox-rst.el b/lisp/ox-rst/ox-rst.el
index fc423eac..0b19576d 100644
--- a/lisp/ox-rst/ox-rst.el
+++ b/lisp/ox-rst/ox-rst.el
@@ -1542,7 +1542,29 @@ a communication channel."
(when (= 0 row-number)
(concat (funcall makeline contents ?-) "\n"))
"|" contents "|\n" hline))
- nil
+ ;; nil
+ ;; the else section is hit whenever there is a new group, i.e. the row
+ ;; after a hline, OR if there is only one row in the table!!!
+ ;; (org-export-table-row-number table-row info) returns non-nil if there
+ ;; is only ONE row in the table (nil otherwise)
+ ;; same for `contents'; it is nil if not first row
+ (when contents
+ (let* ((makeline
+ (function
+ (lambda (_rowcontents linebit)
+ (format "+%s+"
+ (mapconcat
+ 'identity
+ (mapcar
+ (lambda (table-cell)
+ (make-string (string-width table-cell)
+ linebit))
+ (split-string contents "|"))
+ "+"))))))
+ (concat
+ (concat (funcall makeline contents ?-) "\n")
+ (concat "|" contents "|\n")
+ (concat (funcall makeline contents ?-) "\n"))))
)))

View File

@@ -1542,7 +1542,29 @@ a communication channel."
(when (= 0 row-number)
(concat (funcall makeline contents ?-) "\n"))
"|" contents "|\n" hline))
nil
;; nil
;; the else section is hit whenever there is a new group, i.e. the row
;; after a hline, OR if there is only one row in the table!!!
;; (org-export-table-row-number table-row info) returns non-nil if there
;; is only ONE row in the table (nil otherwise)
;; same for `contents'; it is nil if not first row
(when contents
(let* ((makeline
(function
(lambda (_rowcontents linebit)
(format "+%s+"
(mapconcat
'identity
(mapcar
(lambda (table-cell)
(make-string (string-width table-cell)
linebit))
(split-string contents "|"))
"+"))))))
(concat
(concat (funcall makeline contents ?-) "\n")
(concat "|" contents "|\n")
(concat (funcall makeline contents ?-) "\n"))))
)))