JP Markdown相当のものを正規表現で作ってみた

WordPressに記事を書く時、タグを書くのは面倒ですね。自分も面倒で、ついついタグを使わずに済ませてしまうこともよくあります。で、そんな面倒なHTMLタグを簡単に記述できるMarkdownという記法があります。
Markdown – Wikipedia.
でも標準化団体があるわけでもないので、実装する人によって揺らぎがあったりします。こっちの方が例は多いな。
文章作成やメモ書きにも便利、Markdown記法|Web Design KOJIKA17.

色々あって自分でWordPressプラグインを作ってみたので公開しておきます。
[tezuuuuuka/my-markdown](https://github.com/tezuuuuuka/my-markdown “my-markdown”)
でも、まだまだ未完成なので使用する場合は注意。

で、WordPressでは既にMarkdownを実装したプラグインは色々あって、Jetpackというプラグインが有名だと思います。
WordPress › Jetpack by WordPress.com « WordPress Plugins.
でもJetpackは詰め合わせプラグインなので、Markdownだけ欲しい人にはオーバースペックなんですよね。Markdownだけ取り出したJP Markdownというプラグインもあるけれど、これは今年の6月でサポート終了らしいです。
WordPress › JP Markdown « WordPress Plugins.
で、他のプラグインも色々考えたけど、結局、作った方が早いしメンテナンスも楽な気がして作ってみました。

Markdownについて統一された仕様はないので、とりあえずJetpackの仕様を確認。
Markdown quick reference — Support — WordPress.com.
けっこうあるね。とりあえず、全て正規表現で解決してみました。別途定義されてる系は一筋縄ではいかなかったな。仕方がないから`preg_match_all()`して、それぞれ`preg_replace()`に渡しました。

出来栄えはこんな感じ。仕様を確認したページの変換前のコードを頂きました。画像、勝手に使っていいのかな。ダメだったらごめんなさい。

*Emphasize* _emphasize_
**Strong** __Strong__

A [link](http://example.com “Title”).

Some text with [a link][1] and
another [link][2].

[1]: http://example.com/ “Title”
[2]: http://example.org/ “Title”

Logo: ![Alt](https://i2.wp.com/s.wordpress.org/about/images/logos/wordpress-logo-32.png “Title”)

Smaller logo: ![Alt][3]

[3]: https://i2.wp.com/s.wordpress.org/about/images/wpmini-grey.png “Title”

Linked logo: [![alt text](https://i2.wp.com/s.wordpress.org/about/images/wpmini-grey.png)](http://wordpress.com/ “Title”)

I have more [^1] to say up here.

[^1]: To say down here.

* Item
* Item
– Item
– Item

1. Item
2. Item

1. Item
2. Item
* Mixed
* Mixed
3. Item

> Quoted text.
> > Quoted quote.

> * Quoted
> * List

Begin each line with
two spaces or more to
make text look
e x a c t l y
like you type i
t.

`This is code`

~~~~
This is a
piece of code
in a block
~~~~

“`
This too
“`

“`css
#button {
border: none;
}
“`

# Header 1
## Header 2
### Header 3
#### Header 4 ####
##### Header 5 #####
###### Header 6 ######

WordPress
: A semantic personal publishing platform

Markdown
: Text-to-HTML conversion tool

Markdown converts text to HTML.

*[HTML]: HyperText Markup Language

以上。

ちなみにソースのハイライトはSyntaxHighlighter Evolvedを使っています。変換もそれを使う前提になっています。
WordPress › SyntaxHighlighter Evolved « WordPress Plugins.

という感じだけど、過去の記事が崩れちゃったものもあるかも。せめて pre タグ内は変換しない、みたいな処理を入れた方がいいかな。んー、また今度。

そういえば本当はテーブルを楽に書けるようにしたいんだった。そんなプラグインも色々あるっぽい。けど、また自分で作ろうかな。table タグ内だけを変換対象にしたい。