From c21f8a87125dd55675c7a11f015855c590e3f26f Mon Sep 17 00:00:00 2001 From: Sasha Koshka Date: Thu, 27 Mar 2025 09:28:49 -0400 Subject: [PATCH] examples: Add example that demonstrates working with files --- examples/files/index.step | 27 +++++++++++++++++++++++++++ examples/files/letters/e | 0 examples/files/letters/i | 0 examples/files/letters/o | 0 examples/files/letters/p | 0 examples/files/letters/q | 0 examples/files/letters/r | 0 examples/files/letters/t | 0 examples/files/letters/u | 0 examples/files/letters/w | 0 examples/files/letters/y | 0 examples/files/make.step | 12 ++++++++++++ 12 files changed, 39 insertions(+) create mode 100644 examples/files/index.step create mode 100644 examples/files/letters/e create mode 100644 examples/files/letters/i create mode 100644 examples/files/letters/o create mode 100644 examples/files/letters/p create mode 100644 examples/files/letters/q create mode 100644 examples/files/letters/r create mode 100644 examples/files/letters/t create mode 100644 examples/files/letters/u create mode 100644 examples/files/letters/w create mode 100644 examples/files/letters/y create mode 100644 examples/files/make.step diff --git a/examples/files/index.step b/examples/files/index.step new file mode 100644 index 0000000..93500e5 --- /dev/null +++ b/examples/files/index.step @@ -0,0 +1,27 @@ + + + + + + {{$directory := "letters"}} +

Files sorted alphabetically:

+ +

Files sorted temporally:

+ +
+

Make a new file and watch the information above change:

+
+
+
+ +
+ + diff --git a/examples/files/letters/e b/examples/files/letters/e new file mode 100644 index 0000000..e69de29 diff --git a/examples/files/letters/i b/examples/files/letters/i new file mode 100644 index 0000000..e69de29 diff --git a/examples/files/letters/o b/examples/files/letters/o new file mode 100644 index 0000000..e69de29 diff --git a/examples/files/letters/p b/examples/files/letters/p new file mode 100644 index 0000000..e69de29 diff --git a/examples/files/letters/q b/examples/files/letters/q new file mode 100644 index 0000000..e69de29 diff --git a/examples/files/letters/r b/examples/files/letters/r new file mode 100644 index 0000000..e69de29 diff --git a/examples/files/letters/t b/examples/files/letters/t new file mode 100644 index 0000000..e69de29 diff --git a/examples/files/letters/u b/examples/files/letters/u new file mode 100644 index 0000000..e69de29 diff --git a/examples/files/letters/w b/examples/files/letters/w new file mode 100644 index 0000000..e69de29 diff --git a/examples/files/letters/y b/examples/files/letters/y new file mode 100644 index 0000000..e69de29 diff --git a/examples/files/make.step b/examples/files/make.step new file mode 100644 index 0000000..1bad58d --- /dev/null +++ b/examples/files/make.step @@ -0,0 +1,12 @@ +{{- if ne .Data.Req.Method "POST"}} + {{- error 405 "only POST is supported"}} +{{- end}} +{{- $form := parseForm .Data.Req}} +{{- $name := $form.Get "name" | trim}} +{{- $content := $form.Get "content"}} +{{- if strInRange 1 32 $name | not}}{{error 400 "invalid name length"}}{{end}} +{{/* this is dangerous. you should not write to the same directory that the site + is in as you could end up accidentally allowing the user to overwrite site + contents */}} +{{writeFile (osJoinPaths "letters" (stripNonLetters $name)) $content}} +{{- redirect 303 "."}}