GolangでBlackfridayを使ってMarkdownをHTMLに変換する

Rails大好きfunnythingzです。TypeScriptよりもRails書いてます。

Railsに慣れすぎてしまうと他のことができなくなってやばいと思い2015年はGolangに力を入れていこうと思っています。Go界隈の流れの早さについていけていません。

それはさておきGoでMarkdownをHTMLにしたいなと思いGitHubをいろいろ探していたらrussross/blackfridayというものを見つけました。名前が中二感ハンパなくてカッコイイです。sanitizerのmicrocosm-cc/bluemondayというものもあります。名前カッコイイわー。

とりあえず使い方は簡単なのでコード書いておきます。

markdown

hoge.md

# hoge

hogehoge

- hoge
- hoge

## hoge

Go

demo.go

package main

import (
    "fmt"
    "github.com/russross/blackfriday"
    "io/ioutil"
)

func check(e error) {
    if e != nil {
        panic(e)
    }
}

func main() {
    md, err := ioutil.ReadFile("hoge.md")
    check(err)
    output := blackfriday.MarkdownCommon([]byte(md))
    fmt.Println(string(output))
}

出力結果

% go run demo.go

で実行すると

<h1>hoge</h1>

<p>hogehoge</p>

<ul>
<li>hoge</li>
<li>hoge</li>
</ul>

<h2>hoge</h2>

となります。簡単!