1
- \ <!DOCTYPE html>
1
+ <!doctype html>
2
2
< html >
3
- < head >
4
- < meta http-equiv ="content-type " content ="txt/html; charset=utf-8 " />
5
- < meta
6
- name ="viewport "
7
- content ="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no "
8
- />
9
- < link
10
- rel ="stylesheet "
11
- href ="
https://jsd.toshiki.dev/npm/[email protected] /dist/css/bootstrap.min.css "
12
- integrity ="sha256-L/W5Wfqfa0sdBNIKN9cG6QA5F2qx4qICmU2VgLruv9Y= "
13
- crossorigin ="anonymous "
14
- />
15
- < link rel ="
stylesheet "
href ="
https://jsd.toshiki.dev/npm/[email protected] /css/font-awesome.min.css "
/>
16
- < link rel ="
stylesheet "
href ="
https://jsd.toshiki.dev/npm/[email protected] /src/styles/style.css "
/>
17
- < link rel ="shortcut icon " href ="https://r2.toshiki.dev/favicon.ico " type ="image/x-icon " />
18
- < title > Fuki 不期 | Your lovely URL shortener</ title >
19
- </ head >
3
+ < head >
4
+ < meta http-equiv ="content-type " content ="txt/html; charset=utf-8 " />
5
+ < meta name ="viewport " content ="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no ">
6
+ < link rel ="
stylesheet "
href ="
https://jsd.toshiki.dev/npm/[email protected] /dist/css/bootstrap.min.css "
integrity ="
sha256-L/W5Wfqfa0sdBNIKN9cG6QA5F2qx4qICmU2VgLruv9Y= "
crossorigin ="
anonymous "
>
7
+ < link rel ="shortcut icon " href ="https://r2.toshiki.dev/favicon.ico " type ="image/x-icon " />
8
+ < title > Fuki 不期 | Your lovely URL shortener</ title >
9
+ < style >
10
+ * {
11
+ margin : 0 ;
12
+ padding : 0 ;
13
+ cursor : default;
14
+ }
15
+ html , body {
16
+ height : 100% ;
17
+ }
18
+ body {
19
+ display : -webkit-box;
20
+ display : flex;
21
+ -webkit-box-align : center;
22
+ align-items : center;
23
+ -webkit-box-pack : center;
24
+ justify-content : center;
25
+ vertical-align : center;
26
+ flex-wrap : wrap;
27
+ align-content : center;
20
28
21
- < body >
22
- < a href ="https://github.com/toshikidev/fuki " class ="github-corner " aria-label ="View source on GitHub "
23
- > < svg
24
- width ="80 "
25
- height ="80 "
26
- viewBox ="0 0 250 250 "
27
- style ="
28
- fill: #00d26a;
29
- color: #fff;
30
- position: absolute;
31
- top: 0;
32
- border: 0;
33
- left: 0;
34
- transform: scale(-1, 1);
35
- "
36
- aria-hidden ="true "
37
- >
38
- < path d ="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z "> </ path >
39
- < path
40
- d ="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2 "
41
- fill ="currentColor "
42
- style ="transform-origin: 130px 106px "
43
- class ="octo-arm "
44
- > </ path >
45
- < path
46
- d ="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z "
47
- fill ="currentColor "
48
- class ="octo-body "
49
- > </ path > </ svg > </ a
50
- > < style >
51
- .github-corner : hover .octo-arm {
52
- animation : octocat-wave 560ms ease-in-out;
53
- }
54
- @keyframes octocat-wave {
55
- 0% ,
56
- 100% {
57
- transform : rotate (0 );
58
- }
59
- 20% ,
60
- 60% {
61
- transform : rotate (-25deg );
62
- }
63
- 40% ,
64
- 80% {
65
- transform : rotate (10deg );
66
- }
67
- }
68
- @media (max-width : 500px ) {
69
- .github-corner : hover .octo-arm {
70
- animation : none;
71
- }
72
- .github-corner .octo-arm {
73
- animation : octocat-wave 560ms ease-in-out;
74
- }
75
- }
76
- </ style >
77
- < div class ="fixed-top d-flex justify-content-end m-5 ">
78
- < div class ="toast " style ="min-height: 50px ">
79
- < div class ="toast-header ">
80
- < img width ="18px " class ="rounded mr-2 " src ="https://r2.toshiki.dev/image/coffee.png " alt ="coffee " />
81
- < strong class ="mr-auto "> Hello from developers!</ strong >
82
- < button type ="button " class ="ml-2 mb-1 close " data-dismiss ="toast ">
83
- < span > ×</ span >
84
- </ button >
85
- </ div >
86
- < div class ="toast-body ">
87
- Welcome to use fuki.cc url shortener, fuki is a moe site made with
88
- < i class ="fa fa-heart fa-beat heart "> </ i > by < a href ="https://github.com/toshikidev "> toshikidev</ a > !
89
- Happy shortening!
90
- </ div >
91
- </ div >
92
- </ div >
93
-
94
- < div class ="card ">
95
- < h5 class ="card-header "> ✅ Welcome to < code > fuki.cc</ code > !</ h5 >
96
- < div class ="card-body ">
97
- < h5 class ="card-title "> Enter a URL to shorten:</ h5 >
98
- < div class ="input-group mb-3 ">
99
- < input
100
- type ="text "
101
- class ="form-control "
102
- placeholder ="Example: https://example.com/ (Must with http or https prefix) "
103
- id ="text "
104
- />
105
- < div class ="input-group-append ">
106
- < button class ="btn btn-primary " type ="button " onclick ="shorturl() " id ="searchbtn ">
107
- Shorten it!
108
- </ button >
109
- </ div >
110
- </ div >
111
- < div class ="card-text btn btn-success ">
112
- < a href ="https://github.com/toshikidev/fuki " target ="_self "
113
- > < i class ="fa fa-github " aria-hidden ="true "> </ i > GitHub source</ a
114
- >
115
- </ div >
116
- < div
117
- data-toggle ="modal "
118
- data-target ="#exampleModalCenter "
119
- type ="button "
120
- class ="btn btn-primary btn-circle btn-sm "
121
- >
122
- < i class ="fa fa-question-circle " aria-hidden ="true "> </ i >
123
- </ div >
124
- </ div >
125
- </ div >
126
- < div
127
- class ="modal fade "
128
- id ="exampleModal "
129
- tabindex ="-1 "
130
- role ="dialog "
131
- aria-labelledby ="exampleModalLabel "
132
- aria-hidden ="true "
133
- >
134
- < div class ="modal-dialog .popup " role ="document ">
135
- < div class ="modal-content ">
136
- < div class ="modal-header ">
137
- < h5 class ="modal-title " id ="exampleModalLabel "> Result</ h5 >
138
- < button type ="button " class ="close " data-dismiss ="modal " aria-label ="Close ">
139
- < span aria-hidden ="true "> ×</ span >
140
- </ button >
141
- </ div >
142
- < div class ="modal-body " id ="result "> No result</ div >
143
- < div class ="modal-footer ">
144
- < button
145
- type ="button "
146
- class ="btn btn-primary "
147
- onclick ='copyurl("result") '
148
- data-toggle ="popover "
149
- data-placement ="bottom "
150
- data-content ="Copied! "
151
- >
152
- Copy
153
- </ button >
154
- < button type ="button " class ="btn btn-secondary " data-dismiss ="modal "> Close</ button >
155
- </ div >
156
- </ div >
157
- </ div >
158
- </ div >
159
-
160
- <!-- modal -->
161
- < div
162
- class ="modal fade "
163
- id ="exampleModalCenter "
164
- tabindex ="-1 "
165
- role ="dialog "
166
- aria-labelledby ="exampleModalCenterTitle "
167
- aria-hidden ="true "
168
- >
169
- < div class ="modal-dialog modal-dialog-centered " role ="document ">
170
- < div class ="modal-content ">
171
- < div class ="modal-header ">
172
- < h5 class ="modal-title " id ="exampleModalCenterTitle "> < strong > Note</ strong > </ h5 >
173
- < button type ="button " class ="close " data-dismiss ="modal " aria-label ="Close ">
174
- < span aria-hidden ="true "> ×</ span >
175
- </ button >
176
- </ div >
177
- < div class ="modal-body light ">
178
- Hey there! We're overjoyed to let you know that Fuki is now running on CloudFlare Workers on a
179
- free plan. Although this is fantastic, we understand that it may come with some issues. As such,
180
- if Fuki appears to be down or receiving constant errors when shortening URLs, it's possible that
181
- the Worker has reached its daily limit. We sincerely apologize for any inconvenience this may be
182
- causing, and kindly ask you to please try again later. It's also possible that Fuki is receiving
183
- large bandwidth flooding, so please bear with us and be patient! To avoid this issue in the
184
- future, you could consider self-hosting Fuki or donating to Fuki to ensure better performance.
185
- We thank you for your understanding and your continued support!
186
- </ div >
187
- < div class ="modal-footer ">
188
- < button type ="button " class ="btn btn-secondary " data-dismiss ="modal "> Close</ button >
189
- </ div >
190
- </ div >
191
- </ div >
192
- </ div >
193
-
194
- <!-- modal ends -->
195
- < script
196
- src ="
https://jsd.toshiki.dev/npm/[email protected] /dist/jquery.slim.min.js "
197
- integrity ="sha256-pasqAKBDmFT4eHoN2ndd6lN370kFiGUFyTiUHWhU7k8= "
198
- crossorigin ="anonymous "
199
- > </ script >
200
- < script
201
- src ="
https://jsd.toshiki.dev/npm/[email protected] /dist/umd/popper.min.js "
202
- integrity ="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo "
203
- crossorigin ="anonymous "
204
- > </ script >
205
- < script
206
- src ="
https://jsd.toshiki.dev/npm/[email protected] /dist/js/bootstrap.min.js "
207
- integrity ="sha256-WqU1JavFxSAMcLP2WIOI+GB2zWmShMI82mTpLDcqFUg= "
208
- crossorigin ="anonymous "
209
- > </ script >
210
- < script src ="
https://jsd.toshiki.dev/npm/@andatoshiki/[email protected] /main.js "
crossorigin ="
anonymous "
> </ script >
211
- < script src ="https://jsd.toshiki.dev/gh/andatoshiki/toshiki-cdn@master/js/sakura.js "> </ script >
212
- < script src ="
https://jsd.toshiki.dev/npm/[email protected] /src/plugins/blockkeys.js "
> </ script >
213
- < script src ="
https://jsd.toshiki.dev/npm/[email protected] /src/plugins/urusai.js "
> </ script >
214
- < script src ="
https://jsd.toshiki.dev/npm/[email protected] /src/plugins/tooltips.js "
> </ script >
215
- < script src ="
https://jsd.toshiki.dev/npm/[email protected] /src/plugins/modal.js "
> </ script >
216
- <!-- <script>
217
- window.onload = {
218
- requestHeaders: {
219
- 'cache-control': 'max-age=0',
220
- },
221
- }
222
- </script> -->
223
- < script >
224
- document . addEventListener ( 'keydown' , function ( event ) {
225
- if ( event . keyCode === 123 ) {
226
- $ ( '.toast' )
227
- . toast ( {
228
- delay : 5000 ,
229
- } )
230
- . toast ( 'show' )
231
- . on ( 'hidden.bs.toast' , function ( ) {
232
- $ ( '.toast' ) . toast ( 'dispose' )
233
- } )
234
- console . log ( 'F12 key was pressed' )
235
- }
236
- } )
237
- $ ( '.toast' )
238
- . toast ( {
239
- delay : 5000 ,
240
- } )
241
- . toast ( 'show' )
242
- . on ( 'hidden.bs.toast' , function ( ) {
243
- $ ( '.toast' ) . toast ( 'dispose' )
244
- } )
245
- </ script >
246
- < div id ="links ">
247
- < div id ="fadeIn " align ="center ">
248
- 🍭< a href ="https://status.toshiki.dev " target ="_blank " class ="links card-text " id ="a1 "> Status</ a
249
- > < a class ="links "> ・ </ a > 🍢< a
250
- class ="links card-text "
251
- href ="https://github.com/toshiki/fuki/#fuki "
252
- target ="_blank "
253
- id ="a2 "
254
- > Doc</ a
255
- > < a class ="links " id ="a4 "> ・ </ a > 🍡< a
256
- class ="links card-text "
257
- href ="https://workers.cloudflare.com "
258
- target ="_blank "
259
- id ="a3 "
260
- > Workers</ a
261
- >
262
- </ div >
263
- </ div >
264
- </ body >
265
- </ html >
29
+ color : # 2a2b2c ;
30
+ background-color : # ebedee ;
31
+ overflow : hidden;
32
+ }
33
+ .card {
34
+ background-color : transparent;
35
+ width : 768px ;
36
+ }
37
+ .card-text {
38
+ text-align : center;
39
+ }
40
+ .card-text > a {
41
+ text-decoration : none;
42
+ color : # 007bff ;
43
+ }
44
+ .card-text > a {
45
+ cursor : pointer;
46
+ }
47
+ .form-control {
48
+ cursor : auto;
49
+ }
50
+ @media (max-width : 769px ) {
51
+ .card {
52
+ width : 80% ;
53
+ }
54
+ }
55
+ @media (max-width : 420px ) {
56
+ .card {
57
+ width : 95% ;
58
+ }
59
+ }
60
+ @media (prefers-color-scheme : dark) {
61
+ body {
62
+ color : # d9d9d9 ;
63
+ background : # 1b1b1b ;
64
+ }
65
+ .card {
66
+ background-color : # 252d38 ;
67
+ }
68
+ }
69
+ </ style >
70
+ </ head >
71
+ < body >
72
+ < div class ="card ">
73
+ < h5 class ="card-header "> 🎁 Shorten your URLs !</ h5 >
74
+ < div class ="card-body ">
75
+ < h5 class ="card-title "> Please enter the long URL to be shortened :</ h5 >
76
+ < div class ="input-group mb-3 ">
77
+ < input type ="text " class ="form-control " placeholder ="Example: https://example.com/ " id ="text ">
78
+ < div class ="input-group-append ">
79
+ < button class ="btn btn-primary " type ="button " onclick ='shorturl() ' id ="searchbtn "> Shorten it</ button >
80
+ </ div >
81
+ </ div >
82
+ < div class ="card-text ">
83
+ < a href ="https://github.com/toshikidev/fuki/ " target ="_self "> Fork me on GitHub</ a >
84
+ </ div >
85
+ < p id ="notice "> </ p >
86
+ </ div >
87
+ </ div >
88
+ < div class ="modal fade " id ="exampleModal " tabindex ="-1 " role ="dialog " aria-labelledby ="exampleModalLabel " aria-hidden ="true ">
89
+ < div class ="modal-dialog " role ="document ">
90
+ < div class ="modal-content ">
91
+ < div class ="modal-header ">
92
+ < h5 class ="modal-title " id ="exampleModalLabel "> Result</ h5 >
93
+ < button type ="button " class ="close " data-dismiss ="modal " aria-label ="Close ">
94
+ < span aria-hidden ="true "> ×</ span >
95
+ </ button >
96
+ </ div >
97
+ < div class ="modal-body " id ="result "> No result</ div >
98
+ < div class ="modal-footer ">
99
+ < button type ="button " class ="btn btn-primary " onclick ='copyurl("result") ' data-toggle ="popover " data-placement ="bottom " data-content ="Copied! "> Copy</ button >
100
+ < button type ="button " class ="btn btn-secondary " data-dismiss ="modal "> Close</ button >
101
+ </ div >
102
+ </ div >
103
+ </ div >
104
+ </ div >
105
+ < script src ="
https://jsd.toshiki.dev/npm/[email protected] /dist/jquery.slim.min.js "
integrity ="
sha256-pasqAKBDmFT4eHoN2ndd6lN370kFiGUFyTiUHWhU7k8= "
crossorigin ="
anonymous "
> </ script >
106
+ < script src ="
https://jsd.toshiki.dev/npm/[email protected] /dist/umd/popper.min.js "
integrity ="
sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo "
crossorigin ="
anonymous "
> </ script >
107
+ < script src ="
https://jsd.toshiki.dev/npm/[email protected] /dist/js/bootstrap.min.js "
integrity ="
sha256-WqU1JavFxSAMcLP2WIOI+GB2zWmShMI82mTpLDcqFUg= "
crossorigin ="
anonymous "
> </ script >
108
+ < script src ="
https://jsd.toshiki.dev/npm/@andatoshiki/[email protected] /main.js "
crossorigin ="
anonymous "
> </ script >
109
+ </ body >
110
+ </ html >
0 commit comments