• Stars
    star
    178
  • Rank 214,989 (Top 5 %)
  • Language
    TypeScript
  • License
    MIT License
  • Created over 3 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

An incremental writing plugin for Obsidian where you add notes and blocks to prioritized queues and review them incrementally over time, spaced repetition style.

Incremental Writing Plugin for Obsidian

This plugin allows you to do incremental writing in Obsidian. In incremental writing you add notes and blocks from your Obsidian vault to prioritised queues to be reviewed incrementally over time.

If you are interested in learning more about this plugin and incremental writing in general, here are some resources you may find useful:

Also, if you find incremental writing useful, you should definitely check out incremental reading!

Support

I want to put all of my energy into these projects and work on them full time! I also want to keep as much of my content open source and freely available as possible. That those seeking knowledge may find it!

If you would like to support my work, I have a Patreon page with rewards for each tier or you can buy me a coffee.

Using the plugin

Notes

  • This plugin adds a button to the search pane using private Obsidian APIs which could cause the plugin to break when Obsidian updates until I have time to fix it.
  • The Obsidian API is in early alpha so this plugin could break (temporarily) after an update.
  • I strongly recommend installing the Natural Language Dates plugin alongside this plugin because it allows you to use natural language when you are asked to provide a date eg. "tomorrow" or "in two weeks", rather than having to type out a date like "2020-02-02".
  • This plugin is not supported on mobile! (yet)

Important! Priorities

  • Confusingly, low priority numbers correspond to high priorities! That means your daily queue of repetitions will be sorted from lowest priority number (most important) to highest priority number (least important). This is because this is the way priorities work in SuperMemo and having used it for a couple years I just got used to thinking about it like that. I didn't realise how confusing this could be until someone mentioned it in an issue. Apologies for any confusion!

Features

Commands

  • Load a queue: The plugin supports multiple incremental writing queues that you can switch between using a fuzzy search menu. This command uses a fuzzy search component to search in the queue folder specified in the settings for queue files.
  • Open queue in current pane: Open the currently loaded queue in the current pane. You can check which queue is currently loaded by looking at the status bar at the bottom of the Obsidian window.
  • Open queue in new pane: Same as above, but open the currently loaded queue in a new pane.
  • Add note to queue: Adds the active note in Obsidian to the currently loaded incremental writing queue.
  • Add block to queue: Adds the current block to the currently loaded incremental writing queue.
  • Current repetition: Goes to the current repetition for the currently loaded queue.
  • Next repetition: Goes to the next repetition for the currently loaded queue.
  • Edit current repetition data: Edit the interval, priority, next repetition date or notes for the current repetition.
  • Next repetition and manually schedule: Executes next repetition and opens a modal for you to edit the next repetition date and interval manually.
  • Dismiss current repetition: Dismiss the current repetition from the queue. This note or block will not show up again for review.
  • Add links within the current note to a queue: Add any links to other notes within the current note to a queue.
  • Bulk add blocks with references to queue: Add all of the blocks with "^references" to an incremental writing queue.
  • Add note to queue through a fuzzy finder: Opens a fuzzy finder which you can use to add any note in your vault to the current incremental writing queue.
  • Add search results to a queue: Do a search and click the "Add to IW Queue" button at the top of the search pane to add all of the results to a queue.
  • Add folders, files and links to a queue: You can also right click on folders, files and links to add them to queues through the context menu.

Automatically Add Notes to Queues

There are some options for automatically adding notes to queues.

  • Auto add notes using tags: In the settings page you can define a list of queue names and associated tags. When you modify a note, the plugin will check to see if a queue tag was added. If so, the note will automatically get added to the queue. This mapping only applies to newly created notes, ie. when you install the plugin it won't automatically add all notes with a given tag to a queue. So the recommended workflow is to begin by searching for all notes with a given tag and adding those to a queue using the "add search results to queue" function (see above). Then you can set up the queue to tag mapping in the settings to make sure that future notes with a given tag get added to the queue.

  • Auto add new notes option: When toggled on in the settings, new will automatically get added to the default queue. I recommend using the tag method above rather than this because using tags gives you more control over which notes get added and which queue(s) they get added to.

Scheduling Options

