WordPress Plugin

Marklane

MarkdownをWordPressへ公開・更新できるプラグインです。画像やMermaid図、数式、注意書きを本文から反映でき、公開状態や分類などもFront Matterにまとめられます。

Markdown原稿をWordPress投稿へ取り込むMarklaneのロゴ

主な機能

  • Markdownを投稿として取り込む

    `.md`ファイルをWordPress管理画面からアップロード、またはメディアライブラリから選択して、投稿として取り込めます。

  • Dry Runで保存前に確認

    作成か更新か、どの投稿に一致したか、画像や分類がどう扱われるかを保存前に確認できます。

  • 既存投稿を更新

    同じslugと投稿タイプの投稿がすでにある場合は、重複させずに更新できます。Polylang利用時は言語も含めて判定します。

  • 画像をメディアライブラリに紐づけ

    Markdownと同じ階層にある画像をメディアライブラリから探して紐づけます。`featuredImage`も同じ規則で扱い、FIFUが有効なら外部URLも使えます。

  • Polylangで多言語投稿を紐づけ

    Front Matterで`lang`や`translations`を指定すると、言語ごとの投稿と翻訳の関係を設定できます。

  • タクソノミーと投稿日時を指定

    カテゴリ・タグ、既存のカスタムタクソノミー、予約投稿や過去日付の投稿日時をFront Matterから指定できます。

  • 図・数式・注意書きを表示

    Mermaid図、`$$...$$` の数式、GitHub Alerts形式やZenn風メッセージ記法の注意書きを、Markdownから公開ページに反映できます。必要なスクリプトやスタイルは、対応する記法を含むページでだけ読み込みます。

  • Front Matterなしでも取り込む

    Front Matterがない場合でも、最初のH1をタイトルに使い、ファイル名からslugを補完して下書き投稿として取り込めます。

こんなときに

  • MarkdownをそのままWordPressへ公開したい

    Markdownから投稿を作成・更新できるので、WordPressエディターで見出しや画像、公開情報を整え直す作業を減らせます。

  • Markdownと画像を同じ流れで扱いたい

    本文中の相対パス画像やアイキャッチ画像を、既存のメディアライブラリ画像に紐づけられます。

  • 多言語記事もまとめて公開したい

    Polylangを利用している場合、Front Matterの`lang`と`translations`から翻訳関係を設定できます。

  • 図や数式を含む記事をMarkdownのまま公開したい

    Mermaid図、`$$...$$` の数式、`[!NOTE]` のような注意書きを、Markdownの記述から公開ページに反映できます。

管理画面

MarklaneのWordPress管理画面。Markdownと関連画像のアップロード、投稿ステータス、Dry Run、Importボタンが並んでいる
Markdownファイル、関連画像、Dry Run、投稿操作を行う管理画面です。

Markdownの拡張記法に対応

Mermaid、数式、注意書きなど、Markdownの記述が公開ページでどう表示されるかを例示しています。必要なスクリプトやスタイルは、対象の記法を含むページでだけ読み込みます。

Markdownの拡張記法に対応
記法Markdown公開ページ

Mermaid

Mermaid記法で書いた図を表示します。

Markdown

```mermaid
flowchart LR
  A[Markdownを書く] --> B[Marklaneで取り込む]
  B --> C[WordPressで公開]
```

公開ページ

GitHub形式の注意書き

GitHub形式の注意書きを表示します。

Markdown

> [!NOTE]
> 公開前にDry Runで内容を確認できます。

公開ページ

Note

公開前にDry Runで内容を確認できます。

Zenn風メッセージ

Zenn風メッセージを注意書きとして表示します。

Markdown

:::message alert
公開前にバックアップを確認してください。
:::

公開ページ

Warning

公開前にバックアップを確認してください。

数式

`$$...$$` で囲んだ数式を表示します。

Markdown

$$
E = mc^2
$$

公開ページ

E = m c 2

CSS変数で見た目を調整

Marklaneが出力するcallout、Mermaid、数式にはCSSクラスが付くため、テーマのCSSで余白や装飾を上書きできます。

calloutの色を調整

種類ごとに基準色を1つ指定すると、背景色と枠線色はその色から自動生成されます。変更したい種類だけ指定できます。

:root {
  --marklane-callout-color-note: #3858e9;
  --marklane-callout-color-tip: #007a1c;
  --marklane-callout-color-info: #006ba1;
  --marklane-callout-color-important: #8250df;
  --marklane-callout-color-warning: #996800;
  --marklane-callout-color-caution: #b32d2e;
  --marklane-callout-color-danger: #b32d2e;
}

CSSクラス一覧

色以外の見た目を調整するときに使えるクラスを、CSSのデフォルト値と用途とあわせてまとめています。

