ThoughtSpace Whiteboard

by ancher
5
4
3
2
1
Score: 48/100

Description

Obsidian 可视化研究白板:Markdown 卡片、思维导图、PDF 摘录与白板写作。

Reviews

No reviews yet.

Stats

2
stars
271
downloads
0
forks
12
days
2
days
2
days
6
total PRs
1
open PRs
0
closed PRs
5
merged PRs
0
total issues
0
open issues
0
closed issues
48
commits

Latest Version

3 days ago

Changelog

统一紧凑尺度、小地图避让与 PDF / PDF++ 引用桥接(2026-10-02)

  • 材料、写作与媒体工作区共用舒适/紧凑间距,切换时保留编辑器、播放器和草稿。正文排版、纸张设置、格式工具栏及媒体记录密度仍可独立设置。
  • 小地图在拖动或编辑确实与它重叠时临时避让,同次操作保持状态以减少闪烁;结束或取消后恢复。保留手动隐藏和临时展开,适应全部/聚焦选区考虑实际占用面积,不增加空闲时的全节点扫描。
  • 白板操作新增“粘贴 PDF / PDF++ 引用”:手动确认后创建可编辑卡片,保留原始复制文本、来源上下文与完整定位参数。支持 wiki/Markdown 链接、选段、高亮/评论批注和矩形嵌入;同名文件需消歧,缺失来源和非法定位会阻止导入。相同原文重复导入定位已有卡片,一步撤销/重做。
  • 使用 Obsidian 公共接口回源;未启用 PDF++ 时仍可仅打开 PDF 页,不调用 PDF++ 内部 API,不修改 PDF 或来源笔记。原始文本是快照,不创建自动反向链接。
  • 原生联动测试中修复不同复制语法被误去重、PDF 改名后正文裁剪链接未更新,以及动态裁剪卡片遮住来源按钮的问题;保留原始快照及代码/注释中的字面链接。
  • Shared compact spacing now covers materials, writing and media without rebuilding editors or players. The minimap temporarily avoids active interactions. Explicit PDF/PDF++ quote import preserves original provenance and precise links, with duplicate protection, undo/redo, rename-safe embeds and a native page fallback.

验证:4,598 项自动回归、7 项发布脚本测试通过;lint 0 错误、118 条既有警告,TypeScript 与构建通过。独立 Obsidian 1.13.7 测试库完成 24 项密度/避让检查,以及官方 PDF++ 0.40.31 启用/禁用的 24 项联动检查;后者 297 个 PDF/Markdown 文件在测试操作期间保持 SHA-256 一致。详见 紧凑与避让验收 和 PDF++ 原生验收。

限制:矩形定位/裁剪已验证,未覆盖 PDF++ 矩形拖拽复制手势;复杂字体、多栏/旋转 PDF、扫描 OCR、移动端和所有第三方主题未验证。不宣称本轮提升大白板保存性能。此前媒体本机暂存及恢复边界继续适用。仅更新独立发布分支,不合并 main,不安装到实际资料库。

Install or update with main.js, manifest.json, and styles.css; keep your existing data.json. 安装或升级时替换这三个运行文件,保留已有 data.json。本次发布附带 GitHub 构建来源证明。

中文完整教程 · Complete English guide

README file from

Github

ThoughtSpace Whiteboard

English · 中文

A visual research and writing workspace for Obsidian. Arrange linked Markdown notes, text, images, and PDFs on a whiteboard, connect ideas with mind maps, and turn grouped material into a Markdown draft. Your notes remain files in your vault.

Desktop only · Obsidian 1.13.7 or newer.

Start here

Complete English tutorial · 完整中文教程

The guides cover the whole workflow, not just the latest release. English instructions include the current Chinese button names so you can find them in the interface.

What you want to do Start with
Install and make your first board Installation → Ten-minute quick start
Build and fold a topic tree Mind maps
Read notes/PDFs and collect evidence Reading and excerpts
Turn material into an article Writing from a board
Watch, capture frames and take timestamp notes Audio/video workspace
Change mouse/keyboard behavior or troubleshoot Controls · Troubleshooting
flowchart LR
    A["Notes, PDFs, images, audio/video"] --> B["Whiteboard and excerpts"]
    B --> C["Groups and mind maps"]
    C --> D["Reading and writing"]
    D --> E["Markdown draft"]

Built-in audio and video workspace

Open Audio/video notes from the ribbon, a media file's context menu, or the command palette. Use a main tab, right sidebar, or native Obsidian popout window. Focus mode keeps only the player visible. No whiteboard or external player plugin is required.

