summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThanos Apollo <[email protected]>2024-07-16 14:04:22 +0300
committerThanos Apollo <[email protected]>2024-07-16 14:09:20 +0300
commit3389e5c53ebd0122d1fd3fa7f303a26ab0b80298 (patch)
tree2e39902583091502a6473437dc7432331d5d98e2
parent6fa11233d74e85246c56e54efabe65948d46a827 (diff)
cloze: Add gnosis-cloze-add-hints.
* Add hints to cloze string.
-rw-r--r--gnosis.el13
1 files changed, 13 insertions, 0 deletions
diff --git a/gnosis.el b/gnosis.el
index aa94660..f7bb550 100644
--- a/gnosis.el
+++ b/gnosis.el
@@ -464,6 +464,19 @@ Refer to =gnosis-db-schema-extras' for informations on images stored."
(replace-match (propertize cloze-string 'face 'gnosis-face-cloze) nil t)))
(buffer-string))))
+(defun gnosis-cloze-add-hints (str hints &optional cloze-string)
+ "Replace CLOZE-STRING in STR with HINTS."
+ (cl-assert (listp hints) nil "Hints must be a list.")
+ (let ((cloze-string (or cloze-string gnosis-cloze-string))
+ (count 0))
+ (with-temp-buffer
+ (insert str)
+ (goto-char (point-min))
+ (while (search-forward cloze-string nil t)
+ (when (and (nth count hints) (search-backward cloze-string nil t))
+ (replace-match (propertize (format "[%s]" (nth count hints)) 'face 'gnosis-face-cloze)))
+ (setq count (1+ count)))
+ (buffer-string))))
(defun gnosis-display-basic-answer (answer success user-input)
"Display ANSWER.