|
|
|
@ -6,6 +6,7 @@ import (
|
|
|
|
|
"fmt"
|
|
|
|
|
"html"
|
|
|
|
|
"html/template"
|
|
|
|
|
"io"
|
|
|
|
|
"log"
|
|
|
|
|
"net/http"
|
|
|
|
|
"net/url"
|
|
|
|
@ -441,6 +442,15 @@ func (h *indexHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|
|
|
|
}
|
|
|
|
|
}()
|
|
|
|
|
|
|
|
|
|
format := r.URL.Query().Get("format")
|
|
|
|
|
if format == "" {
|
|
|
|
|
format = "html"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if !(format == "html" || format == "markdown") {
|
|
|
|
|
http.Error(w, "unknown format", http.StatusBadRequest)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
page := r.URL.Path[1:]
|
|
|
|
|
if page == "" {
|
|
|
|
|
page = "Home"
|
|
|
|
@ -501,32 +511,37 @@ func (h *indexHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
|
|
|
|
|
pageText = builder.String()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
pageText = renderLinks(pageText)
|
|
|
|
|
if format == "html" {
|
|
|
|
|
pageText = renderLinks(pageText)
|
|
|
|
|
pageText = renderMarkdown2(pageText)
|
|
|
|
|
|
|
|
|
|
pageText = renderMarkdown2(pageText)
|
|
|
|
|
|
|
|
|
|
pageBase := getPageBase()
|
|
|
|
|
data := indexPage{
|
|
|
|
|
pageBaseInfo: pageBase,
|
|
|
|
|
Session: sess,
|
|
|
|
|
Title: cleanTitle(page),
|
|
|
|
|
Content: template.HTML(pageText),
|
|
|
|
|
Name: page,
|
|
|
|
|
Backrefs: mpPage.Refs,
|
|
|
|
|
}
|
|
|
|
|
pageBase := getPageBase()
|
|
|
|
|
data := indexPage{
|
|
|
|
|
pageBaseInfo: pageBase,
|
|
|
|
|
Session: sess,
|
|
|
|
|
Title: cleanTitle(page),
|
|
|
|
|
Content: template.HTML(pageText),
|
|
|
|
|
Name: page,
|
|
|
|
|
Backrefs: mpPage.Refs,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
t, err := template.ParseFiles("templates/layout.html", "templates/view.html")
|
|
|
|
|
if err != nil {
|
|
|
|
|
http.Error(w, err.Error(), 500)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
err = t.Execute(w, data)
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Println(err)
|
|
|
|
|
// http.Error(w, err.Error(), 500)
|
|
|
|
|
return
|
|
|
|
|
t, err := template.ParseFiles("templates/layout.html", "templates/view.html")
|
|
|
|
|
if err != nil {
|
|
|
|
|
http.Error(w, err.Error(), 500)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
err = t.Execute(w, data)
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Println(err)
|
|
|
|
|
// http.Error(w, err.Error(), 500)
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
} else if format == "markdown" {
|
|
|
|
|
_, err = io.WriteString(w, "# ")
|
|
|
|
|
_, err = io.WriteString(w, cleanTitle(page))
|
|
|
|
|
_, err = io.WriteString(w, "\n\n")
|
|
|
|
|
_, err = io.WriteString(w, pageText)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func renderLinks(pageText string) string {
|
|
|
|
|