Skip to main content

The Ultimate Science & Engineering Research and Academic Markdown Editing & Visualization Studio

Project description

๐Ÿงช Joy Markdown Studio v3.9.24 ๐ŸŒŸ

The Ultimate Science & Engineering Research and Academic Markdown Editing & Visualization Studio
A premium desktop markdown creator application crafted with Python (PyWebView + Bottle) and modern Vanilla CSS/JS.

[!TIP] ๐Ÿ’ก You can view the detailed release notes and updates history for all versions in the CHANGELOG.md document.


๐Ÿ“ธ Overview

Joy Markdown Studio goes beyond a simple document viewer; it is an academic-friendly markdown editor designed to maximize productivity for researchers and students in science and engineering fields. It provides high-end features such as support for entering complex mathematical symbols, automatic 2D molecular structure generation via chemical name search, real-time diagram rendering (Mermaid), and standalone high-quality HTML export, all with a sleek Glassmorphism UI.


โœจ Key Features

1. ๐Ÿ“ CodeMirror 6 Editor Core

  • High-Speed Modern Editor Engine: Replaced the standard textarea with the high-performance CodeMirror 6 engine. It provides a fast and stable typing environment even with massive markdown documents.
  • Maximizing Coding Productivity: Packed with essential coding assists such as auto-close brackets, robust undo/redo history, and custom shortcuts found in modern editors.

2. ๐Ÿ“ Academic Math Helper (KaTeX Integration)

  • Real-time Formula Rendering: Equipped with a fast and accurate KaTeX engine to render inline math ($...$) and block math ($$...$$) seamlessly.
  • Three Science & Engineering Tabbed Helper Panels:
    • Math (๐Ÿ“): One-click insertion of fractions, roots, calculus, limits, Greek letters, and key symbols.
    • Physics (โš›๏ธ): Provides essential formulas such as Coulomb's law, universal gravitation, Schrรถdinger's equation, Lorentz force, etc.
    • Chemistry/Life Sciences (๐Ÿงช): Supports templates for Arrhenius equation, ideal gas law, reaction arrows, DNA base pairs, and Gibbs free energy.
  • Smart Cursor and Wildcards: When inserting a formula template, the area to be edited (?) is automatically focused as a mouse selection, minimizing typing movement.

3. ๐Ÿงฌ PubChem Real-time Chemical Molecular Structure Visualization

  • PubChem API Integration: Search for chemical compound names in Korean or English (e.g., aspirin, caffeine) to retrieve molecular data and SMILES strings in real time from the US NLM PubChem database.
  • 2D Molecular Structure Preview: Displays the 2D vector structural formula of the searched compound as real-time graphics inside the panel.
  • SMILES Code Drawer: When inserted into the editor as a smiles code block, it is automatically visualized as a beautiful chemical skeletal structure model in the main preview area.

4. ๐Ÿ“Š Dynamic Diagrams (Mermaid.js)

  • Instantly visualizes flowcharts, sequence diagrams, Gantt charts, mind maps, etc., directly from markdown text code.
  • Mermaid Fullscreen & Zoom Mode: Double-clicking a rendered diagram or clicking the zoom icon opens it in a high-resolution fullscreen modal for detailed observation.

5. ๐Ÿ—‚๏ธ Smart & Safe Library File Management

  • Tree Explorer: Displays the folder and file structure within the workspace in an elegant layout.
  • User Data Protection: Deleting a document does not delete the physical disk file; it only unregisters it from the library database (md_viewer_config.json), preventing accidental loss of research source code or documents.
  • Drag and Drop Support: Dropping markdown files (.md, .qmd, .txt) from Windows Explorer onto the app screen loads them instantly.

6. ๐Ÿš€ Modern Design & Responsive UI

  • Glassmorphism & Neon Themes: Supports smooth transitions between dark mode (default) and light mode, with an eye-friendly color palette and accent glowing effects.
  • Sliding Hidden Panels: Left explorer and right TOC (Table of Contents) panels slide cleanly to the screen edges, maximizing document writing space.
  • Synchronized Scroll: Highly synchronizes the scroll positions of the editor and preview areas to assist in reviewing long documents.

7. ๐ŸŒ Standalone HTML Export

  • Exports the editing markdown as a completely standalone HTML file for external sharing.
  • The exported file preserves KaTeX equations, Prism syntax highlighting, Mermaid diagrams, and SMILES molecular models, rendering normally in any browser with an internet connection.

8. ๐Ÿ–จ๏ธ Premium Driverless PDF Printing & Static Page Engine

  • Custom Print of Preview Screen Only: Clicking the PDF print button automatically removes unnecessary editor text areas, sidebars, headers, and other UI elements, outputting only the markdown preview output formatted cleanly for A4 size.
  • Intelligent Ink Saving & Theme Switching: Even if printing from dark mode, the document temporarily auto-renders in a white/high-contrast theme for printing to prevent wasting ink/toner, and returns to dark mode immediately after printing completes.
  • Precise A4 Margin Separation: Discarded negative margins entirely. Placed headers fixed at top: 0 and footers at bottom: 0, and dynamically calculated and applied precise safe body padding (bodyPaddingTopBottom) to ensure perfect vertical isolation with accurate static page numbers (1 / 2, 2 / 2).

