Mercurial Hosting > linkmystyle
comparison unsubscribe/src/lib/Shared.luan @ 0:8f4df159f06b
start public repo
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Fri, 11 Jul 2025 20:57:49 -0600 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:8f4df159f06b |
---|---|
1 local Luan = require "luan:Luan.luan" | |
2 local error = Luan.error | |
3 local String = require "luan:String.luan" | |
4 local regex = String.regex or error() | |
5 | |
6 | |
7 local Shared = {} | |
8 | |
9 function Shared.head() | |
10 %> | |
11 <meta name="viewport" content="width=device-width, initial-scale=1"> | |
12 <style> | |
13 @import "/site.css"; | |
14 </style> | |
15 <% | |
16 end | |
17 | |
18 function Shared.header() | |
19 %> | |
20 <div header> | |
21 <a header href="https://linkmy.style/"> | |
22 <img logo=big src="https://linkmy.style/images/logo.png"> | |
23 <img logo=small src="https://linkmy.style/images/small_logo.png"> | |
24 </a> | |
25 </div> | |
26 <% | |
27 end | |
28 | |
29 function Shared.footer() | |
30 %> | |
31 <div footer> | |
32 <span> | |
33 <a href="https://linkmy.style/help.html">Help</a> | |
34 <br>support@linkmy.style | |
35 </span> | |
36 <span> | |
37 <a href="https://apps.apple.com/us/app/linkmystyle/id6475133762"><img ios src="https://linkmy.style/images/ios.svg"></a> | |
38 <a href="https://www.instagram.com/linkmy.style/"><img src="https://linkmy.style/images/icons/instagram.svg"></a> | |
39 </span> | |
40 </div> | |
41 <% | |
42 end | |
43 | |
44 local email_regex = regex[[^[-+~.\w]+@[-.\w]+$]] | |
45 | |
46 function Shared.validate_email(email) | |
47 email_regex.matches(email) or error("bad email: "..email) | |
48 end | |
49 | |
50 return Shared |