2016/03/11
Blogger を Markdown で書けるようにしたけど、Blockquote が表示されない
marked.js を使用すれば Blogger でも Markdown で記事が書けそうなので、ちょっとやってみました。
ただ、そのままだと Blockquote が上手く処理できず、ちょっと工夫してやる必要があったので書いておきます1。
marked.js の導入
テンプレートの修正方法等は参考リンクがわかりやすいので、そちらを参考にしていただくとして、
以下を </body>
タグの直前に書くだけで、導入は完了です。
jQuery を使っていますが、使わなくても大丈夫なはず2。
1 2 3 4 5 6 7 8 | <!-- jQuery --> < script type = 'text/javascript' > $('.marked').each(function(i, val) { val.innerHTML = marked(val.innerHTML); }); </ script > |
あとは、marked
クラス内に Markdown で記述すれば、makred.js でレンダリングされます。
1 2 3 4 5 | < div class = "marked" > # タイトル - リスト - リスト </ div > |
レンダリング結果は以下
Blockquote が正しくレンダリングされない
しかし、以下のように Blockquote を記述しようとすると、期待しているのとは違う出力になってしまいます。
1 2 3 4 | < div class = "marked" > > 参考 > これは Blockquote です </ div > |
上記のレンダリング結果が以下。
>
がそのまま表示されています3。
修正する
これは Blogger が >
などのタグを特殊文字として変換してくれるおせっかい機能が原因です。
これを回避するため、先頭の>
を置換するコードを追加しました4。
1 2 3 4 | $( '.marked' ).each( function (i, val) { txt = val.innerHTML.replace(/(\n+)>|^>/g, '$1>' ); val.innerHTML = marked(txt); }); |
すると、こんな感じになります。
0 件のコメント:
コメントを投稿