reprogl

Форк
0
/
markdown.go 
35 строк · 675.0 Байт
1
package handlers
2

3
import (
4
	"errors"
5
	"io/fs"
6
	"net/http"
7

8
	"github.com/go-chi/chi/v5"
9
	"xelbot.com/reprogl/container"
10
	"xelbot.com/reprogl/views"
11
)
12

13
func MarkdownAction(app *container.Application) http.HandlerFunc {
14
	return func(w http.ResponseWriter, r *http.Request) {
15
		content, err := views.MarkdownToHTML(chi.URLParam(r, "filename"))
16
		if err != nil {
17
			if errors.Is(err, fs.ErrNotExist) {
18
				app.NotFound(w)
19
			} else {
20
				app.ServerError(w, err)
21
			}
22

23
			return
24
		}
25

26
		cacheControl(w, container.StaticFileTTL)
27
		w.Header().Set("Content-Type", "text/html; charset=utf-8")
28
		_, err = w.Write(content)
29
		if err != nil {
30
			app.ServerError(w, err)
31

32
			return
33
		}
34
	}
35
}
36

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.