Skip to content

Latest commit

 

History

History
363 lines (287 loc) · 11.7 KB

Changelog.org

File metadata and controls

363 lines (287 loc) · 11.7 KB

Changelog

I hope the current card / log format is flexible enough to accommodate upcoming changes.

In case a update to the org sources is needed, I’ll add a changelog entry with updating instructions.

0.6.2

Fixed

When using grep to find files that contain flashcards, org-fc now also finds files where the property drawer or single properties are indented (preceded by spaces or tabs).

0.6.1

Fixed

  • The overview of SM2 parameters in the dashboard works again.
  • The org-fc-cache is now initialized from the org-fc-directories rather than computing a list of changed files that potentially exceeds the number of arguments we can pass to the AWK indexer.

Changed

Org-fc only searches for files containing flashcards, improving the indexing performance if the org-fc-directories contain many files without flashcards.

Internal

Both the AWK and cache indexers filter out files without any flashcards from their results.

0.6.0

This version of org-fc adds support for multiple spacing algorithms (as long as they provide a due date to schedule cards by) with a minimal amount of user-facing changes.

Changed

New cards are now initialized with a new FC-ALGO property, defaulting to sm2.

When creating new cards and if there is more than one algorithm besides the internal noop algorithm, the user is prompted for the spacing algorithm to use.

Added

Inside Emacs, M-x org-fc-help opens a buffer with the org-fc documentation.

A new noop spacing algorithm has been implemented. It is used in the org-fc-demo so the demo cards stay due and their histories are not logged. This algorithm is intended only for internal use but its implementation can serve a simple point for users intending to implement new spacing algorithms.

Fixed

Review-context filters now work correctly with the AWK indexer.

Internal

The functions for computing review statistics have been moved to the algorithm implementation and a new function has been added that allows reading the review history of a card or position.

0.5.1

Added missing import for eieio-base.

0.5.0

Added

  • org-fc-audio now allows attaching audio files to single positions of a card. Please refer to docs/extensions.org for more information.
  • A new command org-fc-audio-stop can be used to stop audio playback.
  • Flashcards can now use a new optional FC_ALGO property. When unset, this defaults to the original SM2 algorithm. Currently now alternative algorithms have been implemented but this will make it easier to support those in the future.

Changed

  • org-fc-audio playback now stops when flipping the card, reviewing a new card or quitting the review.

Internal

  • The initial SM2 parameters are now formatted the same way as the parameters written after a review. This does not affect the behavior of org-fc but is more consistent.
  • The review history file is written to after each review, not once at the end of the review session. Again this should make no difference for users of org-fc while making it easier to implement alternative spacing algorithms
  • Tests use a custom set of macros for mocking function calls to avoid a dependency on el-mock

0.4.0

Added

Review Orders

Review-context definitions can now include an optional :order property. Currently two orders are supported:

  • 'ordered cards are reviewed file by file, in the order they appear within the file
  • 'shuffled cards are reviewed in a randomized order

This corresponds to setting the existing org-fc-shuffle-positions variable to nil or t respectively, the only change being that this can now be customized for each review context.

Mixed Line Endings

Some operating systems differ in how they mark line endings, using either \n or \r\n. Usually gawk will use the correct ending for the current OS but files moved from one OS to the other might not get parsed correctly.

A new configuration variable org-fc-awk-mixed-line-endings can now be set to a non-nil value to change the row-separator used by AWK to support both kinds of line endings.

Internal

Use of eieio

The internal data structures representing files, cards and positions of cards have now use eieio classes.

The way org-fc reads and writes the contents of the :REVIEW_DATA: drawer has been changed as a first step towards supporting alternative spacing algorithms.

To reduce the chance that bugs are introduced by this and future changes of the code, end-to-end tests have been added to ensure different functions of org-fc correctly change the org-mode contents of flashcards.

AWK

Incorrect quoting in the field separator used for parsing :REVIEW_DATA: tables caused the inclusion of an extra field for each “|” character between cells of the table. This did not affect the normal use of org-fc.

0.3.2

Added

  • Custom titles for the back heading can be configured via the org-fc-back-heading-titles variable.

    See ./docs/card_types.org for instructions on how to add new titles.

0.3.1

Fixed

The dashboard should now correctly handles local variables and should work as expected again.

