Google 先生が github.com/google/go-github/github なるものを提供してくれていたのでものすごく簡単にできましたメモ。


たたく API

https://developer.github.com/v3/markdown


たたいてみる

package main

import (
    "github.com/google/go-github/github"
    "io/ioutil"
)

func main() {
    md, err := ioutil.ReadFile("sample.md")
    if err != nil {
        panic(err)
    }

    client := github.NewClient(nil)

    html, _, err := client.Markdown(string(md), nil)
    if err != nil {
        panic(err)
    }

    ioutil.WriteFile("sample.html", []byte(html), 0644)
}

上記のコードを使って、例えば以下の Markdown を変換してみると…

# Header 1

## Header 2

* List
* List
* List

## Header 2

> Blockquote
> [Link](http://m0t0k1ch1st0ry.com)

期待通り、以下のような HTML が出力される。

<h1>
<a name="user-content-header-1" class="anchor" href="#header-1"><span class="octicon octicon-link"></span></a>Header 1</h1>

<h2>
<a name="user-content-header-2" class="anchor" href="#header-2"><span class="octicon octicon-link"></span></a>Header 2</h2>

<ul>
<li>List</li>
<li>List</li>
<li>List</li>
</ul><h2>
<a name="user-content-header-2-1" class="anchor" href="#header-2-1"><span class="octicon octicon-link"></span></a>Header 2</h2>

<blockquote>
<p>Blockquote
<a href="http://m0t0k1ch1st0ry.com">Link</a></p>
</blockquote>

めでたし!