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