9. ๐ŸŒ External Mobile Device Connection & Security Password Protection

  • Mobile and Tablet Remote Connection: Supports multi-networking so you can access the workspace from other PCs or mobile devices on the same Wi-Fi/network wirelessly.
  • Access Password Configuration: Set an access password via the Settings icon (โš™๏ธ). When configured, a sleek and secure Lock Screen is activated for external network access.

10. โ˜๏ธ One-Click Bidirectional Google Drive Sync

  • Zero-Configuration OAuth Login: Standard credentials are built directly into the compiled application. General users do not need to download or manually configure client_secrets.json files.
  • App-Specific Scope for Safety: Operates under the drive.file scope, meaning it can only see and manage files created by this application.
  • Smart Syncing & Conflict Resolution: Supports automatic background syncing on save, modification time (mtime) conflict resolution, and remote cloud library browsing to download and import notes instantly.

๐Ÿ› ๏ธ System Architecture

Joy Markdown Studio adopts a powerful hybrid architecture combining a Python desktop shell and a modern web frontend.

graph TD
    subgraph backend ["Python Backend"]
        A[jmstudio.py Main Entry] --> B[PyWebView Shell]
        A --> C[Bottle Local Server]
        A --> D[Pillow Icon Builder]
    end
    
    subgraph frontend ["UI / Front-end (Local Server & API Bridge)"]
        B <-->|JS API Bridge| E[HTML/Vanilla CSS/JS Client]
        C -->|Serves Resources & Workspace Files| E
        E --> F[Marked.js Markdown Parser]
        E --> G[Prism.js Syntax Highlighter]
        E --> H[KaTeX Math Engine]
        E --> I[SmilesDrawer Molecular Graphics]
        E --> J[Mermaid.js Diagrammer]
    end
    
    subgraph cloud ["Cloud APIs"]
        E -->|GET API Request| K[PubChem NLM REST API]
    end

๐Ÿ“‚ Project Structure

e:\jm_studio\
โ”œโ”€โ”€ jmstudio.py                  # Backward-compatible delegate main script (launches main.py)
โ”œโ”€โ”€ main.py                      # Application entry point and GUI/WebView launcher
โ”œโ”€โ”€ app_config.py                # Configuration loader/saver and global variables management
โ”œโ”€โ”€ api_bridge.py                # Secure JavaScript-to-Python PyWebView API bridge
โ”œโ”€โ”€ routes.py                    # Bottle-based local web server routing and static assets handler
โ”œโ”€โ”€ compile.bat                  # Compiler script for Windows standalone executable (.exe)
โ”œโ”€โ”€ compile.sh                   # Compiler script for macOS standalone app (.app)
โ”œโ”€โ”€ git_push.bat                 # Script to push to GitHub remote repository (jmstudio)
โ”œโ”€โ”€ .gitignore                   # Excludes build outputs, temporary cache, and config files from Git
โ”œโ”€โ”€ md_viewer_config.json        # Database storing library files, recently opened file, theme, and settings
โ”œโ”€โ”€ CHANGELOG.md                 # [NEW] English detailed release history and release notes
โ”œโ”€โ”€ CHANGELOG_kr.md              # [NEW] Korean detailed release history and release notes
โ”œโ”€โ”€ app_icon.png                 # Studio launcher logo image
โ”œโ”€โ”€ app_icon.ico                 # Multi-size system tray and frame icon generated automatically
โ”œโ”€โ”€ document.md                  # Temporary markdown storage sample
โ”œโ”€โ”€ README.md                    # English help document (this file)
โ”œโ”€โ”€ README_kr.md                 # Korean help document
โ”œโ”€โ”€ setup.py                     # Python package configuration script for PyPI uploading
โ”œโ”€โ”€ MANIFEST.in                  # Manifest file specifying static assets to include in PyPI package
โ””โ”€โ”€ frontend/                    # Frontend static web assets directory

๐Ÿ†š Why Joy Markdown Studio? (vs Obsidian)

Joy Markdown Studio (JM-STUDIO) and Obsidian are both powerful local markdown editors, but their core philosophy, target audience, and out-of-the-box features are distinctly different.

1. ๐Ÿงช Out-of-the-Box STEM Research Environment

  • Obsidian: Focuses on general personal knowledge management (PKM). To write equations or chemistry formulas, you must manually install numerous community plugins.
  • JM-STUDIO: A fully-equipped environment for mathematicians, physicists, and chemists is built-in out-of-the-box. Dedicated helper panels allow you to insert complex equations with a single click.

