Profile
Back to NewsBack
GitHub Trending 11 min
Reader Mode
obgnail/typora_plugin: Typora Plugin. Feature Enhancement Tool | Typora 插件,功能增强工具

obgnail/typora_plugin: Typora Plugin. Feature Enhancement Tool | Typora 插件,功能增强工具

4 hours ago

English | 简体中文

Typora Plugin

typora_plugin

Ask DeepWiki

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 | | | vega-lite | Integrates Vega-Lite | | | drawIO | Integrates DrawIO | | | abc | Integrates abc.js | | | calendar | Integrates tui.calendar | | | wavedrom | Integrates WaveDrom | | | marp | Integrates Marp | | | plantUML | Integrates PlantUML | | | infographic | Integrates Infographic | | | function_plot | Integrates Function Plot | | | 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 ⭐.

How to Use: Windows/Linux Platform

Refer to the Installation Tutorial for visual guidance.

  1. Get source code package: Download the latest release from the Releases page and extract the archive.
  1. 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/
  1. Deploy files: Copy the extracted plugin folder and paste it entirely into Directory A.
  1. Execute installation script: Enter the A/plugin/bin/ directory.
- Windows: Right-click on install_windows.ps1 and select Run with PowerShell. - Linux: Execute install_linux.sh in the terminal with administrator privileges.
  1. 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.
!install

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_palette plugin) - Slash Commands Menu (via slash_commands plugin) - Global Hotkeys (via hotkeys plugin)
  • Pointer-Based Interactions:
- Context Menu (via right_click_menu plugin) - Mouse Gestures Recognition (via mouse_gestures plugin) - Floating Action Buttons (via action_buttons plugin) - Radial/Pie Menu (via pie_menu plugin)

Navigation & Management

window_tab

Provides multi-document tab management.

!window_tab

search_multi

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

!search_mutli

auto_number

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

!auto_number

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:

  1. Use Alt + Left Click on the text content to insert a bookmark marker.
  2. 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_paragraph

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.

!md_padding

slash_commands

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

!slash_commands

mouse_gestures

Provides global mouse gesture recognition and operation mapping.

templater

A lightweight document template engine. Supports predefined content architectures for rapid file initialization.

!templater

fence_enhance

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

!fence_enhance

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.

!commander

command_palette

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

!command_palette

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 Button
  • Rotate radial menu: Scroll Middle Mouse Button
  • Lock menu state (disable auto-hide): Left Click on the center
  • Expand 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.

!datatables

resize_table

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

!resize_table

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:

  1. Extract and copy the full outline path of the current header level
  2. Promote the header level of the selected text
  3. Demote the header level of the selected text
  4. Force line break conversion: CRLF to LF
  5. Force line break conversion: LF to CRLF
  6. Batch remove invisible control characters
  7. Generate a mind map based on the current document outline (Markmap view)
  8. Generate a mind map based on the current document outline (Graph view)
  9. Extract selected text and derive it into a new file
  10. Append a normalized blank line at the end of the document
  11. 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.

!text_stylize

markdownlint

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

!markdownlint

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
Vega-Lite
PlantUML
Draw.io
Function Plot
WaveDrom
ABC
Infographic
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.

!static_markers

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.

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.

Acknowledgements

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.

Chat with me