Wide windows place the viewer on the left and stack the composer above the timeline on the right. Save and pagination controls remain fixed. Use Layout to adjust the split and More for native playback placements or sending media to a board. Collapse the picture to give notes more space without rebuilding playback. Narrow panes switch between writing and the timeline without losing drafts. Filter all, text, or screenshot entries; locate the current time or last entry. Pagination mounts at most 50 records while search covers all loaded history. Comfortable and compact timeline density switch without rebuilding records or the editor. Local screenshots have lazy thumbnails and full-size previews. Advanced playback controls live under More.

  • Playback includes speed, ±10-second and exact-time seeking, A–B loops, native fullscreen/Picture-in-Picture where supported, and matching .vtt/.srt subtitle files.
  • Capture a timestamp, write Markdown, or attach a video frame to a draft. Save or Ctrl/Cmd + Enter appends it to a regular Markdown note. Merely opening media creates no note.
  • Search the timestamp timeline, jump back, and send excerpts or media to a whiteboard. Imported excerpts connect to their source media card.
  • Position, rate, volume and loops follow the same media between placements. The last 80 media states are saved in batches to the plugin's media-playback.json; switching files does not autoplay them. Starting a player pauses other built-in media players.
  • Unsaved drafts block file/placement changes and survive closing/reopening the view during the same plugin session. Save before restarting Obsidian or reloading the plugin; drafts are not persisted across restarts.

Local files outside the vault: choose Link external video or audio in the media picker or the workspace More menu, then paste an absolute local path or file:// URL. The board media picker has the same entry. Only a small .tsvideo / .tsaudio reference is stored in the vault; the original stays in place. Playback, seeking, timestamp notes and frame capture work through the reference. Paths remain local to the computer; moved or changed files must be linked again.

Whiteboards still support Insert content → Video card / Audio card and file/search drag-and-drop, folding, resizing, connections, timestamp capture and frame notes. A card's sidebar button opens the full workspace.

Bilibili and YouTube cards on a whiteboard also provide 记下此刻 (capture timestamp) and 截取画面 (capture frame) beneath their own player. Load a card explicitly, then capture without leaving the board. Each capture is saved to a Markdown media note and added beside its source with a connection and a timestamp link. Links on the board seek its source card; the 笔记 button opens the full workspace. Failed saves can retry the same capture while the card remains mounted.

Media loads only on playback. Board cards release sources when offscreen or folded; a standalone workspace may keep playing behind other tabs and releases resources when closed. Recognized files include MP4/WebM/MOV/M4V/OGV and MP3/M4A/WAV/OGG/OGA/FLAC/AAC/OPUS; codec support depends on Obsidian's embedded browser. Dragging files from the computer still copies them with a 128 MB import limit. Use an external file reference for larger files without copying.

Legacy Yingjian local timestamps still open media whose exact source resolves inside this vault. Bilibili and YouTube sources now use their restored online branch without requiring Yingjian: choose Bilibili / YouTube in the media picker, or paste a link onto a board and choose Play. Video plays directly in an isolated player inside the plugin, showing the video and official controls instead of site navigation, comments and recommendations, in a main tab, right sidebar, or an explicitly selected detached workspace; the note area supports verified playback time, pause, seek, rate and Markdown captures. A video or Bilibili-part change requires explicit adoption and does not merge existing notes. When synchronization is unavailable, confirm a manual timestamp. Platform login, regional availability and playback restrictions still apply; Capture moment freezes the current time. Quick screenshot captures the current video frame into a draft; saving creates a PNG attachment with a playable Markdown timestamp. Saved frames can be sent to a whiteboard. If the source changes, the frame is not ready, or the platform prevents frame access, the draft is preserved and a specific error is shown.

Markdown text and tables

Double-click a text frame to edit Markdown with Obsidian's native live preview. Headings, lists, callouts, code, links, $inline math$, $$display math$$ and tables render inside the frame. Automatic sizing measures the rendered content; manually narrowed tables can scroll horizontally.

Use Table in the side toolbar, Add table here in the empty-canvas context menu, or the table button in the editing toolbar. New tables select the first heading and keep the current camera position. Text stays in the board file; linked note cards continue saving to their original Markdown files. Task checkboxes in text previews are read-only; edit the text to update them.

While editing Markdown tables, lists, math or code in a mind map, Enter and Tab edit the content. Continuous topic creation remains available for plain single-line topics.

Organize and reuse

  • Paper background: choose the paper icon in the bottom canvas controls or select Paper in settings. Static texture adapts to light and dark themes without changing snapping.

  • Arrange → Create group frames organizes objects by type, color, reading state or connected component, with a preview before applying. Save reusable layout presets across boards.

  • Move into an existing group moves a selection together, previews any enlarged boundary and preserves connections and relative positions. Undo restores the previous layout.

  • Hierarchical outline follows actual group containment. Collapsing navigation leaves the canvas unchanged; searches retain parent paths.

  • Saved views supports search, position diagrams, renaming, updating, reordering and navigation. It saves camera positions rather than content snapshots.

  • Workspace menu groups arrangement, group previews, writing, reading, knowledge space and optional calendar entries; existing shortcuts remain available.

Choose cream, white, ivory, kraft or recycled paper in Appearance settings, or customize the paper color and texture strength. You can also import a local PNG, JPEG, WebP or GIF background and adjust cover, contain, tile and opacity. Images are copied into the plugin directory in the current vault; no network upload is used.

