Free Markdown publishing tool

Markdown to WordPress converter

Paste your Markdown, inspect the reading preview, and copy editable blocks into your WordPress post.

Have a Word file or a Google Docs draft? Preview the conversion before applying it.

See the whole process first: No account, plugin, or AI setup needed.

Import a file, keep source notes, or use more editing tools

Your writing stays in this tab. There is no autosave. Save a private backup before refreshing or leaving. Exporting does not publish or connect to your WordPress account.

Save or restore this workspace

Private backup, not a publishable article. The JSON file includes your source notes, audience, purpose, article, and review questions. It is unencrypted. Keep it private and out of public repositories. It contains no sign-in details or approval.

Local workspace files

Choose a workspace JSON file up to 512 KiB. It is read locally, not uploaded. Invalid files leave current work unchanged. Restoring clears approvals and never calls AI.

There is still no autosave. Check that the file is saved on your device before closing this tab. Browser exit warnings can be missed, especially on mobile.

How backups and article exports differ (new tab)
Import an article or drafting result

Open a Word .docx, bring Markdown or article JSON, or paste a formatted selection. Preview first. Replace the article or insert writing into it. Nothing is uploaded, and your current writing stays intact until you apply.

Local article import

Word .docx up to 8 MiB, or UTF-8 text up to 512 KiB. Word files convert the main article locally. Images become numbered placeholders; the preview can separately recover embedded PNG and JPEG files. Supported referenced footnotes and endnotes become labeled article sections and are included in exports. Tracked changes, fields, and complex structures must be resolved in Word. Keep the original file. Word note limits (new tab). For workspace JSON backups, use Save or restore this workspace.

An import preview is temporary and is not included in workspace backups. Apply the import to keep its article and questions. Supported formats, insertion steps, and examples (new tab)

1. Paste or edit your draft

Up to 60,000 characters of plain text or Markdown. Pasting beyond the limit is rejected in full so the ending is not silently cut off. Rich formatting from Word or Google Docs is not imported by pasting. Select text, then choose a formatting tool. Revisions keeps previous writing in this tab.

0 approximate words; 0 / 60,000 characters

More editing tools and draft history

Edit links, images, and tables, check the draft, or compare earlier versions. Opening these tools keeps your writing and export approval.

Article tables: create or edit

Edit cells without writing pipe-table syntax. Choose a supported article table or create one at the article end. Preparation stays separate until you preview and apply.

Choose an existing table or create one.

Table editor is loading. You can edit table Markdown directly.

Up to twelve columns and 100 data rows, edited ten rows at a time. No merged cells or multiline cells. Applying saves an in-tab checkpoint and clears export approval and the linked-image choice. Unsaved preparation is excluded from backups, collections, and exports. Closing clears the preview and keeps prepared cells. Table editing help (new tab)

Add or edit an article image

Use an existing public HTTPS image URL. Select a Word image placeholder or ordinary article text to replace it, or place a new image at the article end. Paragraph breaks keep the image separate. No image is loaded, uploaded, or checked here.

Choose a location before preparing a change.

A direct image file URL, up to 2,048 characters. No credentials, spaces, or quoted titles. The address is preserved as entered.

Describe the image's purpose in this article, up to 500 characters on one line. For an intentionally decorative image, clear this field and select the option below.

Image editor is loading. You can edit Markdown directly.

Applying saves a checkpoint and clears export approval and the linked-image choice. For WordPress, open Images for WordPress and explicitly choose linked Image blocks afterward. Other exports keep image Markdown as text. Unsaved image preparation is excluded from backups, collections, and exports; apply it first to keep it. Image editing help (new tab)

Find & replace in the article

Find literal words or phrases in the article body, including Markdown, code, and link addresses. Matches are substrings and do not overlap. Source notes, review notes, and page details are kept. No AI request or upload is made.

Loading article search. You can keep editing while it loads.

Navigation wraps at the ends. Enter in Find text selects the next match; Shift+Enter selects the previous one. Searching keeps review approval.

Replacement text is literal. Leave it empty to delete matching text. Replacements keep the previous workspace as a checkpoint and clear approval. Review formatting and links afterwards.

Outline & draft checks

Find unfinished placeholders, repeated passages, empty sections, heading jumps, and paragraphs over 120 approximate words. These suggestions do not verify facts, sources, permissions, grammar, or whether a web address works. How checks work (new tab)

Your section outline

