From e43d56158a24e153faba1bdc11a66d96d650414a Mon Sep 17 00:00:00 2001
From: Thanos Apollo <public@thanosapollo.org>
Date: Wed, 28 Feb 2024 15:40:30 +0200
Subject: gnosis-display-extra: Display extra-image

Instead of using gnosis-display-image 'extra-image on every review
note type, just add it to extras.  Future refactoring is needed to
simplify gnosis-review-TYPEs
---
 gnosis.el | 24 +++++++++++-------------
 1 file changed, 11 insertions(+), 13 deletions(-)

diff --git a/gnosis.el b/gnosis.el
index 42d9f18..3255c62 100644
--- a/gnosis.el
+++ b/gnosis.el
@@ -330,18 +330,12 @@ If FALSE t, use gnosis-face-false face"
 					     'gnosis-face-correct
 					   'gnosis-face-false))))
 
-(defun gnosis-display-extra (id)
-  "Display extra information for note ID."
-  (let ((extras (or (gnosis-get 'extra-notes 'extras `(= id ,id)) "")))
-    (goto-char (point-max))
-    (insert (propertize "\n\n-----\n" 'face 'gnosis-face-seperator))
-    (fill-paragraph (insert "\n" (propertize extras 'face 'gnosis-face-extra)))))
-
 (cl-defun gnosis-display-image (id &optional (image 'images))
   "Display image for note ID.
 
-IMAGE is the image type to display, should be either `images' or
-`extra-image'.
+IMAGE is the image type to display, usually should be either `images'
+or `extra-image'.  Instead of using `extra-image' on review use
+`gnosis-display-extra'
 
 `images' is the image to display before user-input, while
 `extra-image' is the image to display after user-input.
@@ -354,6 +348,14 @@ Refer to `gnosis-db-schema-extras' for more."
       (insert "\n\n")
       (insert-image image))))
 
+(defun gnosis-display-extra (id)
+  "Display extra information & extra-image for note ID."
+  (let ((extras (or (gnosis-get 'extra-notes 'extras `(= id ,id)) "")))
+    (goto-char (point-max))
+    (insert (propertize "\n\n-----\n" 'face 'gnosis-face-seperator))
+    (gnosis-display-image id 'extra-image)
+    (fill-paragraph (insert "\n" (propertize extras 'face 'gnosis-face-extra)))))
+
 (defun gnosis-display-next-review (id)
   "Display next interval for note ID."
   (let ((interval (gnosis-get 'next-rev 'review-log `(= id ,id))))
@@ -1028,7 +1030,6 @@ SUCCESS is a boolean value, t for success, nil for failure."
       (message "False"))
     (gnosis-display-correct-answer-mcq answer user-choice)
     (gnosis-display-extra id)
-    (gnosis-display-image id 'extra-image)
     (gnosis-display-next-review id)))
 
 (defun gnosis-review-basic (id)
@@ -1041,7 +1042,6 @@ SUCCESS is a boolean value, t for success, nil for failure."
 	 (success (gnosis-compare-strings answer user-input)))
     (gnosis-display-basic-answer answer success user-input)
     (gnosis-display-extra id)
-    (gnosis-display-image id 'extra-image)
     (gnosis-review--update id success)
     (gnosis-display-next-review id)))
 
@@ -1055,7 +1055,6 @@ SUCCESS is a boolean value, t for success, nil for failure."
 	 (success (equal answer user-input)))
     (gnosis-display-y-or-n-answer :answer answer :success success)
     (gnosis-display-extra id)
-    (gnosis-display-image id 'extra-image)
     (gnosis-review--update id success)
     (gnosis-display-next-review id)))
 
@@ -1101,7 +1100,6 @@ Used to reveal all clozes left with `gnosis-face-cloze-unanswered' face."
 	     ;; Update note after all clozes are revealed successfully
 	     finally (gnosis-review--update id t)))
   (gnosis-display-extra id)
-  (gnosis-display-image id 'extra-image)
   (gnosis-display-next-review id))
 
 (defun gnosis-review-note (id)
-- 
cgit v1.2.3