ๅ่ฝ็น็น โข ๆๆฏๆ โข ๅฟซ้ๅผๅง โข ไฝฟ็จๆๅ โข ่ดก็ฎๆๅ
MarkRender ๆฏไธไธชๅ่ฝๅผบๅคง็ๅคๆ ผๅผๆๆกฃๅค็ๅนณๅฐ๏ผ้ๆไปถ่ฝฌๆขใMarkdown็ผ่พใๅพๅฝข็ปๅถๅๆๆกฃ็ฎก็ไบไธไฝใๅฎๅฎ็พๆฏๆ Tencent Cherry Markdown ๅฏๆๆฌ็ผ่พๅ Excalidraw ็ฝๆฟ็ปๅถ๏ผๅนถๆไพๆ ๅฝขๆๆกฃ็ปๆๅๅฎๆด็ๆไปถ็ผ่พๅๅฒ็ฎก็ๅ่ฝใ
- ๐ ๅคๆ ผๅผ่ฝฌๆข: ๆฏๆ PDFใDOCXใEPUBใXLSX ็ญๆ ผๅผ่ฝฌๆขไธบ Markdown
- ๐ ไธไธMarkdown็ผ่พ: ๅฎ็พ้ๆ Tencent Cherry Markdown๏ผๆไพไธฐๅฏ็ๅฏๆๆฌ็ผ่พๅ่ฝ
- ๐จ ๅพๅฝข็ปๅถ: ๅ ็ฝฎ Excalidraw v0.17.6 ็ฝๆฟๅ่ฝ๏ผๆฏๆๆ็ป้ฃๆ ผ็ๅพ่กจๅ็คบๆๅพๅไฝ
- ๐ ๆ ๅฝขๆๆกฃ็ปๆ: ็ด่ง็ๆๆกฃ็ป็ป็ณป็ป๏ผๆฏๆๅฑ็บงๅ็ฑปๅๅฟซ้ๅฏผ่ช
- ๐ ๅฎๆด็ผ่พๅๅฒ: ่ชๅจ่ฎฐๅฝๆไปถ็ๆฏไธๆฌก็ผ่พๅๅฒ๏ผๆฏๆ็ๆฌๅๆบฏๅๅฏนๆฏ
- ๐ค ๅคๆ ผๅผๅฏผๅบ: ๆฏๆ MarkdownใPDFใEPUB ็ญๆ ผๅผๅฏผๅบ
- ๐จ ็ฐไปฃUI: ๅบไบPySide6็ๅ็ๆก้ขๅบ็จ๏ผๆไพๆต็ ็็จๆทไฝ้ช
- ๐ ๆบ่ฝๆ็ดข: ๅผบๅคง็ๆๆกฃๆฃ็ดขๅ่ฝ๏ผๆฏๆ่ชๅฎไนๆๅบ๏ผๆๅๅปบๆถ้ดใๆดๆฐๆถ้ดๆๅ็งฐ๏ผ
- โ๏ธ ไธชๆงๅ่ฎพ็ฝฎ: ไธฐๅฏ็ไธป้ขๅๅๅฅฝ้ ็ฝฎ้้กน
- ๅ็ซฏ: PySide6 + Web็ปไปถ
- Tencent Cherry Markdown: ๆไพๅฏๆๆฌ็ผ่พใๅฎๆถ้ข่งๅๆฉๅฑ่ฏญๆณๆฏๆ
- Excalidraw v0.17.6: ๆ็ป้ฃๆ ผ็ฝๆฟ็ปๅพ็ปไปถ
- ๅ็ซฏ: Python 3.11+ + SQLAlchemy
- ๆฐๆฎๅบ: SQLite (็จไบๅญๅจๆๆกฃๅ ๅฎนใๅ ๆฐๆฎๅ็ผ่พๅๅฒ)
- ๆๅปบ: PyInstaller + Makefile
- ๆ ทๅผ: ็ปไธ็่ฎพ่ฎกไปค็็ณป็ป (TDesign้ฃๆ ผ)
MarkRender ๆทฑๅบฆ้ๆไบ Tencent Cherry Markdown๏ผๆไพ๏ผ
- ไธฐๅฏ็ Markdown ๆฉๅฑ่ฏญๆณๆฏๆ
- ๅฎๆถ้ข่งไธ็ผ่พ
- ่ชๅฎไนๅทฅๅ ทๆ ๅๅฟซๆท้ฎ
- ่กจๆ ผใไปฃ็ ๅใๆฐๅญฆๅ ฌๅผ็ญ้ซ็บง็ผ่พๅ่ฝ
- ๅคไธป้ขๅๆขๆฏๆ
ๅบไบ Excalidraw v0.17.6 ็ๆฌ๏ผๆไพ๏ผ
- ็ฎๆด็ด่ง็ๆ็ป้ฃๆ ผ็ปๅพไฝ้ช
- ไธฐๅฏ็ๅฝข็ถๅบๅๆจกๆฟ
- ๅฎๆถๅไฝ็ผ่พๅบ็กๆถๆ
- ๅฏผๅ ฅ/ๅฏผๅบ SVGใPNG ็ญๆ ผๅผ
- ๆ่ฒๆจกๅผๆฏๆ
- ๅฑ็บงๅ็ๆๆกฃ็ป็ป็ณป็ป
- ๆๆฝๅผๆๆกฃ็ฎก็
- ๆ ็ญพๅๅ็ฑปๆฏๆ
- ๆบ่ฝๆๅบๅ่ฟๆปค
- ๅฟซ้ๅฏผ่ชๅ่ทณ่ฝฌ
- ่ชๅจ่ฎฐๅฝๆฏๆฌก็ผ่พ็ๅฎๆดๅๅฒ
- ็ๆฌๅฏนๆฏๅๅทฎๅผๆพ็คบ
- ไธ้ฎๅๆบฏๅฐไปปๆๅๅฒ็ๆฌ
- ็ผ่พๆถ้ดๅๆไฝ่ฎฐๅฝ
- ๅๅฒ็ๆฌ็ฎก็ๅๆธ ็
- Python 3.11+
- PySide6
- Node.js๏ผ็จไบๅ็ซฏๆๅปบ๏ผ
# ๅๅปบ่ๆ็ฏๅข
python3 -m venv .venv
source .venv/bin/activate
# ๅฎ่ฃ
Pythonไพ่ต
pip install -r requirements.txt# ๅผๅๆจกๅผ
python main.py --debug
# ๆญฃๅธธๆจกๅผ
python main.pymake dmgmarkrender/
โโโ app/ # ไธปๅบ็จๆจกๅ
โ โโโ editor/ # Markdown็ผ่พๅจ็ปไปถ
โ โโโ preference/ # ๅบ็จๅๅฅฝ่ฎพ็ฝฎไธๆ ทๅผ็ณป็ป
โ โโโ quickpick/ # ๅฟซ้้ๆฉ้ขๆฟ
โ โโโ sidebar/ # ไพง่พนๆ ็ฎก็
โ โโโ statusbar/ # ็ถๆๆ
โ โโโ topbar/ # ้กถ้จๅทฅๅ
ทๆ
โโโ db/ # ๆฐๆฎๅบๆจกๅ
โ โโโ models/ # ๆฐๆฎๆจกๅๅฎไน
โ โโโ managers/ # ๆฐๆฎ็ฎก็ๅจ
โโโ frontend/ # ๅ็ซฏ็ปไปถ
โ โโโ excalidraw/ # ็ฝๆฟๅ่ฝ(React+TS)
โ โโโ milkdown/ # Markdown็ผ่พๅจ(Vue+TS)
โโโ utils/ # ๅทฅๅ
ท็ฑปๆจกๅ
โโโ docs/ # ๐ ้กน็ฎๆๆกฃ
โโโ test/ # ๐งช ๆต่ฏๆไปถ
โโโ icons/ # ๅพๆ ่ตๆบ
โโโ main.py # ๅบ็จๅ
ฅๅฃ
Milkdown็ผ่พๅจๆฏMarkRender็้ป่ฎคMarkdown็ผ่พๅจ๏ผๅบไบVueๅTypeScriptๆๅปบใ
้่ฆไบๆฌกๅผๅ็ๅฏไปฅๅ่ไธ้ขๆนๅผ๏ผๅฆๆไธ้่ฆไบๆฌกๅผๅ๏ผๅฏไปฅ่ทณ่ฟๆฌ้จๅ๏ผๅ ไธบๅทฒ็ปๆๅ ไธบๆไปถ้ๆๅฐ่ฝฏไปถ้ไบ๏ผ
# ่ฟๅ
ฅmilkdown็ฎๅฝ
cd frontend/milkdown
# ๅฎ่ฃ
ไพ่ต
npm install
# ๅผๅๆจกๅผ
npm run start
# ๆๅปบๅนถ้จ็ฝฒ
npm run build-and-deployExcalidraw็ฝๆฟ็ปไปถ็จไบๅพๅฝข็ปๅถๅ่ฝใ
้่ฆไบๆฌกๅผๅ็ๅฏไปฅๅ่ไธ้ขๆนๅผ๏ผๅฆๆไธ้่ฆไบๆฌกๅผๅ๏ผๅฏไปฅ่ทณ่ฟๆฌ้จๅ๏ผๅ ไธบๅทฒ็ปๆๅ ไธบๆไปถ้ๆๅฐ่ฝฏไปถ้ไบ๏ผ
# ่ฟๅ
ฅexcalidraw็ฎๅฝ
cd frontend/excalidraw
# ๅฎ่ฃ
ไพ่ต
npm install
# ๅผๅๆจกๅผ
npm run start
# ๆๅปบๅนถ้จ็ฝฒ
npm run build-and-deployๆๆ้กน็ฎๆๆกฃ้ฝไฝไบ docs/ ็ฎๅฝไธญ๏ผ
- ๆๆกฃ็ดขๅผ - ๅฎๆด็ๆๆกฃๅฏผ่ช
- ้กน็ฎREADME - ้กน็ฎ่ฏฆ็ป่ฏดๆ
- ๆ ทๅผ้ๆๆฅๅ - ๆ ทๅผ็ณป็ป้ๆๆๆกฃ
- Qtๅ ผๅฎนๆงไฟฎๅค - Qtๆ ทๅผ่กจๅ ผๅฎนๆงไฟฎๅคๆฅๅ
- UIไผๅ็ณปๅๆๆกฃ - Sidebarๅฏน้ฝใ่พนๆกไผๅ็ญๆๆฏๆๆกฃ
ๆๆๆต่ฏๆไปถ้ฝไฝไบ test/ ็ฎๅฝไธญ๏ผ
- ๆต่ฏ่ฏดๆ - ๆต่ฏๆไปถไฝฟ็จๆๅ
- ๅ่ฝๆต่ฏ - UI็ปไปถๅไบคไบๅ่ฝๆต่ฏ
- ๆต้ๅทฅๅ ท - ็ฒพ็กฎ็ๅ็ด ็บงๆต้ๅ้ช่ฏๅทฅๅ ท
- ้ๆๆต่ฏ - ็ปผๅๅ่ฝ้ช่ฏ
่ฟ่กๆต่ฏ๏ผ
# ่ฟ่ก็นๅฎๆต่ฏ
python test/test_sidebar_alignment.py
# ่ฟ่กๆต้ๅทฅๅ
ท
python test/measure_sidebar_spacing.py- ้ตๅพชPEP 8 Pythonไปฃ็ ่ง่
- ไฝฟ็จ็ปไธ็่ฎพ่ฎกไปค็็ณป็ป (่ง
app/preference/style_constants.py) - ็ปไปถๆ ทๅผ้่ฟๆ ทๅผ็ๆๅจๅค็จ (่ง
app/preference/style_utils.py)
- Fork ้กน็ฎ
- ๅๅปบๅ่ฝๅๆฏ
- ็ผๅๆต่ฏ็จไพ
- ๆไบคๅๆด
- ๅ่ตท Pull Request
ๆฌ้กน็ฎ้็จ LICENSE ่ฎธๅฏ่ฏใ
ๅฆๆ้ฎ้ขๆๅปบ่ฎฎ๏ผ่ฏทๆฅ็ ๆๆกฃ ๆๆไบค Issueใ
MarkRender is a powerful multi-format document processing platform that integrates file conversion, Markdown editing, graphic drawing, and document management. It perfectly supports Tencent Cherry Markdown rich text editing and Excalidraw whiteboard drawing, and provides tree-structured document organization and comprehensive file editing history management.
- ๐ Multi-format Conversion: Support PDF, DOCX, EPUB, XLSX conversion to Markdown
- ๐ Professional Markdown Editing: Perfect integration with Tencent Cherry Markdown, providing rich rich text editing capabilities
- ๐จ Graphic Drawing: Built-in Excalidraw v0.17.6 whiteboard function, supporting hand-drawn style charts and diagrams
- ๐ Tree-structured Document Organization: Intuitive document organization system with hierarchical classification and quick navigation
- ๐ Complete Editing History: Automatically records every edit history, supporting version rollback and comparison
- ๐ค Multi-format Export: Support exporting to Markdown, PDF, EPUB, and other formats
- ๐จ Modern UI: Native desktop application based on PySide6, providing smooth user experience
- ๐ Intelligent Search: Powerful document retrieval function with custom sorting (by creation time, update time, or name)
- โ๏ธ Personalized Settings: Rich theme and preference configuration options
- Frontend: PySide6 + Web Components
- Tencent Cherry Markdown: Provides rich text editing, real-time preview, and extended syntax support
- Excalidraw v0.17.6: Hand-drawn style whiteboard drawing component
- Backend: Python 3.11+ + SQLAlchemy
- Database: SQLite (for storing document content, metadata, and editing history)
- Build: PyInstaller + Makefile
- Style: Unified design token system (TDesign style)
MarkRender deeply integrates Tencent Cherry Markdown, providing:
- Rich Markdown extended syntax support
- Real-time preview and editing
- Customizable toolbar and shortcuts
- Advanced editing features (tables, code blocks, mathematical formulas)
- Multi-theme switching support
Based on Excalidraw v0.17.6 version, providing:
- Clean and intuitive hand-drawn style drawing experience
- Rich shape library and templates
- Real-time collaboration editing infrastructure
- Import/export SVG, PNG, and other formats
- Dark mode support
- Hierarchical document organization system
- Drag-and-drop document management
- Tag and classification support
- Intelligent sorting and filtering
- Quick navigation and jumping
- Automatically records complete history of each edit
- Version comparison and difference display
- One-click rollback to any historical version
- Editing time and operation records
- Historical version management and cleanup
- Python 3.11+
- PySide6
- Node.js (for frontend building)
# Create virtual environment
python3 -m venv .venv
source .venv/bin/activate
# Install Python dependencies
pip install -r requirements.txt# Development mode
python main.py --debug
# Normal mode
python main.pymake dmgmarkrender/
โโโ app/ # Main application module
โ โโโ editor/ # Markdown editor component
โ โโโ preference/ # Application preferences and style system
โ โโโ quickpick/ # Quick selection panel
โ โโโ sidebar/ # Sidebar management
โ โโโ statusbar/ # Status bar
โ โโโ topbar/ # Top toolbar
โโโ db/ # Database module
โ โโโ models/ # Data model definitions
โ โโโ managers/ # Data managers
โโโ frontend/ # Frontend components
โ โโโ excalidraw/ # Whiteboard function (React+TS)
โ โโโ milkdown/ # Markdown editor (Vue+TS)
โโโ utils/ # Utility modules
โโโ docs/ # ๐ Project documentation
โโโ test/ # ๐งช Test files
โโโ icons/ # Icon resources
โโโ main.py # Application entry point
Milkdown editor is MarkRender's default Markdown editor, built based on Vue and TypeScript.
For secondary development, you can refer to the following methods. If you don't need secondary development, you can skip this section as it has been packaged as a plugin and integrated into the software.
# Enter milkdown directory
cd frontend/milkdown
# Install dependencies
npm install
# Development mode
npm run start
# Build and deploy
npm run build-and-deployExcalidraw whiteboard component is used for graphic drawing functionality.
For secondary development, you can refer to the following methods. If you don't need secondary development, you can skip this section as it has been packaged as a plugin and integrated into the software.
# Enter excalidraw directory
cd frontend/excalidraw
# Install dependencies
npm install
# Development mode
npm run start
# Build and deploy
npm run build-and-deployAll project documentation is located in the docs/ directory:
- Documentation Index - Complete documentation navigation
- Project README - Detailed project description
- Style Refactoring Report - Style system refactoring documentation
- Qt Compatibility Fixes - Qt stylesheet compatibility fix report
- UI Optimization Series Documents - Technical documents for sidebar alignment, border optimization, etc.
All test files are located in the test/ directory:
- Test Instructions - Test file usage guide
- Functional Tests - UI component and interaction function tests
- Measurement Tools - Precise pixel-level measurement and verification tools
- Integration Tests - Comprehensive function verification
Run tests:
# Run specific test
python test/test_sidebar_alignment.py
# Run measurement tool
python test/measure_sidebar_spacing.py- Follow PEP 8 Python code standards
- Use unified design token system (see
app/preference/style_constants.py) - Component styles are reused through style generators (see
app/preference/style_utils.py)
- Fork the project
- Create a feature branch
- Write test cases
- Commit changes
- Submit a Pull Request
This project is licensed under the LICENSE license.
If you have any questions or suggestions, please check the documentation or submit an Issue.
๐ก Tip: It is recommended to first read docs/INDEX.md to understand the complete document structure, and test/README.md to understand the testing system.