obgnail/typora_plugin
JavaScriptTypora Plugin. Feature Enhancement Tool | Typora 插件,功能增强工具
English | 简体中文
Plugin List
| Plugin: Navigation & Management | Feature | Default |
|---|---|---|
| window_tab | Window Tab Bar | |
| search_multi | Multi-Fields File Searcher | |
| auto_number | Auto Numbering | |
| bookmark | Bookmark Manager | × |
| cursor_history | Cursor History Navigation | × |
| preferences | Global Configuration Panel | |
| updater | One-Click Plugin Update | |
| asset_root_redirect | Local Resource Redirection | × |
| repository | Workspace Manager | × |
| ripgrep | File Retrieval | × |
| Plugin: Enhance Editing | Feature | Default |
|---|---|---|
| collapse_paragraph | Chapter Folding | × |
| collapse_list | List Folding | × |
| collapse_table | Table Folding | × |
| md_padding | Chinese-English Text Spacer | |
| slash_commands | Slash Commands | |
| mouse_gestures | Mouse Gestures Recognition | × |
| templater | File Templater Engine | |
| fence_enhance | Code Block Enhancements | |
| right_outline | Right-Side Outline View | |
| commander | Embedded Command-Line Environment | |
| command_palette | Global Command Palette | |
| right_click_menu | Context Menu Integration | |
| pie_menu | Pie Menu | × |
| datatables | Table Enhancements (Filter, Sort, Paging) | × |
| resize_table | Table Resizer | |
| resize_image | Image Resizer | |
| easy_modify | High-Frequency Editing Toolset | |
| editor_width_slider | Writing Area Width Adjustment | |
| cjk_symbol_pairing | CJK Symbol Auto-Pairing | |
| text_stylize | Inline HTML Text Stylization | |
| resource_manager | Static Resource Management | |
| markdownlint | Markdownlint Static Analysis | |
| export_enhance | Base64 Image Conversion for HTML/PDF Exports | × |
| html_editor | Native HTML Preview and Editor | × |
| assets_storage | Modify resource storage location | × |
| cipher | Document Encryption and Decryption | × |
| Plugin: Component | Feature | Default |
|---|---|---|
| markmap | Integrates Markmap | |
| echarts | Integrates ECharts | |
| chart | Integrates Chart.js | |
| drawIO | Integrates DrawIO | |
| abc | Integrates abc.js | |
| calendar | Integrates tui.calendar | |
| wavedrom | Integrates WaveDrom | |
| marp | Integrates Marp | |
| plantUML | Integrates PlantUML | |
| callouts | Integrates Callouts | |
| kanban | Kanban component | |
| timeline | Timeline component | |
| chat | Chat Bubble component |
| Plugin: View & Theme | Feature | Default |
|---|---|---|
| dark | Dark Mode Rendering | |
| no_image | Image-Free / Text-First Mode | |
| blur | Focus Management (Gaussian Blur for Inactive Nodes) | |
| myopic_defocus | Defocus Visual Relief Filter | |
| read_only | Read-Only State Lock | |
| image_viewer | Independent Image Viewer | |
| truncate_text | Viewport Offloading for Large File Rendering Optimization | × |
| diagram_enhance | Diagram Zoom, Pan, Fullscreen, and Container Resizing | × |
| static_markers | Persistent Markdown Syntax Markers | |
| sidebar_enhance | Drag Sorting, Non-MD Files, Fold States |
| Plugin: Advanced | Feature | Default |
|---|---|---|
| hotkeys | Declarative Hotkey Registration Center | |
| action_buttons | Floating Action Buttons Injection | |
| remote_control | JSON-RPC External Automation Interface | × |
| article_uploader | Cross-Platform Document Publishing Engine | × |
Welcome to submit an Issue to report bugs or discuss features, and Pull Requests are always welcome. If this project enhances your workflow, please consider leaving a Star ⭐.
Q&A
- What are the Typora version requirements? Typora version must be ≥ 0.9.98 (encompassing the last free beta version and subsequent official releases).
- How to adjust plugin configurations?
Right-click menu->Interactive Plugins->Preferences. All user preferences are respected; every plugin and feature can be independently and permanently enabled or disabled. - How to execute a plugin system upgrade?
Right-click menu->Interactive Plugins->Preferences->Check for Updates. - How to safely uninstall plugins?
Right-click menu->Interactive Plugins->Preferences->Uninstall Plugins. - Is macOS supported? Due to the lack of a testing environment and Apple hardware, macOS is currently not natively supported.
- Other technical questions or discussions? Please visit the AI Wiki for documentation or join the community discussions.
How to Use: Windows/Linux Platform
Refer to the Installation Tutorial for visual guidance.
Get source code package: Download the latest release from the Releases page and extract the archive.
Locate injection point: Navigate to your Typora installation directory and locate the target folder containing
window.html(referred to as Directory A).- For official Typora releases, the path is:
./resources/ - For free beta Typora releases, the path is:
./resources/app/
- For official Typora releases, the path is:
Deploy files: Copy the extracted
pluginfolder and paste it entirely into Directory A.Execute installation script: Enter the
A/plugin/bin/directory.- Windows: Right-click on
install_windows.ps1and select Run with PowerShell. - Linux: Execute
install_linux.shin the terminal with administrator privileges.
- Windows: Right-click on
Verify installation status: Restart Typora, right-click within the main editor area to open the context menu. If plugin-related options are displayed, the underlying logic injection is successful.

