Dragger

by ariestar
5
4
3
2
1
Score: 69/100

Description

The Dragger plugin adds block dragging to the editor so paragraphs, headings, lists, tasks, blockquotes, callouts, tables, code blocks and math blocks can be rearranged directly in place. It handles nested structures by using horizontal position for indent changes and vertical position for drop location, which keeps list and quote editing more controlled. The plugin also supports multi line selection dragging, a visible drop indicator, right click block type conversion with delete actions and configurable handles with different icons, colours, sizes and offsets. Mobile support is built in too, with long press dragging, a bottom toolbar and edge auto scroll during drag. A separate headless core package is published for reuse outside the app.

Reviews

No reviews yet.

Stats

289
stars
108,260
downloads
13
forks
151
days
20
days
30
days
66
total PRs
7
open PRs
16
closed PRs
43
merged PRs
60
total issues
13
open issues
47
closed issues
396
commits

Latest Version

a month ago

Changelog

Dragger 2.1.1 Release Notes

2026-10-11

中文

最低 Obsidian 版本保持为 1.13.0,支持桌面和移动端。

修复

  • Minimal 主题与居中行宽适配:修复在 Minimal 主题或使用自定义可读行宽居中排版时,拖拽手柄消失或位移到页面最左边缘的问题。手柄位置直接以实际渲染的 .cm-line 为物理事实源进行对齐。#31, #118
  • 拖拽指示线边界裁剪:放置指示线横线(Drop seam indicator)在居中或全宽容器下严格闭合于文本行右边缘,避免在部分主题下横向穿透到屏幕最右侧。#118
  • 列表拖拽缩进原点校正:修复居中排版下拖拽列表项时缩进层级判定错位的问题。缩进判断以正文列物理原点为基准,在正文行首微调即可原地向前缩进,无需再向左拖拽横跨大半个屏幕。md-dragger#107
  • 列表延续文本块检测:保留列表项内部缩进延续文本行的独立块检测与拖拽手柄。md-dragger#106

依赖

  • 更新至 md-dragger 2.2.1,发布构建使用 lockfile 固定的 npm 包。

English

Requires Obsidian 1.13.0 or later, with desktop and mobile support.

Fixed

  • Minimal Theme & Centered Line Layouts: Fix issue where drag handles disappeared or were displaced to the far left margin in Minimal theme or centered readable line width layouts. Handles now align directly to the rendered .cm-line physical edge. #31, #118
  • Drop Indicator Clamping: Drop seam indicators are strictly clamped to the content line's right boundary (right: 0), preventing them from overshooting to the far right edge of the screen in 100%-width containers. #118
  • List Drop Indent Origin: Anchor horizontal list drop indentation calculations to the physical content column origin. Outdenting near column 0 now works naturally without requiring the mouse to be dragged across the margin to the far left screen edge. md-dragger#107
  • List Continuation Block Detection: Preserve independent block detection and drag handles for continuation lines inside list items. md-dragger#106

Dependencies

  • Upgrade to md-dragger 2.2.1; release builds consume the lockfile-pinned npm package.

README file from

Github

English 中文

Dragger

Drag and drop any block to rearrange content in Obsidian — just like Notion.

Obsidian Obsidian Community Plugin npm License Release Downloads Stars CI TypeScript Issues Ask DeepWiki

gif

Features

  • 🧱 Block-level drag & drop — paragraphs, headings, lists, tasks, blockquotes, callouts, tables, code blocks, math blocks
  • 📐 Nested drag — horizontal position controls indent level; vertical position controls insertion row
  • 🔗 Multi-line selection drag — click or long-press to select a range, then drag as a group; native checkboxes mark selected blocks on desktop
  • 🎨 Customizable handles — 4 icon styles (dot / grip-dots / grip-lines / square), adjustable size, color, and horizontal offset
  • 📍 Visual drop indicator — glowing line shows exactly where the block will land
  • 📱 Mobile support — long-press drag mode, bottom toolbar block type conversion, edge auto-scroll during drag
  • ⌨️ Keyboard shortcuts — press Escape to exit multi-select mode on desktop
  • 🗑️ Block type menu with delete — convert block types or delete the current block from the context menu