Move a section up or down beside a heading at the same level within its parent. Its deeper subsections move with it; opening text before the first heading stays in place. Moves save a checkpoint in this tab and clear export approval. Review the reading preview afterward.

    Run checks when you are ready to review. Nothing is changed automatically.

      Links & image handoff
      Review claims against sources

      Choose a short claim, compare it with your source, and record your judgment. Saved records use the existing private review notes: 12 notes total, 500 characters each. They stay in backups, checkpoints, and saved collection entries; article exports exclude them. Passage review help (new tab)

      This is a record of your review, not independent fact-checking. Recheck decisions after editing the article or source. An exact text match does not establish accuracy or support.

      Select a short excerpt above, or enter evidence from a source you checked yourself. Edit the full source notes under Source notes & review.

      Passage review is loading. Ordinary review notes remain available.

      Preparing a review does not change writing or approval. Save adds or updates a private note, keeps a checkpoint, and clears approval. Unsaved fields above are excluded from backups. Shorten the combined record to 500 characters; no text is silently truncated. Source references stay as text and are never opened or checked here.

      Saved passage reviews

      No saved passage reviews yet.

        Keep several articles in a private collection

        Save up to eight workspaces in one private file. Add or update an article explicitly, then download the collection before leaving. Editing the article does not update its saved entry. This tab has no autosave or account history.

        Private draft collection

        0 / 8 saved articles in this tab.

        For a new entry, leave blank to use the current title. The name labels this saved workspace; it does not change your article title.

        Undo recovers one add, update, rename, removal, or collection load. It changes saved entries only. Opening an article keeps valid current writing in Revisions and clears export approval and publishing profiles. Workspace restore and imports keep this collection. Clear this writing desk removes the collection, undo, and checkpoints from this tab.

        Only saved entries are included. Add or update current edits first. This unencrypted JSON file excludes checkpoints, collection undo, publishing profiles, and approvals. Check the saved file before leaving. Article exports still contain only the current article.

        Draft to Page collection JSON, up to 2 MiB and eight saved workspaces. It is read locally, not uploaded. A single-workspace backup belongs in Save or restore this workspace.

        Draft collections are loading. Single-workspace backups and article exports remain available.

        How private collections work (new tab)

        Revisions in this tab

        Keep a version before changing direction. Checkpoints contain your notes, article, page details, and review questions in this tab's memory only. Imports and article insertions, workspace restores, formatting, section moves, find-and-replace edits, image, link, and table changes, filename suggestions, outline replacements, and removing a review note also keep the previous writing. Checkpoints can be lost when you refresh or leave. Download a private backup before closing.

        Page details for your publishing destination

        Excerpt, description, and filename are optional for WordPress blocks and the WordPress kit. All page fields are required for page Markdown. Copying the body needs only the article; a reading page needs the title and article.

        A listing summary, up to 300 characters.

        0 / 160 characters

        Lowercase letters, digits, and separating hyphens.

        2. Preview and continue

        Show reading preview
        Preview formats and limits

        Headings, nested lists, nested single-line bold and italic text, code, quotes, and simple pipe tables. Lists preserve starting numbers and support six levels and 200 single-line items per continuous group. Tables support up to 12 columns and 100 data rows; every row must have the same column count. Inline links with an absolute http:// or https:// address open a new tab when selected; no address is loaded until then. Safe link labels can contain emphasis and code. Images, source HTML, and other link formats stay as text. Inline nesting is limited to 16 levels; multiline or overly complex inline structures stay literal. Your website can render differently.

        Add an article to locate its passages in the editor.

        Paste an article or try the fictional sample to see its reading preview.

        3. Choose your export

        Reuse a publishing setup

        Keep your destination, title-handling choices, and personal review routine for the next article. Download a profile file, then load it on your next visit. No account or autosave. Applying it changes export choices and clears approval; your article and source notes stay in place.

        Reusable publishing profile

        The file uses the current destination and title options below. For page Markdown, it also keeps the title-heading choice in More export options.

        One reminder per line, up to eight of 160 characters each. Editing reminders clears their ticks and export approval. These reminders do not block exporting.

        This unencrypted JSON file includes only the profile name, export choices, and reminder text. It excludes article fields, source notes, private review questions, completed ticks, and approval. Keep reminder text free of private details if sharing. A workspace backup does not save this setup.

        A Draft to Page profile JSON file, up to 16 KiB. Read locally. Nothing applies until you choose Apply profile.

        Publishing profiles are loading. Writing and exports remain available.

        Continue in WordPress

          Image preparation is loading. Images stay as text until explicitly selected.

          Images for WordPress

          Supports a simple ![Alternative text](https://example.com/photo.jpg) alone in its own paragraph. The option affects WordPress copies, block downloads, and the WordPress kit only. It resets when the body changes, you leave WordPress, import or restore writing, or apply or clear a publishing profile. It is excluded from backups and profile files.

          No image is loaded here. These are links to files, not Media Library uploads. WordPress and browsers can request their URLs when you open the exported blocks. Use public HTTPS image files you have permission to publish. Inspect every image in WordPress; use Upload to Media Library if you want a copy stored on your site. Review alternative text, including intentionally decorative images.

          The reading preview, reading page, HTML source, formatted copies, and Word keep image syntax as text. Original Markdown keeps its references. Inline images among prose, images inside lists, headings, quotes or tables, reference images, titles, source HTML, and unsafe URLs are outside linked-image conversion. The references below are text only; availability, file type, content, and permissions are not verified.

          To add an image or replace an omitted Word image, use Add or edit an article image below the article. Edit buttons here open the same guided editor for supported paragraph positions.

            The text file contains all recognized image URLs and alternative text from this article. Inspect it before sharing. Source notes and private review notes are excluded. Image handoff help (new tab)

            Before you copy: inspect the handoff

            These local checks cover some formatting limits and unfinished writing patterns. They do not verify facts, grammar, permissions, or URLs. Use each finding to select its current article passage. Nothing changes automatically.

              How to paste these blocks in WordPress
              1. Create a new, empty draft post in WordPress. Enter your article title in its title field.
              2. Open the editor Options menu, select Code editor, and paste the copied blocks into the post body. This is for the block editor, not a Custom HTML block or the Classic Editor.
              3. Return to Visual editor. Inspect headings, lists, tables, quotes, and links. Inspect linked images, rebuild unsupported content, and add page fields before previewing the post.

              The body becomes editable blocks. The title, excerpt, description, source notes, and review questions are excluded. Images stay as text unless you explicitly select supported linked images above. Complex Markdown stays as text; rebuild it in WordPress. Numbered lists preserve their starting value. Unsupported list groups stay intact as text. Nothing connects to your WordPress account. WordPress handoff help (new tab)

              Inspect or manually copy the approved blocks
              Post fields & complete WordPress kit

              Excerpt goes in the post Excerpt setting. Filename becomes the suggested Slug/permalink when available. Description goes in your SEO tool only if it offers that field. These fields are separate from the article body.

              Keep the handoff together

                A ZIP with blocks, original Markdown, a reading page, page details, current handoff findings, and WordPress instructions. Source notes and private review questions are excluded. This does not restore your workspace. Kit instructions (new tab)

                More export options

                Continue in an editor

                Formatted copying provides basic headings, lists, emphasis, code, and web links. Your title is included only when selected above. Body copying keeps Markdown without title or metadata. Paste and inspect the result in your own editor.

                Take a single file

                Body: Markdown without title or metadata. Reading page: a standalone HTML file with a title, ready to open in your browser.

                Markdown with page details

                Take a complete publishing kit

                A ZIP for a manual handoff, with article files, page fields, and next steps. Source and private review notes are excluded. This is separate from a private workspace backup.

                  Choose your next step (new tab). Extract and inspect the files before sharing. Downloading does not publish.

                  Article files exclude source notes and review questions. Check the saved file and preview your destination before publishing. Choose the right export (new tab)

                  How to convert Markdown to WordPress

                  This tool is for writers who already have an article in plain text or simple Markdown and want editable blocks in the WordPress block editor. It prepares a manual handoff using your own writing. You keep control of the final post.

                  1. Paste the body. Add up to 60,000 characters in the article field. Keep the title in the separate title field. For a Markdown file or simple front matter, open the import tool and inspect its preview before applying it.
                  2. Read and inspect. The preview shows the supported formatting. WordPress handoff findings point to some unsupported formats and unfinished writing patterns. Select a finding to inspect its current source. Check your facts and permissions yourself.
                  3. Review, then copy. Check the review box and select Copy WordPress blocks. The title and page fields stay separate. A body-only copy does not require an excerpt, description, filename, or title.
                  4. Paste in WordPress. Open a new, empty draft post in your WordPress block editor. Enter the title in its title field. Open the editor Options menu, select Code editor, and paste the block source into the post body.
                  5. Finish the actual post. Return to Visual editor. Inspect the blocks and links, rebuild unsupported content, inspect linked images and add optional post fields, and preview the result before publishing yourself.

                  Use the full post Code editor, rather than a Custom HTML block or the Classic Editor. WordPress themes, plugins, and editor versions can affect the result. Official WordPress editor help (new tab).

                  What Markdown converts?

                  The converter supports a limited subset. It does not implement every CommonMark or GitHub-flavored Markdown feature. Unsupported source is kept as text so you can inspect and rebuild it.

                  Markdown you bringWhat WordPress receives
                  ParagraphsEditable Paragraph blocks. Newlines within a paragraph become line breaks.
                  # through ###### headingsHeading blocks. Body H1 becomes H2; H2 through H6 keep their levels. Enter the post title separately.
                  Bullets, numbered lists, and nested subpointsList blocks with editable list items. Use -, *, +, or number markers ending in . or ). Numbered lists preserve their first value. Use consecutive numbers or repeated 1 markers. Nest single-line items using two or four additional spaces at each level, up to six levels and 200 items in a continuous list group. Blank lines start a separate group. Irregular indentation, inconsistent numbering, empty items, and multiline item blocks stay intact as text with a handoff finding. Task checkboxes stay literal text.
                  Bold, italic, combined emphasis, and inline codeNested single-line emphasis, including **bold *and italic***, ***both***, and __bold__. Safe link labels can contain emphasis or code, and links can appear inside emphasis. Matching backtick runs keep code literal. Multiline, deeply nested, or overly complex inline structures can stay literal; inspect the preview.
                  > quotes and fenced codeQuote and Code blocks. Syntax-language highlighting and nested quote formatting are not applied.
                  [label](https://example.com/)Links with a non-empty label and a safe absolute http:// or https:// address. Link availability is not verified.
                  Pipe tablesEditable Table blocks with column headers, alignment, escaped pipes, and supported inline formatting. Up to 12 columns and 100 data rows; every row must have the same column count. Use at least three dashes in each delimiter cell and a pipe on every row. Mismatched or oversized tables stay intact as text and receive a handoff finding. Merged cells, multiline cells, and nested tables are outside this subset.
                  Standalone HTTPS imagesOpen Images for WordPress and explicitly include supported linked images. A complete ![Alternative text](https://example.com/photo.jpg) alone in a paragraph becomes an Image block. No image loads here. WordPress or a browser can request that URL when the blocks are opened. This does not upload a file to your Media Library. Other exports and the local reading preview keep image syntax as text.
                  Other images, embeds, footnotes, source HTML, and other syntaxLiteral text to inspect and rebuild in WordPress. Images and external resources are not fetched by this tool.

                  A small conversion example

                  This fictional excerpt comes from the working sample. Its block source below is generated by the same converter used in the editor.

                  Markdown input

                  This is a **fictional sample article**. Replace it with your own writing before publishing.
                  
                  ## Keep the useful details
                  
                  A project log can be short. Record the decision, what prompted it, and what you need to check next.
                  
                  4. Inspect the article
                    - Compare facts
                      + Keep uncertainty
                    - Check links
                  5. Prepare the handoff
                    7) Paste the blocks
                    8) Preview the post
                  
                  | Step | Keep |
                  | :--- | :--- |
                  | Observation | What happened |
                  | Interpretation | What you think it means |
                  | Next check | What remains uncertain |

                  WordPress block output

                  <!-- wp:paragraph -->
                  <p>This is a <strong>fictional sample article</strong>. Replace it with your own writing before publishing.</p>
                  <!-- /wp:paragraph -->
                  
                  <!-- wp:heading -->
                  <h2 class="wp-block-heading">Keep the useful details</h2>
                  <!-- /wp:heading -->
                  
                  <!-- wp:paragraph -->
                  <p>A project log can be short. Record the decision, what prompted it, and what you need to check next.</p>
                  <!-- /wp:paragraph -->
                  
                  <!-- wp:list {"ordered":true,"start":4} -->
                  <ol class="wp-block-list" start="4"><!-- wp:list-item -->
                  <li>Inspect the article<!-- wp:list -->
                  <ul class="wp-block-list"><!-- wp:list-item -->
                  <li>Compare facts<!-- wp:list -->
                  <ul class="wp-block-list"><!-- wp:list-item -->
                  <li>Keep uncertainty</li>
                  <!-- /wp:list-item --></ul>
                  <!-- /wp:list --></li>
                  <!-- /wp:list-item -->
                  <!-- wp:list-item -->
                  <li>Check links</li>
                  <!-- /wp:list-item --></ul>
                  <!-- /wp:list --></li>
                  <!-- /wp:list-item -->
                  <!-- wp:list-item -->
                  <li>Prepare the handoff<!-- wp:list {"ordered":true,"start":7} -->
                  <ol class="wp-block-list" start="7"><!-- wp:list-item -->
                  <li>Paste the blocks</li>
                  <!-- /wp:list-item -->
                  <!-- wp:list-item -->
                  <li>Preview the post</li>
                  <!-- /wp:list-item --></ol>
                  <!-- /wp:list --></li>
                  <!-- /wp:list-item --></ol>
                  <!-- /wp:list -->
                  
                  <!-- wp:table {"hasFixedLayout":true} -->
                  <figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th scope="col" class="has-text-align-left" data-align="left">Step</th><th scope="col" class="has-text-align-left" data-align="left">Keep</th></tr></thead><tbody><tr><td class="has-text-align-left" data-align="left">Observation</td><td class="has-text-align-left" data-align="left">What happened</td></tr><tr><td class="has-text-align-left" data-align="left">Interpretation</td><td class="has-text-align-left" data-align="left">What you think it means</td></tr><tr><td class="has-text-align-left" data-align="left">Next check</td><td class="has-text-align-left" data-align="left">What remains uncertain</td></tr></tbody></table></figure>
                  <!-- /wp:table -->
                  

                  Starting with a Word file? Use the Word to WordPress converter for a file-first starting point. Save current writing before changing tools.

                  Common questions

                  Can I bring formatted writing from Word or Google Docs?

                  Choose Import formatted writing near the top. Open a plain Word .docx up to 8 MiB, or paste a copied selection into the empty import box and preview it. Common headings, emphasis, safe links, nested lists, code, and header tables can become Markdown. Review the converted article and listed omissions before applying; fonts, layout, and images are not retained. You can also choose a UTF-8 HTML file up to 512 KiB. Normal pasting in the article body remains plain text. Formatted import guide (new tab).

                  Is this Markdown to WordPress tool free?

                  The public tool is free and requires no account. Converting, previewing, checking, copying, and creating files here make no AI request. The separate private AI pilot is not needed for this workflow.

                  Can I paste from ChatGPT, Claude, or another writing tool?

                  Yes, if the result is plain text or simple Markdown within the article limit. Pasting from a rich text document does not import its visual formatting. Inspect the preview and conversion findings, compare the writing with your source, and keep unsupported parts for manual work in WordPress. This converter does not verify generated claims.

                  Can I import a Markdown file?

                  Open Import a file, keep source notes, or use more editing tools, then choose Import an article. UTF-8 .md and .txt files up to 512 KiB can be previewed before replacement. Articles support up to 60,000 characters, including Unicode. Oversized article pastes are rejected in full with a message beside the editor. Supported single-line front matter maps into page fields; complex YAML is rejected without replacing your work. Import details (new tab).

                  What if the clipboard is unavailable?

                  Download WordPress blocks, open the HTML file in a text editor, and copy all source including block comments. Opening it in a browser shows a reading view. You can also open Inspect or manually copy the approved blocks and select the visible source yourself after review.

                  How do I keep the whole publishing handoff?

                  Open Post fields & complete WordPress kit. With a valid title and article, approval enables a six-file ZIP containing blocks, exact original Markdown, a reading page, page fields, current handoff findings, and WordPress instructions. Optional fields can remain empty. This package excludes private source and review notes and does not restore a workspace. Kit guide (new tab).

                  Where does my draft go?

                  Conversion runs in this open tab. Application code does not upload the draft or save it in persistent browser storage. Copies and downloads are explicit actions, and your device or other tools can handle them under their own settings. The tab has no autosave. Use a separate private workspace backup before leaving if you need your source and review notes later. Data use (new tab).

                  Does conversion publish the post or check its facts?

                  No. This prepares editable blocks and a manual handoff. You create, inspect, and publish the post in your own WordPress editor. The local findings cover limited writing patterns and conversion limits, not facts, grammar, permissions, or working URLs. A result with no findings still needs your review.

                  Draft to Page is in development. This is an independent tool, with no claimed WordPress partnership. About the project.