From 949e2f01a74c24b18cf07d77eb8cba1443111dcf Mon Sep 17 00:00:00 2001 From: Thanos Apollo Date: Fri, 28 Jun 2024 04:19:48 +0300 Subject: Add gnosis-center-string --- gnosis.el | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gnosis.el b/gnosis.el index 8123510..3be0881 100644 --- a/gnosis.el +++ b/gnosis.el @@ -329,6 +329,19 @@ History is disabled." (padding (max (/ (- (window-width) (length text)) 2) 0))) (delete-region start end) (insert (make-string padding ? ) text))) + +(defun gnosis-center-string (input-string) + "Center each line of the given INPUT-STRING in the current window width." + (let* ((lines (split-string input-string "\n")) + (window-width (window-width))) + (mapconcat + (lambda (line) + (let* ((text (string-trim line)) + (padding (/ (max 0 (- window-width (length text))) 2))) + (concat (make-string padding ? ) text))) + lines + "\n"))) + (save-excursion (goto-char (point-min)) (while (re-search-forward "\\*\\([^*]+\\)\\*" nil t) -- cgit v1.2.3