0.3.0

Changed

The dashboard has been changed and split into collapsible sections, some of which are visible from the start while others can be opened on demand.

0.2.0

Added

  • The org-fc-type-cloze-dwim command that can be used to mark regions in a file as cloze holes (contributed by Github user c1-g)

Fixed

  • Results of the AWK indexer are parsed in a way that prevents an issue where some files would get ignored when indexing many files at once (contributed by Github user mithraen)
  • The find command for searching org-mode files was improved to ignore directories with a name ending in .org (contributed by Github user vedang)
  • When updating the review data drawer, delete-region is used instead of kill-region to avoid polluting the clipboard/kill-ring (contributed by sr.ht user bram85)

0.1.0

Added

  • 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

Fixed

  • Reverting the dashboard buffer didn’t work due to a missing function argument, this has been fixed

Renamed / Deprecated

  • 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

Removed

  • The “G” key binding in org-fc-dashboard-mode has been removed in favor of the default “g” revert-buffer binding

0.0.1

[2020-11-12 Thu]

  • 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

[2020-11-11 Wed]

Added

The dashboard now includes a forecast of how many cards will be due during the next day, week (+7 days) or month (+30 days).

Changed

  • All dashboard functions were extracted to a separate file
  • org-fc-stats was renamed to org-fc-dashboard-stats
  • org-fc--hashtable-to-alist was renamed to org-fc-dashboard--hashtable-to-alist
  • org-fc-context-dashboard was renamed to org-fc-dashboard-context
  • org-fc-review-dashboard-context was renamed to org-fc-dashboard-review

[2020-09-09 Wed]

Org-fc now supports nested flashcards.

Changed

  • 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

[2020-07-16 Thu]

Changed

  • Suspending a card during review now removes all other positions of it from the current session, to avoid reviewing suspended cards

[2020-07-08 Wed]

Changed

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.

[2020-07-06 Mon]

Added

  • org-fc-suspend-tree for suspending all cards in a subtree

Changed

  • unsuspending overdue cards doesn’t reset their review data anymore

[2020-07-04 Sat]

Added

  • org-fc-review-edit (bound to p) pauses the review for editing the current card. A new mode org-fc-review-edit-mode adds keybindings for resuming & quitting the review.

[2020-07-03 Fri]

Changed

  • 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 optional scope argument, similar to org-map-entries.

Added

  • org-fc-unsuspend-tree unsuspends all cards in the subtree at point

[2020-07-02 Thu]

Changed

  • org-fc-review-rate-card was renamed to org-fc-review-rate

[2020-07-01 Wed]

Changed

  • The review history file is only written once per review, as a first step towards implementing a “undo-rating” command

[2020-06-29 Mon]

Added

  • Shuffling of positions for the review can be disabled by setting org-fc-shuffle-positions to nil

Changed

  • Error messages from shell commands are promoted

[2020-06-28 Sun]

Added

  • org-fc-before-review-hook that runs when a review session is started

[2020-06-26 Fri]

Changed

  • Messages are not inhibited during review
  • Whitelisted drawers are expanded during review

Added

  • A org-fc-after-review-hook that runs when the review ends / is quit
  • org-fc-keymap-hint extension
  • org-fc-audio extension

[2020-06-25 Thu]

Added

  • SCHEDULED: ..., DEADLINE: ... timestamps are hidden during review
  • Drawers in org-fc-drawer-whitelist are not hidden during review

Changed

  • During the review process, two minor modes are used instead of two hydras

[2020-05-24 Sun]

Changed

  • Include file information in card index
  • Maintain order of positions in a card when shuffling

[2020-05-22 Fri]

Changed

  • Exit hydra when review is started

[2020-05-08 Fri]

Changed

  • 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

[2020-05-01 Fri]

Internal

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.

[2020-04-29 Wed]

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.

[2020-04-12 Sun]

Added

  • text-input card type

[2020-02-08 Sat]

Changed

  • Add a “Z” suffix to all ISO8601 timestamps

Added

  • A function to estimate the number of reviews in the next n days

[2020-02-03 Mon]

Internal

  • org-fc-due-positions-for-paths now shuffles the lists of positions using an Emacs Lisp function instead of depending on shuf
  • All awk-indexer functions now use gawk instead of awk