56 lines
1.1 KiB
Go
56 lines
1.1 KiB
Go
package lib
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
"time"
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
"github.com/russross/blackfriday/v2"
|
|
)
|
|
|
|
// python3 -c "import string; print(string.ascii_letters+string.digits+\" /,_-?!'\\\"\")"
|
|
var valid string = `abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 /,_-?!'"`
|
|
|
|
func IsStringValid(s string) bool {
|
|
for _, c := range s {
|
|
if !strings.Contains(valid, string(c)) {
|
|
fmt.Printf("%c\n", c)
|
|
return false
|
|
}
|
|
}
|
|
return true
|
|
}
|
|
|
|
func RenderError(c *fiber.Ctx, code int) error {
|
|
var msg string = "Server Error"
|
|
c.Status(code)
|
|
|
|
switch code {
|
|
case 404:
|
|
msg = "Not Found"
|
|
}
|
|
|
|
return c.Render("error", fiber.Map{
|
|
"msg": msg,
|
|
})
|
|
}
|
|
|
|
func TimeFromString(date string) (time.Time, error) {
|
|
res, err := time.Parse("02/01/06", date)
|
|
if err == nil {
|
|
return res, nil
|
|
}
|
|
return time.Now(), nil
|
|
}
|
|
|
|
func ParseMarkdown(md string) string {
|
|
ext := blackfriday.FencedCode
|
|
ext |= blackfriday.BackslashLineBreak
|
|
ext |= blackfriday.Strikethrough
|
|
ext |= blackfriday.Tables
|
|
ext |= blackfriday.NoEmptyLineBeforeBlock
|
|
|
|
return string(blackfriday.Run([]byte(md), blackfriday.WithExtensions(ext)))
|
|
}
|