12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- package main
- import (
- "fmt"
- "log"
- "net/http"
- "os"
- "os/exec"
- "text/template"
- "time"
- "gogs.carduccidante.edu.it/karmen/core/util/pandoc"
- tplutil "gogs.carduccidante.edu.it/karmen/core/util/template"
- )
- var funcmap = template.FuncMap{
- "date": func() string {
- now := time.Now()
- return now.Format("2006-02-01")
- },
- }
- func convertPDFToPNG(filename string) error {
- out, err := exec.Command("pandoc", pandoc_args...).CombinedOutput()
- if string(out) != "" {
- return fmt.Errorf("pandoc: %s", string(out))
- }
- if err != nil {
- return err
- }
- return nil
- }
- func serveScreen(res http.ResponseWriter, req *http.Request) {
- tpl, err := tplutil.LoadTextTemplate("screen.tpl.md", funcmap)
- if err != nil {
- panic(err)
- }
- f, err := os.Create("./data/screen.md")
- if err != nil {
- panic(err)
- }
- defer f.Close()
- log.Println("Generating markdown file from template.")
- if err := tpl.Execute(f, nil); err != nil {
- panic(err)
- }
- log.Println("Converting markdown to pdf.")
- err = pandoc.Convert("./data/screen.md", "./data/screen.pdf", "-V", "geometry:papersize={3.8in,6.4in}", "-V", "pagestyle:empty")
- if err != nil {
- panic(err)
- }
- log.Println("Serving screen.png...")
- http.ServeFile(res, req, "./data/screen.png")
- }
- func main() {
- http.HandleFunc("/", serveScreen)
- log.Println("Start alba backend...")
- http.ListenAndServe(":8080", nil)
- }
|