summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--main.go6
-rw-r--r--result.html87
-rw-r--r--template.html (renamed from form.html)79
3 files changed, 53 insertions, 119 deletions
diff --git a/main.go b/main.go
index 24ce456..597726b 100644
--- a/main.go
+++ b/main.go
@@ -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>