Features

  • Whiteboards: pan, zoom, connect cards, name groups, nest boards, arrange layouts, and search content.
  • Markdown cards: insert existing notes, edit in place, use independent card titles, and resize or fold previews.
  • Drag existing notes: drag from Obsidian’s file explorer, search results, or internal links onto the board. Multi-select notes are arranged together and can be undone as one batch; source files stay in place.
  • Native file workflow: generated excerpt source links and the last writing draft follow note, PDF, and folder renames. Ambiguous sources are left untouched; Markdown prose and code examples are preserved.
  • Mind maps: start with presets, add linked topics, navigate with the keyboard, and collapse or expand branches one level at a time.
  • Reading: display PDF pages, capture excerpts with source links, and organize evidence alongside your notes.
  • Writing: arrange cards and groups into an outline and export a Markdown draft while keeping references nearby.
  • Obsidian integration: use vault files, native tags, properties, bookmarks, search, and the Markdown editing toolbar. The calendar and journal integration requires the separate optional calendar plugin.

Editing and canvas controls

Select a card or text frame to switch directly between Edit, Text, Fill, and Border in the floating top toolbar. Switching modes preserves the current draft and selection; narrow panes use labelled icon controls. Preview and fold actions sit above objects, resizing has a separate lower-corner handle, and connected children keep their own disclosure controls.

The side Insert panel separates source materials from board structure. More tools combines category navigation, search, and recent commands.

Reading workspace

Open Workspace → Reading desk from the board header. Search and filter material in the navigation pane, switch between content, headings and connections, and read in the main document pane. Review status, original-note access and pagination remain visible while the article scrolls. Alt + Left / Right switches material; status changes preserve the article and scroll position.

When linking selected text to a note, choose a heading or block and preview the reference before inserting a native link or embed. Reference actions stay at the bottom of the preview.

Install and update

In Obsidian, open Settings → Community plugins, search for ThoughtSpace Whiteboard, then install and enable it. Use the community-plugin update checker for updates.

For manual installation, download main.js, manifest.json, and styles.css from the latest release. Put all three files in <your-vault>/.obsidian/plugins/thoughtspace/, then enable the plugin. When updating, replace only these three files and keep your existing data.json and snapshots. Back up your vault before upgrading.

GitHub releases and the community directory update independently; check the version shown by each service. Releases include the three files installed by Obsidian, an installation ZIP with documentation, and SHA256SUMS.txt. The installation ZIP is separate from GitHub's source-code archives; extract its three runtime files into the plugin folder.

Whiteboard controls

Gesture Action
Drag with the left button on empty space Pan the board
Drag with the right button on empty space Select objects; hold Shift to add to the selection
Right-click without dragging Open the context menu beside the pointer
Drag a card Move it
Drag the lower-right handle Resize it
Use the branch toggle beside a parent Collapse children or expand the next level

The selection tool, Space + left-drag, and middle-button drag provide alternative controls. The branch toggle and resize handle have separate hit areas, including when zoomed out.

Mind map controls

Key or action Result
Click a topic's plus port Create a linked child and start editing
Drag a connection to empty space Create and arrange a child topic
Tab Save the topic and add a child
Enter Add a sibling
Shift + Enter Insert a line break while editing
Arrow keys outside editing Navigate visible topics in the same tree
Shift + Tab outside editing Return to the parent
F2 Edit the selected topic
Esc Cancel the current connection or edit

Ordinary whiteboard text is not automatically converted into mind-map topics.

Search and PDFs

Native search integration writes Markdown indexes to ThoughtSpace/白板搜索/. These indexes include board text, card titles, group names, and connection labels. Follow a result's location link to return to its board. Linked notes remain searchable through their original files. PDF indexing currently covers filenames and page numbers, not PDF full text or OCR. Index generation can be disabled in settings.

Select a PDF card to use PageUp / PageDown or Home / End. Page navigation and folding are also available on the card. Rendering uses bounded thumbnail sizes, cancels work for folded or offscreen cards, and limits retained PDF documents. First load still depends on document size and complexity.

Data access and compatibility

ThoughtSpace reads vault files for search, linked cards, and optional integrations, and writes board files, edited notes, generated indexes, and settings. Copy commands write to the clipboard only when invoked. Remote images and the optional image-host integration can contact external services; the image-host option is off by default. See data access and security for details.

In-place live preview uses an undocumented Obsidian editor interface. If it is unavailable, the plugin falls back to source editing. Test upgrades with your own themes and plugin combination. Automated tests and the directory scorecard are useful checks, not guarantees of compatibility or security.

Development

Requires Node.js 22 and npm:

npm ci
npm run lint
npm test
npm run build
python3 scripts/package.py

The build produces main.js and synchronizes the generated sections of styles.css. Packaging creates a ZIP and checksums in dist/; it does not include vault content, credentials, or local backups. Obsidian and CodeMirror are supplied by the host application.

See CONTRIBUTING.md for testing and release conventions. CI runs the official Obsidian lint rules, tests, and build. The release workflow builds the tagged source and generates GitHub artifact attestations for the runtime assets before publication.

License

MIT. Third-party components and licenses are listed in THIRD_PARTY_NOTICES.md.