Marklane – Publish Markdown without the post editor.

Description

Turn a Markdown draft into a ready-to-publish WordPress post without opening the post editor.

Select a Markdown file and set the title, categories, tags, publish status, date, and featured image in one workflow. Then publish or update the post without opening the WordPress post editor. Marklane keeps your writing in Markdown and handles the WordPress publishing details for you.

Use Dry Run to check the planned changes before saving. Re-import the same source to update an existing post by slug instead of creating a duplicate.

Use YAML frontmatter when you want control over the post. Marklane can apply the title, slug, post type, status, date, categories, tags, featured image, and Polylang language links in one import. When frontmatter is omitted, it derives the title from the first H1 or filename and the slug from the filename.

Re-import the same Markdown source as your draft evolves. Marklane matches an existing post by slug instead of creating duplicates, so your local writing workflow and your WordPress publishing workflow can work together.

For the complete workflow and examples, see the Marklane guide.

Publish faster:

  • One-workflow post setup: set the title, slug, status, date, categories, tags, featured image, and language links from Markdown frontmatter
  • Dry Run preview: review the planned create/update action, taxonomy assignment, image resolution, warnings, and errors before saving
  • Publish or update without the post editor: create a new post or update an existing post by slug
  • Media Library image resolution: resolve relative Markdown image paths and featuredImage against existing attachments
  • Polylang support: connect translated posts from lang and translations frontmatter
  • Markdown-first publishing: import prepared Markdown files from the WordPress admin

Optional enhancements:

  • Mermaid rendering: turn ```mermaid code blocks into front-end diagrams when enabled
  • Extended Markdown: render common callout syntax such as GitHub alerts and Zenn messages when enabled
  • Math rendering: render $$...$$ display formulas when enabled
  • Light front-end loading: Mermaid and math assets load only on pages that contain matching content
  • CommonMark + GFM conversion: parse Markdown with league/commonmark

Marklane is a good fit when:

  • articles are written locally in Markdown
  • WordPress is used as the publishing destination
  • editors want to keep the source file manageable inside WordPress
  • repeated imports and post updates are part of the workflow

Frontmatter quick reference:

Marklane reads YAML frontmatter at the top of the Markdown file. Common keys include:

  • title
  • slug
  • postType
  • excerpt
  • status
  • date
  • category
  • tags
  • featuredImage
  • lang
  • translations

    title falls back to the first H1 and then the filename. slug falls back to the filename. postType defaults to post, and status defaults to draft.

For more frontmatter keys and examples, see the frontmatter guide.

Known limitations:

  • Does not create custom post types or taxonomy definitions
  • Does not import ZIP archives
  • Does not import through REST API or WP-CLI
  • Does not download external image URLs automatically

Screenshots

Installation

  1. In the WordPress admin screen, go to Plugins > Add New.
  2. Search for Marklane.
  3. Click Install Now, then activate the plugin.
  4. Open Tools > Marklane.
  5. Upload a Markdown file or select one from the Media Library.
  6. Run a dry run to preview the result.
  7. Run the import to create or update the post.

If you prefer manual installation, upload the plugin folder to /wp-content/plugins/ and activate it from the Plugins screen.

FAQ

What can I set with frontmatter?

You can set values such as:

  • title
  • slug
  • postType
  • excerpt
  • status
  • date
  • category
  • tags
  • featuredImage
  • lang
  • translations

    postType defaults to post. Public registered post types are allowed by default, except attachments. Site-specific overrides can be applied with the marklane_whitelist filter.
    If title is omitted, Marklane uses the first H1 and then the filename. If slug is omitted, Marklane derives it from the filename.

Can it update an existing post?

Yes.

The plugin matches an existing post by slug + post_type, or by slug + post_type + lang when Polylang is in use.

What does Dry Run show?

Dry Run shows the planned action before saving anything, including:

  • whether the import will create a new post or update an existing one
  • which existing post was matched
  • taxonomy assignment results
  • relative image and featuredImage resolution
  • warnings and errors raised during the import

How are images resolved?

Relative image paths are resolved against Media Library images in the same directory as the selected Markdown attachment.
When Markdown and supporting images are uploaded together, the supporting images are stored as flat Media Library files, so nested folder paths are not preserved.

The featuredImage frontmatter field follows the same rule and sets the post thumbnail when the target image is already registered in the Media Library. If FIFU is active, featuredImage can also point to an external URL.

For more predictable results, use fully unique filenames and, if possible, disable WordPress’s year/month based upload folders before uploading the Markdown file and related images.

Can I enable Japanese strong-emphasis compatibility behavior?

Yes. Marklane keeps league/commonmark as the Markdown converter and uses strict CommonMark behavior by default. If your Japanese writing workflow needs text such as **「text」**続き to render as strong text, enable the CJK compatibility pass:

add_filter('marklane_enable_markdown_compatibility_preprocessing', '__return_true');

Advanced sites can replace the matching pattern with the marklane_markdown_compatibility_strong_boundary_pattern filter. For example, use a custom pattern for Japanese quoted text followed by a letter or number.

Can it render Mermaid diagrams?

Yes, optionally.

Enable Mermaid rendering from Tools > Marklane, and Marklane will load the diagram renderer only on front-end pages that contain language-mermaid code blocks. The post content is still stored as a normal fenced code block, so disabling the option simply returns the front end to plain code blocks. Advanced sites can replace the script URL with the marklane_mermaid_script_src filter.

Can it render GitHub alerts or Zenn-style callouts?

Yes, optionally.

Enable Extended Markdown from Tools > Marklane, and Marklane will render common callout syntax such as GitHub / Obsidian / GitLab blockquote alerts. Zenn / Docusaurus / Quarto ::: callouts are normalized during import, then enhanced on the front end. :::details is rendered as a native collapsible details element without JavaScript. External embed syntax such as tweets, cards, or videos is not expanded. Advanced sites can limit enabled normalization profiles with the marklane_extended_markdown_profiles filter.

Can it render math formulas?

Yes, optionally. Enable Math rendering from Tools > Marklane, and Marklane will render display formulas written as $$...$$ only on front-end pages that contain math blocks. Inline math is not expanded. Under the hood, Marklane converts formulas to browser-native MathML with a bundled local renderer.

Can my theme override these styles?

Yes. Extended Markdown callouts, Mermaid rendering, and Math rendering use ordinary HTML and CSS classes, so themes can override them with their own CSS. Marklane outputs classes such as marklane-callout, marklane-rendered-block, marklane-mermaid, marklane-math, and marklane-math-display. Each callout type exposes one color variable, such as --marklane-callout-color-note or --marklane-callout-color-warning; Marklane derives its background and border colors with color-mix().

Does it work with Polylang?

Yes.

When Polylang is active, you can use lang and translations in frontmatter to connect translated posts.

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Marklane – Publish Markdown without the post editor.” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.6.4

  • Improve existing-post matching and restoration during re-imports.
  • Strengthen validation when resolving supplementary images and media.

1.6.3

  • Improve script loading reliability.
  • Improve Mermaid and math rendering reliability.
  • Strengthen permission checks during imports.
  • Strengthen relative media path validation.

1.6.2

  • Load Extended Markdown assets only on pages that contain callouts.
  • Fix callout detection so markers outside blockquotes do not trigger unnecessary assets.

For the complete release history, see the Marklane changelog.