Skip to main content

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

Project description

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

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.


๐Ÿ“ธ 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 & Full Modularization

  • 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.
  • KaTeX Math Input Helper & Preview Enhancements (v3.8.9 New): Upgraded the KaTeX library to version 0.17.0 globally, restored mathematical previews for previously non-rendering items (such as \sout strikeout, \overbracket, and \underbracket), added dedicated cards for actuarial angles (\angl, \angln), and fixed the layout overlap issue for \mathclap by enforcing limits rendering.
  • Electrical & Electronics (EE) Subtab Revamp (v3.8.8): Revamped the Electrical/Electronics subtab into 6 clear subdivisions (Basic Operators, Circuit Theory, Electromagnetics, Signals & Systems, Semiconductor Physics, Control Engineering) with 3-column unified grid, and fixed math preview tooltips by resolving LaTeX escaping.
  • 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: When searching for chemical compound names in Korean or English (e.g., ์•„์Šคํ”ผ๋ฆฐ, caffeine, capsaicin), it retrieves molecular data and SMILES strings in real time from the US National Library of Medicine (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.
  • Built-in Korean-English Mapping: When searching for Korean compound names, it intelligently maps to the corresponding English term to query the API.

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 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 (Safe Unregister): 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 with a visual guideline overlay.

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 without needing a viewer.

8. ๐Ÿ–จ๏ธ Premium Driverless PDF Printing

  • 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 maximize readability, and returns to dark mode immediately after printing completes.

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. Enter the Network Access URL (e.g., http://192.168.x.x:58220) shown in the console to view your library wirelessly.
  • Access Password Configuration: You can set an access password via the Settings icon (โš™๏ธ) in the top right. When configured, a sleek and secure Lock Screen is activated for external network access.
  • Custom Port & Host Binding: Easily change the binding host (IP: 0.0.0.0 or 127.0.0.1) and web service port number from the settings modal, which is saved permanently.

10. ๐ŸŒ Bilingual UI Language Toggle

  • Real-time UI Translation: Switch the entire application interface (sidebar tabs, header buttons, labels, placeholders, tooltips, and dialog alerts) between Korean and English instantly via the KR/EN toggle button in the header.
  • Settings Persistence: The selected language is saved in real time to the local browser's localStorage and the md_viewer_config.json configuration file, automatically restoring the last state on startup.

11. โ˜๏ธ Bidirectional Real-time Google Drive Sync & Remote Browsing (v3.9.1 New)

  • Easy Cloud Connection: Seamlessly connect to Google Drive using the dedicated 'Cloud Sync' accordion menu located right under your local file tree.
  • Zero-Configuration Browser Login: Standard credentials are built directly into the compiled application. General users do not need to download or manually configure client_secrets.json files; clicking connect immediately opens their system web browser for OAuth.
  • App-Specific Scope for Safety: Operates under the drive.file scope, meaning it can only see and manage files created by this application. Your other personal Google Drive folders remain completely isolated and secure.
  • Smart Syncing & Conflict Resolution: Supports automatic background syncing on save as well as manual triggers. Detects local/remote modified time (mtime) differences and prompts an intelligent conflict resolution modal if a newer file exists on the cloud.
  • Remote File Browser & Import: View markdown documents safely stored in your Google Drive cloud workspace. Import any file that is not yet locally registered with a single click.
  • Custom Credentials Override: If you wish to use your own private GCP project keys, you can easily load your custom client_secrets.json file directly through the in-app setup guide dialog.
  • How to Obtain Private Credentials: Detailed step-by-step instructions on generating and downloading your own client_secrets.json from the Google Cloud Console can be found in the Google Drive API Connection Key Setup Guide document.

12. ๐ŸŽจ UI & Editor Font Customization (v3.9.2 New)

  • Custom UI & Preview Fonts: Easily change the typography of the entire application interface and markdown preview area. Choose from modern sans-serif fonts like Inter and Outfit, elegant serif fonts like Lora (ideal for academic reading), or use system defaults.
  • Professional Coding Fonts: Select from popular developer monospaced fonts including Fira Code (with beautiful ligatures), JetBrains Mono (the highest readability coding font), Consolas, D2Coding (popular Korean coding font), Courier New, or system monospace fallbacks.
  • Dynamic Editor Font Size: Control the text size of the editor dynamically with range bounds from 12px to 24px (default is 14px).
  • Instant Dynamic CSS Injection: All font changes apply instantly in real time via <style> tag updates without reloading or restarting the app.
  • Seamless Settings Sync: Configured fonts are saved in browser localStorage for immediate styling on startup and synchronized to the backend md_viewer_config.json for persistence.

13. ๐Ÿ˜ƒ Emoji Picker Performance Boost & Perfect Offline Integration (v3.9.3 New)

  • Local Emoji Serving (Offline-First): Eliminated external CDN server dependency by fully embedding the 430KB emoji metadata dataset (emoji-data.json) as a local server asset. The emoji picker loads instantly even in completely offline network environments.
  • Zero-Lag Click Response via Background Pre-rendering: Improved the initial click rendering lag (0.5sโ€“1s) by pre-rendering the emoji picker in the background shortly after the application starts. Clicking the emoji button now gives instant, 0ms responses.
  • GPU 3D Accelerated & Isolated Containment Scrolling: Enforced CSS contain: content/paint layout rules alongside will-change: transform to isolate repainting and prevent the heavy CodeMirror text editor layout from redrawing during emoji scrolling, delivering silky-smooth 60fps+ hardware-accelerated scrolling.
  • Expanded Frequent Emojis (Up to 30): Provides up to 30 frequently used emojis arranged in a clean 10x3 grid at the very top, and resolved the virtual scrolling viewport offset issue for flawless category tab navigation.

14. ๐Ÿ› ๏ธ Standalone Build Debug Tool Deactivation & Performance Stabilization (v3.9.4 New)

  • Deactivated Developer Tools for Release: Completely disabled the Chromium Developer Tools debug flag in the main webview shell setup, ensuring a clean, secure, and professional desktop academic workspace for the final compiled application.
  • Emoji Rendering Layer Isolation Completed: Successfully stabilized the system behavior, ensuring that the local offline serving and GPU hardware-accelerated scroll layers function flawlessly without memory leakage or stuttering in non-debugging mode.

15. ๐ŸŽจ Emoji Grid Layout Optimization & Category Tab Fix (v3.9.5 New)

  • Expanded Dropdown Container: Fixed the layout issue where the 10th column in the 10-column layout got truncated at the right border by expanding the dropdown menu width to 398px and perfectly synchronizing the component's parent container width.
  • Fine-Tuned Emojis and Button Sizing: Adjusted individual emoji rendering size to 22px and button bounding grid boxes to 34px. Emojis, borders, and top category icons (including flags) now render beautifully with appropriate side padding and zero edge clipping.

16. ๐Ÿ› External Absolute Path Document Loading & Backend API Bridge Crash Fix (v3.9.6 New)

  • Resolved External Absolute Path Document Loading Crash: Fixed a critical frontend TypeError where opening a file located outside the active workspace directory (with path like C:/...) triggered a crash due to workspaceRoot being Falsy (null/undefined) during replacement operations. Built bulletproof exception fallback handling for all file openings.
  • Normalized Windows Paths: Standardized Windows-style backslashes (\) to slashes (/) when paths are received from the backend, ensuring flawless filename substring parsing and accurate physical path tooltips.
  • Optimized Backend API Bridge Binding: Resolved the backend bottleneck where browsing via external web browsers caused an AttributeError: Window object has no attribute js_api error at the Bottle API endpoint. Bound the main API instance directly to the api_bridge module for maximum stability and speed.

17. ๐Ÿ“ Document Template Helper (9 Templates) and Smart Insertion UX (v3.9.7 New)

  • 9 Built-in Standard Templates: Provides 9 professionally designed templates including Academic Thesis (incorporating abstract, KaTeX formulas, and Mermaid architecture graphs), University & Business Report, Knowledge & Wiki Note, Task Checklist (TODO), Shopping List, Life Bucket List, Detailed Travel Planner, Weekly Timetable (markdown table scheduler), and Idea Quick Memo.
  • Independent Source Code Isolation (templates.js): Isolated large markdown template data and dedicated rendering logic from editor.js into a standalone templates.js module, greatly improving code readability and application startup performance.
  • Compact Sidebar-Integrated Selector UX: Moved away from the bulky tab layout. Added a Create from Template button directly in the My Library explorer header next to the New File button. Clicking it instantly switches the library tree into a highly compact, sidebar-optimized card list of the 9 templates.
  • One-Click Localized File Creation & Split-View Auto-Open: Clicking any template immediately opens a file creation dialog, prefilled with a localized default filename based on language settings (e.g., ํ•™์ˆ ๋…ผ๋ฌธ_ํ…œํ”Œ๋ฆฟ.md or thesis_template.md). On creation, the template content is auto-injected and saved, and the editor automatically switches to Split View mode for instant editing, while returning the sidebar to standard folder tree view.

๐Ÿ› ๏ธ 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 PUG 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
โ”œโ”€โ”€ 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
โ”‚   โ”œโ”€โ”€ index.html               # Single Page Application (SPA) skeleton with modular script loader
โ”‚   โ””โ”€โ”€ static/                  # Static assets directory
โ”‚       โ”œโ”€โ”€ css/
โ”‚       โ”‚   โ””โ”€โ”€ style.css        # Vanilla CSS file containing glassmorphism design tokens & themes
โ”‚       โ””โ”€โ”€ js/
โ”‚           โ”œโ”€โ”€ translations.js  # Multilingual translations database (Korean / English)
โ”‚           โ””โ”€โ”€ editor.js        # CodeMirror 6 editor engine, KateX math, chemical drawer, diagrams, & window bindings
โ””โ”€โ”€ doc/                         # Academic and rendering guide documents folder (KR/EN)
    โ”œโ”€โ”€ chemical_formula_guide_kr.md        # Chemical formula (SMILES) rendering guide (Korean)
    โ”œโ”€โ”€ chemical_formula_guide_en.md        # Chemical formula (SMILES) rendering guide (English)
    โ”œโ”€โ”€ chemistry_encyclopedia_kr.md        # Chemical encyclopedia and SMILES database (Korean)
    โ”œโ”€โ”€ chemistry_encyclopedia_en.md        # Chemical encyclopedia and SMILES database (English)
    โ”œโ”€โ”€ computer_science_guide_kr.md        # Computer science diagram and math guide (Korean)
    โ”œโ”€โ”€ computer_science_guide_en.md        # Computer science diagram and math guide (English)
    โ”œโ”€โ”€ flowchart_guide_kr.md               # Flowchart and chart creation guide (Korean)
    โ”œโ”€โ”€ flowchart_guide_en.md               # Flowchart and chart creation guide (English)
    โ”œโ”€โ”€ geometry_guide_kr.md                # Geometry and physics diagram guide (Korean)
    โ”œโ”€โ”€ geometry_guide_en.md                # Geometry and physics diagram guide (English)
    โ”œโ”€โ”€ markdown_guide_kr.md                # Basic markdown syntax and style guide (Korean)
    โ”œโ”€โ”€ markdown_guide_en.md                # Basic markdown syntax and style guide (English)
    โ”œโ”€โ”€ math_science_guide_kr.md            # KaTeX math & science formula guide (Korean)
    โ”œโ”€โ”€ math_science_guide_en.md            # KaTeX math & science formula guide (English)
    โ”œโ”€โ”€ mermaid_guide_kr.md                 # Mermaid diagram visualization guide (Korean)
    โ””โ”€โ”€ mermaid_guide_en.md                 # Mermaid diagram visualization guide (English)

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

While both Joy Markdown Studio (JM-STUDIO) and Obsidian are powerful local markdown editors, 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) and Zettelkasten. To comfortably write complex equations or chemistry formulas, you have to find, install, and configure numerous community plugins.
  • JM-STUDIO: A fully-equipped environment for mathematicians, physicists, and chemists is built-in from the moment you install it. Dedicated helper panels allow you to insert complex templates like limits, Lorentz force, and the Schrรถdinger equation with a single click.

2. ๐Ÿงฌ Real-time PubChem Molecule Visualization (Killer Feature)

  • Obsidian: No native feature to search or render chemical molecular structures.
  • JM-STUDIO: Natively integrated with the NLM PubChem API. Search for compounds (like "Aspirin" or "Caffeine") to view real-time 2D molecular structures, and automatically insert SMILES codes to render beautiful molecular graphics directly in your markdown document.

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

  • Obsidian: Real-time sync and remote viewing require paid services (Obsidian Sync) or complex third-party cloud configurations.
  • JM-STUDIO: Automatically spins up an internal web server. By entering the network URL (http://192.168.x.x:58220) into a browser on your tablet or smartphone on the same Wi-Fi, you get instant remote access to your library. It even supports a custom Lock Screen password for perfect security.

4. ๐ŸŽจ Premium Glassmorphism UI

  • Obsidian: The default UI is utilitarian and requires manual CSS theme tweaking to look modern.
  • JM-STUDIO: Features a stunning, translucent glassmorphism interface and smooth micro-animations right out of the box, providing visual delight and a premium experience while you research.

5. ๐Ÿ–จ๏ธ Intelligent PDF Printing & Standalone HTML Export

  • Obsidian: Printing PDFs with dark themes can be cumbersome and wastes ink.
  • JM-STUDIO: When printing from Dark Mode, JM-STUDIO intelligently auto-renders a high-contrast white theme in 0.1 seconds just for the PDF export to save ink and maximize readability, instantly reverting to Dark Mode afterward. It also supports zero-dependency Standalone HTML exports, allowing you to share a single file with colleagues that looks identical to the app.

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

  • Obsidian: Requires a paid subscription (Obsidian Sync, $8โ€“$10/month) for real-time cloud sync, or complex configurations with community plugins (like Remotely Save) and third-party cloud accounts.
  • JM-STUDIO: Includes a built-in Google Drive sync engine out of the box. Users can connect to Google Drive with a single click via OAuth login. It supports automatic sync on save, modification time (mtime) conflict resolution, and remote cloud library browsing to download and import notes onto a new machine instantly.

๐Ÿ’ก 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 (The Windows build script automatically detects C:\Python\Python313\python.exe and python in system PATH.)
  • Dependency Libraries:
    • pywebview: Creating desktop app GUI frame window
    • bottle: Operating local lightweight web server and routing resources
    • Pillow (PIL): Automatic conversion of PNG app icon to multi-resolution Windows .ico format
    • pyinstaller: Standalone execution bundle compilation (required for building)

๐Ÿ’ป 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 from anywhere in the world with a single command.

Windows & macOS & Linux Combined Commands
Action Command
Install pip install joy-markdown-studio
Run jmstudio
Upgrade pip install --upgrade joy-markdown-studio
Uninstall pip uninstall joy-markdown-studio

[!TIP] OS Specific Reference

  • Windows: Open PowerShell or CMD and type the commands to run immediately.
  • macOS: Can be run from the default Terminal. Depending on your environment, you may need to use pip3 and python3 instead.
  • Linux (Ubuntu/Debian, etc.):
    • On Linux desktop environments, some system dependency packages are required for GUI rendering. We highly recommend installing them first using:
      sudo apt-get update
      sudo apt-get install python3-pip python3-pywebview libgtk-3-dev libwebkit2gtk-4.0-dev
      

Option 2: Global System Environment Source Code Run

  1. Install required libraries:

    pip install pywebview bottle Pillow
    # For building the executable
    pip install pyinstaller
    
  2. Run application:

    python jmstudio.py
    

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

Using a local virtual environment prevents system environment clutter and ensures clean building when using compile.bat/compile.sh scripts.

  1. Create and activate virtual environment:

    • Windows (PowerShell):
      python -m venv .venv
      .venv\Scripts\activate
      
    • macOS / Linux (Terminal):
      python3 -m venv .venv
      source .venv/bin/activate
      
  2. Install dependencies and run:

    pip install --upgrade pip
    pip install pywebview bottle Pillow pyinstaller
    python jmstudio.py
    
    • Note: If app_icon.png exists in the project root on startup, app_icon.ico is automatically generated.

๐Ÿ“ฆ Distributing as Standalone Executable

You can compile Joy Markdown Studio into a standalone executable that runs on other PCs without requiring Python or other libraries.

[!TIP] Virtual Environment (.venv) Auto-Detection

  • If a .venv virtual environment folder exists in the project root, the build scripts automatically prioritize using Python within the virtual environment (.venv/Scripts/python.exe or .venv/bin/python) over global system Python.
  • This ensures clean builds isolating all required dependencies.

๐ŸชŸ Building on Windows (.exe)

  1. Run one-click compile script:

    • Double-click compile.bat or run the following in your shell:
      • PowerShell (Default):
        .\compile.bat
        
      • Command Prompt (CMD):
        compile.bat
        
    • The script auto-installs/upgrades PyInstaller within your environment and bundles jmstudio.py into a single versioned EXE file (dist\JoyMarkdownStudio-vX.XX.exe).
  2. Copy and Distribute:

    • Copy the JoyMarkdownStudio-vX.XX.exe from the dist/ directory. No other files are needed.
    • Note: As the dependencies are compressed inside the executable, first launch may take 3-5 seconds to decompress.

๐ŸŽ Building on macOS (.app)

[!IMPORTANT] PyInstaller does not support cross-compilation. You must build on a macOS computer to compile macOS applications.

  1. Run compile script in macOS Terminal:

    • Copy the source folder to a Mac, open the terminal, navigate to the folder, and run:
      chmod +x compile.sh
      ./compile.sh
      
    • The script generates the standalone app bundle JoyMarkdownStudio-vX.XX.app inside the dist/ folder.
  2. Distribute:

    • Compress JoyMarkdownStudio-vX.XX.app into a Zip file for distribution.
    • Note: Since the app is not signed with an Apple Developer account, first-time users must Right-click -> Open and click Open to bypass the Gatekeeper security warning.

๐Ÿ’ก 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
*This renders as a beautiful **Caffeic acid** molecular structure in the preview.*

### ๐Ÿ“ 2. Entering Equations
Write block equations using `$$` or inline equations using `$`, or click helper buttons on the left panel:
```markdown
Mass and energy are equivalent and represented by: $E = mc^2$

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

๐Ÿ“Š 3. Inserting Diagrams

Renders flowcharts or diagrams from text using mermaid:

```mermaid
graph LR
    A[Idea] --> B(Verify Formula)
    B --> C{Search Chemical}
    C -->|Success| D[Finish Document]
    C -->|Failure| B

---

## โš™๏ธ Configuration

Settings are permanently preserved inside `md_viewer_config.json` generated in the application folder:
```json
{
    "theme": "dark",
    "last_file": "doc/markdown_guide_kr.md",
    "last_workspace": "e:\\jm_studio",
    "port": 58220,
    "bind_ip": "0.0.0.0",
    "access_password": "your_secure_password",
    "added_documents": [
        "doc/chemical_formula_guide_kr.md",
        "doc/chemistry_encyclopedia_kr.md",
        "document.md",
        "doc/flowchart_guide_kr.md",
        "doc/markdown_guide_kr.md",
        "doc/math_science_guide_kr.md",
        "doc/mermaid_guide_kr.md"
    ]
}
  • 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 external access, 127.0.0.1: allow local only)
  • access_password: Security login password required for external web browsers (leave blank for no login)
  • added_documents: Database list of documents registered in the user's library

๐Ÿ”’ Security & Optimization

  • Security Path Checks: The serve_workspace_file router has strict path validation checks to completely prevent Directory Traversal attacks attempting to access files outside the active workspace.
  • Debounced Live Rendering: To prevent interface lagging from continuous parsing of Mermaid and KaTeX while typing, a smart debounce timer is applied 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.7.tar.gz (250.2 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.7-py3-none-any.whl (28.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: joy_markdown_studio-3.9.7.tar.gz
  • Upload date:
  • Size: 250.2 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.7.tar.gz
Algorithm Hash digest
SHA256 9b165085b1ed43f24b5b2b41921c6c472c2eb2ac67297dba5a703658fd86e494
MD5 7443490157806e854ea54896e575ba23
BLAKE2b-256 c0e880eddb16306438ab2cda68f426a7b8bf3f74b3cff2fbc0756ab66723860b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for joy_markdown_studio-3.9.7-py3-none-any.whl
Algorithm Hash digest
SHA256 010422d8c9ec1cd8a63204c9eed2f14382e2baf1c7f79588827bfd8401591653
MD5 1eba982f412f2682a931378e5a9260ff
BLAKE2b-256 010d94a7afd252c9be3f9f34a2122319309096fa8f3f786e33b7ed48fcf7a6d3

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