本文に Markdown を使う

更新日
2017.07.28
作成日
2017.06.30

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

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

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

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

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

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

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

composer require cebe/markdown "~1.1.1"

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

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 で書けると楽ですね!