Monorepo for Tangled
tangled.org
1package markup
2
3import (
4 "crypto/hmac"
5 "crypto/sha256"
6 "encoding/hex"
7 "fmt"
8)
9
10func GenerateCamoURL(baseURL, secret, imageURL string) string {
11 h := hmac.New(sha256.New, []byte(secret))
12 h.Write([]byte(imageURL))
13 signature := hex.EncodeToString(h.Sum(nil))
14 hexURL := hex.EncodeToString([]byte(imageURL))
15 return fmt.Sprintf("%s/%s/%s", baseURL, signature, hexURL)
16}
17
18func (rctx *RenderContext) camoImageLinkTransformer(dst string) string {
19 if rctx.CamoUrl != "" && rctx.CamoSecret != "" {
20 return GenerateCamoURL(rctx.CamoUrl, rctx.CamoSecret, dst)
21 }
22
23 return dst
24}