Installation

Community Plugins

Open Settings → Community plugins → Browse, search Dragger, and install.

Manual

Download main.js, manifest.json, and styles.css from the latest release, then copy them into:

<your-vault>/.obsidian/plugins/dragger/

Restart Obsidian and enable the plugin.

Headless core package

Dragger also publishes a platform-agnostic npm core. It does not import Obsidian, CodeMirror, DOM events, or editor dispatch APIs.

npm install md-dragger

Stable entry points:

import { DraggerRuntime } from 'md-dragger/drag';

For another editor platform, provide only input, document access, line locating, and preview rendering:

new DraggerRuntime({
  input,
  document: { getDoc, applyChanges },
  locate: { sourceLineFromInput, targetLineFromPoint },
  preview,
});

Usage

  1. Hover on the left edge of any block to reveal the drag handle
  2. Drag the handle to the target position — a glowing indicator shows where the block will be inserted
  3. Release to drop the block into place

Nested lists & blockquotes: move the cursor horizontally while dragging to control indent level.

Multi-line selection: long-press (touch) or click multiple handles to select a range, then drag the entire selection. Press Escape to exit multi-select.

Mobile text long-press drag: when enabled, long-press a text line or rendered block content to drag a single block directly without reaching for the left handle.

Block type conversion: right-click a handle (desktop) or use the bottom toolbar (mobile) to convert block types or delete the current block.

💡 Tip: Enable line numbers in Obsidian settings for a better experience — the handle appears right at the line-number gutter.

Settings

Setting Description Default
Handle color Follow theme accent or pick a custom color Theme
Handle visibility Hover / Always visible / Hidden Hover
Handle icon ● Dot / ⠿ Grip-dots / ☰ Grip-lines / ■ Square Grip-dots
Handle size 12 – 28 px 20 px
Handle horizontal offset Shift handle left (−80) or right (+80) px 0 px
Indicator color Follow theme accent or pick a custom color Theme
Multi-line selection Enable range-select-then-drag workflow On
Mobile text long-press drag On mobile, long-press a text line or rendered block content to drag a single block directly On
Drag source visual style Shared style set used by drag-source and list-drop highlights (Outline only / Subtle highlight / Filled highlight) Subtle highlight
Drag source highlight Toggle highlight for the block being dragged On
List drop highlight Toggle highlight for list drop target area On

Compatibility

  • Obsidian ≥ 1.0.0
  • Desktop (Windows, macOS, Linux) + Mobile (Android tested)

Roadmap

  • Multi-column layout — drag blocks into side-by-side columns
  • More style customization — handle icons, colors, themes
  • Interaction refinements — better visual feedback, smoother gestures
  • Cross-document drag — move blocks between different notes

Development

npm install
npm run dev       # watch mode with hot reload
npm run build     # production build
npm run test      # run Vitest suite (229 tests)
npm run typecheck # TypeScript type checking
npm run lint -- --max-warnings=0

License

MIT

Contributing

PRs and issues are welcome!

If this plugin helps you, a ⭐ on GitHub would mean a lot.

Community

