All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Customizing hinting string (“…”) with
org-fc-type-cloze-hint-prefix
. - Show the total number of position in
org-fc-dashboard
. - Option to hide the title of a card;
org-fc-review-hide-title-in-header-line
. - Documentation files from https://www.leonrische.me/fc/index.html in docs/.
org-fc-audio-replay
to replay audio of a card.
2.13.0 <2023-02-10 Fri>
- Card creation date in org-roam database.
- Make time specification of org-fc-roam works with dashboard.
- The content of topic cards is hidden.
index.awk
doesn’t output:file-suspended
anymore.org-fc-awk-index-paths
check for suspended file level card.
2.12.0 <2023-02-06 Mon>
org-fc-review-show-remaining-cards
a variable that controls whether to show the number of remaining cards in review session.
- Auto postpone happens at startup of Emacs.
- Topic cards won’t be narrowed when set up.
org-fc--deinit-card
->org-fc-deinit-card
- The due date of postponed cards being in the past result in multiple postponement.
- Deleting unpostponed due cards from database.
- AWK indexer not recognizing padded property drawer
- Postpone count got swapped with due date in the reinsertion of card table.
2.11.0 <2022-05-06 Fri>
org-fc-roam-postpone-skip-count
a variable that limits the amount of cards to be postponed per day.org-fc-roam-index
now passes an additonal opitionNON-RECURSIVE
toorg-fc-awk-index
.
- Priority now comes from the exported plain text version of the content from a card to avoid mistaking Org mode markup for content.
- Pending cards indexer
org-fc-roam-index-pending
due to low usage.
- Advising an obsolete function
org-roam-node-find-noselect
. - Inaccurate time comparison in auto postpone function.
2.10.0 <2022-03-14 Mon>
- Buttons for rating cards in session.
- The available ratings for cards now has to be defined for each algorithm via property list.
These rating commands are removed and replaced with buttons to show to user instead.
org-fc-review-rate-again
org-fc-review-rate-hard
org-fc-review-rate-good
org-fc-review-rate-easy
2.9.0 <2022-03-12 Sat>
- Cloze interval for cloze deletion cards.
org-fc-roam-mode
for caching card data using org-roam’s database.
- Priority is now determined by LIX readability score instead of the length of the text.
- Org-roam daily notes will not be inserted to cards table.
- The property drawer of topic cards will not be narrowed when in review session.
org-fc-priority
->org-fc-roam-sm2-priority-get
- Not quoting card id to use in AWK script for
org-fc-awk-history-for-id
. - Auto-postponing non-due cards as a result of comparing localtime with UTC time.
2.8.0 <2022-02-08 Tue>
- roam-sm2 accepts the scheduled time of a card as initial due date if it is in the future.
org-fc-roam-index
fallbacks toorg-fc-awk-index
when a card is not managed by org-roam.- A sorting function
org-fc-roam-index-sort-cards
that interleave topic cards with other cards. - The customization of the queue: the proportion of topic cards vs others, the proportion of randomized cards vs priortized cards.
2.7.0 <2022-02-04 Fri>
- Auto sorting and postponing low priority cards everytime Emacs is closed. See: Auto-postpone.
org-fc-roam-review-history-add
adds old review data torevlog
when a card is reviewed.
org-fc-roam-index
now only lists outstanding cards.org-fc-awk-history-for-id
outputs time as number instead of string.
org-fc-roam-index
output no position.- Unable to insert review data because position is not formatted as string.
2.6.0 <2022-01-26 Wed>
- postpone value in
cards
schema. - Pending queue for card with “pending” tag, using its separate
indexer
org-fc-roam-index-pending
. org-fc-roam-update
that automatically reinsert review data of every org-roam node to match with the database.
org-fc-awk-history-for-id
outputs a list of plists.
2.5.0 <2022-01-26 Wed>
- A variant of SM2 algorithm with extra parameters: priority.
org-fc-priority
that calculates the priority based on the length of the content of a card.
- Database insertion function inserted card type as due date resulting in every card being due now.
2.4.0 <2022-01-26 Wed>
- Integrate with org-roam database with the new schema of
cards
andrevlog
. - New indexer
org-fc-roam-index
that queries org-roam database and transforms the output to plist of cards useful to org-fc. org-fc-awk-history-for-id
a command that outputs the history for a card using the scriptindex_history.awk
.
2.3.0 <2023-02-06 Mon>
- Rewrite of Changelog.org
2.2.0 <2022-04-20 Wed>
- The
:non-recursive
in custom contexts means that awk will search for cards non-recursively.
2.1.0 <2022-03-15 Tue>
- Automatic rating when there is only one possible rating for an algorithm.
org-fc-register-algo
not registering algorithm with the new rating definiton.
2.0.0 <2022-03-15 Tue>
- Rating buttons every time user enter
org-fc-review-rate-mode
- New way to define an algorithm rating via property list
1.3.1 <2022-02-19 Sat>
org-fc-review-suspend-card
not saving the file after addingorg-fc-suspended-tag
to it. See l3kn#54.org-fc-browser--awk-index-paths
outputs only one entry.
1.3.0 <2022-02-19 Sat>
org-fc--deinit-card
for deinitializing flashcards to turn them to normal headline
1.2.0 <2022-02-07 Mon>
- The
topic
card type for cards that are meant to be passively read without active recall org-fc-index-sort-cards
, A new function to sort cards by interleaving topic cards with other cards for more info see its description.
- New method for sorting card when making a new review session
The order goes:
indexing (
org-fc-index
)v filtering (
org-fc-index-filter-due
)v sorting (
org-fc-index-sort-cards
)The indexing can be customized by setting
org-fc-index-function
,org-fc-index-filter-function
,org-fc-index-sort-function
respectively.
1.1.1 <2022-02-06 Sun>
org-fc-cloze-dwim
that turns active region or word under point to a cloze
org-fc--add-tag
->org-fc--add-tags
org-fc--remove-tag
->org-fc--remove-tags
1.0.1 <2022-01-26 Wed>
org-fc-awk-history-for-id
now outputs parameters as plist
1.0.0 <2022-01-25 Tue>
- An algorithm api via
org-fc-register-algo
, see its documentation for more.
0.3.0 <2022-01-22 Sat>
- A card browser built on
tabulated-list-mode
, can be accessed byM-x org-fc-browser
.
0.2.0 <2022-01-20 Thu>
- Support for a file-level flashcard, this kind of flashcard must be at the top of the file, see this card for example.
0.1.1 <2022-01-18 Tue>
- A “burden” value in
org-fc-dashboard
, see https://supermemo.guru/wiki/Burden for what it means. - A “lapses” value in
org-fc-dashboard
, the average number of times each card has been forgotten.
0.1.0 <2021-03-07 Sun>
- A
org-fc-after-flip-hook
that is run after a card is flipped - Support for setting audio files to play after flipping a card via
org-fc-audio-set-after-flip
- Reverting the dashboard buffer didn’t work due to a missing function argument, this has been fixed
org-fc-audio-set-after
->org-fc-audio-set-after-setup
org-fc-audio-set-before
->org-fc-audio-set-before-setup
org-fc-audio-property-before
->org-fc-audio-before-setup-property
org-fc-audio-property-after
->org-fc-audio-after-setup-property
- The “G” key binding in
org-fc-dashboard-mode
has been removed in favor of the default “g”revert-buffer
binding
- Removed
(org-fc-filter-index index filter)
, replacing it with indexer specific functions(org-fc-awk-index paths &optional filter)
and(org-fc-cache-index paths &optional filter)
- Added a defcustom
org-fc-index-function
to support different indexers - Added a prototype caching indexer
The dashboard now includes a forecast of how many cards will be due during the next day, week (+7 days) or month (+30 days).
- All dashboard functions were extracted to a separate file
org-fc-stats
was renamed toorg-fc-dashboard-stats
org-fc--hashtable-to-alist
was renamed toorg-fc-dashboard--hashtable-to-alist
org-fc-context-dashboard
was renamed toorg-fc-dashboard-context
org-fc-review-dashboard-context
was renamed toorg-fc-dashboard-review
Org-fc now supports nested flashcards.
- It’s now possible to mark child headings of flashcards as a flashcards
- When flipping a card, child headings (except the “Back” heading) remain collapsed
- Subheadings are ignored when searching for holes of cloze cards
- Suspending a card during review now removes all other positions of it from the current session, to avoid reviewing suspended cards
The awk index now also includes the headline text of each card.
This will be useful for building a tabulated-list-mode
based card
overview.
org-fc-suspend-tree
for suspending all cards in a subtree
- unsuspending overdue cards doesn’t reset their review data anymore
org-fc-review-edit
(bound top
) pauses the review for editing the current card. A new modeorg-fc-review-edit-mode
adds keybindings for resuming & quitting the review.
- By default, failed cards are appended to the end of the review session.
This can be configured via
org-fc-append-failed-cards
org-fc-map-cards
takes an optionalscope
argument, similar toorg-map-entries
.
org-fc-unsuspend-tree
unsuspends all cards in the subtree at point
org-fc-review-rate-card
was renamed toorg-fc-review-rate
- The review history file is only written once per review, as a first step towards implementing a “undo-rating” command
- Shuffling of positions for the review can be disabled
by setting
org-fc-shuffle-positions
tonil
- Error messages from shell commands are promoted
org-fc-before-review-hook
that runs when a review session is started
- Messages are not inhibited during review
- Whitelisted drawers are expanded during review
- A
org-fc-after-review-hook
that runs when the review ends / is quit org-fc-keymap-hint
extensionorg-fc-audio
extension
SCHEDULED: ...
,DEADLINE: ...
timestamps are hidden during review- Drawers in
org-fc-drawer-whitelist
are not hidden during review
- During the review process, two minor modes are used instead of two hydras
- Include file information in card index
- Maintain order of positions in a card when shuffling
- Exit hydra when review is started
- Per-context dashboard
- Improve org-indent of cards
- Use special “fc-demo” tag for demo cards
- Move opening of flip/rating hydras to main review loop
The AWK scripts now generate S-expressions instead of CSV tables, this
way read
can be used to parse the data instead of relying on a set
of custom parsing functions.
This also allows passing more complex data structures from AWK to org-fc.
Implemented a new version of the spacing algorithm (SM2) that’s used by org-fc.
The only difference is in how the next interval for cards rated as “hard” is calculate.
The initial version ('sm2-v1
) would decrease the ease factor by
0.15, then calculate the next interval by multiplying the previous
interval with the new ease factor.
In the new version ('sm2-v2
), the interval is always multiplied by a
factor of 1.2, similar to the version of SM2 used by Anki.
org-fc-algorithm
can be used to set which version of the
algorithm should be used, defaulting to 'sm2-v1
.
Once I have evaluated the performance of the new algorithm,
the default version will change to 'sm2-v2
.
text-input
card type
- Add a “Z” suffix to all ISO8601 timestamps
- A function to estimate the number of reviews in the next n days
org-fc-due-positions-for-paths
now shuffles the lists of positions using an Emacs Lisp function instead of depending onshuf
- All awk-indexer functions now use
gawk
instead ofawk