go のコードの一部です。
type Ping struct {
Status int
Result string
}
func Sample(w http.ResponseWriter, r *http.Request) {
lexer := lexers.Get("ruby")
style := styles.Get("monokai")
if style == nil {
style = styles.Fallback
}
formatter := html.New(html.WithClasses())
iterator, err := lexer.Tokenise(nil, "def hoge; x=3; 6; end")
buf := new(bytes.Buffer)
err = formatter.Format(buf, style, iterator)
if err != nil {
fmt.Println(err)
}
sourceCode := buf.String()
ping := Ping{http.StatusOK, sourceCode}
res, _ := json.Marshal(ping)
w.Header().Set("Content-Type", "application/json")
w.Write(res)
}
これで、以下のような json を得る。