'use strict';
var marked = require('marked');

var codeRenderFunc = {
  note: require('./note'),
  column: function() {
    return '<div>columnだよ</div>';
  },
  imgbox: function() {
    return '<div>imgboxだよ</div>';
  },
  demo: function() {
    return '<div>demoだよ</div>';
  },
  jade: function() {
    return '<div>jadeだよ</div>';
  },
  orig: marked.Renderer.prototype.code
};

var codeRenderer = function(code, lang) {
  var cgLang = /^cg: ?(\w+)$/.exec(lang);
  var renderer = null;

  // cg:foo な独自ブロックではないcodeブロック
  if (cgLang === null) {
    renderer = codeRenderFunc['orig'];
  }
  // cg:foo な独自ブロックで、定義もされてるやつ
  else if (cgLang[1] in codeRenderFunc) {
    renderer = codeRenderFunc[cgLang[1]];
  }
  // cg:foo な独自ブロックだが、定義されてないやつ
  else {
    renderer = codeRenderFunc['orig'];
  }

  return renderer.apply(this, arguments);
};

module.exports = codeRenderer;

@@ -90,16 +90,47 @@
 note'),%0A
+  // TODO: %E4%BB%A5%E4%B8%8B%E3%82%92%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%81%AB%E5%88%86%E3%81%91%E3%81%A6%E3%80%81%E4%B8%AD%E8%BA%AB%E3%82%92%E5%AE%9F%E8%A3%85%E3%81%99%E3%82%8B%0A
   column

add TODO