diff options
| author | Marin Ivanov <[email protected]> | 2026-01-17 03:07:06 +0200 |
|---|---|---|
| committer | Marin Ivanov <[email protected]> | 2026-01-17 03:07:06 +0200 |
| commit | 044ad65b3e9b6169741e237d4ad04406b4875c13 (patch) | |
| tree | a54738000bb3030f3d8792490569ca88f0f69c11 | |
| parent | dcec8b701f13bd7510423985aa2e570e4b425390 (diff) | |
combine result and form into single template
| -rw-r--r-- | main.go | 6 | ||||
| -rw-r--r-- | result.html | 87 | ||||
| -rw-r--r-- | template.html (renamed from form.html) | 79 |
3 files changed, 53 insertions, 119 deletions
@@ -36,7 +36,7 @@ type Metadata struct { ContentType string `json:"contentType"` } -//go:embed form.html result.html +//go:embed template.html var static embed.FS var tmpl = template.Must(template.ParseFS(static, "*.html")) @@ -218,7 +218,7 @@ func (s *Server) post(w http.ResponseWriter, r *http.Request) { "TextLink": textLink, "FileLink": fileLink, } - if err := tmpl.ExecuteTemplate(w, "result.html", tmplData); err != nil { + if err := tmpl.ExecuteTemplate(w, "template.html", tmplData); err != nil { w.WriteHeader(http.StatusInternalServerError) } } else { @@ -241,7 +241,7 @@ func (s *Server) get(w http.ResponseWriter, r *http.Request) { path := r.URL.Path if path == "/" { w.Header().Add("content-type", "text/html; charset=UTF-8") - if err := tmpl.ExecuteTemplate(w, "form.html", nil); err != nil { + if err := tmpl.ExecuteTemplate(w, "template.html", map[string]any{"Form": true}); err != nil { w.WriteHeader(http.StatusInternalServerError) } } else { diff --git a/result.html b/result.html deleted file mode 100644 index 91c94cf..0000000 --- a/result.html +++ /dev/null @@ -1,87 +0,0 @@ -<!DOCTYPE html> -<html lang="en"> -<head> - <meta charset="UTF-8" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>Gloginki</title> - - <style> - :root { - --bg: #f6f8fa; - --card-bg: #ffffff; - --border: #d0d7de; - --text: #24292f; - --muted: #57606a; - --primary: #2da44e; - --primary-hover: #2c974b; - --danger: #cf222e; - --radius: 6px; - } - - * { - box-sizing: border-box; - font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", - Helvetica, Arial, sans-serif; - } - - body { - margin: 0; - padding: 2rem; - background: var(--bg); - color: var(--text); - } - - h1 { - margin-bottom: 1rem; - font-size: 1.6rem; - } - - .container { - max-width: 900px; - margin: 0 auto; - } - form { - background: var(--card-bg); - border: 1px solid var(--border); - border-radius: var(--radius); - padding: 1.5rem; - margin-bottom: 2rem; - } - - fieldset { - border: 1px solid var(--border); - border-radius: var(--radius); - padding: 1rem; - margin-bottom: 1.2rem; - } - - legend { - padding: 0 0.5rem; - color: var(--muted); - font-size: 0.9rem; - } - </style> -</head> - -<body> - <div class="container"> - <h1>Bin-ки и глогинки.</h1> - - <form> - {{if .TextLink }} - <fieldset> - <legend>Text Link</legend> - <a href="{{ .TextLink }}">{{ .TextLink }}</a> - </fieldset> - {{end}} - - {{if .FileLink }} - <fieldset> - <legend>File Link</legend> - <a href="{{ .FileLink }}">{{ .FileLink }}</a> - </fieldset> - {{end}} - </form> - </div> -</body> -</html> diff --git a/form.html b/template.html index f305eed..c780b4b 100644 --- a/form.html +++ b/template.html @@ -47,7 +47,7 @@ font-weight: 500; } - form { + .card { background: var(--card-bg); border: 1px solid var(--border); border-radius: var(--radius); @@ -142,43 +142,63 @@ <div class="container"> <h1>Bin-ки и глогинки.</h1> - <div id="error"></div> - - <form enctype="multipart/form-data" action="/" method="post"> - <fieldset> - <legend>Text Posting</legend> - <textarea name="text" placeholder="Write something..."></textarea> - <label> - Mime-Type: - <input type="text" name="text_mimetype" value="text/plain" /> - </label> - </fieldset> - + <div class="card"> + <div id="error"></div> + + {{if .Form }} + <form enctype="multipart/form-data" action="/" method="post"> + <fieldset> + <legend>Text Posting</legend> + <textarea name="text" placeholder="Write something..."></textarea> + <label> + Mime-Type: + <input type="text" name="text_mimetype" value="text/plain" /> + </label> + </fieldset> + + <fieldset> + <legend>File Upload</legend> + <input type="file" name="file" /> + <div class="hint">You can also paste an image directly</div> + <label> + Mime-Type: + <input type="text" name="file_mimetype" value="auto" /> + </label> + </fieldset> + + <fieldset> + <legend>Submit</legend> + <div class="submit-row"> + <input type="submit" value="Post" /> + </div> + </fieldset> + </form> + + <div id="preview-container"> + <h2>Image Preview</h2> + <img id="preview" /> + <div class="hint" id="preview-hint">Paste an image to preview it</div> + </div> + {{end}} + + {{if .TextLink }} <fieldset> - <legend>File Upload</legend> - <input type="file" name="file" /> - <div class="hint">You can also paste an image directly</div> - <label> - Mime-Type: - <input type="text" name="file_mimetype" value="auto" /> - </label> + <legend>Text Link</legend> + <a href="{{ .TextLink }}">{{ .TextLink }}</a> </fieldset> + {{end}} + {{if .FileLink }} <fieldset> - <legend>Submit</legend> - <div class="submit-row"> - <input type="submit" value="Post" /> - </div> + <legend>File Link</legend> + <a href="{{ .FileLink }}">{{ .FileLink }}</a> </fieldset> - </form> + {{end}} - <div id="preview-container"> - <h2>Image Preview</h2> - <img id="preview" /> - <div class="hint" id="preview-hint">Paste an image to preview it</div> </div> </div> + {{if .Form }} <script> const pasteArea = document.body; const preview = document.getElementById("preview"); @@ -213,5 +233,6 @@ } }); </script> + {{ end }} </body> </html> |
