package main import ( "database/sql" _ "modernc.org/sqlite" "text/template" ) var opml = ` Bahá'í Prayers {{range .}} {{end}} ` type Prayer struct{ Phelps string ID string Language string Author string Text string } func main() { var prayers []Prayer db := sql.Open("sqlite", "holywritings.db") rows := db.Query("select id, phelps, author, language, text from writings;") for rows.Next() { var prayer Prayer rows.Scan(&prayer.ID, &prayer.Phelps, &prayer.Author, &prayer.Language, &prayer.Text) switch prayer.Author { case "Báb": prayer.Author = "bab" case "`Abdu'l-Bahá": prayer.Author = "abdulbaha" case "Bahá'u'lláh": prayer.Author = "bahaullah" } prayer.Text = template.HTMLEscapeString(prayer.Text) prayers = append(prayers, prayer) } tmpl, err := template.New("opml").Parse(opml) if err != nil { panic(err) } err = tmpl.Execute(os.Stdout, prayers) if err != nil { panic(err) } }