Reference

Every option the remember extension accepts.

The complete remember configuration: the two options, what is stored where, how a book is detected, and the conditions under which a reader is prompted.

Enabling the filter

filters:
  - remember

Options

extensions:
  remember:
    page-exclude:
      - /drafts/*
      - /search.html
    separate-chapter-state: true
Document and project options.
Option Type Default Description
page-exclude list of strings empty Pathnames to leave out of persistence.
separate-chapter-state boolean false In a book, stores the chapter separately from the scroll position inside it. Ignored elsewhere.

Each page-exclude entry is matched against the browser’s window.location.pathname, either as a literal substring or as a glob where * stands for one path segment. An entry with no * matches anywhere in the pathname; an entry with one has to match the whole of it.

With separate-chapter-state on, a return visit can offer to reopen the previous chapter even when the reader never scrolled in it.

What is stored

What each format remembers.
Format Kept
HTML document Scroll position, the section anchor being viewed, and the time of the visit.
Quarto book The chapter, the scroll position within it, and the time of the visit.
RevealJS The horizontal, vertical, and fragment indices, and the time of the visit.

Everything is written to the reader’s localStorage. Nothing leaves the browser.

Outside a book the entry names the pathname; in a book it names the directory the chapters sit in, which is what lets a return visit cross from one chapter to another.

One position is kept at a time, so reading a second page replaces the first. separate-chapter-state records the chapter in a second entry alongside it.

When the reader is prompted

The prompt is deliberately quiet:

  • it appears on a new visit alone, which means a browser tab that has not yet moved from one page to another; within a tab that has, the position is restored without asking;
  • it appears only when there is something worth restoring, which means more than 100 pixels of scroll, a section anchor, or a slide;
  • it appears at most once every five seconds;
  • it says how long ago the visit was, so the reader can judge;
  • declining clears the stored position rather than asking again.

Esc counts as declining, and the dialogue carries the attributes a screen reader needs: role="alertdialog", aria-modal, and a label and description bound to its title and message.

In a book the prompt offers the chapter that was being read, and accepting it navigates there.

How a book is detected

The filter reads the project type from QUARTO_EXECUTE_INFO while rendering, and writes it into the page:

<script id="quarto-remember-config" type="application/json">
  {"page-exclude":[],"project-type":"book","separate-chapter-state":false}
</script>

The script reads that at startup rather than inspecting the page, so detection survives a theme change, a custom layout, or single-page navigation.

Limitations

  • HTML formats only: html, revealjs, and book projects.
  • localStorage is required. A browser that refuses to write to it, as a private window may, disables the feature with one console warning rather than failing.
  • One position is stored at a time, so scrolling a second page replaces the first.
  • In a book the chapters share that entry, which is how a chapter is restored; separate-chapter-state adds a second entry for the chapter alone.
Back to top