以前の記事でnodejsでmarkdownを使う"marked"を紹介しました。
今回は少し突っ込んで、既存のwikiタグの挙動を変更する方法を紹介します。
実際のところ
見出しのタグについて、挙動をgithubっぽく変更する場合を想定します。
標準的headingメソッドに定義されますが、これに手を突っ込むわけです。
var marked = require('marked'); var renderer = new marked.Renderer(); renderer.heading = function (text, level) { var escapedText = text.toLowerCase().replace(/[^\w]+/g, '-'); return '<h' + level + '><a name="' + escapedText + '" class="anchor" href="#' + escapedText + '"><span class="header-link"></span></a>' + text + '</h' + level + '>'; }, console.log(marked('# heading+\n ## yeah\n it is simple', { renderer: renderer }));
結果はこんな感じ
<h1><a name="heading-" class="anchor" href="#heading-"><span class="header-link"></span></a>heading+</h1><h2><a name="yeah" class="anchor" href="#yeah"><span class="header-link"></span></a>yeah</h2><p> it is simple</p>
hrやimage、blockquoteなどなど既存のwikiタグには手を入れる事ができます。