branch: externals/gnosis
commit cadd6193493bda6d13712776589e0bc211471868
Author: Thanos Apollo <[email protected]>
Commit: Thanos Apollo <[email protected]>

    [fix] Adjust cloze tag removal for edge cases.
---
 gnosis.el | 17 ++++++++---------
 1 file changed, 8 insertions(+), 9 deletions(-)

diff --git a/gnosis.el b/gnosis.el
index 6aef1fa53b..cc655d001f 100644
--- a/gnosis.el
+++ b/gnosis.el
@@ -665,7 +665,7 @@ Works with both single (:), double colons (::), single 
braces ({}) and
 double braces ({{}}).
 
 Also removes content after a double semicolon (::), which indicate a hint."
-  (let* ((regex 
"{\\{1,2\\}c[0-9]+:\\{1,2\\}\\([^:{}]*?\\)\\(::[^{}]*\\)?}\\{1,2\\}")
+  (let* ((regex 
"{\\{1,2\\}c[0-9]+:\\{1,2\\}\\(.*?\\)\\(::[^{}]*\\)?}\\{1,2\\}")
          (result (replace-regexp-in-string regex "\\1" string)))
     result))
 
@@ -1111,22 +1111,21 @@ LINKS: list of strings."
             nil "Links must be a list")
   (cl-assert (gnosis-cloze-check keimenon answer) nil
             "Clozes (answer) values are not part of keimenon")
-  (if (equal id "NEW")
-      (progn
+  (let ((keimenon-clean (gnosis-cloze-remove-tags keimenon)))
+    (if (equal id "NEW")
        (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-thema-fields deck-id type keimenon-new hint 
cloze parathema
-                                                 tags suspend links)))
-         (gnosis-add-thema-fields deck-id type keimenon (or hypothesis (list 
""))
-                                 answer parathema tags suspend links)))
-    (gnosis-update-thema id keimenon hypothesis answer parathema tags links 
deck-id type)))
+                      (gnosis-add-thema-fields deck-id type keimenon-clean 
hint cloze parathema
+                                               tags suspend links)))
+         (gnosis-add-thema-fields deck-id type keimenon-clean (or hypothesis 
(list ""))
+                                  answer parathema tags suspend links))
+      (gnosis-update-thema id keimenon-clean hypothesis answer parathema tags 
links deck-id type))))
 
 (defun gnosis-add-thema--mc-cloze (id deck-id type keimenon hypothesis
                                  answer parathema tags suspend links)

Reply via email to