[English](README.md) | [日本語](README.ja.md) # Markdown Easy Editor A lightweight Obsidian plugin that adds a one-click Markdown formatting toolbar and an "Optimize" command for cleaning up messy Markdown — especially text pasted from AI chat tools (ChatGPT, Claude, etc.). ## Features ### 📝 Formatting Toolbar Click the pencil icon in the ribbon to open a side panel with quick-access buttons for common Markdown syntax: - **Headings** — H1–H6 - **Basic** — Bold, italic, list, numbered list, quote, link - **More** — Inline code, code block, table, checkbox, horizontal rule The palette remembers which menus you left open or closed, even after restarting Obsidian. Each button applies formatting to your current selection (or inserts a template at the cursor) in the active note — no need to remember syntax or type symbols manually. > Don't use every menu? Open **Settings → Markdown Easy Editor → Advanced customization** to hide whole menus (Headings, Basic, More, Callouts) or individual heading levels (H1–H6). Everything is shown by default, and hiding something never deletes it — you can turn it back on any time. ![Toolbar panel](screenshots/toolbar-panel.png) ### 🎨 Callouts Insert Obsidian's colorful callout boxes (Note, Tip, Important, Warning, Danger, Info, Success, Question, Example, Quote block, Abstract, Bug) with one click. Each button shows a color accent matching how it will actually render, so you know what you're picking even before switching to Reading view. ![Callouts panel](screenshots/callouts-panel.png) **Need a callout type that isn't listed?** Open **Settings → Markdown Easy Editor → Advanced customization** to register your own custom callouts (a type name and a label). They'll appear in this panel right after the 12 built-in ones and insert the same `> [!type] label` syntax. ### ✨ Optimize Selected Markdown Select any text and run **Optimize Selected Markdown** from the command palette. This cleans up common issues in Markdown that wasn't originally written for Obsidian — for example, text copied from an AI assistant's response: - Removes trailing whitespace and collapses excess blank lines - Adds blank lines around headings for consistent spacing - Normalizes list marker spacing (`-item` → `- item`) - Collapses long runs of `---`/`***`/`___` decoration lines - Strips AI-generated intro phrases (e.g. "Sure, here's the explanation...") - Converts Obsidian-specific syntax (`[[wikilinks]]`, `^block-refs`) into plain text/links > AI-generated `[[WikiLinks]]` often point to notes that don't exist in your vault. Optimize removes these to keep pasted AI content clean. If you intentionally use WikiLinks, just don't select that part of the text before running Optimize. - Normalizes callout syntax (`> [!note]`) - Reduces excessive bold formatting when overused in a single line - Optionally converts tables to bullet lists for note-taking targets This is aimed at anyone who regularly pastes AI-generated content, web clippings, or Markdown from other tools into Obsidian and wants it to look native. > Wikilink/block-ref conversion, AI intro-phrase removal, and excessive-bold reduction can each be turned off individually. Open **Settings → Markdown Easy Editor → Advanced customization** to toggle them (all are on by default). **Before:** ![Before optimize](screenshots/optimize-before.png) **After:** ![After optimize](screenshots/optimize-after.png) ### 🌐 English and Japanese The toolbar and notifications automatically switch between English and Japanese based on your Obsidian display language setting. Any language other than Japanese falls back to English. ## Usage 1. Click the pencil icon in the left ribbon to open the formatting toolbar, **or** 2. Select text in a note and run **Optimize Selected Markdown** from the Command Palette (`Ctrl/Cmd + P`) ## Commands | Command | Description | |---|---| | Optimize Selected Markdown | Cleans up the currently selected text | ## Tip: Seeing raw Markdown symbols By default, Obsidian's Live Preview mode converts typed symbols into their formatted appearance right away — for example, typing `- ` turns into a bullet point (`•`) immediately, and `# ` becomes a styled heading. This is normal Obsidian behavior, not something this plugin controls. If you'd like to see the raw Markdown syntax as you type (useful if you're learning Markdown syntax, or plan to copy your notes elsewhere), you can switch that note to **Source Mode**: - Right-click the note's tab → **Open in Source Mode**, or - **Settings → Editor → Default editing mode** → set to **Source mode** This affects how Obsidian displays your notes generally, not just when using this plugin's toolbar. ## Installation ### From Community Plugins (once approved) 1. Open **Settings → Community plugins** 2. Search for "Markdown Easy Editor" 3. Click **Install**, then **Enable** ### Manual installation 1. Download `main.js`, `manifest.json` (and `styles.css` if present) from the [latest release](https://github.com/Chizmo-byte/obsidian-markdown-easy-editor/releases) 2. Copy them into `/.obsidian/plugins/markdown-easy-editor/` 3. Reload Obsidian and enable the plugin in **Settings → Community plugins** ## Changelog Major updates only. Full details are on the [Releases](https://github.com/Chizmo-byte/obsidian-markdown-easy-editor/releases) page. | Version | Highlights | |---|---| | 0.6.0 | Show/hide whole palette menus and individual heading levels (H1–H6); the palette remembers which menus are open; settings reorganized into Optimize / Palette display / Custom callouts; fixed custom callouts not being editable on Obsidian 1.13+ | | 0.5.0 | Custom callouts: register your own callout types and use them from the palette (0.5.1–0.5.2: Community review compatibility fixes) | | 0.4.0 | Individual on/off toggles for Optimize's transformations (wikilinks, block references, AI intro phrases, excessive bold) | | 0.3.0 | Callouts section with 12 callout types and color accents | | 0.2.0 | English / Japanese UI that follows Obsidian's display language; English AI intro-phrase detection in Optimize (0.2.2) | | 0.1.0 | Initial release: formatting toolbar and "Optimize Selected Markdown" command | ## License MIT