| Commit message (Collapse) | Author | Age | Files | Lines |
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
the answer, the user is prompted to type a text string followed by enter.
This string is then displayed again when the user is rating his/her recall
for the item. This card type might be useful when learning languages with
difficult or irregular spelling.
New presentation function, org-drill-presentation-prompt-for-string, which is
used by the "simpletyped" card type.
New variable, drill-typed-answer, which is set to the last text string
typed by a user.
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
concealing cloze deletions, force the length of the ellipsis to match the
length of the missing text. This may be useful to preserve the formatting in
a displayed table, for example.
Arguments to org-drill-presentation-prompt have changed. It now can take
any of the following keyword arguments:
- :prompt STRING - a string to use instead of the standard prompt.
- :returns ALIST - a list of (char . symbol); the function will return
the symbol if the corresponding character is pressed at the prompt.
- :start-time TIME - the time the card started to be displayed.
(Thanks to Bernard Hurley for contribution)
|
| | |
|
| | |
|
| |
|
|
|
| |
nil. If non-nil, both failed and successful items count towards the total
number of items studied in a session. If nil, only successful items count.
|
| | |
|
| |
|
|
|
|
|
| |
'skip' actions in drill sessions, by setting the values of the variables
org-drill--quit-key and others.
Pressing C-g during a drill session will abort the session.
|
| |
|
|
| |
accomplished via 'savehist' rather than 'customize'.
|
| | |
|
| |
|
|
|
|
|
|
|
| |
obscure bug where stuff inside [square brackets] in source code blocks
was being incorrectly interpreted as cloze text the first time a drill
session was run (the problem did not recur if the session was exited and run
again).
- Inside the main org-drill function, moved the anonymous mapping function out
to a separate named function (org-map-drill-entry-function).
|
| |
|
|
|
|
| |
development version.
Make item 'lapsing' optional and off by default.
|
| |
|
|
| |
'org-drill-entry-days-overdue' returns NIL.
|
| |
|
|
|
|
|
|
|
| |
(#+BEGIN_SRC ... #+END_SRC).
- Handle the old version of org-toggle-latex-fragment (org-preview-latex-fragment)
as Org 8.2.10 still uses the old name.
- Fix prioritisation of 'lapsed' items when choosing drill order.
- Try to guess the age of items that lack the DATE_ADDED property.
- Converted org-drill.org into Markdown, to serve as a README.
|
| |
|
|
|
|
|
|
| |
were originally added, rather than by how overdue they are.
DRILL_LAST_REVIEWED now uses an inactive timestamp (previously active).
Fix for rendering of latex fragments.
|
| |
|
|
|
|
|
| |
versions is incompatible).
Cloze fontification now uses the 'official' org mode mechanism for adding
fontification.
|
| | |
|
| |
|
|
|
|
| |
in case ‘[‘ and ‘]’ are not suitable for some reason. To define new delimiters,
set the values of the variables org-drill-{left,right}-cloze-delimiter. These
variables can be file-local.
|
| |
|
|
|
|
| |
to org-schedule).
Try to cope with LaTeX fragments that contain square brackets.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
during drill sessions. This means org-drill can now be used to memorize
maths equations. LaTeX fragments work correctly if placed inside cloze text,
i.e. between square brackets. I suggest using \(…\) to delimit fragments, as
using \[…\] may be difficult for org-drill to differentiate from cloze text.
'Cloze' overlays ([…]) are now very high priority, to ensure that any inner
overlays (such as inline LaTeX images) are not displayed during presentation
of the item.
Where dates are stored in item properties, we now use inactive rather than
active timestamps.
New command 'org-drill-relearn-item' lets you reset the repetition count for
an item, as if it was failed, without actually recording it as failed.
|
| |
|
|
| |
org mode version 8.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
todo match for a drill session - only entries satisfying that match will be
considered. Top level functions now accept match string as an additional
optional argument.
DRILL_CARD_TYPE is now inherited, i.e. if a drill entry does not specify
a card type then the type will be sought further up the tree.
cl.el is required on load as well as compilation.
Use cl-flet instead of "obsolete" flet.
Fixed some documentation typos.
|
| |
|
|
| |
declension card types.
|
| |
|
|
| |
Added card types for noun declension (similar to verb conjugation).
|
| | |
|
| |
|
|
|
|
|
|
|
| |
'drill-empty-p' (boolean). If true, items of this type are not skipped if their bodies are empty.
Bugfixes related to cram mode.
Cram mode displays a coloured 'C' in the mode line.
Sped up testing whether items have empty bodies.
Updated documentation.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
now customisable by setting the variable 'org-drill-hint-separator'.
The string is '||' by default (it was previously a single '|').
New global variable 'drill-answer'. If this variable is set to a
non-nil value, then the default 'show answer' behaviour is to
display the value of the variable instead of the contents of the
drill item. This can be useful if you make custom drill card types
which randomly generate problems (e.g. random maths problems, or
translating a random number to or from another language.) By setting
this variable to the answer when you generate the question, you
can avoid having to write a custom 'show answer' function.
Fixed a bug where after suspending the drill session via 'q'uit
or 'e'dit, the session could not be resumed if there was only one
item left to test.
|
| |
|
|
|
|
|
|
|
|
| |
org-drill-save-visibility -
the latter is no longer needed as the former now returns a useful value.
In org-drill-entry, temporarily bind `outline-view-change-hook' to nil, as
fontification functions in that variable can cause big slowdowns when moving from
drill item to drill item.
|
| |
|
|
| |
errors when org-drill is run in a non-windowing environment.
|
| |
|
|
|
|
|
| |
- Fix to correctly reveal current entry when pausing a drill session in
a narrowed buffer. (thanks to Milan Zamazal)
- Support for verbal moods in addition to tenses. "Present indicative"
tense renamed to "simple present".
|
| |
|
|
|
|
|
| |
overflow
to multiple lines.
- Added documentation for 'org-drill-sm5-initial-interval'.
|
| |
|
|
|
|
|
|
|
| |
adjust the first
repetition interval from the 4 days that is mandated in the official algorithm.
New option: org-drill-cloze-text-weight: Allows users of hide1_firstmore, show1_firstless and
show1_lastmore card types to control how often the 'infrequent' form of the card is shown.
Some bugfixes to DRILL_CARD_WEIGHT property.
|
| |
|
|
| |
during a merge)
|
| |
|
|
|
|
|
| |
[[bracketed links]].
Fontification of cloze text should now work correctly when the first org file is loaded.
New file types: hidefirst, hidelast
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
show1_lastmore. See docs for details.
- 'conjugate' card type can now show a hint (VERB_INFINITIVE_HINT)
- New command: org-drill-again: run another drill session using leftover items from the last
session, i.e. don't rescan the item collection.
- If org-drill-resume is called and there is nothing to resume, offer to call org-drill-again
- Automatically prompt to save all modified buffers when a drill session finishes (turn off with
'org-drill-save-buffers-after-drill-sessions-p')
- Politely skip cards with unknown card types
- When suspending a drill session, print a message describing the key that runs org-drill-resume
(it it's bound to a key)
- org-drill-merge-buffers: can now optionally be prevented from copying unmatched items from
SRC into DEST
- org-drill-merge-buffers: fixed a bug where it prompted for certain property values if they were
not set in the item being processed
- org-drill-merge-buffers: ensure that *all* items in DEST are stripped of their scheduling data
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
scope of drill sessions
(ie where items are sourced from). The variable can take the value 'directory', meaning items
will be sourced from all org files in the same directory as the current file. This is useful
for splitting up a monolithic item collection into smaller files, while still including all
those files in drill sessions.
The values of the SCOPE argument to org-drill have changed slightly. Possible values are the same
as those for 'org-drill-scope'.
- 'file' now means current file/buffer, respecting restrictions (default, same as old 'nil')
- 'file-no-restriction' means current file, ignoring (overriding) restrictions (same as old 'file')
- new value 'directory' (see above)
- other values have the same meaning as before.
|
| |
|
|
| |
items in the session is zero (Milan Zamazal).
|
| | |
|
| |
|
|
| |
- Bugfixes for copying over of items duringorg-drill merge-buffers
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
various clever tricks such as 'synching' the item collections of two
people. At the beginning of a drill session, IDs are assigned automatically
to all drill items that do not possess them. This is slow if you have a large
collection, but it only happens once.
- New command 'org-drill-merge-buffers'. Called from buffer A, and given buffer
B, imports all the user-specific scheduling data from B into A, overwriting
any such information in A. Matching items are identified by their ID. Any
items in B that do not exist in A are copied to A. A scenario where this
could be useful:
* Tim decides to learn Swedish using an item collection (org file) made
publically available by Jane. (Before publishing it Jane used
'org-drill-strip-all-data' to remove her personal scheduling data from the
collection.) A few weeks later, Jane updates her collection, adding new
items and revising some old ones. Tim downloads the new collection and
imports his progress from his copy of the old collection, using
'org-drill-merge-buffers'. He can then discard his old copy. Any items HE
added to HIS copy of the old collection will not be lost -- they will be
appended to his copy of the new collection.
- Instead of overdue items being reviewed in a completely random order, they
are now ordered by the number of days overdue, so that the most overdue items
are seen first. When two items are the same number of days overdue, then the
order is random.
- slightly adjusted how 'random noise' is applied to intervals, to give wider
spread
- we now use the port of the Common Lisp random number generator, in cl.el,
instead of emacs' builtin RNG
- Random number generator is now reseeded using system time at the beginning of
each drill session.
- Hints inside clozed text areas are now invisible during drill sessions if the
clozed text is not itself being hidden, ie if your card contains
[Moscow|Russian city] you will only see [Moscow] in the answer.
- The '...' is now shown after the hint text rather than before it,
i.e. '[Russian city...]'. You can override this by actually including '...'
in the hint itself.
- The minibuffer prompt now displays the card 'type' for testing purposes, as a
single letter: N=new, Y=young, o=old, !=overdue, F=failed
- New card type: hide2cloze (hides exactly 2 randomly chosen areas of clozed
text)
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- 'conjugate': retrieves properties VERB_INFINITIVE and VERB_TRANSLATION
from parent item, and uses its own property VERB_TENSE to prompt the
student 'Translate the verb INFINITIVE and conjugate for the TENSE tense'
or 'Give the verb meaning TRANSLATION and conjugate for the TENSE tense'
- 'translate_number': using third party library spell-number.el,
prompt the student to translate a random number to or from a non-English
language (the library can handle numerous languages)
- examples of both in spanish.org
- org-drill-card-type-alist can now take a second function name, for
controlling how the ANSWER is displayed
- items can have weights (DRILL_CARD_WEIGHT). The interval is divided by
the weight when scheduling, so eg an item with a weight of 2.0 will be
tested twice as often as a normal item.
- New command: org-drill-tree. Same as org-drill using 'tree' argument.
- New command: org-drill-strip-data: deletes all scheduling data from
every item in scope. Intended for use if you wish to share your item
library with someone else.
- Fixed bug in simple8 algorithm where items failed on their first review
were not having intervals reset
- Ensure all markers are freed before starting a new drill session.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
still recognised as a synonym, for backwards compatibility)
- new card type 'show1cloze' -- like hide1cloze, but only reveals one
of the areas of clozed text in the item.
- when 'revealing' an item during a drill session, do not show contents
of any subheadings which are themselves tagged as drill items. This means
you can have drill items inside drill items, without giving their answers
away when you review the parent item.
- better ensure visibility state of the org buffer is restored after the
drill session.
- syntax highlighting of [clozed text] now works if other faces are applied
inside the clozed text area, eg [the *largest* city]
|
| |
|
|
|
| |
during the course of that session, we now avoid showing the same item
straight after itself (unless it is the only item left).
|
| |
|
|
|
|
|
| |
some items have been moved or deleted. We now check for this and discard
offending markers, rather than failing outright.
- Final report now shows number of items that will become due tomorrow.
- Fixed a rounding bug which affected deciding whether items are 'overdue'.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Use 'M-x org-drill-resume'.
- Finessed the prioritisation of items during drill sessions.
- We now present failed and OVERDUE items first. Overdue status is defined in days and
has some leeway, defined by a new variable 'org-drill-overdue-interval-factor'.
- Next we present YOUNG items (learned or relearned recently, so have short intervals).
The definition of 'young' is via the variable 'org-drill-days-before-old'.
- Finally we present a random mix of OLD items and NEW items.
- Final report gives info about counts of pending overdue, young, and old items.
- Timer shows '++:++' if > 1 hour passes while reviewing an item.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Item drill data is stored in a clearer format, each value has its own property, the old 'org-learn'
LEARN_DATA property has been dropped. Items that contain LEARN_DATA are silently rolled over to
the new format.
- For SM5, matrix of optimal factors is now correctly *global* rather than per-item, and is saved
between drill sessions as an emacs customization variable.
- We store interval data as floating point numbers rather than rounding to the nearest integer.
- New experimental algorithm: 'simple8', based on SuperMemo SM8.
- New options:
- org-drill-forgetting-index: define the percentage of items that it is "acceptable" to fail.
A warning message is shown after the drill session if more items than this were failed.
- org-drill-learn-fraction: governs how fast time intervals increase with each successful
repetition of an item.
- org-drill-adjust-intervals-for-early-and-late-repetitions-p: if true, alter next scheduled date
if an item is reviewed earlier or later than it was supposed to be.
- Almost all variables have been declared safe for file-local reassignment.
- We now ignore org-learn-always-reschedule, regarding it as always true.
- Post-session report now shows a count of dormant items (those not yet due for review).
|
| |
|
|
|
|
|
|
|
| |
be made
invisible while each item is being tested.
- OF matrix entries are rounded to 3 decimal places.
- Item E-factors are not modified if the item is "failed" (in accordance with Dr Wozniak's description of
the SM5 algorithm).
|