branch: elpa/gnosis commit c52bcb7f922be01427772c8b26a9e1647bc95a0b Author: Thanos Apollo <pub...@thanosapollo.org> Commit: Thanos Apollo <pub...@thanosapollo.org>
docs: Update for version 0.5.0 --- doc/gnosis.org | 176 +++++++++++++++++++++------------------------------------ 1 file changed, 64 insertions(+), 112 deletions(-) diff --git a/doc/gnosis.org b/doc/gnosis.org index b89401edc6..04bacce430 100644 --- a/doc/gnosis.org +++ b/doc/gnosis.org @@ -4,8 +4,8 @@ #+language: en #+options: ':t toc:nil author:t email:t num:t #+startup: content -#+macro: stable-version 0.4.4 -#+macro: release-date 2024-10-06 +#+macro: stable-version 0.5.0 +#+macro: release-date 2025-06-17 #+macro: file @@texinfo:@file{@@$1@@texinfo:}@@ #+macro: space @@texinfo:@: @@ #+macro: kbd @@texinfo:@kbd{@@$1@@texinfo:}@@ @@ -15,14 +15,14 @@ #+texinfo_filename: gnosis.info #+texinfo_dir_category: Emacs misc features #+texinfo_dir_title: Gnosis: (gnosis) -#+texinfo_dir_desc: Spaced Repetition Note Taking System +#+texinfo_dir_desc: Spaced Repetition System #+texinfo_header: @set MAINTAINERSITE @uref{https://thanosapollo.org,maintainer webpage} #+texinfo_header: @set MAINTAINER Thanos Apollo #+texinfo_header: @set MAINTAINEREMAIL @email{pub...@thanosapollo.org} #+texinfo_header: @set MAINTAINERCONTACT @uref{mailto:pub...@thanosapollo.org,contact the maintainer} -Gnosis (GNU-sis) is a customizable spaced repetition system designed to enhance +Gnosis is a customizable spaced repetition system designed to enhance memory retention through active recall. It allows users to set specific review intervals for note decks & tags, creating an optimal learning environment tailored to each specific topic/subject. @@ -66,11 +66,22 @@ Creating notes for gnosis can be done interactively with: =M-x gnosis-add-note= Or from within =gnosis-dashboard= +* Note Types +Each note is a *thema* consisting of the following components: -When it comes to adding images, you can select images that are inside -=gnosis-images-dir=. For adjusting image size, refer to [[#Customization][Customization]] +- *Keimenon*; The main text or question. +- *Hypothesis*; Assumptions/hints for the text to guide to the right answer + - For example this is used as hints for cloze type or as choices in MCQs +- *Answer*; The correct response or solution to the keimenon. +- *Parathema*; expansion of keimenon, that can include links to e.g + org-gnosis topics or even files, serving as a way to link org-gnosis + topics to current thema. -* Note Types +Optionally, you can use also add tags for each note. + +Notes/themas can have multiple hypotheses and answers (*depending on +their type*), separated by =gnosis-export-separator=, which defaults to +="\n-"= /(a new line followed by a dash)/. ** Cloze :PROPERTIES: :CUSTOM_ID: Cloze @@ -79,97 +90,71 @@ A cloze note type is a format where you create sentences or paragraphs with "missing" words. A fill-in-the-blanks question. You can create a cloze note type using =M-x gnosis-add-note= and -selecting ~Cloze~, the question should be formatted like this: - -#+BEGIN_QUOTE -{c1:Cyproheptadine::drug name} is a(n) {c2:5-HT2} receptor antagonist used to treat {c2:serotonin syndrome} -#+END_QUOTE - -You can also format clozes like Anki if you so prefer; e.g ~{{c1::Cyproheptadine::drug name}}~ - -+ For each cX-tag there will be created a cloze type note, the above - example creates 2 cloze type notes. - -+ Each cX tag can have multiple clozes, but each cloze must be a - *UNIQUE* word, or a unique combination of words, in given note. +selecting ~Cloze~. - + If a cloze is repeated, such as in phrases with "acetyl" & - acetylcholine, include whitespace in the cloze to denote a single - word. - -+ You can use the keyword =::= to indicate a hint. - -You can remove the /guidance/ string by adjusting -=gnosis-cloze-guidance=. - -** MC-Cloze (Under development) +Example format: -MC-Cloze is disabled by default, to enable it add to your configuration: +*** Default cloze format +#+begin_src org + ,* Thema :pharmacology:antimicrobials:penicillin: + :PROPERTIES: + :GNOSIS_ID: NEW + :GNOSIS_TYPE: cloze + :END: + ,** Keimenon + What is the treatment for Actinomyces infection? - =(add-to-list 'gnosis-note-types "MC-Cloze")= + Penicillin -A MC-Cloze (/Multiple Choice Cloze/) is a fill-in-the-blank note, -but unlike [[#Cloze][cloze note type]] the user is prompted to select an option -instead of typing an answer. + ,** Hypothesis + - drug type -You can create multiple notes from one input, but each note can only -have *one* cloze. The first option will always be the right answer -(will be randomized in the database), separated by the rest of the -answer by =gnosis-mc-cloze-separator= (default value is "&&"), and a -note will be generated from each cloze. + ,** Answer + - Penicillin -Example: -#+BEGIN_QUOTE - The greatest text editor is Emacs&&Vim&&Helix -#+END_QUOTE - -When customizing =gnosis-mc-cloze=separator= pay attention to not use -values that would mess up with regex functions. -** MCQ - -A MCQ note type, as the name suggests, is a multiple choice question. + ,** Parathema + Sulfonamides → Nocardia + Actinomyces → [[id:680ca944-8ee9-4513-92d6-25696ee01f48][Penicillin]] + (treatment is a SNAP) +#+end_src -The stem field (question) is separated by the options (choices) via -=gnosis-mcq-separator=, each option is separated by =gnosis-mcq-option-separator=. +*** Using anki-like syntax +#+begin_src org + ,* Thema :pharmacology:antimicrobials:penicillin: + :PROPERTIES: + :GNOSIS_ID: NEW + :GNOSIS_TYPE: cloze + :END: + ,** Keimenon + {c1:Cyproheptadine::drug name} is a(n) {c2:5-HT2} receptor antagonist used to treat {c2:serotonin syndrome} -You can remove the /guidance/ string by adjusting -=gnosis-mcq-guidance=. + ,** Hypothesis + - -** Basic Type + ,** Answer + - -Basic note type is a simple question/answer note, where the user first -sees a "main" part, which is usually a question, and he is prompted to -input the answer. + ,** Parathema -** Double -Double note type, is essentially a note that generates 2 basic notes. -The second one reverses question/answer. +#+end_src -Ideal for vocabulary acquisition notes. +You can format clozes like Anki if you so prefer with hints; e.g ~{{c1::Cyproheptadine::drug name}}~ + + You can use the keyword =::= to indicate a hint. -** y-or-n -y-or-n (yes or no) note type, user is presented with a question and -prompted to enter character "y" or "n". ++ For each cX-tag there will be created a cloze type note, the above + example creates 2 cloze type notes. + ++ Each cX tag can have multiple clozes, but each cloze must be a + *UNIQUE* word, or a unique combination of words, in given note. -When using the hidden function =gnosis-add-note--y-or-n=, note that the -ANSWER must be either 121 (~y~) or 110 (~n~), as those correspond to the -character values used to represent them. + + If a cloze is repeated, such as in phrases with "acetyl" & + acetylcholine, include whitespace in the cloze to denote a single + word. * Customization :PROPERTIES: :CUSTOM_ID: Customization :END: -** Image size -:PROPERTIES: -:CUSTOM_ID: image-size -:END: -Adjust image size using =gnosis-image-height= & =gnosis-image-width= - -Example: -#+begin_src emacs-lisp -(setf gnosis-image-height 300 - gnosis-image-width 300) -#+end_src ** Typos | String Comparison You can adjust =gnosis-string-difference=, this is a threshold value for string comparison that determines the maximum acceptable @@ -240,39 +225,6 @@ it's next review date will be on the same date. + You can edit a note after review by pressing ~e~ + Open =gnosis-dashboard= with =M-x gnosis-dashboard=, find the note you want to edit and press ~e~ -* Configuring Note Types -** Custom Note Types -Each gnosis note type has an /interactive/ function, named -=gnosis-add-note-TYPE= and a "hidden" function -named =gnosis-add-note--TYPE=. You can create your own custom interactive -functions to ignore or hard-code specific values by using already -defined hidden functions that handle all the logic. - -For example: - -#+begin_src emacs-lisp - (defun gnosis-add-note-custombasic (deck) - (gnosis-add-note--basic :deck deck - :question (gnosis-read-string-from-buffer "Question: " "") - :answer (read-string "Answer: ") - :hint (gnosis-hint-prompt gnosis-previous-note-hint) - :extra "" - :images nil - :tags (gnosis-prompt-tags--split gnosis-previous-note-tags))) - ;; Add custom note type to gnosis-note-types - (add-to-list 'gnosis-note-types "custombasic") -#+end_src - -Now ~custombasic~ is available as a note type, for which you won't be prompted to enter -anything for ~extra~ & ~images~. - -** Development -To make development and customization easier, gnosis comes with -=gnosis-test= module, that should be used to create a custom database for -testing. - -To exit the testing environment, rerun =M-x gnosis-test-start= and -then enter =n= (no) at the prompt "Start development env?" * Sync between devices