Skip to main content
Drupal is a registered trademark of Dries Buytaert
Release: OpenID Connect / OAuth client 3.0.0-alpha9 New alpha version released for module openid_connect (3.0.0-alpha9). Release: Opensolr Search 4.5.0 Minor update available for module opensolr_search (4.5.0). Release: Timelinr 1.0.1 Minor update available for module timelinr (1.0.1). Usage Milestone: Simplify Module simplify crossed 10,000 active installs. Usage Milestone: Views Reference Filter Module entityreference_filter crossed 10,000 active installs. Usage Milestone: Dropdown Language Module dropdown_language crossed 10,000 active installs. Usage Milestone: Paragraphs Browser Module paragraphs_browser crossed 10,000 active installs. Usage Milestone: OpenAPI Module openapi crossed 10,000 active installs. Usage Milestone: Decoupled Router Module decoupled_router crossed 10,000 active installs. Module Revived: Entityqueue Buttons 1.1.2 Module entityqueue_buttons updated after 8 months of inactivity (1.1.2).

Sidenotes

5 sites No security coverage
View on drupal.org

Sidenotes allows content creators to add Tufte-style sidenotes directly within the body text using simple markup. These notes can be numbered or unnumbered, positioned in the left or right margin, and adapt responsively to different screen sizes.

Sidenotes allows editors create Tufte-style sidenotes directly in body text using simple markup. Notes can be numbered or unnumbered, placed in the left or right margin, and render responsively.

Features

  • Text filter that converts `[sn]...[/sn]` or `((...))` into sidenotes
  • Left or right margin placement
  • Responsive: notes may be rendered inline after the reference, or moved to an endnotes list. Inline references can be placed after the paragraph (default) or immediately after the reference. Responsive CSS with themable class names and CSS variables.
  • Minimal JS to handle endnotes on mobile and reflow on resize. Desktop is css-only.
  • Endnotes section title configurable, and endnotes will have backlinks added.
  • Set default label style: Numbers, Symbols (*, †, ††, §, ¶, ‖, Δ, ◊, ☞), Custom, or None. This style will be used any time sidenotes are added to a page.
  • Override default labels: sidenotes can be given any label on a per-note basis, or no label at all. Un-numbered sidenotes will not increment the numbering of the other sidenotes.
  • Custom labels: define your own labels (e.g., [wik]) and use them as the label style. You can also choose what markup to use in the editor.

Usage

  1. Install sidenotes as you would any other module.
  2. Configure sidenote defaults at Configuration → Content authoring → Sidenotes (/admin/config/content/sidenotes).
  3. Enable the sidenotes filter on the desired text format: Configuration → Content authoring → Text formats and editors. Edit your format and enable “Sidenotes (Tufte-style)”. Place the sidenotes filter after “Limit allowed HTML” and “Convert line breaks”.

Authoring

  • Shortcode: `[sn]Your sidenote content[/sn]`
  • Double parentheses: `((Your sidenote content))`

Overrides

To override whatever default number, symbol, or custom label would normally have been assigned to a sidenote, simply prefix your note content with the configured marker.

To make a sidenote unnumbered, add the marker (default `!@`). Unnumbered notes show a symbol in-text only, not with the note:

  • [sn]!@This note is unnumbered[/sn]

To use a specific symbol for one note, wrap a code with the configured prefix/suffix (default `!code!`). Examples:

  • [sn]!d!Dagger symbol note[/sn]
  • [sn]!dd!Double dagger note[/sn]

You can also override a default symbol with a number:

  • [sn]!1!Note with a 1[/sn]

And you can use any custom label as an override:

  • [sn]!custom!Note with a custom label[/sn]

Overrides will not increment the numbering or order of the other notes.

Limitations

  • Nested sidenotes are not supported.
  • If you paginate or use multiple body fields, numbering resets per processed field, which is usually desired.
  • Ensure your theme width has enough space for the margin column (space is reserved by `.sn-content` margins).

More Information

There are additional details in the module README.

Depends on

Dependencies of the latest stable release

No dependencies recorded for this project.

Required by

Tracked projects that depend on this one

No tracked projects depend on this one yet.

Activity

Tracked releases
2
Tracked since
Sep 2025
Latest release
11 months ago
Releases (12 mo)
2 ▲ from 0
Maintenance
Slowing

Releases

Version Type Core Release date
1.0.0-alpha1 Pre-release 10–11 Sep 4, 2025
1.0.x-dev Dev 10–11 Sep 4, 2025