color-mix()に対応したブラウザでは、calloutの背景色と枠線色は各色変数から自動生成されます。表の背景色と枠線色は、非対応時に使われるフォールバック値です。

CSSクラスCSSのデフォルト値説明
.marklane-calloutmargin: 1.25em 0; padding: 0.85em 1em; border: 1px solid var(--marklane-callout-border-color); border-left: 5px solid var(--marklane-callout-color); border-radius: 4px; background: var(--marklane-callout-background);callout全体の通知ブロックに使用
.marklane-callout__titlemargin: 0 0 0.45em; font-weight: 700; color: var(--marklane-callout-color);calloutのタイトル表示に使用
.marklane-callout-note--marklane-callout-color: var(--marklane-callout-color-note, #3858e9);Noteタイプのcalloutを識別し、色を切り替えるために使用
.marklane-callout-tip--marklane-callout-color: var(--marklane-callout-color-tip, #007a1c); --marklane-callout-background: #edf8f0; --marklane-callout-border-color: #abd9b5;Tipタイプのcalloutを識別し、色を切り替えるために使用
.marklane-callout-info--marklane-callout-color: var(--marklane-callout-color-info, #006ba1); --marklane-callout-background: #edf8ff; --marklane-callout-border-color: #add9ed;Infoタイプのcalloutを識別し、色を切り替えるために使用
.marklane-callout-important--marklane-callout-color: var(--marklane-callout-color-important, #8250df); --marklane-callout-background: #f6f2ff; --marklane-callout-border-color: #d7c4f5;Importantタイプのcalloutを識別し、色を切り替えるために使用
.marklane-callout-warning--marklane-callout-color: var(--marklane-callout-color-warning, #996800); --marklane-callout-background: #fff8e5; --marklane-callout-border-color: #efd287;Warningタイプのcalloutを識別し、色を切り替えるために使用
.marklane-callout-caution--marklane-callout-color: var(--marklane-callout-color-caution, #b32d2e); --marklane-callout-background: #fcf0f1; --marklane-callout-border-color: #efb5b6;Cautionタイプのcalloutを識別し、色を切り替えるために使用
.marklane-callout-danger--marklane-callout-color: var(--marklane-callout-color-danger, #b32d2e); --marklane-callout-background: #fbeaea; --marklane-callout-border-color: #e5a6a7;Dangerタイプのcalloutを識別し、色を切り替えるために使用
.marklane-detailsmargin: 1.25em 0; overflow: hidden; border: 1px solid #dcdcde; border-radius: 4px; background: #fff;折りたたみブロック全体に使用
.marklane-details__summarypadding: 0.75em 1em; font-weight: 700; cursor: pointer; background: #f6f7f7;折りたたみブロックの見出しに使用
.marklane-details__contentpadding: 0.85em 1em; border-top: 1px solid #dcdcde;折りたたみブロックの本文領域に使用
.marklane-rendered-blockなし(共通クラス)Mermaidや数式など、変換後のブロックに共通して使用
.marklane-mermaidなし(Mermaidが描画)Mermaid図の描画領域に使用
.marklane-mathなし(数式が描画)インライン数式の描画に使用
.marklane-math-displaymargin: 1.25em 0; overflow-x: auto; overflow-y: hidden;ブロック数式の描画領域に使用

動作環境

  • WordPress

    5.6以上

  • PHP

    8.0以上

Front Matterで指定できること

Markdownの先頭にFront Matterを書くと、タイトル、スラッグ、分類、公開状態、多言語情報などをまとめて指定できます。WordPressのエディターを開かず、原稿と投稿設定を一緒に管理できます。

  • 自動補完される項目 (title, slug)

    `title`は最初のH1、なければファイル名から補完されます。`slug`も未指定時はファイル名から補完され、更新判定のキーになります。

  • 投稿の基本設定 (status, date, excerpt)

    公開状態(draft/publish)や投稿日時、抜粋を指定できます。`date`を指定することで、予約投稿や過去日付での公開も可能です。

  • 分類とアイキャッチ (category, tags, taxonomies)

    配列形式でのカテゴリ・タグ指定に加え、カスタムタクソノミーにも対応。アイキャッチには相対パスや URL を使えます。

  • 多言語運用の設定 (lang, translations)

    Polylang利用時に、その投稿の言語コードや、別言語版記事(slug)との紐づけを自動で行うための設定です。

YAML Front Matterのサンプル

---
title: "夜の庭の観察記録" # 投稿タイトル
slug: "moonlit-garden-notes" # スラッグ(更新判定のキー)
postType: "post" # 投稿タイプ(post/page/任意)
excerpt: "温室と庭の深夜記録。" # 投稿の抜粋
status: "publish" # 公開ステータス (publish/draft)
date: "2026-04-06T23:00:00+09:00" # 投稿日時 (ISO 8601等)
category: ["園芸", "日記"] # カテゴリ
tags: ["週末", "趣味"] # タグ
taxonomies:
  location: ["東京", "自宅"] # カスタムタクソノミー (タクソノミー名: [ターム])
featuredImage: "./hero.jpg" # アイキャッチ画像(相対パスまたはURL)
lang: "ja" # Polylang 言語コード
translations:
  en: "moonlit-garden-notes-en" # 多言語版記事の紐づけ (言語: スラッグ)
---

![温室の写真](./hero.jpg)

Front Matterを使うと、投稿設定をMarkdownの近くに置けます。省略した場合も、ファイル名と最初のH1から下書き投稿を作成できます。

インストール

  1. WordPress管理画面の`プラグイン > 新規追加`で`Marklane`を検索します。
  2. `Marklane`を有効化します。
  3. `ツール > Marklane`を開き、Markdownファイルをアップロード、またはメディアライブラリから選択します。
  4. 必要に応じてDry Runを実行し、問題なければ「保存」で投稿を生成・更新します。

手動インストールする場合は、プラグインフォルダを`/wp-content/plugins/`へアップロードし、WordPress管理画面の`プラグイン`から有効化します。

よくある質問

既存投稿はどの条件で更新されますか?

既存投稿は `slug + post_type` で照合します。Polylangを使っている場合は `lang` も含めて判定します。

Dry Runでは何を確認できますか?

新規作成か更新か、どの投稿に一致したか、タクソノミーや画像がどう扱われるか、警告やエラーが出ていないかを保存前に確認できます。

既存投稿を更新する際、以前の画像はどうなりますか?

本文内の画像パスは、メディアライブラリの既存画像に紐づけられます。以前にアップロードされた画像が重複して作成されることはありません。

画像の解決(リンク置換)がうまくいきません

本プラグインは、インポート対象のMarkdownと同じディレクトリにあるメディアライブラリ画像を探索します。同時アップロードした補助画像はフラットに保存されるため、`images/foo.jpg`のようなフォルダ構造は再現されません。

WordPress のメディア設定について注意点はありますか?

「アップロードしたファイルを年月ベースのフォルダーに整理する」設定をオフにすることを推奨しています。これにより相対パスの解決がより安定します。

Front MatterがないMarkdownでも取り込めますか?

はい。最初のH1をタイトルに使い、slugはファイル名から補完して、下書き投稿として取り込めます。

Mermaidの図は表示できますか?

はい。`ツール > Marklane` で設定を有効にすると、`language-mermaid` コードブロックを含む公開ページだけで図の表示用スクリプトを読み込みます。本文の保存形式は通常のコードブロックのままです。

数式や注意書きは表示できますか?

はい。`$$...$$` の数式ブロック、GitHub Alerts形式やZenn風メッセージ記法の注意書きを任意設定で表示できます。`:::details` はJavaScript不要の折りたたみ表示になります。数式の表示に必要なスクリプトやスタイルも、数式を含むページでだけ読み込みます。

カスタムフィールド(ACF等)には対応していますか?

現在のバージョンでは標準投稿項目とタクソノミーに特化しており、カスタムフィールドの保存には対応していません。

日本語の強調記法に合わせた互換モードはありますか?

あります。既定では厳密なCommonMark挙動ですが、日本語の文章で `**「text」**続き` のような強調を扱いたい場合は、互換前処理用のフィルターを有効にできます。

注意点

  • 画像やMarkdownファイルは、同じファイル名が重複しないように管理することを推奨します。
  • 相対パス画像を利用する場合、Markdownファイルと同じディレクトリに画像が配置されている必要があります。
  • 安定した動作のため、WordPress側のメディア設定(年月ベースのフォルダ整理)をオフにしての運用を推奨します。

更新履歴

  • 1.7.0

    • MarkdownアップロードのUTF-8/MIME検証を強化し、MIME拡張を管理画面の取り込みフローに限定
    • 再取り込み時の投稿・画像・Markdown attachment探索を件数制限とhash優先へ整理し、大量メディア環境の負荷を改善
    • source hashにimport fingerprintを組み合わせ、出力へ影響する設定変更時に必要な再取り込みを行うように改善
    • 保存途中の失敗時に、新規投稿と未使用の新規タームを可能な範囲でロールバックするように改善
  • 1.6.4

    • 既存投稿の再取り込み時の照合と復元処理を改善
    • 補助画像とメディア解決時の検証を強化
  • 1.6.3

    • スクリプト読み込みの安定性を改善
    • Mermaidと数式レンダリングの安定性を改善
    • インポート時の権限チェックを強化
    • 相対画像パスの検証を強化

すべての更新履歴を見る