summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/gnosis.info411
-rw-r--r--doc/gnosis.texi401
-rw-r--r--gnosis-dev.el6
-rw-r--r--gnosis.el1
4 files changed, 4 insertions, 815 deletions
diff --git a/doc/gnosis.info b/doc/gnosis.info
deleted file mode 100644
index ddae27d..0000000
--- a/doc/gnosis.info
+++ /dev/null
@@ -1,411 +0,0 @@
-This is gnosis.info, produced by makeinfo version 7.1 from gnosis.texi.
-
-INFO-DIR-SECTION Emacs misc features
-START-INFO-DIR-ENTRY
-* Gnosis (γνῶσις): (gnosis). Spaced Repetition System For Note Taking And Self-Testing.
-END-INFO-DIR-ENTRY
-
-
-File: gnosis.info, Node: Top, Next: Introduction, Up: (dir)
-
-Gnosis User Manual
-******************
-
-Gnosis (γνῶσις), pronounced "noh-sis", _meaning knowledge in Greek_, is
-a spaced repetition system implementation for note taking and self
-testing.
-
-This manual is written for Gnosis version 0.1.4, released on 2023-01-19.
-
- • Official manual: <https://thanosapollo.org/user-manual/gnosis>
- • Git repositories:
- • main: <https://git.thanosapollo.org/gnosis>
- • sourcehut (mirror): <https://git.sr.ht/~thanosapollo/gnosis>
-
-* Menu:
-
-* Introduction::
-* Installation::
-* Adding notes::
-* Note Types::
-* Customization & Development::
-
--- The Detailed Node Listing --
-
-Installation
-
-* Using straight.el: Using straightel.
-* Installing manually from source::
-
-Note Types
-
-* Cloze::
-* Basic Type::
-* Double::
-* MCQ (Multiple Choice Question)::
-* y-or-n::
-
-Customization & Development
-
-* Creating Custom Note Types::
-* Customizing Gnosis Algorithm::
-
-Customizing Gnosis Algorithm
-
-* Gnosis Algorithm Initial Interval::
-* Gnosis Algorithm Easiness Factor::
-* Gnosis Algorithm Forgetting Factor::
-
-
-
-File: gnosis.info, Node: Introduction, Next: Installation, Prev: Top, Up: Top
-
-1 Introduction
-**************
-
-Gnosis is a spaced repetition note taking and self testing system, where
-notes are taken in a Question/Answer/Explanation-like format & reviewed
-in spaced intervals.
-
- Gnosis can help you better understand and retain the material by
-encouraging active engagement. It also provides a clear structure for
-your notes & review sessions, making it easier to study.
-
-
-File: gnosis.info, Node: Installation, Next: Adding notes, Prev: Introduction, Up: Top
-
-2 Installation
-**************
-
-Gnosis is not currently available in any ELPA, the recommended way to
-install gnosis is via straight.el:
-
- <https://github.com/radian-software/straight.el>
-
-* Menu:
-
-* Using straight.el: Using straightel.
-* Installing manually from source::
-
-
-File: gnosis.info, Node: Using straightel, Next: Installing manually from source, Up: Installation
-
-2.1 Using straight.el
-=====================
-
-If you have not installed straight.el, follow the instructions here:
-
- <https://github.com/radian-software/straight.el>
-
- Once you have installed straight.el, you can install gnosis using the
-following emacs lisp snippet:
-
- (straight-use-package
- '(gnosis :type git
- :host nil
- :repo "https://git.thanosapollo.org/gnosis"))
-
-
-File: gnosis.info, Node: Installing manually from source, Prev: Using straightel, Up: Installation
-
-2.2 Installing manually from source
-===================================
-
-Gnosis depends on the ‘compat’ & ‘emacsql’ libraries which are available
-from MELPA. Install them using ‘M-x package-install RET <package> RET’
-or you may also install them manually from their repository.
-
- • Clone gnosis repository
-
- $ git clone https://git.thanosapollo.org/gnosis ~/.emacs.d/site-lisp/gnosis
-
- • Add this to your emacs configuration
-
- (add-to-list 'load-path "~/.emacs.d/site-lisp/gnosis")
- (load-file "~/.emacs.d/site-lisp/gnosis/gnosis.el")
-
-
-File: gnosis.info, Node: Adding notes, Next: Note Types, Prev: Installation, Up: Top
-
-3 Adding notes
-**************
-
-Creating notes for gnosis can be done interactively with: ‘M-x
-gnosis-add-note’
-
- Advanced/Power users may prefer to use ‘gnosis-add-note--TYPE’
-
- Example:
-
- (gnosis-add-note--basic :deck "DECK-NAME"
- :question "Your Question"
- :answer "Answer"
- :hint "hint"
- :extra "Explanation"
- :image "Image displayed before user-input" ;; Optional
- :second-image "Image displayed after user-input" ;; Optional
- :tags '("tag1" "tag2"))
-
- By default, the value of image and second image is nil. Their value
-must a string, the path of an image, from inside ‘gnosis-images-dir’.
-
- Each note type has a ‘gnosis-add-note-TYPE’ that is used
-interactively & a "hidden function" ‘gnosis-add-note--TYPE’ that handles
-all the logic.
-
- Every note type has these values in common:
-
- • ‘extra’ string value, extra information/explanation displayed after
- user-input
- • ‘image’ Image displayed _before_ user input
- • ‘second-image’ Image displayed _after_ user input
-
- The following sections will cover the important differences you have
-to know when creating new notes.
-
-
-File: gnosis.info, Node: Note Types, Next: Customization & Development, Prev: Adding notes, Up: Top
-
-4 Note Types
-************
-
-* Menu:
-
-* Cloze::
-* Basic Type::
-* Double::
-* MCQ (Multiple Choice Question)::
-* y-or-n::
-
-
-File: gnosis.info, Node: Cloze, Next: Basic Type, Up: Note Types
-
-4.1 Cloze
-=========
-
-A cloze note type is a format where you create sentences or paragraphs
-with "missing" words. Almost all note types can be written as a cloze
-type in a way. Ideal type for memorizing definitions.
-
- To get the most out of gnosis, you have to become familiar with cloze
-type notes.
-
- 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} is a(n) {c2:5-HT2} receptor antagonist used to
- treat {c2:serotonin syndrome}
-
- You can also format clozes like Anki if you prefer; e.g
-‘{{c1::Cyproheptadine}}’
-
- • 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.
-
-
-File: gnosis.info, Node: Basic Type, Next: Double, Prev: Cloze, Up: Note Types
-
-4.2 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: MCQ (Multiple Choice Question), Prev: Basic Type, Up: Note Types
-
-4.3 Double
-==========
-
-Double note type, is essentially a note that generates 2 basic notes.
-The second one reverses question/answer.
-
- Ideal for vocabulary acquisition, creating vocabulary/translation
-notes for a foreign language.
-
-
-File: gnosis.info, Node: MCQ (Multiple Choice Question), Next: y-or-n, Prev: Double, Up: Note Types
-
-4.4 MCQ (Multiple Choice Question)
-==================================
-
-MCQ note type, consists of a "stem" part that is displayed, and
-"options" for the user to select the right one.
-
- Answer must be the index NUMBER of the correct answer from OPTIONS.
-
- Ideal for self testing & simulating exams
-
-
-File: gnosis.info, Node: y-or-n, Prev: MCQ (Multiple Choice Question), Up: Note Types
-
-4.5 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 & Development, Prev: Note Types, Up: Top
-
-5 Customization & Development
-*****************************
-
-To make development and customization easier, gnosis comes with
-‘gnosis-dev’ module, that should be used to create a custom database for
-testing.
-
- To use ‘gnosis-dev’, first you have to ‘(require 'gnosis-dev)’ & run
-‘M-x gnosis-dev-test’. This will create a new directory 'testing' with
-a new database.
-
- To exit the testing environment, rerun ‘M-x gnosis-dev-test’ and then
-enter ‘n’ (no) at the prompt "Start development env?"
-
-* Menu:
-
-* Creating Custom Note Types::
-* Customizing Gnosis Algorithm::
-
-
-File: gnosis.info, Node: Creating Custom Note Types, Next: Customizing Gnosis Algorithm, Up: Customization & Development
-
-5.1 Creating Custom Note Types
-==============================
-
-Creating custom note types for gnosis is a fairly simple thing to do
-
- • First add your NEW-TYPE to ‘gnosis-note-types’
-
- (add-to-list 'gnosis-note-types 'new-type)
-
- • Create 2 functions; ‘gnosis-add-note-TYPE’ &
- ‘gnosis-add-note--TYPE’
-
- Each note type has a ‘gnosis-add-note-TYPE’ that is used
-interactively & a "hidden function" ‘gnosis-add-note--TYPE’ that handles
-all the logic.
-
- Refer to ‘gnosis-add-note-basic’ & ‘gnosis-add-note--basic’ for a
-simple example of how this is done.
-
- • Create ‘gnosis-review-TYPE’
-
- This function should handle the review process, displaying it's
-contents and updating the database depending on the result of the review
-(fail/pass). Refer to ‘gnosis-review-basic’ for an example of how this
-should be done.
-
- • Optionally, you might want to create your own custom
- ‘gnosis-display’ functions
-
-
-File: gnosis.info, Node: Customizing Gnosis Algorithm, Prev: Creating Custom Note Types, Up: Customization & Development
-
-5.2 Customizing Gnosis Algorithm
-================================
-
-* Menu:
-
-* Gnosis Algorithm Initial Interval::
-* Gnosis Algorithm Easiness Factor::
-* Gnosis Algorithm Forgetting Factor::
-
-
-File: gnosis.info, Node: Gnosis Algorithm Initial Interval, Next: Gnosis Algorithm Easiness Factor, Up: Customizing Gnosis Algorithm
-
-5.2.1 Gnosis Algorithm Initial Interval
----------------------------------------
-
-‘gnosis-algorithm-interval’ is a list of 2 numbers, representing the
-first two initial intervals for successful reviews.
-
- Example:
-
- (setq gnosis-algorithm-interval '(1 3))
-
- Using the above example, after first successfully reviewing a note,
-you will see it again tomorrow, if you successfully review said note
-again, the next review will be after 3 days.
-
-
-File: gnosis.info, Node: Gnosis Algorithm Easiness Factor, Next: Gnosis Algorithm Forgetting Factor, Prev: Gnosis Algorithm Initial Interval, Up: Customizing Gnosis Algorithm
-
-5.2.2 Gnosis Algorithm Easiness Factor
---------------------------------------
-
-‘gnosis-algorithm-ef’ is a list that consists of 3 items.
-
- The first item is the increase factor, used to increase the easiness
-factor upon successful review.
-
- Second item refers to the decrease factor, used to decrease the
-easiness factor upon an unsuccessful review.
-
- The third item is the initial total easiness factor, used to
-calculate the next interval.
-
- The basic's of how this is used is that it's being multiplied with
-the last interval upon a successful review, e.g if you last reviewed a
-note 6 days ago, and the easiness factor of this note is 2.0, your next
-interval would be 6 * 2.0 & the total easiness factor would be 2.0 +
-increase-factor as well.
-
- Example:
-
- (setq gnosis-algorithm-ef '(0.3 0.3 1.3))
-
-
-File: gnosis.info, Node: Gnosis Algorithm Forgetting Factor, Prev: Gnosis Algorithm Easiness Factor, Up: Customizing Gnosis Algorithm
-
-5.2.3 Gnosis Algorithm Forgetting Factor
-----------------------------------------
-
-‘gnosis-algorithm-ff’ is a floating number below 1.
-
- It's used to calculate the next interval upon an unsuccessful review,
-by being multiplied with last interval.
-
- Example:
-
- (setq gnosis-algorithm-ff 0.5)
-
- For a note with a value of last-interval of 6 days and a ff of 0.5,
-upon an unsuccessful review the next interval will be 6 * 0.5
-
-
-
-Tag Table:
-Node: Top246
-Node: Introduction1372
-Node: Installation1852
-Node: Using straightel2221
-Node: Installing manually from source2737
-Node: Adding notes3426
-Node: Note Types4856
-Node: Cloze5082
-Node: Basic Type6055
-Node: Double6333
-Node: MCQ (Multiple Choice Question)6679
-Node: y-or-n7088
-Node: Customization & Development7514
-Node: Creating Custom Note Types8195
-Node: Customizing Gnosis Algorithm9299
-Node: Gnosis Algorithm Initial Interval9617
-Node: Gnosis Algorithm Easiness Factor10208
-Node: Gnosis Algorithm Forgetting Factor11212
-
-End Tag Table
-
-
-Local Variables:
-coding: utf-8
-End:
diff --git a/doc/gnosis.texi b/doc/gnosis.texi
deleted file mode 100644
index 9054e3f..0000000
--- a/doc/gnosis.texi
+++ /dev/null
@@ -1,401 +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 System For Note Taking And Self-Testing.
-@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 (γνῶσις), pronounced ``noh-sis'', @emph{meaning knowledge in Greek}, is
-a spaced repetition system implementation for note taking and self
-testing.
-
-@noindent
-This manual is written for Gnosis version 0.1.4, released on 2023-01-19.
-
-@itemize
-@item
-Official manual: @uref{https://thanosapollo.org/user-manual/gnosis}
-@item
-Git repositories:
-@itemize
-@item
-main: @uref{https://git.thanosapollo.org/gnosis}
-@item
-sourcehut (mirror): @uref{https://git.sr.ht/~thanosapollo/gnosis}
-@end itemize
-@end itemize
-
-@insertcopying
-
-@end ifnottex
-
-@menu
-* Introduction::
-* Installation::
-* Adding notes::
-* Note Types::
-* Customization & Development::
-
-@detailmenu
---- The Detailed Node Listing ---
-
-Installation
-
-* Using straight.el: Using straightel.
-* Installing manually from source::
-
-Note Types
-
-* Cloze::
-* Basic Type::
-* Double::
-* MCQ (Multiple Choice Question)::
-* y-or-n::
-
-Customization & Development
-
-* Creating Custom Note Types::
-* Customizing Gnosis Algorithm::
-
-Customizing Gnosis Algorithm
-
-* Gnosis Algorithm Initial Interval::
-* Gnosis Algorithm Easiness Factor::
-* Gnosis Algorithm Forgetting Factor::
-
-@end detailmenu
-@end menu
-
-@node Introduction
-@chapter Introduction
-
-Gnosis is a spaced repetition note taking and self testing system,
-where notes are taken in a Question/Answer/Explanation-like format &
-reviewed in spaced intervals.
-
-Gnosis can help you better understand and retain the material by
-encouraging active engagement. It also provides a clear structure for
-your notes & review sessions, making it easier to study.
-
-@node Installation
-@chapter Installation
-
-Gnosis is not currently available in any ELPA, the recommended way to
-install gnosis is via straight.el:
-
-@uref{https://github.com/radian-software/straight.el}
-
-@menu
-* Using straight.el: Using straightel.
-* Installing manually from source::
-@end menu
-
-@node Using straightel
-@section Using straight.el
-
-If you have not installed straight.el, follow the instructions here:
-
-@uref{https://github.com/radian-software/straight.el}
-
-Once you have installed straight.el, you can install gnosis using the
-following emacs lisp snippet:
-
-@lisp
-(straight-use-package
- '(gnosis :type git
- :host nil
- :repo "https://git.thanosapollo.org/gnosis"))
-@end lisp
-
-@node Installing manually from source
-@section Installing manually from source
-
-Gnosis depends on the @code{compat} & @code{emacsql} libraries which are available
-from MELPA@. Install them using @code{M-x package-install RET <package> RET}
-or you may also install them manually from their repository.
-
-@itemize
-@item
-Clone gnosis repository
-
-@example
-$ git clone https://git.thanosapollo.org/gnosis ~/.emacs.d/site-lisp/gnosis
-@end example
-
-@item
-Add this to your emacs configuration
-
-@lisp
-(add-to-list 'load-path "~/.emacs.d/site-lisp/gnosis")
-(load-file "~/.emacs.d/site-lisp/gnosis/gnosis.el")
-@end lisp
-@end itemize
-
-@node Adding notes
-@chapter Adding notes
-
-Creating notes for gnosis can be done interactively with:
- @samp{M-x gnosis-add-note}
-
-
-Advanced/Power users may prefer to use @samp{gnosis-add-note--TYPE}
-
-Example:
-
-@lisp
-(gnosis-add-note--basic :deck "DECK-NAME"
- :question "Your Question"
- :answer "Answer"
- :hint "hint"
- :extra "Explanation"
- :image "Image displayed before user-input" ;; Optional
- :second-image "Image displayed after user-input" ;; Optional
- :tags '("tag1" "tag2"))
-@end lisp
-
-By default, the value of image and second image is nil. Their value
-must a string, the path of an image, from inside @code{gnosis-images-dir}.
-
-Each note type has a @samp{gnosis-add-note-TYPE} that is used
-interactively & a ``hidden function'' @samp{gnosis-add-note--TYPE} that handles
-all the logic.
-
-Every note type has these values in common:
-
-@itemize
-@item
-@code{extra} string value, extra information/explanation displayed after user-input
-@item
-@code{image} Image displayed @emph{before} user input
-@item
-@code{second-image} Image displayed @emph{after} user input
-@end itemize
-
-The following sections will cover the important differences you have
-to know when creating new notes.
-
-@node Note Types
-@chapter Note Types
-
-@menu
-* Cloze::
-* Basic Type::
-* Double::
-* MCQ (Multiple Choice Question)::
-* 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. Almost all note types can be written as a cloze
-type in a way. Ideal type for memorizing definitions.
-
-To get the most out of gnosis, you have to become familiar with cloze type notes.
-
-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@} 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 prefer; e.g @code{@{@{c1::Cyproheptadine@}@}}
-
-@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.
-@end itemize
-
-@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, creating vocabulary/translation
-notes for a foreign language.
-
-@node MCQ (Multiple Choice Question)
-@section MCQ (Multiple Choice Question)
-
-MCQ note type, consists of a ``stem'' part that is displayed, and
-``options'' for the user to select the right one.
-
-Answer must be the index NUMBER of the correct answer from OPTIONS@.
-
-Ideal for self testing & simulating exams
-
-@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 & Development
-@chapter Customization & Development
-
-To make development and customization easier, gnosis comes with
-@samp{gnosis-dev} module, that should be used to create a custom database for
-testing.
-
-To use @samp{gnosis-dev}, first you have to @samp{(require 'gnosis-dev)} & run @samp{M-x
-gnosis-dev-test}. This will create a new directory 'testing' with a new
-database.
-
-To exit the testing environment, rerun @samp{M-x gnosis-dev-test} and then
-enter @samp{n} (no) at the prompt ``Start development env?''
-
-@menu
-* Creating Custom Note Types::
-* Customizing Gnosis Algorithm::
-@end menu
-
-@node Creating Custom Note Types
-@section Creating Custom Note Types
-
-Creating custom note types for gnosis is a fairly simple thing to do
-
-@itemize
-@item
-First add your NEW-TYPE to @samp{gnosis-note-types}
-
-@lisp
-(add-to-list 'gnosis-note-types 'new-type)
-@end lisp
-
-@item
-Create 2 functions; @samp{gnosis-add-note-TYPE} & @samp{gnosis-add-note--TYPE}
-@end itemize
-
-Each note type has a @samp{gnosis-add-note-TYPE} that is used
-interactively & a ``hidden function'' @samp{gnosis-add-note--TYPE} that handles
-all the logic.
-
-Refer to @samp{gnosis-add-note-basic} & @samp{gnosis-add-note--basic} for a simple
-example of how this is done.
-
-@itemize
-@item
-Create @samp{gnosis-review-TYPE}
-@end itemize
-
-This function should handle the review process, displaying it's
-contents and updating the database depending on the result of the
-review (fail/pass). Refer to @samp{gnosis-review-basic} for an example of how
-this should be done.
-
-@itemize
-@item
-Optionally, you might want to create your own custom @samp{gnosis-display} functions
-@end itemize
-
-@node Customizing Gnosis Algorithm
-@section Customizing Gnosis Algorithm
-
-@menu
-* Gnosis Algorithm Initial Interval::
-* Gnosis Algorithm Easiness Factor::
-* Gnosis Algorithm Forgetting Factor::
-@end menu
-
-@node Gnosis Algorithm Initial Interval
-@subsection Gnosis Algorithm Initial Interval
-
-@samp{gnosis-algorithm-interval} is a list of 2 numbers, representing the
-first two initial intervals for successful reviews.
-
-Example:
-
-@lisp
-(setq gnosis-algorithm-interval '(1 3))
-@end lisp
-
-Using the above example, after first successfully reviewing a note,
-you will see it again tomorrow, if you successfully review said note
-again, the next review will be after 3 days.
-
-@node Gnosis Algorithm Easiness Factor
-@subsection Gnosis Algorithm Easiness Factor
-
-@samp{gnosis-algorithm-ef} is a list that consists of 3 items.
-
-The first item is the increase factor, used to increase the easiness
-factor upon successful review.
-
-Second item refers to the decrease factor, used to
-decrease the easiness factor upon an unsuccessful review.
-
-The third item is the initial total easiness factor, used to calculate
-the next interval.
-
-The basic's of how this is used is that it's being multiplied with the
-last interval upon a successful review, e.g if you last reviewed a
-note 6 days ago, and the easiness factor of this note is 2.0, your
-next interval would be 6 * 2.0 & the total easiness factor would be
-2.0 + increase-factor as well.
-
-Example:
-
-@lisp
-(setq gnosis-algorithm-ef '(0.3 0.3 1.3))
-@end lisp
-
-@node Gnosis Algorithm Forgetting Factor
-@subsection Gnosis Algorithm Forgetting Factor
-
-@samp{gnosis-algorithm-ff} is a floating number below 1.
-
-It's used to calculate the next interval upon an unsuccessful review,
-by being multiplied with last interval.
-
-
-
-Example:
-
-@lisp
-(setq gnosis-algorithm-ff 0.5)
-@end lisp
-
-For a note with a value of last-interval of 6 days and a ff of 0.5,
-upon an unsuccessful review the next interval will be 6 * 0.5
-
-@bye
diff --git a/gnosis-dev.el b/gnosis-dev.el
index 6801290..d93dc87 100644
--- a/gnosis-dev.el
+++ b/gnosis-dev.el
@@ -110,12 +110,12 @@ by the thoracodorsal nerve."
If ask nil, leave development env"
(interactive)
(let ((ask (y-or-n-p "Start development env (n for exit)?"))
- (testing-dir (concat gnosis-dir "/testing")))
+ (testing-dir (concat gnosis-dir "testing")))
(if ask
(progn
(unless (file-exists-p testing-dir)
(make-directory testing-dir))
- (setf gnosis-db (emacsql-sqlite (concat testing-dir "/testing.db")))
+ (setf gnosis-db (emacsql-sqlite-open (expand-file-name "testing.db" testing-dir)))
(setf gnosis-testing t)
(dolist (table '(notes decks review review-log extras))
(condition-case nil
@@ -125,7 +125,7 @@ If ask nil, leave development env"
(gnosis-dev-add-fields)
(message "Adding testing values...")
(message "Development env is ready for testing."))
- (setf gnosis-db (emacsql-sqlite (concat (file-name-as-directory gnosis-dir) "gnosis.db")))
+ (setf gnosis-db (emacsql-sqlite-open (expand-file-name "gnosis.db" gnosis-dir)))
(setf gnosis-testing nil)
(message "Exited development env."))))
diff --git a/gnosis.el b/gnosis.el
index e29de71..87cfdfd 100644
--- a/gnosis.el
+++ b/gnosis.el
@@ -725,6 +725,7 @@ Compare 2 strings, ignoring case and whitespace."
(downcase (replace-regexp-in-string "\\s-" "" str2)))
gnosis-string-difference))
+
(defun gnosis-directory-files (&optional dir regex)
"Return a list of file paths, relative to DIR directory.