diff options
| author | Anhgelus Morhtuuzh <william@herges.fr> | 2025-10-02 19:33:20 +0200 |
|---|---|---|
| committer | Anhgelus Morhtuuzh <william@herges.fr> | 2025-10-02 19:33:20 +0200 |
| commit | c000d9482e183f74b6237ecaeb7f06c0862413de (patch) | |
| tree | 96d36e872f7e3826692f8b11d6152834bf90ba57 /backend | |
| parent | 0ec5a0769f3c2dc851948a1011fa9062ff5c657b (diff) | |
feat(backend): handle log
Diffstat (limited to 'backend')
| -rw-r--r-- | backend/data.go | 13 | ||||
| -rw-r--r-- | backend/home.go | 2 | ||||
| -rw-r--r-- | backend/logs.go | 45 | ||||
| -rw-r--r-- | backend/templates/log.html | 67 |
4 files changed, 124 insertions, 3 deletions
diff --git a/backend/data.go b/backend/data.go index 8b65531..cd1ea9e 100644 --- a/backend/data.go +++ b/backend/data.go @@ -12,6 +12,10 @@ var ( regexIsHttp = regexp.MustCompile(`^https?://`) ) +type dataUsable interface { + SetData(*data) +} + type data struct { title string Article bool @@ -24,7 +28,7 @@ type data struct { Logo *Logo } -func (d *data) handleGeneric(w http.ResponseWriter, r *http.Request, name string) { +func (d *data) handleGeneric(w http.ResponseWriter, r *http.Request, name string, custom dataUsable) { cfg := r.Context().Value("config").(*Config) if d.Domain == "" { d.Domain = cfg.Domain @@ -64,7 +68,12 @@ func (d *data) handleGeneric(w http.ResponseWriter, r *http.Request, name string if err != nil { panic(err) } - err = t.ExecuteTemplate(w, "base.html", d) + if custom == nil { + err = t.ExecuteTemplate(w, "base.html", d) + } else { + custom.SetData(d) + err = t.ExecuteTemplate(w, "base.html", custom) + } if err != nil { panic(err) } diff --git a/backend/home.go b/backend/home.go index b70eebf..41f2fe5 100644 --- a/backend/home.go +++ b/backend/home.go @@ -8,6 +8,6 @@ import ( func HandleHome(r *chi.Mux) { r.Get("/", func(w http.ResponseWriter, r *http.Request) { - new(data).handleGeneric(w, r, "home") + new(data).handleGeneric(w, r, "home", nil) }) } diff --git a/backend/logs.go b/backend/logs.go new file mode 100644 index 0000000..f3a2e5c --- /dev/null +++ b/backend/logs.go @@ -0,0 +1,45 @@ +package backend + +import ( + "net/http" + + "github.com/go-chi/chi/v5" +) + +type logData struct { + *data + LogTitle string + Description string + Img image +} + +func (d *logData) SetData(dt *data) { + d.data = dt +} + +type image struct { + Src string + Alt string + Legend string +} + +func HandleLogs(r *chi.Mux) { + r.Route("/logs", func(r chi.Router) { + r.Get("/", handleLogList) + r.Get("/{slug:[a-zA-Z0-9-]+}", handleLog) + }) +} + +func handleLogList(w http.ResponseWriter, r *http.Request) { + +} + +func handleLog(w http.ResponseWriter, r *http.Request) { + slug := chi.URLParam(r, "slug") + d := new(logData) + d.data = new(data) + d.Article = true + d.LogTitle = slug + d.title = slug + d.handleGeneric(w, r, "log", d) +} diff --git a/backend/templates/log.html b/backend/templates/log.html new file mode 100644 index 0000000..1768842 --- /dev/null +++ b/backend/templates/log.html @@ -0,0 +1,67 @@ +{{define "body"}} +<article> + <h1>{{ .LogTitle }}</h1> + <p> + {{ .Description }} + </p> + <figure> + <img src="{{ .Img.Src }}" alt="{{ .Img.Alt }}" class="large"> + <figcaption>{{ .Img.Legend }}</figcaption> + </figure> + <h2>A. Section</h2> + <p> + Lorem ipsum dolor sit amet, <code>consectetur adipiscing elit</code>, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri <em>tamen</em> permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. <a href="">Quod idem licet transferre</a>. + </p> + <figure> + <img src="https://placehold.co/600x400" alt="placeholder"> + <figcaption>A placeholder image.</figcaption> + </figure> + <h3>1. Subsection</h3> + <p> + Et ultimum bonorum, quod omnium philosophorum sententia tale debet esse, <a href="">ut ad Orestem pervenias profectus a Theseo</a>. At vero Epicurus una in domo, et ea quidem angusta, quam magnos quantaque amoris conspiratione consentientis tenuit amicorum greges! Quod fit etiam nunc ab Epicureis. Sed ad rem redeamus; de hominibus dici non modo. + </p> + <p> + Civitatis, P. Scaevolam M'.que Manilium, ab iisque vitiis, quae paulo ante collegi, abest plurimum et, cum stultorum vitam cum sua comparat, magna afficitur voluptate. Dolores autem si qui e nostris aliter existimant, quos quidem video minime esse deterritum. Quae cum dixisset, Explicavi, inquit, sententiam meam, et eo quidem consilio, tuum iudicium ut. + </p> + <h3>2. Subsection</h3> + <p> + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, <em>fieri tamen</em> permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. Quod idem licet transferre in voluptatem, ut postea variari voluptas distinguique possit, augeri amplificarique non possit. + </p> + <p> + <a href="">Verborum vis et natura orationis</a> et <a href="">consequentium repugnantiumve ratio potest perspici</a>. Omnium autem rerum natura perspecta erit, nullo modo sine amicitia firmam et perpetuam iucunditatem vitae tenere possumus neque vero ipsam amicitiam tueri, nisi aeque. + </p> + <div class="quote"> + <blockquote cite=""> + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus. + </blockquote> + <p>John Doe, <cite>Foo Bar</cite></p> + </div> + <p> + Laborum perfunctio neque <b>perpessio dolorum</b> per se esse expetendam et dolorem ipsum per se esse fugiendum. Itaque aiunt hanc quasi naturalem atque insitam in animis inclusae inter se reprehensiones non sunt vituperandae, maledicta, contumeliae, tum iracundiae, contentiones concertationesque in disputando pertinaces indignae philosophia mihi. + </p> + <h2>B. Section</h2> + <p> + Ignorant. Animi autem voluptates et dolores nasci fatemur e corporis voluptatibus et doloribus -- itaque concedo, quod modo dicebas, cadere causa, si qui incurrunt, numquam vim tantam habent, ut non dicas, quid non probes. Principio, inquam, in physicis, quibus maxime gloriatur, primum totus est alienus. <a href="">Democritea dicit perpauca mutans</a>, sed ita, ut ea, quae dicta sunt ab iis quos probamus, eisque nostrum iudicium et. + </p> + <ul> + <li>Item A</li> + <li>Item B</li> + <li>Item C</li> + </ul> + <pre><code>package main + +import "fmt" + +func main() { + fmt.Printf("Hey %s!", "you") +}</code></pre> + <p> + Lorem ipsum dolor sit amet, consectetur <em>adipiscing</em> elit, sed do eiusmod tempor incididunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim aeque doleamus animo, cum corpore dolemus, fieri tamen permagna accessio potest, si aliquod aeternum et infinitum impendere malum nobis opinemur. <b>Quod idem licet transferre in voluptatem</b>, ut postea variari voluptas distinguique possit, augeri amplificarique non possit. At etiam Athenis. + </p> + <ol> + <li>Item 1</li> + <li>Item 2</li> + <li>Item 3</li> + </ol> +</article> +{{end}}
\ No newline at end of file |