How to Use: Archlinux Platform
Note: This package management method is currently exclusive to the Archlinux ecosystem. For details, please refer to aur/typora-plugin.
yay -S typora-plugin
Plugin Usage Instructions
The plugin system provides seven interactive entry points to accommodate different workflows:
- Keyboard-Based Interactions:
- Command Palette (via
command_paletteplugin) - Slash Commands Menu (via
slash_commandsplugin) - Global Hotkeys (via
hotkeysplugin)
- Command Palette (via
- Pointer-Based Interactions:
- Context Menu (via
right_click_menuplugin) - Mouse Gestures Recognition (via
mouse_gesturesplugin) - Floating Action Buttons (via
action_buttonsplugin) - Radial/Pie Menu (via
pie_menuplugin)
- Context Menu (via
Navigation & Management
window_tab
Provides multi-document tab management.

search_multi
Supports high-precision file retrieval through multi-condition combinations using query syntax.

auto_number
Automatically generates sequence numbers for document elements including chapter headers, tables, images, and code blocks.

Unlike pure CSS rendering schemes, this plugin intercepts core rendering functions, effectively resolving the technical limitation where sidebar directory numbering is lost during PDF export.
bookmark
Bookmark manager. Usage:
- Use
Alt + Left Clickon the text content to insert a bookmark marker. - Upon insertion, the bookmark management panel is automatically invoked. Click on the corresponding entry to quickly jump within the document.
cursor_history
Records cursor activity trajectories to support contextual navigation.
- Navigate to the previous cursor position:
Alt + ← - Navigate to the next cursor position:
Alt + →
preferences
Provides a centralized graphical control panel for global plugin configurations.
updater
Supports one-click online detection and fetching of update packages to upgrade the plugin system.
asset_root_redirect
Resolves local static resource parsing anomalies caused by cross-platform collaboration tools (such as Obsidian or Joplin). These tools typically enforce specific resource root paths, causing broken links when the files are opened independently in Typora. This plugin allows users to forcibly redirect the local resource root directory within Typora.
repository
Tracks and persists records of directories opened by Typora. Provides a dedicated management panel for retrieving, sorting, aliasing, removing, and quickly reopening historical workspaces.
ripgrep
Encapsulates and integrates the native ripgrep retrieval engine within Typora, achieving ultra-fast global text matching and file searching.
Enhance Editing
collapse_paragraph
Supports expanding and collapsing all text paragraphs nested under h1 through h6 header nodes.

collapse_list
Supports expanding and collapsing unordered lists, ordered lists, and task list nodes.
collapse_table
Supports expanding and collapsing table nodes as a whole.
md_padding
Normalizes typography experiences: Automatically inserts whitespace (Pangu spacing) between Chinese and English, and between Chinese and numeric boundaries.

slash_commands
Provides a Notion-style slash (/) command invocation menu.

mouse_gestures
Provides global mouse gesture recognition and operation mapping.
templater
A lightweight document template engine. Supports predefined content architectures for rapid file initialization.

fence_enhance
Enhances code blocks with one-click copy, fold view, and code formatting operations.

right_outline
Injects an independent outline directory view on the right side of the editing area, addressing native Typora's limitation of not displaying both the [File Tree] and [Document Outline] simultaneously.
commander
Provides an embedded lightweight command-line environment for executing custom Shell instructions and interactive script operations.

command_palette
Implements a global command palette analogous to VS Code (Shortcut: Ctrl+Shift+P).

right_click_menu
Integrates interface functions across the plugin system into the native context menu for centralized interaction handling.
pie_menu
Graphical radial menu component. Basic interaction protocol:
Invoke radial menu:Ctrl + Right Mouse ButtonRotate radial menu: Scroll Middle Mouse ButtonLock menu state (disable auto-hide): Left Click on the centerExpand secondary menu (disable auto-collapse): Right Click on the center
datatables
Injects advanced interaction features into standard Markdown tables, including data retrieval, real-time filtering, frontend pagination, and multi-column sorting.

resize_table
Dynamically adjust table row height and column width via Ctrl + Mouse Drag interaction.

resize_image
Dynamically scale target image rendering sizes via Alt + Mouse Scroll interaction.
easy_modify
Built-in high-frequency editing toolset, currently offering the following modules:
- Extract and copy the full outline path of the current header level
- Promote the header level of the selected text
- Demote the header level of the selected text
- Force line break conversion:
CRLFtoLF - Force line break conversion:
LFtoCRLF - Batch remove invisible control characters
- Generate a mind map based on the current document outline (Markmap view)
- Generate a mind map based on the current document outline (Graph view)
- Extract selected text and derive it into a new file
- Append a normalized blank line at the end of the document
- Reformat all tables
editor_width_slider
Provides a draggable slider mechanism to dynamically adjust the width boundaries of the core editor text area.
cjk_symbol_pairing
Implements auto-pairing closure and cursor rollback for CJK punctuation (e.g., 《, 【, (, 「) and quotation marks.
text_stylize
Quickly applies custom or preset rich text styles to the currently selected text by encapsulating inline HTML tags.

markdownlint
Markdown specification analyzer. Detects syntax patterns deviating from best practices and provides automated remediation.

resource_manager
Workspace static resource manager. Executes dependency analysis and safely clears redundant images in the current directory that are not referenced by any Markdown documents.
export_enhance
Intercepts HTML/PDF export streams. Forces referenced local images to convert into Base64 inline formats before generating render files, preventing subsequent external resource dependency breakage.
html_editor
Directly loads and renders .html / .htm files within Typora's core editing area. Supports source viewing, real-time preview, split-pane modes, element inspection, document navigation, and write-conflict safety mechanisms.
Preview mode strictly blocks script execution and external network requests by default. It is recommended to explicitly enable PREVIEW_ALLOW_SCRIPTS or PREVIEW_ALLOW_NETWORK only when operating on files within a trusted environment.
assets_storage
Modify resource storage location.
cipher
Provides a document security module based on standard cryptographic algorithms, supporting local file encryption storage and decryption mounting.
Component
Chart.js![]() |
ECharts![]() |
Markmap![]() |
PlantUML![]() |
Draw.io![]() |
ABC![]() |
WaveDrom![]() |
Marp![]() |
Calendar![]() |
Timeline![]() |
Kanban![]() |
Chat![]() |
Markmap (TOC)![]() |
Callouts![]() |
View & Theme
dark
Provides a dark (night) mode rendering theme.
no_image
Provides an image-free (text-first) rendering mode.
blur
Focus management optimization: Only the currently active and focused node area remains clearly rendered; surrounding inactive areas automatically apply a Gaussian blur effect to minimize visual interference.
myopic_defocus
Provides a defocus visual relief filter.
read_only
Locks the current document content, blocking all modification operations. When active, a ReadOnly status identifier explicitly mounts in the bottom-right word count area.
truncate_text
Rendering performance optimization solution for oversized documents. Temporarily offloads DOM nodes outside the viewport by setting their style to display: none, preventing the browser from executing costly global reflows, thereby significantly improving scroll and edit framerates; also serves as an anti-peeping measure.
Principle: Does not modify underlying source file data; only manipulates the presentation layer to temporarily unload designated nodes from the rendering tree.
image_viewer
Integrates a standalone built-in image browser module, supporting full-screen distraction-free previewing and basic image transformation edits.
diagram_enhance
Enhances interaction for charts generated by Typora's rendering engine: Supports cursor-centered scrolling zoom, viewport drag panning, touch gesture recognition, original DOM full-screen viewing mechanisms, and eight-direction adaptive container boundary adjustments. The right-click context menu quickly triggers view position and scale resets.
static_markers
Forces the retention of Markdown syntax markers (persistent rendering).
Disables the auto-hide callback logic for syntax markers in WYSIWYG mode, ensuring that formatting markers like **, ##, and _ remain explicitly rendered, functioning exactly as they would in a source code editor.

sidebar_enhance
Extends the functional boundaries of the native file sidebar:
- Drag and drop outline header nodes to reorganize the document's physical structure.
- File tree view supports declaring and presenting non-Markdown system files.
- Persistently remembers the fold/expand states of outline tree nodes.
- Supports mounting custom file icon rules.
- Displays statistical counts of sub-files on directory nodes.
Advanced
hotkeys
Provides a declarative hotkey registration dispatcher. Supports binding any exposed interfaces provided by the internal plugin system, or any custom functions injected by the user, to global physical shortcut keys.
action_buttons
Adopts a declarative configuration logic homologous to hotkeys, supporting the mapping of any plugin system interface functions to floating interactive buttons at the bottom of the interface.
remote_control
Provides an external communication layer based on the JSON-RPC protocol, exposing core control privileges, including typora-plugin, as standard interfaces. This allows external third-party scripts or processes to programmatically control Typora.
For specific interface definitions and technical specifications, please refer to the sub-document: README.md.
article_uploader
A cross-platform document publishing engine. Supports automated pushing of rendered Markdown documents from the current workspace to pre-configured third-party content platforms via trigger behaviors (e.g., hotkeys or UI interactions).
For detailed platform support lists and configuration guidelines, please refer to the sub-document: README.md.
Acknowledgements
- GPL Licensed: PlantUML | Refractify Myopic Defocus
- Apache Licensed: ECharts | draw.io
- MIT Licensed: markmap | Chart.js | abcjs | tui.calendar | Marp | WaveDrom | DataTables | markdownlint
- Unlicensed / Public Domain: typora-tabbar-plugin | typora-side-by-side | md-padding
Conclusion
This project follows the MIT license, feel free to enjoy it.
If this toolset enhances your productivity, please consider leaving a Star ⭐ on GitHub, and feel free to share it with friends who share similar needs.













