本文に Markdown を使う

最終更新日
2017.10.11

移行作業中のため一部のページが正しく表示されていない場合があります(o-ω-))

リソース本文を Markdown で書けるようにする手順。

自サイトで導入した際の備忘録です。

ライブラリのインストール

私は cebe/markdown というPHPのライブラリを使用しました。このライブラリのインストールには Composer を使用します。

Composer は npm の PHP 版みたいなもので依存パッケージの管理とオートロードをサポートしてくれます。Composer 自体の導入方法は「Composer の導入」などで検索してみてください。

markdown パースライブラリのインストール

MODX のインストールされているディレクトリでコマンドラインツールを立ち上げインストールする。

composer require cebe/markdown "~1.1.1"

MODX のルートディレクトリに composer.jsonvendor というフォルダが作成される。ローカルで作業した場合は FTP で vendor フォルダをサーバーへアップロードをする。

autoload.php の修正

以下は日本語版 MODX Evo のみの作業です。Evolution CMS はデフォルトで vendor/autoload.php を読み込むのでこの作業は必要ない。 MODX ルートディレクトリにある autoload.php というファイルを開き以下のコードを追加する。autoload.php は MODX の本体が読み込むファイルで最初にさせたい処理を追加する事ができる。もし無ければ作成する。

require_once 'vendor/autoload.php';

これで Composer でインストールしたパッケージを自分で require しなくても使えるようになります。

カスタムモディファイアを作る

一番簡単に使うにはカスタムモディファイアを作るのがオススメ。

phx:markdown という名前でスニペットを作成。

$parser = new \cebe\markdown\Markdown();
return $parser->parse($value);
[*content:markdown*]

こんな感じにモディファイアを付けると Markdown 形式でパースするようになります。

本文のフォーマットを振り分ける

リソースによって Markdown か通常の HTML か振り分けたい場合はテンプレート変数を作る。

「本文のフォーマット」でテンプレート変数を作り、今後他にもフォーマットが増えても良いように「DropDown List Menu」で作成する。

選択肢オプションを設定します。

HTML==html||Markdown==markdown

分岐の例

<!--@IF:[*本文のフォーマット:is(`markdown`)*]>
  [*content:markdown*]
<@ELSE>
  [*content*]
<@ENDIF-->

技術的な記事やブログメインのサイトだと Markdown で書けると楽ですね!