There are currently two scheduling styles to choose from: A-Factor and Simple.

  • Simple: When you hit next repetition, the current repetition gets pushed to the end of the queue by setting its priority to 99.
  • A-Factor: When you hit next repetition, the interval between repetitions gets multiplied by the A-Factor to work out the next repetition date.

More Repositories

1

youtube-dl-split-chapters

Download audio and video with youtube-dl and split by chapter.
Python
57
star
2

open-recommender

Using LLMs to implement an open source YouTube video recommendation system.
Python
42
star
3

incremental-everything

A RemNote plugin which allows you to interleave your flashcard reviews with notes, paragraphs from books, websites, video snippets and more! Heavily inspired by SuperMemo's Incremental Reading mode.
TypeScript
37
star
4

prompt-explorer

TypeScript
12
star
5

open-fresh

AI meal plan service. Like an open source Hello Fresh.
TypeScript
8
star
6

remnote-readwise

RemNote Readwise Plugin
TypeScript
8
star
7

prompt-iteration-assistant

A set of simple tools to speed up the prompt engineering iteration cycle
TypeScript
7
star
8

ts-type-fixer

TypeScript
6
star
9

SuperMemoAssistant.Plugins.EpubImporter

Easily import Epubs into SuperMemo.
C#
5
star
10

sm-ahk-scripts

Some AHK scripts I use for SuperMemo.
AutoHotkey
5
star
11

cloze-hints

Add hints to clozes
TypeScript
4
star
12

incremental-media-mpv

Lua
4
star
13

PleasureOfLearning

Anki and SuperMemo flashcards to accompany my video summary of the Pleasure of Learning article.
4
star
14

SuperMemoAssistant.Plugins.SMVim

C#
4
star
15

ai-popper

Chat with David Deutsch, Karl Popper and other Critical Rationalists using GPT. Answers include footnotes to original sources!
TypeScript
3
star
16

ShareCards

React App for sharing SuperMemo flashcard decks.
TypeScript
2
star
17

hover-editor

JavaScript
2
star
18

SuperMemoAssistant.Plugins.CommandServer

Uses dynamic compilation to make the SMA interop services available over a JSON-RPC websocket.
C#
2
star
19

remnote-speed-mode

Speed mode plugin for the flashcard queue
TypeScript
2
star
20

vim-mode

RemNote Vim mode
TypeScript
2
star
21

presentation-mode

Create presentations directly from your RemNote notes.
TypeScript
2
star
22

remnote-queue-pomodoro

Pomodoro timer for RemNote's flashcard queue
TypeScript
2
star
23

remnote-discord

Discord rich presence plugin for RemNote
JavaScript
2
star
24

SuperMemoAssistant.Plugins.AdvancedClozer

Easily create cloze deletions with hints
C#
1
star
25

bjsi

Meta information about my GitHub page.
1
star
26

bug.n-window-manager-config

My configuration files for the bug.n window manager (Windows)
1
star
27

Blog

Python
1
star
28

SuperMemoAssistant.Plugins.HtmlTables

Easily create and modify HTML Tables within SuperMemo. Adapted from: https://github.com/aAmitSengar/WindowsEditor.
C#
1
star
29

ObsidianLinkedMathCompiler

Python script to generate math flashcards from an Obsidian vault where blocks (lemmas, definitions etc) can be shared between multiple flashcards and reformulated over time.
Python
1
star
30

SMAInteropConverter

C#
1
star
31

pleasure-of-learning

Cards to accompany my video and article summary of the Pleasure of Learning by Piotr Wozniak. A test for Share Cards.
1
star
32

simplified-answer-buttons

Simplified answer buttons custom CSS snippet plugin for RemNote
JavaScript
1
star
33

flask-typescript-react-template

A simple template with boilerplate for a Python + Flask backend, TypeScript + React frontend.
JavaScript
1
star
34

SuperMemoAssistant.Plugins.TextFormatting

Assign hotkeys to common text formatting operations or add them to a context menu.
C#
1
star
35

world-capitals

A flashcard deck which tests you on your knowledge of the world's capitals.
1
star
36

AutoEditor

Automatic video editor for automating boring video editing work.
C#
1
star
37

google-calendar-plan

A Google Calendar addon which integrates some ideas from SuperMemo's Plan feature
TypeScript
1
star