QQ Group WeChat Donate
QQ Group WeChat

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
Editing Toolbar
4 years ago by Cuman
An obsidian toolbar plugin, modified from the Cmenu plugin
Commander
5 months ago by jsmorabito
Commander - Obsidian Plugin | Add Commands to every part of Obsidian's user interface
Custom File Explorer sorting
4 years ago by SebastianMC
Take full control over the order and sorting of folders and notes in File Explorer in Obsidian
Calendar Bases
8 months ago by Edrick Leong
Flexplorer
5 months ago by kh4f
🗃️ Obsidian File Explorer Enhancer
Any Block
4 years ago by LincZero
You can flexibility to create a 'Block' by many means. It also provides many useful features, like `list to table`. (obsidian/markdown-it/vuepress plugin/app)
Beautitab
3 years ago by Andrew McGivery
A plugin for Obsidian.MD that creates a customizable new tab view with beautiful backgrounds, quotes, search, and more.
Plugin Groups
4 years ago by Mocca101
A plugin that allows you to easily group and manage your other plugins in Obsidian.
Markdown Tabs
4 months ago by xhuajin
Create and render a Tabs component in your notes.
Voice
3 months ago by Chris Oguntolu
🔊 The Obsidian Voice plugin lets you listen to your written content being read aloud—mobile-friendly audiobook-like experience. 🎧
Kanban Bases View
8 months ago by I. Welch Canavan
A kanban-style drag-and-drop custom view for Obsidian Bases that allows you to organize your notes into columns based on any property.
Base Board
5 months ago by mderazon
Kanban Plugin For Obsidian
Pixel Perfect Image
2 years ago by Johan Sanneblad
Pixel perfect 100% image resizing, copy to clipboard, show image in Finder/Explorer, and much more.
New 3D Graph
a year ago by Aryan Gupta
Visualize your vault in 3D with a powerful, highly customizable, and filterable graph.
Unicode Search
4 years ago by BambusControl
Simple Unicode character search for Obsidian.md
Simple Columns
a year ago by Josie
An Obsidian plugin that lets you create easily resizable and customizable columns in your notes.
Simple Banner
a year ago by Sandro Ducceschi
Visually enhance your Obsidian notes with a customizable banner. Supports icons and time/date display.
Emoji Magic
4 years ago by simplgy
Makes it easier to add emojis using an improved keyword search
Natural Language Syntax Highlighting
4 years ago by artisticat
Highlight adjectives, nouns, adverbs, verbs, and conjunctions in Obsidian.md
Sectionals
2 months ago by Aaron Bell
Edit Markdown by structure
Code Block
4 years ago by Patrik Lindefors
Code block from selection
6 years ago by Dmitry Savosh
Obsidian plugin. Adds code block for the selected text.
Callout Integrator
4 years ago by
A plugin for Obsidian to allow the integration of long blocks of text into callouts.
Mobile PDF Exporter
3 months ago by Murat
One-click selectable preview PDF export plugin for Obsidian mobile and desktop.
Side-Notes
3 months ago by Fried Fishsticks
Tufte-style sidenotes for Obsidian
Better MathJax
3 years ago by GreasyCat
Custom Classes
4 years ago by Lila Rest
A minimal Obsidian plugin that allows you to add your own HTML classes to chosen Markdown elements directly from your notes.
Metadata Icon
3 years ago by Benature
change metadata entry icon
Spellcheck Toggler
3 years ago by Julian Szachowicz
A plugin for Obsidian which gives you more control over the red-underline spellcheck behaviour.
Auto Correct Capitals Misspellings
2 years ago by Ummel
This plugin automatically corrects words where the first two letters are capitalized and the rest are lower case.
Custom Theme Studio
a year ago by @gapmiss
An Obsidian.md plugin to create and tweak custom themes with live CSS editing, element styling, and instant previews. All without leaving Obsidian.
Link Structure
3 months ago by Dmitry Fert
Obsidian plugin that adds a Structure view for Bases, displaying notes as a hierarchical tree based on the up property. Supports drag-and-drop reorganization with automatic link updates, multi-select, and Templater integration.
Root Folder Context Menu
3 years ago by mnaoumov
Obsidian Plugin that enables context menu for vault root folder
Mobile Sidebar Notes
3 months ago by ckep1
Open notes & new tabs in the sidebar on the Obsidian mobile app.
Full Screen Toggle
3 years ago by Donkey Pacific
Fullscreen toggle plugin across all platforms for Obsidian.
Text Wrapper
4 years ago by smx0
Plugin for Obsidian
Speech To Text Keyboard Helper
3 years ago by mwoz123
Gay Toolbar
3 months ago by chaskane
Colorful, customizable toolbar for Obsidian, designed for mobile.
Pixel Pets
a year ago by Lucas Jin
Adds cute pixel pets to Obsidian.
Write Good
2 years ago by Mark Hesketh
Obsidian plugin to help improve writing style
Nova
9 months ago by Shawn Duggan
Nova - AI plugin for Obsidian that edits your documents directly through natural conversation. Stop copying from chat, start collaborating with AI.
Custom Slides
a year ago by David V. Kimball
Customize Obsidian's Slides core plugin's navigation, styles, and behavior.
Hemingway Mode
3 years ago by Joaquín Bernal
Proofreader
2 years ago by pseudometa (aka Chris Grieser)
AI-based proofreading and stylistic improvements for your writing. Changes are inserted as suggestions directly in the editor, similar to suggested changes in word processing apps.
Edit Link Alias
10 months ago by mnaoumov
Obsidian Plugin that adds edit link alias command.
Canvas Daily Note
3 years ago by Andrew McGivery
A plugin for Obsidian that allows you to add a daily note node to the canvas that will always show todays note.
Rich Text Editor Shortcuts
2 years ago by Joshua Wootonn
Create and toggle checkboxes, paste links wrapping your current selection, and toggle underline without leaving the keyboard.
Better Order List
3 years ago by Boninall
Set View Mode per Note
3 years ago by Alex Davies
Use YAML frontmatter to specify a view mode per note.
Are.na unofficial
3 years ago by 0xroko
Unofficial Are.na plugin for Obsidian
Table Line Break Mobile
9 months ago by marcelflymark
Obsidian plugin: Insert a new line break inside a table cell using the <br> HTML element
Home Pages
a month ago by jepicaju862-lab
Customizable homepage dashboard for Obsidian
Tag Formatter
3 years ago by snsvrno
Configurable Obsidian plugin that hides parent tags.
Expand Selection
7 months ago by Alex Tait
Obsidian plugin to expand your editor selection to lines, sections (recursive), or the entire note
MantouAI
3 years ago by Morino Pan
MantouAI—— 让Obsidian变身智能助手
Graphic Organizer
8 months ago by Nick Le Guillou - Superhuman Curiosity
Mermaid Beauty
a month ago by theChildinus
Make Mermaid diagrams clearer in Obsidian, with automatic layouts, coordinated colors, and per-diagram controls. Works offline and preserves your source.
Bitcoin Block Stamp
3 years ago by sefiro
Stamp your Obsidian notes with the current Bitcoin block.
AI Revisionist
2 years ago by Synaptic Labs
Quick Nav
2 years ago by exoticknight
Enhance your editing experience by unleashing the hidden power of shortcuts.
List Callouts Improved
2 months ago by Daniel Yim
Create callouts in lists in Obsidian.
Base Source Editor
a month ago by fronglemog
Edit the YAML source of a Base without leaving Obsidian.
Remove Unused Block IDs
2 years ago by Daniel Geneta
A simple plugin that removes unused block IDs for Obsidian.md
Mode manager
2 years ago by dk949
Better management of reading/editing modes in obsidian
Duplicate line
2 years ago by Marcin Sztolcman
Plugin for Obsidian: duplicate current line, or selection.
Add Attachment
2 months ago by olegg90
Obsidian plugin for adding multi attachments
Variant Editor
a year ago by Kunal Jain
Obsidian plugin to create variants
Auto Folder Note Paste
2 years ago by d7sd6u
Convert your note into folder note upon pasting or drag'n'dropping an attachment
WebDAV Explorer
8 months ago by 蓝星晓夜
WebDAV Server Explorer.
My SVGs
10 months ago by Omar Badawy
An Obsidian plugin that Registers your own SVGs into Obsidian's global icon library for use with other plugins or however you want.
Editing Mode Hotkey
2 years ago by Signynt
Obsidian plugin to change the default editing mode (between Live Preview and Source) using a command or hotkey
Budget Planner
4 months ago by kalinichenko88
A minimalist budget planning tool for Obsidian. Create, track, and manage budgets using markdown code blocks directly in your notes.
Regex Line Filter
a year ago by 64MM4-KN1F3
A note filtering plugin for Obsidian
Cool Bases
23 days ago by pattgue
Design cool card views for Obsidian Bases.
Select word
2 years ago by Connor Espino
InventExplorer
14 days ago by solidinvent
Yori Task
6 months ago by yorigo77
task manager, week planner, year planner
Simple Editorial
2 months ago by Beppe
A minimal editorial markup plugin for writers using Obsidian.
Drag and Drop Lines
14 days ago by anluhen
An Obsidian plugin to drag and drop lines
Chronobars
2 months ago by Daniel Hidefjäll
Create time-based progress bars in Obsidian