branch: elpa/gnosis
commit 251e72d1918e98f69ea71317cb95a7e4b11ce8c3
Author: Thanos Apollo <pub...@thanosapollo.org>
Commit: Thanos Apollo <pub...@thanosapollo.org>

    cloze: Add support for adding multiple clozes with anki-like syntax.
---
 gnosis.el | 16 ++++++++++++++--
 1 file changed, 14 insertions(+), 2 deletions(-)

diff --git a/gnosis.el b/gnosis.el
index f05335780b..2a16928004 100644
--- a/gnosis.el
+++ b/gnosis.el
@@ -1681,8 +1681,20 @@ LINKS: list of strings."
   (cl-assert (gnosis-cloze-check keimenon answer) nil
             "Clozes (answer) values are not part of keimenon")
   (if (equal id "NEW")
-      (gnosis-add-note-fields deck-id type keimenon (or hypothesis (list ""))
-                             answer parathema tags suspend links)
+      (progn
+       (if (null answer)
+           ;; if answer is left null, extract all contents from keimenon.
+           (let* ((contents (gnosis-cloze-extract-contents keimenon))
+                  (keimenon-new (gnosis-cloze-remove-tags keimenon))
+                  (clozes (gnosis-cloze-extract-answers contents))
+                  (hints (gnosis-cloze-extract-hints contents)))
+             (cl-loop for cloze in clozes
+                      for hint in hints
+                      do
+                      (gnosis-add-note-fields deck-id type keimenon-new hint 
cloze parathema
+                                                 tags suspend links)))
+         (gnosis-add-note-fields deck-id type keimenon (or hypothesis (list 
""))
+                                 answer parathema tags suspend links)))
     (gnosis-update-note id keimenon hypothesis answer parathema tags links)))
 
 (defun gnosis-add-note--mc-cloze (id deck-id type keimenon hypothesis

Reply via email to