このジェムは、Puzrin とアレックス Kocharin による markdown-it Javascript packageポートになります。現在、markdown-it 13.0.1 と同期しています。
- Follows the CommonMark spec + に続く構文拡張機能 & シュガー (URL 自動、タイポグラファー) を追加します。
- 設定可能な構文!新しい規則を追加したり、既存のルールを置き換えたりすることもできます。
- デフォルトで 安全です。
コンテンツの表
コンポ-サー:
composer require kaoken/markdown-it-php
$md = new MarkdownIt();
$result = $md->render('# markdown-it rulezz!');
段落折り返しなしの単一行レンダリング:
$md = new MarkdownIt();
$result = $md->renderInline('__markdown-it__ rulezz!');
(*) プリセットは、アクティブなルールとオプションの組み合わせを定義します。"commonmark"
、"zero"
、または "default"
(スキップされた場合) を設定できます。
// コモンマークモード
$md = new MarkdownIt('commonmark');
// デフォルト モード
$md = new MarkdownIt();
// すべてを有効にする
$md = new MarkdownIt([
"html"=> true,
"linkify"=> true,
"typographer"=> true
]);
// 全オプションリスト (デフォルト)
$md = new MarkdownIt([
"html"=> false, // ソースで HTML タグを有効にする
"xhtmlOut"=> false, // 単一のタグを閉じるには、'/' を使用します。(<br/>)
// これは、CommonMarkの完全な互換性のためだけです。
"breaks"=> false, // 段落の '\n'を<br>に変換する
"langPrefix"=> 'language-', // フェンスで囲まれたブロックの CSS 言語プレフィックス。
// 外部ハイライトで便利です。
"linkify"=> false, // URLに似たテキストをリンクに自動変換する
// 言語に依存しないきれいな 置換 + 引用符 を有効にします。
// 置換の完全なリストについては、 https://github.com/markdown-it/markdown-it/blob/master/lib/rules_core/replacements.js を参照してください。
"typographer"=> false,
// タイポグラフィが有効になっているときにダブル+シングルクォートの置換ペア
// とスマート引用符で。 StringまたはArrayのいずれかになります。
//
// たとえば、ロシア語は '«»„“'、ドイツ語は '„“‚‘'、
// それと、フランス語の場合は ['«\xA0', '\xA0»', '‹\xA0', '\xA0›'] (nbspを含む)。
"quotes"=> '“”‘’',
// ソース文字列が変更されておらず、外部からエスケープする必要がある場合は
// ハイライト関数。 エスケープされたHTMLを返す必要がある
// $result が <pre... で始まる場合、内部ラッパーはスキップされます。
"highlight"=> function (/*str, lang*/) { return ''; }
]);
$md = new MarkdownIt()
->plugin(plugin1)
->plugin(plugin2, opts, ...)
->plugin(plugin3);
highlight
オプションを使用して、フェンスで囲まれたコードブロックに構文強調表示を適用します。:
ここのサンプルは、PHP言語のハイライトです。
// 実際のデフォルト値
$md = new MarkdownIt([
"highlight"=> function ($str, $lang) {
if ( $lang ) {
try {
return highlight_string($str);
} catch (Exception $e) {}
}
return ''; // 外部デフォルトエスケープの使用
}
]);
または、完全なラッパーのオーバーライド(<pre>
にクラスを割り当てる必要がある場合):
// 実際のデフォルト値
$md = new MarkdownIt([
"highlight"=> function ($str, $lang) {
if ( $lang ) {
try {
return '<pre class="hljs"><code>' .
highlight_string($str) .
'</code></pre>';
} catch (Exception $e) {}
}
return '<pre class="hljs"><code>' . $md->utils->escapeHtml($str) . '</code></pre>';
}
]);
linkify-itを使用する場合 linkify: true
。
linkify-itを設定するには、$md->linkify
を通してlinkifyインスタンスにアクセスします:
$md->linkify->set(['fuzzyEmail'=>false]); // トップレベルドメインとして.pyを無効にする
埋め込み(デフォルトで有効):
- Tables (GFM)
- Strikethrough (GFM)
以下のプラグインは kaoken\markdown-it-php\MarkdownIt\Plugins ディレクトリにあります:
- subscript
\MarkdownItSub
(非推奨) - superscript
\MarkdownItSup
- footnote
\MarkdownItFootnote
- definition list
\MarkdownItDeflist
- abbreviation
\MarkdownItAbbr
(非推奨) - emoji
\MarkdownItEmoji
- custom container
\MarkdownItContainer
- insert
\MarkdownItIns
- mark
\MarkdownItMark
デフォルトでは、すべてのルールが有効になっていますが、オプションによって制限することができます。 プラグインのロード時には、すべてのルールが自動的に有効になります。
// ルールを有効/無効にする
$md = (new MarkdownIt())
->disable([ 'link', 'image' ])
->enable([ 'link' ])
->enable('image');
// すべてを有効にする
$md = new MarkdownIt([
"html" => true,
"linkify" => true,
"typographer" => true,
]);
ソース内のすべてのルールを見つけることができます: ParserCore, ParserBlock, ParserInline.
Javascriptのオリジナル版を実装をしてくれた作者に感謝! markdown-it:
- Alex Kocharin github/rlidwka
- Vitaly Puzrin github/puzrin
それと、CommonMarkの仕様と実装リファレンスに関するJohn MacFarlaneの仕事を参考にしてください。
関連リンク:
- https://github.com/jgm/CommonMark - C & JS のリファレンス CommonMark 実装、 また、最新のスペック & オンラインデモが含まれています。
- http://talk.commonmark.org - CommonMarkフォーラムで、開発者が協力する良い場所です。