branch: elpa/gnosis
commit 3f449c93e80dbf742808bb1da6867459048a7c1e
Author: Thanos Apollo <[email protected]>
Commit: Thanos Apollo <[email protected]>
docs: Depend on distributing docs through elpas
+ Only provide docs in org format, from which ELPAs (nongnu or GNU)
will generate a .info file.
---
doc/gnosis.info | 538 --------------------------------------------------------
doc/gnosis.texi | 491 ---------------------------------------------------
gnosis.el | 2 +-
3 files changed, 1 insertion(+), 1030 deletions(-)
diff --git a/doc/gnosis.info b/doc/gnosis.info
deleted file mode 100644
index b7afab8514..0000000000
--- a/doc/gnosis.info
+++ /dev/null
@@ -1,538 +0,0 @@
-This is gnosis.info, produced by .texi2any-real version 7.1.1 from
-gnosis.texi.
-
-INFO-DIR-SECTION Emacs misc features
-START-INFO-DIR-ENTRY
-* Gnosis: (gnosis). Spaced Repetition Note Taking System.
-END-INFO-DIR-ENTRY
-
-
-File: gnosis.info, Node: Top, Next: Introduction, Up: (dir)
-
-Gnosis User Manual
-******************
-
-Gnosis (GNU-sis) 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.
-
-This manual is written for Gnosis version 0.4.4, released on 2024-10-06.
-
- • Manual:
- • <https://elpa.nongnu.org/nongnu/doc/gnosis.html>
- • <https://thanosapollo.org/projects/gnosis/> (Mirror)
- • Git repositories:
- • <https://git.thanosapollo.org/gnosis>
- • <https://codeberg.org/thanosapollo/emacs-gnosis> (Mirror)
- •
- <https://git.savannah.gnu.org/cgit/emacs/nongnu.git/?h=elpa/gnosis>
- (Mirror)
-
-* Menu:
-
-* Introduction::
-* Adding notes::
-* Note Types::
-* Customization::
-* Gnosis Algorithm::
-* Editing notes::
-* Configuring Note Types::
-* Sync between devices::
-* Interactions with other software::
-* Contributing::
-
--- The Detailed Node Listing --
-
-Note Types
-
-* Cloze::
-* MC-Cloze (Under development)::
-* MCQ::
-* Basic Type::
-* Double::
-* y-or-n::
-
-Customization
-
-* Image size::
-* Typos | String Comparison::
-
-Gnosis Algorithm
-
-* Anagnosis Event::
-* Proto::
-
-Configuring Note Types
-
-* Custom Note Types::
-* Development::
-
-Interactions with other software
-
-* emacs-no-littering::
-
-Contributing
-
-* How to create a patch::
-
-
-
-File: gnosis.info, Node: Introduction, Next: Adding notes, Prev: Top, Up:
Top
-
-1 Introduction
-**************
-
-Gnosis (γνῶσις) is a spaced repetition system that enhances memory
-retention through active recall. It employs a Q&A format, where each
-note consists of a question, answer, and explanation. Notes are
-reviewed at optimally spaced intervals based on the user's success or
-failure to recall the answer. Key benefits arise from writing out
-answers when reviewing notes, fostering deeper understanding and
-improved memory retention.
-
- Gnosis algorithm is highly adjustable, allowing users to set specific
-values not just for note decks but for tags as well. Gnosis'
-adjustability allows users to fine-tune settings not only for entire
-note collections but also for specific tagged topics, thereby creating a
-personalized learning environment for each topic. Read more on *note
-Gnosis Algorithm::
-
- Before continuing reading this manual, it's recommended you try out
-‘gnosis-demo’.
-
-
-File: gnosis.info, Node: Adding notes, Next: Note Types, Prev:
Introduction, Up: Top
-
-2 Adding notes
-**************
-
-Creating notes for gnosis can be done interactively with:
-
- ‘M-x gnosis-add-note’
-
- Or from within ‘gnosis-dashboard’
-
- When it comes to adding images, you can select images that are inside
-‘gnosis-images-dir’. For adjusting image size, refer to *note
-Customization::
-
-
-File: gnosis.info, Node: Note Types, Next: Customization, Prev: Adding
notes, Up: Top
-
-3 Note Types
-************
-
-* Menu:
-
-* Cloze::
-* MC-Cloze (Under development)::
-* MCQ::
-* Basic Type::
-* Double::
-* y-or-n::
-
-
-File: gnosis.info, Node: Cloze, Next: MC-Cloze (Under development), Up:
Note Types
-
-3.1 Cloze
-=========
-
-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:
-
- {c1:Cyproheptadine::drug name} is a(n) {c2:5-HT2} receptor
- antagonist used to treat {c2:serotonin syndrome}
-
- 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.
-
- • 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’.
-
-
-File: gnosis.info, Node: MC-Cloze (Under development), Next: MCQ, Prev:
Cloze, Up: Note Types
-
-3.2 MC-Cloze (Under development)
-================================
-
-MC-Cloze is disabled by default, to enable it add to your configuration:
-
- ‘(add-to-list 'gnosis-note-types "MC-Cloze")’
-
- A MC-Cloze (_Multiple Choice Cloze_) is a fill-in-the-blank note, but
-unlike *note cloze note type: Cloze. the user is prompted to select an
-option instead of typing an answer.
-
- 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.
-
- Example:
- The greatest text editor is Emacs&&Vim&&Helix
-
- When customizing ‘gnosis-mc-cloze=separator’ pay attention to not use
-values that would mess up with regex functions.
-
-
-File: gnosis.info, Node: MCQ, Next: Basic Type, Prev: MC-Cloze (Under
development), Up: Note Types
-
-3.3 MCQ
-=======
-
-A MCQ note type, as the name suggests, is a multiple choice question.
-
- The stem field (question) is separated by the options (choices) via
-‘gnosis-mcq-separator’, each option is separated by
-‘gnosis-mcq-option-separator’.
-
- You can remove the _guidance_ string by adjusting
-‘gnosis-mcq-guidance’.
-
-
-File: gnosis.info, Node: Basic Type, Next: Double, Prev: MCQ, Up: Note
Types
-
-3.4 Basic Type
-==============
-
-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.
-
-
-File: gnosis.info, Node: Double, Next: y-or-n, Prev: Basic Type, Up: Note
Types
-
-3.5 Double
-==========
-
-Double note type, is essentially a note that generates 2 basic notes.
-The second one reverses question/answer.
-
- Ideal for vocabulary acquisition notes.
-
-
-File: gnosis.info, Node: y-or-n, Prev: Double, Up: Note Types
-
-3.6 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".
-
- 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.
-
-
-File: gnosis.info, Node: Customization, Next: Gnosis Algorithm, Prev: Note
Types, Up: Top
-
-4 Customization
-***************
-
-* Menu:
-
-* Image size::
-* Typos | String Comparison::
-
-
-File: gnosis.info, Node: Image size, Next: Typos | String Comparison, Up:
Customization
-
-4.1 Image size
-==============
-
-Adjust image size using ‘gnosis-image-height’ & ‘gnosis-image-width’
-
- Example:
- (setf gnosis-image-height 300
- gnosis-image-width 300)
-
-
-File: gnosis.info, Node: Typos | String Comparison, Prev: Image size, Up:
Customization
-
-4.2 Typos | String Comparison
-=============================
-
-You can adjust ‘gnosis-string-difference’, this is a threshold value for
-string comparison that determines the maximum acceptable Levenshtein
-distance between two strings, which identifies their similarity
-
- Let's illustrate with an example:
- (setf gnosis-string-difference 1)
-
- In this scenario, we set ‘gnosis-string-difference’ to 1. This
-implies that two strings will be recognized as similar if they exhibit a
-difference of at most one character edit.
-
- To demonstrate, 'example' and 'examples' will be recognized as
-similar, considering that the latter involves just one additional
-character."
-
-
-File: gnosis.info, Node: Gnosis Algorithm, Next: Editing notes, Prev:
Customization, Up: Top
-
-5 Gnosis Algorithm
-******************
-
-Each gnosis note has a gnosis score, which is a list of 3 values,
-(gnosis-plus gnosis-minus gnosis-synolon/total). Gnosis-synolon is what
-is used to determine the next interval upon a successful recall,
-gnosis-plus is added to gnosis-synolon upon a successful recall as well,
-gnosis-minus is subtracted from gnosis-synolon upon failing to recall a
-note's answer.
-
- Gnosis has 2 special events, one is ‘anagnosis’ _ανάγνωση_ and
-‘lethe’ _λήθη_.
-
-* Menu:
-
-* Anagnosis Event::
-* Proto::
-
-
-File: gnosis.info, Node: Anagnosis Event, Next: Proto, Up: Gnosis Algorithm
-
-5.1 Anagnosis Event
-===================
-
-‘Anagnosis’, which means comprehension & recognition of knowledge, is
-triggered when the consecutive successful or failed recalls are equal or
-greater to anagnosis value.
-
- When ‘anagnosis’ is triggered by consecutive *successful* recalls,
-‘epignosis’ value is added to gnosis-plus. _Epignosis means accuracy of
-knowledge_.
-
- When ‘anagnosis’ is triggered by consecutive *failed* recalls,
-‘agnoia’ value is added to gnosis-minus. _Agnoia means lack of
-knowledge_
-
- You can set specific values for each deck and tag of the variables
-mentioned above by adjusting ‘gnosis-custom-values’.
-
-
-File: gnosis.info, Node: Proto, Prev: Anagnosis Event, Up: Gnosis Algorithm
-
-5.2 Proto
-=========
-
-The default initial interval is defined at ‘gnosis-algorithm-proto’, you
-can define a custom initial interval for each deck as well.
-
- ‘gnosis-algorithm-interval’ is a list of numbers, representing the
-first initial intervals for successful reviews. There is no limit on
-the length of the list.
-
- Example:
-
- (setq gnosis-algorithm-interval '(0 1 2 30))
-
- Upon each successful note review, the algorithm will increment to the
-next interval value: 0 days (0), 1 day later (1), 2 days later (2), and
-30 days later.
-
- Upon failing to review a note without completing it's proto
-successful reviews, it's next review date will be on the same date.
-
-
-File: gnosis.info, Node: Editing notes, Next: Configuring Note Types, Prev:
Gnosis Algorithm, Up: Top
-
-6 Editing notes
-***************
-
- • Currently there are 2 ways for editing notes:
-
- • 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’
-
-
-File: gnosis.info, Node: Configuring Note Types, Next: Sync between devices,
Prev: Editing notes, Up: Top
-
-7 Configuring Note Types
-************************
-
-* Menu:
-
-* Custom Note Types::
-* Development::
-
-
-File: gnosis.info, Node: Custom Note Types, Next: Development, Up:
Configuring Note Types
-
-7.1 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:
-
- (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")
-
- Now ‘custombasic’ is available as a note type, for which you won't be
-prompted to enter anything for ‘extra’ & ‘images’.
-
-
-File: gnosis.info, Node: Development, Prev: Custom Note Types, Up:
Configuring Note Types
-
-7.2 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?"
-
-
-File: gnosis.info, Node: Sync between devices, Next: Interactions with other
software, Prev: Configuring Note Types, Up: Top
-
-8 Sync between devices
-**********************
-
-Gnosis uses git to maintain data integrity and facilitate
-synchronization across devices.
-
- You will need to configure your remote manually.
-
- Example:
-
- cd ~/.emacs.d/gnosis # default location for gnosis, no-littering is
~/.emacs.d/var/gnosis
- git init # After completing your first review session, a git repo should
have been initialized automatically.
- git remote add origin <remote_url>
- git push --set-upstream origin master
-
- You can interactively use ‘gnosis-vc-push’ & ‘gnosis-vc-pull’. As
-the name suggests, they rely on ‘vc’ to work properly.
-
- Depending on your setup, ‘vc’ might require an external package for
-the ssh passphrase dialog, such as ‘x11-ssh-askpass’.
-
- To automatically push changes after a review session, add this to
-your configuration:
- (setf gnosis-vc-auto-push t)
- (gnosis-vc-pull) ;; Run vc-pull for gnosis on startup
-
-
-File: gnosis.info, Node: Interactions with other software, Next:
Contributing, Prev: Sync between devices, Up: Top
-
-9 Interactions with other software
-**********************************
-
-* Menu:
-
-* emacs-no-littering::
-
-
-File: gnosis.info, Node: emacs-no-littering, Up: Interactions with other
software
-
-9.1 emacs-no-littering
-======================
-
-If you are a user of emacs-no-littering
-(https://github.com/emacscollective/no-littering), you can theme Gnosis
-to fit its standards by adding the following snippet to your
-configuration:
-
- (setq gnosis-dir (no-littering-expand-var-file-name "gnosis/"))
-
- This sets ‘gnosis-dir’ to ‘~/.emacs.d/var/gnosis’, in line with the
-folders of other packages.
-
-
-File: gnosis.info, Node: Contributing, Prev: Interactions with other
software, Up: Top
-
-10 Contributing
-***************
-
-Thank you for considering contributing back to gnosis. You can
-contribute by submitting a pull request on the codeberg mirror
-repository, or directly sending me patch via email.
-
-* Menu:
-
-* How to create a patch::
-
-
-File: gnosis.info, Node: How to create a patch, Up: Contributing
-
-10.1 How to create a patch
-==========================
-
-_Example:_
-
- $ git clone https://git.thanosapollo.com/gnosis.git && cd gnosis
- $ emacs something
- $ git add something
- $ git commit -m "Fix something"
- $ git format-patch HEAD^1
- 0001-Fix-something.patch
-
- You can sent the patch to "Thanos Apollo", the email of which you can
-find on the git log.
-
-
-
-Tag Table:
-Node: Top221
-Node: Introduction1702
-Node: Adding notes2715
-Node: Note Types3126
-Node: Cloze3344
-Node: MC-Cloze (Under development)4506
-Node: MCQ5494
-Node: Basic Type5932
-Node: Double6208
-Node: y-or-n6474
-Node: Customization6876
-Node: Image size7061
-Node: Typos | String Comparison7347
-Node: Gnosis Algorithm8122
-Node: Anagnosis Event8769
-Node: Proto9510
-Node: Editing notes10277
-Node: Configuring Note Types10671
-Node: Custom Note Types10883
-Node: Development12093
-Node: Sync between devices12512
-Node: Interactions with other software13597
-Node: emacs-no-littering13823
-Node: Contributing14323
-Node: How to create a patch14665
-
-End Tag Table
-
-
-Local Variables:
-coding: utf-8
-End:
diff --git a/doc/gnosis.texi b/doc/gnosis.texi
deleted file mode 100644
index a0d9a89f19..0000000000
--- a/doc/gnosis.texi
+++ /dev/null
@@ -1,491 +0,0 @@
-\input texinfo @c -*- texinfo -*-
-@c %**start of header
-@setfilename gnosis.info
-@settitle Gnosis User Manual
-@documentencoding UTF-8
-@documentlanguage en
-@set MAINTAINERSITE @uref{https://thanosapollo.org,maintainer webpage}
-@set MAINTAINER Thanos Apollo
-@set MAINTAINEREMAIL @email{[email protected]}
-@set MAINTAINERCONTACT @uref{mailto:[email protected],contact the
maintainer}
-@c %**end of header
-
-@dircategory Emacs misc features
-@direntry
-* Gnosis: (gnosis). Spaced Repetition Note Taking System.
-@end direntry
-
-@finalout
-@titlepage
-@title Gnosis User Manual
-@author Thanos Apollo (@email{public@@thanosapollo.org})
-@end titlepage
-
-@ifnottex
-@node Top
-@top Gnosis User Manual
-
-Gnosis (GNU-sis) 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.
-
-@noindent
-This manual is written for Gnosis version 0.4.4, released on 2024-10-06.
-
-@itemize
-@item
-Manual:
-@itemize
-@item
-@uref{https://elpa.nongnu.org/nongnu/doc/gnosis.html}
-@item
-@uref{https://thanosapollo.org/projects/gnosis/} (Mirror)
-@end itemize
-@item
-Git repositories:
-@itemize
-@item
-@uref{https://git.thanosapollo.org/gnosis}
-@item
-@uref{https://codeberg.org/thanosapollo/emacs-gnosis} (Mirror)
-@item
-@uref{https://git.savannah.gnu.org/cgit/emacs/nongnu.git/?h=elpa/gnosis}
(Mirror)
-@end itemize
-@end itemize
-
-@insertcopying
-
-@end ifnottex
-
-@menu
-* Introduction::
-* Adding notes::
-* Note Types::
-* Customization::
-* Gnosis Algorithm::
-* Editing notes::
-* Configuring Note Types::
-* Sync between devices::
-* Interactions with other software::
-* Contributing::
-
-@detailmenu
---- The Detailed Node Listing ---
-
-Note Types
-
-* Cloze::
-* MC-Cloze (Under development)::
-* MCQ::
-* Basic Type::
-* Double::
-* y-or-n::
-
-Customization
-
-* Image size::
-* Typos | String Comparison::
-
-Gnosis Algorithm
-
-* Anagnosis Event::
-* Proto::
-
-Configuring Note Types
-
-* Custom Note Types::
-* Development::
-
-Interactions with other software
-
-* emacs-no-littering::
-
-Contributing
-
-* How to create a patch::
-
-@end detailmenu
-@end menu
-
-@node Introduction
-@chapter Introduction
-
-Gnosis (γνῶσις) is a spaced repetition system that enhances memory
-retention through active recall. It employs a Q&A format, where each
-note consists of a question, answer, and explanation. Notes are
-reviewed at optimally spaced intervals based on the user's success or
-failure to recall the answer. Key benefits arise from writing out
-answers when reviewing notes, fostering deeper understanding
-and improved memory retention.
-
-Gnosis algorithm is highly adjustable, allowing users to set specific
-values not just for note decks but for tags as well. Gnosis'
-adjustability allows users to fine-tune settings not only for entire
-note collections but also for specific tagged topics, thereby creating
-a personalized learning environment for each topic. Read more on
-@ref{Gnosis Algorithm}
-
-Before continuing reading this manual, it's recommended you try out
-@samp{gnosis-demo}.
-
-@node Adding notes
-@chapter Adding notes
-
-Creating notes for gnosis can be done interactively with:
-
-@samp{M-x gnosis-add-note}
-
-Or from within @samp{gnosis-dashboard}
-
-When it comes to adding images, you can select images that are inside
-@samp{gnosis-images-dir}. For adjusting image size, refer to
@ref{Customization}
-
-@node Note Types
-@chapter Note Types
-
-@menu
-* Cloze::
-* MC-Cloze (Under development)::
-* MCQ::
-* Basic Type::
-* Double::
-* y-or-n::
-@end menu
-
-@node Cloze
-@section Cloze
-
-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 @samp{M-x gnosis-add-note} and
-selecting @code{Cloze}, the question should be formatted like this:
-
-@quotation
-@{c1:Cyproheptadine::drug name@} is a(n) @{c2:5-HT2@} receptor antagonist used
to treat @{c2:serotonin syndrome@}
-
-@end quotation
-
-You can also format clozes like Anki if you so prefer; e.g
@code{@{@{c1::Cyproheptadine::drug name@}@}}
-
-@itemize
-@item
-For each cX-tag there will be created a cloze type note, the above
-example creates 2 cloze type notes.
-
-@item
-Each cX tag can have multiple clozes, but each cloze must be a
-@strong{UNIQUE} word, or a unique combination of words, in given note.
-
-@itemize
-@item
-If a cloze is repeated, such as in phrases with ``acetyl'' &
-acetylcholine, include whitespace in the cloze to denote a single
-word.
-@end itemize
-
-@item
-You can use the keyword @samp{::} to indicate a hint.
-@end itemize
-
-You can remove the @emph{guidance} string by adjusting
-@samp{gnosis-cloze-guidance}.
-
-@node MC-Cloze (Under development)
-@section MC-Cloze (Under development)
-
-MC-Cloze is disabled by default, to enable it add to your configuration:
-
-@samp{(add-to-list 'gnosis-note-types "MC-Cloze")}
-
-A MC-Cloze (@emph{Multiple Choice Cloze}) is a fill-in-the-blank note,
-but unlike @ref{Cloze, , cloze note type} the user is prompted to select an
option
-instead of typing an answer.
-
-You can create multiple notes from one input, but each note can only
-have @strong{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 @samp{gnosis-mc-cloze-separator} (default value is ``&&''), and a
-note will be generated from each cloze.
-
-Example:
-@quotation
-The greatest text editor is Emacs&&Vim&&Helix
-
-@end quotation
-
-When customizing @samp{gnosis-mc-cloze=separator} pay attention to not use
-values that would mess up with regex functions.
-
-@node MCQ
-@section MCQ
-
-A MCQ note type, as the name suggests, is a multiple choice question.
-
-The stem field (question) is separated by the options (choices) via
-@samp{gnosis-mcq-separator}, each option is separated by
@samp{gnosis-mcq-option-separator}.
-
-You can remove the @emph{guidance} string by adjusting
-@samp{gnosis-mcq-guidance}.
-
-@node Basic Type
-@section Basic Type
-
-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.
-
-@node Double
-@section Double
-
-Double note type, is essentially a note that generates 2 basic notes.
-The second one reverses question/answer.
-
-Ideal for vocabulary acquisition notes.
-
-@node y-or-n
-@section 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''.
-
-When using the hidden function @samp{gnosis-add-note--y-or-n}, note that the
-ANSWER must be either 121 (@code{y}) or 110 (@code{n}), as those correspond to
the
-character values used to represent them.
-
-@node Customization
-@chapter Customization
-
-@menu
-* Image size::
-* Typos | String Comparison::
-@end menu
-
-@node Image size
-@section Image size
-
-Adjust image size using @samp{gnosis-image-height} & @samp{gnosis-image-width}
-
-Example:
-@lisp
-(setf gnosis-image-height 300
- gnosis-image-width 300)
-@end lisp
-
-@node Typos | String Comparison
-@section Typos | String Comparison
-
-You can adjust @samp{gnosis-string-difference}, this is a threshold value
-for string comparison that determines the maximum acceptable
-Levenshtein distance between two strings, which identifies their
-similarity
-
-Let's illustrate with an example:
-@lisp
-(setf gnosis-string-difference 1)
-@end lisp
-
-In this scenario, we set @samp{gnosis-string-difference} to 1. This implies
-that two strings will be recognized as similar if they exhibit a
-difference of at most one character edit.
-
-To demonstrate, 'example' and 'examples' will be recognized as
-similar, considering that the latter involves just one additional
-character."
-
-@node Gnosis Algorithm
-@chapter Gnosis Algorithm
-
-Each gnosis note has a gnosis score, which is a list of 3 values,
-(gnosis-plus gnosis-minus gnosis-synolon/total). Gnosis-synolon is
-what is used to determine the next interval upon a successful recall,
-gnosis-plus is added to gnosis-synolon upon a successful recall as
-well, gnosis-minus is subtracted from gnosis-synolon upon failing to
-recall a note's answer.
-
-Gnosis has 2 special events, one is @code{anagnosis} @emph{ανάγνωση} and
@code{lethe} @emph{λήθη}.
-
-@menu
-* Anagnosis Event::
-* Proto::
-@end menu
-
-@node Anagnosis Event
-@section Anagnosis Event
-
-@code{Anagnosis}, which means comprehension & recognition of knowledge, is
-triggered when the consecutive successful or failed recalls are equal
-or greater to anagnosis value.
-
-When @code{anagnosis} is triggered by consecutive @strong{successful} recalls,
-@code{epignosis} value is added to gnosis-plus. @emph{Epignosis means
accuracy of knowledge}.
-
-When @code{anagnosis} is triggered by consecutive @strong{failed} recalls,
-@code{agnoia} value is added to gnosis-minus. @emph{Agnoia means lack of
knowledge}
-
-You can set specific values for each deck and tag of the variables
-mentioned above by adjusting @samp{gnosis-custom-values}.
-
-@node Proto
-@section Proto
-
-The default initial interval is defined at
-@samp{gnosis-algorithm-proto}, you can define a custom initial interval
-for each deck as well.
-
-@samp{gnosis-algorithm-interval} is a list of numbers, representing the
-first initial intervals for successful reviews. There is no limit on
-the length of the list.
-
-Example:
-
-@lisp
-(setq gnosis-algorithm-interval '(0 1 2 30))
-@end lisp
-
-Upon each successful note review, the algorithm will increment to the
-next interval value: 0 days (0), 1 day later (1), 2 days later
-(2), and 30 days later.
-
-Upon failing to review a note without completing it's proto successful reviews,
-it's next review date will be on the same date.
-
-@node Editing notes
-@chapter Editing notes
-
-@itemize
-@item
-Currently there are 2 ways for editing notes:
-
-@itemize
-@item
-You can edit a note after review by pressing @code{e}
-@item
-Open @samp{gnosis-dashboard} with @samp{M-x gnosis-dashboard}, find the note
you want to edit and press @code{e}
-@end itemize
-@end itemize
-
-@node Configuring Note Types
-@chapter Configuring Note Types
-
-@menu
-* Custom Note Types::
-* Development::
-@end menu
-
-@node Custom Note Types
-@section Custom Note Types
-
-Each gnosis note type has an @emph{interactive} function, named
-@samp{gnosis-add-note-TYPE} and a ``hidden'' function
-named @samp{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:
-
-@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 lisp
-
-Now @code{custombasic} is available as a note type, for which you won't be
prompted to enter
-anything for @code{extra} & @code{images}.
-
-@node Development
-@section Development
-
-To make development and customization easier, gnosis comes with
-@samp{gnosis-test} module, that should be used to create a custom database for
-testing.
-
-To exit the testing environment, rerun @samp{M-x gnosis-test-start} and
-then enter @samp{n} (no) at the prompt ``Start development env?''
-
-@node Sync between devices
-@chapter Sync between devices
-
-Gnosis uses git to maintain data integrity and facilitate
-synchronization across devices.
-
-You will need to configure your remote manually.
-
-Example:
-
-@example
-cd ~/.emacs.d/gnosis # default location for gnosis, no-littering is
~/.emacs.d/var/gnosis
-git init # After completing your first review session, a git repo should have
been initialized automatically.
-git remote add origin <remote_url>
-git push --set-upstream origin master
-@end example
-
-
-You can interactively use @samp{gnosis-vc-push} & @samp{gnosis-vc-pull}. As the
-name suggests, they rely on @samp{vc} to work properly.
-
-Depending on your setup, @samp{vc} might require an external package for
-the ssh passphrase dialog, such as @code{x11-ssh-askpass}.
-
-To automatically push changes after a review session, add this to your
configuration:
-@lisp
-(setf gnosis-vc-auto-push t)
-(gnosis-vc-pull) ;; Run vc-pull for gnosis on startup
-@end lisp
-
-@node Interactions with other software
-@chapter Interactions with other software
-
-@menu
-* emacs-no-littering::
-@end menu
-
-@node emacs-no-littering
-@section emacs-no-littering
-
-If you are a user of @uref{https://github.com/emacscollective/no-littering,
emacs-no-littering}, you can theme Gnosis to fit
-its standards by adding the following snippet to your configuration:
-
-@lisp
-(setq gnosis-dir (no-littering-expand-var-file-name "gnosis/"))
-@end lisp
-
-This sets @samp{gnosis-dir} to @samp{~/.emacs.d/var/gnosis}, in line with the
folders of other packages.
-
-@node Contributing
-@chapter Contributing
-
-Thank you for considering contributing back to gnosis. You can
-contribute by submitting a pull request on the codeberg mirror
-repository, or directly sending me patch via email.
-
-@menu
-* How to create a patch::
-@end menu
-
-@node How to create a patch
-@section How to create a patch
-
-@emph{Example:}
-
-@example
-$ git clone https://git.thanosapollo.com/gnosis.git && cd gnosis
-$ emacs something
-$ git add something
-$ git commit -m "Fix something"
-$ git format-patch HEAD^1
-0001-Fix-something.patch
-@end example
-
-You can sent the patch to ``Thanos Apollo'', the email of which you can
-find on the git log.
-
-@bye
diff --git a/gnosis.el b/gnosis.el
index d92a4385e0..30ad1eaf27 100644
--- a/gnosis.el
+++ b/gnosis.el
@@ -192,7 +192,7 @@ Avoid using an increased height value as this messes up with
(defvar gnosis-review-notes nil
"Review notes.")
-(defvar gnosis-separator "\n- ")
+(defvar gnosis-export-separator "\n- ")
;; TODO: Make this as a defcustom.
(defvar gnosis-custom-values