GitHubではREADME.mdのレンダリングにはGitHub Flavored Markdownが使われている。その基本はRedcarpetみたいなんだけど、見出しリンクがなんか違う気がするなーと思った。特に半角記号の辺り。GitHubカンニング・ペーパーのToCを作ろうとした時に色々面倒だった。
Demo: GFMの見出しリンクで削除される文字列を検証
Gistでも同じだろうと思うので、Gistでテストした。ほとんどはUTF-8でURLエンコードされると思って良さそうだったので、半角記号の扱いを主に重点的にチェックしている。
-
に変換されるa-zA-Z-_
はそのままÀ
より前の半角記号は削除されるªµº
は残るA-Z
は小文字に変換されるという感じのようだ。日本語+英語となるとハイフンとアンダースコア以外の記号を削除してURLエンコード、最後に小文字化で良さそう。