- Notifications
You must be signed in to change notification settings - Fork 1.4k
/
Copy pathProgram.cs
66 lines (56 loc) · 2.13 KB
/
Program.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
varapp=WebApplication.Create();
app.MapGet("/",()=>
{
varhtml="""
<!DOCTYPE html>
<html>
<head>
<script src="https://cdn.jsdelivr.net/npm/unpoly@3.8.0/unpoly.min.js"></script>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/unpoly@3.8.0/unpoly.min.css">
</head>
<body>
<div class="container mt-5">
<div class="row">
<div class="col-md-3">
<nav>
<a href="/unpoly/1" up-target="article:maybe" up-cache="false">1st</a>
<a href="/unpoly/2" up-target="article:maybe" up-cache="false">2nd</a>
</nav>
</div>
<div class="col-md-3">
<article>Default Content 1</article>
</div>
<div class="col-md-3">
<div up-flashes></div>
</div>
</div>
</div>
</body>
</html>
""";
returnResults.Content(html,"text/html");
});
intclicked=0;
app.MapGet("/unpoly/{idx}",(HttpRequestrequest,intidx)=>
{
if(request.IsUnpolyJs()isfalse)
returnResults.Content("");
returnResults.Content($"""
<div class="alert alert-success" up-flashes>You have clicked {clicked++} times at {idx}</div>
""");
});
app.Run();
publicstaticclassUnpolyJs
{
publicstaticclassHeaders
{
publicconststringUpVersion="X-Up-Version";
}
publicstaticboolIsUnpolyJs(thisHttpRequestself)=>!string.IsNullOrWhiteSpace(UpVersion(self));
publicstaticstringUpVersion(HttpRequestrequest)
{
varheader=request.Headers[Headers.UpVersion].ToString();
returnheader;
}
}