2. ๐Ÿงฌ Real-time PubChem Molecule Visualization

  • Obsidian: No native feature to search or render chemical molecular structures.
  • JM-STUDIO: Natively integrated with the NLM PubChem API. Search for compounds to view real-time 2D molecular structures, and automatically insert SMILES codes.

3. ๐ŸŒ Built-in Free Remote Web Access & Security

  • Obsidian: Real-time sync and remote viewing require paid services or complex third-party configurations.
  • JM-STUDIO: Automatically spins up an internal web server. Access your library wirelessly from tablets or phones, secured with a custom lock screen password.

๐Ÿ’ก In Summary: If Obsidian is a "universal diary where you build your own notes using Lego blocks," Joy Markdown Studio is a "fully-loaded premium research studio designed so scientists and researchers can dive straight into their work with zero setup!"


๐Ÿš€ Getting Started

๐Ÿ“‹ Prerequisites

To run this application or build standalone packages, the following environment is recommended:

  • Python: Python 3.10 or higher
  • Dependency Libraries: pywebview, bottle, Pillow, pyinstaller

๐Ÿ’ป Installation & Run

Option 1: Official Installation via PyPI (Highly Recommended)

If you have a Python environment, you can install, run, upgrade, and uninstall the app with a single command.

Action Command
Install pip install joy-markdown-studio
Run jmstudio
Upgrade pip install --upgrade joy-markdown-studio
Uninstall pip uninstall joy-markdown-studio

Option 2: Using Virtual Environment (venv) (Recommended)

Using a local virtual environment prevents system environment clutter.

  1. Create and activate virtual environment:
    • Windows (PowerShell):
      python -m venv .venv
      .venv\Scripts\activate
      
  2. Install dependencies and run:
    pip install --upgrade pip
    pip install pywebview bottle Pillow pyinstaller
    python jmstudio.py
    

๐Ÿ“ฆ Distributing as Standalone Executable

You can compile Joy Markdown Studio into a standalone executable (.exe) that runs on other PCs.

๐ŸชŸ Building on Windows (.exe)

  1. Run compile script:
    • Run the compile script in your shell:
      .\compile.bat
      
    • The script packages jmstudio.py into a single EXE file inside the dist/ directory.

๐Ÿ’ก Practical Markdown Tips

๐Ÿงช 1. Drawing Chemical Formulas

Set code block language to smiles and write a SMILES molecular string:

```smiles
OC(=O)/C=C/c1ccc(O)c(O)c1

### ๐Ÿ“ 2. Entering Equations
Write block equations using `$$` or inline equations using `$`:
```markdown
Mass and energy are equivalent and represented by: $E = mc^2$

$$i\hbar\frac{\partial}{\partial t}\Psi = \hat{H}\Psi$$

โš™๏ธ Configuration

Settings are permanently preserved inside md_viewer_config.json generated in the application folder:

  • theme: dark or light
  • last_file: File path of the last working markdown document (restored automatically)
  • last_workspace: Path of the active library directory loaded on startup
  • port: Access web service port number (default: 58220)
  • bind_ip: Host binding address (0.0.0.0: allow all, 127.0.0.1: allow local only)

๐Ÿ”’ Security & Optimization

  • Security Path Checks: Strict path validation checks completely prevent Directory Traversal attacks.
  • Debounced Live Rendering: Applies a smart debounce timer to ensure a highly responsive editing experience.

Start a smart and smooth research and documentation journey with Joy Markdown Studio! ๐Ÿš€

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

joy_markdown_studio-3.9.24.tar.gz (309.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

joy_markdown_studio-3.9.24-py3-none-any.whl (298.5 kB view details)

Uploaded Python 3

File details

Details for the file joy_markdown_studio-3.9.24.tar.gz.

File metadata

  • Download URL: joy_markdown_studio-3.9.24.tar.gz
  • Upload date:
  • Size: 309.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for joy_markdown_studio-3.9.24.tar.gz
Algorithm Hash digest
SHA256 fac5dd3120eeac65bb2484652d905fc1773c0c27f79c2ec7a610f153fbf1e021
MD5 e886d7254fc2099a4668df91fe4c4765
BLAKE2b-256 de79ddd399624e18d5710dbcef20aac1548edcc1479e4a0c3f85ef003f1903de

See more details on using hashes here.

File details

Details for the file joy_markdown_studio-3.9.24-py3-none-any.whl.

File metadata

File hashes

Hashes for joy_markdown_studio-3.9.24-py3-none-any.whl
Algorithm Hash digest
SHA256 598c9b550f71248b0eae353c2f6063caa09161c48f4e5fc6dacf05a99eccd59d
MD5 7a7ea193d4b951b58e235aa025043ec5
BLAKE2b-256 ab8b5f4ac3562ed829f28a82757bbba68727c23d343015d513869174918a0134

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page