lanet 0.5.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +51 -0
- data/Gemfile.lock +1 -1
- data/README.md +70 -17
- data/index.html +359 -209
- data/lib/lanet/cli.rb +1 -5
- data/lib/lanet/encryptor.rb +138 -79
- data/lib/lanet/file_transfer.rb +64 -72
- data/lib/lanet/receiver.rb +62 -6
- data/lib/lanet/sender.rb +35 -3
- data/lib/lanet/version.rb +1 -1
- data/lib/lanet.rb +2 -0
- metadata +6 -3
data/index.html
CHANGED
|
@@ -4,292 +4,442 @@
|
|
|
4
4
|
<head>
|
|
5
5
|
<meta charset="UTF-8">
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
7
|
-
<title>Lanet - Secure
|
|
7
|
+
<title>Lanet v1.0.0 - Secure LAN Communication Library</title>
|
|
8
8
|
<style>
|
|
9
|
+
* {
|
|
10
|
+
margin: 0;
|
|
11
|
+
padding: 0;
|
|
12
|
+
box-sizing: border-box;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
:root {
|
|
16
|
+
--primary: #3498db;
|
|
17
|
+
--secondary: #2ecc71;
|
|
18
|
+
--dark: #2c3e50;
|
|
19
|
+
--light: #ecf0f1;
|
|
20
|
+
--accent: #e74c3c;
|
|
21
|
+
--warning: #f39c12;
|
|
22
|
+
--bg: #ffffff;
|
|
23
|
+
--text: #34495e;
|
|
24
|
+
--border: #e1e8ed;
|
|
25
|
+
--shadow: rgba(0, 0, 0, 0.08);
|
|
26
|
+
}
|
|
27
|
+
|
|
9
28
|
body {
|
|
10
|
-
font-family: 'Segoe UI',
|
|
11
|
-
line-height: 1.
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
max-width: 980px;
|
|
16
|
-
/* Slightly wider max width for content */
|
|
17
|
-
margin: 20px auto;
|
|
18
|
-
/* Added top and bottom margin for better spacing */
|
|
29
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Helvetica Neue', Arial, sans-serif;
|
|
30
|
+
line-height: 1.6;
|
|
31
|
+
color: var(--text);
|
|
32
|
+
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
33
|
+
min-height: 100vh;
|
|
19
34
|
padding: 20px;
|
|
20
|
-
background-color: #f4f6f9;
|
|
21
|
-
/* Lighter background color */
|
|
22
35
|
}
|
|
23
36
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
letter-spacing: -0.5px;
|
|
32
|
-
/* Slightly tighter letter spacing for headings */
|
|
37
|
+
.container {
|
|
38
|
+
max-width: 1200px;
|
|
39
|
+
margin: 0 auto;
|
|
40
|
+
background: var(--bg);
|
|
41
|
+
border-radius: 16px;
|
|
42
|
+
box-shadow: 0 20px 60px var(--shadow);
|
|
43
|
+
overflow: hidden;
|
|
33
44
|
}
|
|
34
45
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
46
|
+
/* Header */
|
|
47
|
+
header {
|
|
48
|
+
background: linear-gradient(135deg, var(--primary) 0%, #2980b9 100%);
|
|
49
|
+
color: white;
|
|
50
|
+
padding: 60px 40px;
|
|
51
|
+
text-align: center;
|
|
52
|
+
position: relative;
|
|
53
|
+
overflow: hidden;
|
|
42
54
|
}
|
|
43
55
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
56
|
+
header::before {
|
|
57
|
+
content: '';
|
|
58
|
+
position: absolute;
|
|
59
|
+
top: 0;
|
|
60
|
+
left: 0;
|
|
61
|
+
right: 0;
|
|
62
|
+
bottom: 0;
|
|
63
|
+
background: url('data:image/svg+xml,<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg"><defs><pattern id="grid" width="40" height="40" patternUnits="userSpaceOnUse"><path d="M 40 0 L 0 0 0 40" fill="none" stroke="rgba(255,255,255,0.05)" stroke-width="1"/></pattern></defs><rect width="100" height="100" fill="url(%23grid)"/></svg>');
|
|
64
|
+
opacity: 0.3;
|
|
49
65
|
}
|
|
50
66
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
margin-
|
|
55
|
-
|
|
67
|
+
header h1 {
|
|
68
|
+
font-size: 3.5rem;
|
|
69
|
+
font-weight: 700;
|
|
70
|
+
margin-bottom: 15px;
|
|
71
|
+
position: relative;
|
|
72
|
+
z-index: 1;
|
|
56
73
|
}
|
|
57
74
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
75
|
+
header .version {
|
|
76
|
+
display: inline-block;
|
|
77
|
+
background: rgba(255, 255, 255, 0.2);
|
|
78
|
+
padding: 8px 20px;
|
|
79
|
+
border-radius: 30px;
|
|
80
|
+
font-size: 0.9rem;
|
|
81
|
+
font-weight: 600;
|
|
82
|
+
margin-top: 10px;
|
|
83
|
+
backdrop-filter: blur(10px);
|
|
63
84
|
}
|
|
64
85
|
|
|
65
|
-
|
|
66
|
-
|
|
86
|
+
header .tagline {
|
|
87
|
+
font-size: 1.3rem;
|
|
88
|
+
margin-top: 20px;
|
|
89
|
+
opacity: 0.95;
|
|
90
|
+
font-weight: 300;
|
|
91
|
+
position: relative;
|
|
92
|
+
z-index: 1;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/* What's New Banner */
|
|
96
|
+
.whats-new {
|
|
97
|
+
background: linear-gradient(135deg, var(--secondary) 0%, #27ae60 100%);
|
|
98
|
+
color: white;
|
|
99
|
+
padding: 30px 40px;
|
|
100
|
+
text-align: center;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.whats-new h2 {
|
|
104
|
+
font-size: 1.8rem;
|
|
67
105
|
margin-bottom: 15px;
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
background-color: #f0f0f0;
|
|
73
|
-
/* Slightly darker pre background */
|
|
74
|
-
border: 1px solid #ccc;
|
|
75
|
-
/* Lighter border */
|
|
76
|
-
border-left: 5px solid #3498db;
|
|
77
|
-
/* Thicker, more prominent left border */
|
|
78
|
-
padding: 16px;
|
|
79
|
-
/* Increased padding */
|
|
80
|
-
overflow-x: auto;
|
|
81
|
-
border-radius: 6px;
|
|
82
|
-
/* More rounded corners */
|
|
83
|
-
font-size: 0.95em;
|
|
84
|
-
/* Slightly smaller font size in code blocks */
|
|
106
|
+
display: flex;
|
|
107
|
+
align-items: center;
|
|
108
|
+
justify-content: center;
|
|
109
|
+
gap: 10px;
|
|
85
110
|
}
|
|
86
111
|
|
|
87
|
-
|
|
88
|
-
font-
|
|
89
|
-
color: #2c3e50;
|
|
90
|
-
/* Darker code text color */
|
|
112
|
+
.whats-new .emoji {
|
|
113
|
+
font-size: 2rem;
|
|
91
114
|
}
|
|
92
115
|
|
|
93
|
-
.
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
/* Softer, more subtle shadow */
|
|
99
|
-
padding: 40px;
|
|
100
|
-
/* Increased container padding */
|
|
116
|
+
.whats-new p {
|
|
117
|
+
font-size: 1.1rem;
|
|
118
|
+
opacity: 0.95;
|
|
119
|
+
max-width: 800px;
|
|
120
|
+
margin: 0 auto;
|
|
101
121
|
}
|
|
102
122
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
padding-left: 25px;
|
|
107
|
-
/* Increased padding */
|
|
108
|
-
border-left: 5px solid #2ecc71;
|
|
109
|
-
/* Thicker feature border */
|
|
123
|
+
/* Content */
|
|
124
|
+
.content {
|
|
125
|
+
padding: 50px 40px;
|
|
110
126
|
}
|
|
111
127
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
128
|
+
h2 {
|
|
129
|
+
color: var(--dark);
|
|
130
|
+
font-size: 2rem;
|
|
131
|
+
margin: 40px 0 20px 0;
|
|
132
|
+
padding-bottom: 10px;
|
|
133
|
+
border-bottom: 3px solid var(--primary);
|
|
134
|
+
display: inline-block;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
h3 {
|
|
138
|
+
color: var(--primary);
|
|
139
|
+
font-size: 1.4rem;
|
|
140
|
+
margin: 30px 0 15px 0;
|
|
120
141
|
}
|
|
121
142
|
|
|
122
|
-
|
|
123
|
-
margin-bottom:
|
|
124
|
-
|
|
143
|
+
p {
|
|
144
|
+
margin-bottom: 15px;
|
|
145
|
+
color: var(--text);
|
|
146
|
+
font-size: 1.05rem;
|
|
125
147
|
}
|
|
126
148
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
margin:
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
149
|
+
/* Feature Grid */
|
|
150
|
+
.features-grid {
|
|
151
|
+
display: grid;
|
|
152
|
+
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
|
|
153
|
+
gap: 25px;
|
|
154
|
+
margin: 30px 0;
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.feature-card {
|
|
158
|
+
background: var(--bg);
|
|
159
|
+
border: 2px solid var(--border);
|
|
160
|
+
border-radius: 12px;
|
|
161
|
+
padding: 25px;
|
|
162
|
+
transition: all 0.3s ease;
|
|
137
163
|
position: relative;
|
|
138
|
-
|
|
139
|
-
/* Slightly smaller font size in CLI examples */
|
|
164
|
+
overflow: hidden;
|
|
140
165
|
}
|
|
141
166
|
|
|
142
|
-
.
|
|
143
|
-
content:
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
167
|
+
.feature-card::before {
|
|
168
|
+
content: '';
|
|
169
|
+
position: absolute;
|
|
170
|
+
top: 0;
|
|
171
|
+
left: 0;
|
|
172
|
+
width: 4px;
|
|
173
|
+
height: 100%;
|
|
174
|
+
background: linear-gradient(180deg, var(--primary), var(--secondary));
|
|
175
|
+
transform: scaleY(0);
|
|
176
|
+
transition: transform 0.3s ease;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
.feature-card:hover {
|
|
180
|
+
transform: translateY(-5px);
|
|
181
|
+
box-shadow: 0 10px 30px var(--shadow);
|
|
182
|
+
border-color: var(--primary);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
.feature-card:hover::before {
|
|
186
|
+
transform: scaleY(1);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.feature-card h3 {
|
|
190
|
+
margin-top: 0;
|
|
191
|
+
display: flex;
|
|
192
|
+
align-items: center;
|
|
193
|
+
gap: 10px;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
.feature-icon {
|
|
197
|
+
font-size: 1.5rem;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
/* Badge */
|
|
201
|
+
.badge {
|
|
148
202
|
display: inline-block;
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
203
|
+
background: var(--secondary);
|
|
204
|
+
color: white;
|
|
205
|
+
padding: 4px 12px;
|
|
206
|
+
border-radius: 20px;
|
|
207
|
+
font-size: 0.75rem;
|
|
208
|
+
font-weight: 600;
|
|
209
|
+
text-transform: uppercase;
|
|
210
|
+
letter-spacing: 0.5px;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
.badge.new {
|
|
214
|
+
background: var(--accent);
|
|
215
|
+
animation: pulse 2s infinite;
|
|
154
216
|
}
|
|
155
217
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
218
|
+
@keyframes pulse {
|
|
219
|
+
|
|
220
|
+
0%,
|
|
221
|
+
100% {
|
|
222
|
+
opacity: 1;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
50% {
|
|
226
|
+
opacity: 0.7;
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/* Code Block */
|
|
231
|
+
.code-block {
|
|
232
|
+
background: var(--dark);
|
|
233
|
+
color: var(--light);
|
|
160
234
|
padding: 25px;
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
235
|
+
border-radius: 10px;
|
|
236
|
+
overflow-x: auto;
|
|
237
|
+
margin: 20px 0;
|
|
238
|
+
font-family: 'Monaco', 'Courier New', monospace;
|
|
239
|
+
font-size: 0.95rem;
|
|
240
|
+
line-height: 1.6;
|
|
241
|
+
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
|
|
164
242
|
}
|
|
165
243
|
|
|
166
|
-
.
|
|
167
|
-
|
|
168
|
-
padding: 15px;
|
|
169
|
-
/* Increased padding */
|
|
170
|
-
margin: 15px 0;
|
|
171
|
-
/* Increased margin */
|
|
172
|
-
border-radius: 8px;
|
|
173
|
-
/* More rounded corners */
|
|
174
|
-
font-family: 'Courier New', Courier, monospace;
|
|
175
|
-
font-size: 0.9em;
|
|
176
|
-
border-left: 5px solid #9b59b6;
|
|
177
|
-
/* Thicker border */
|
|
244
|
+
.code-block code {
|
|
245
|
+
color: var(--light);
|
|
178
246
|
}
|
|
179
247
|
|
|
180
|
-
.
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
248
|
+
.code-block .comment {
|
|
249
|
+
color: #95a5a6;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.code-block .keyword {
|
|
253
|
+
color: #e74c3c;
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
.code-block .string {
|
|
257
|
+
color: #2ecc71;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
/* Tabs */
|
|
261
|
+
.tabs {
|
|
262
|
+
margin: 30px 0;
|
|
187
263
|
}
|
|
188
264
|
|
|
189
265
|
.tab-buttons {
|
|
190
266
|
display: flex;
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
267
|
+
gap: 10px;
|
|
268
|
+
flex-wrap: wrap;
|
|
269
|
+
margin-bottom: 20px;
|
|
194
270
|
}
|
|
195
271
|
|
|
196
272
|
.tab-button {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
border:
|
|
273
|
+
background: var(--light);
|
|
274
|
+
border: 2px solid var(--border);
|
|
275
|
+
padding: 12px 24px;
|
|
276
|
+
border-radius: 8px;
|
|
201
277
|
cursor: pointer;
|
|
202
|
-
|
|
203
|
-
/* Removed right border */
|
|
204
|
-
transition: background-color 0.3s;
|
|
278
|
+
font-size: 1rem;
|
|
205
279
|
font-weight: 500;
|
|
206
|
-
|
|
207
|
-
color:
|
|
208
|
-
/* Slightly muted tab button text color */
|
|
280
|
+
transition: all 0.3s ease;
|
|
281
|
+
color: var(--text);
|
|
209
282
|
}
|
|
210
283
|
|
|
211
284
|
.tab-button:hover {
|
|
212
|
-
background
|
|
213
|
-
|
|
214
|
-
color:
|
|
215
|
-
/* Darker hover text color */
|
|
285
|
+
background: var(--primary);
|
|
286
|
+
color: white;
|
|
287
|
+
border-color: var(--primary);
|
|
216
288
|
}
|
|
217
289
|
|
|
218
290
|
.tab-button.active {
|
|
219
|
-
background
|
|
220
|
-
|
|
221
|
-
border-
|
|
222
|
-
|
|
223
|
-
color: #34495e;
|
|
224
|
-
/* Darker text for active tab */
|
|
225
|
-
font-weight: bold;
|
|
226
|
-
/* Bold text for active tab */
|
|
291
|
+
background: var(--primary);
|
|
292
|
+
color: white;
|
|
293
|
+
border-color: var(--primary);
|
|
294
|
+
box-shadow: 0 4px 12px rgba(52, 152, 219, 0.3);
|
|
227
295
|
}
|
|
228
296
|
|
|
229
297
|
.tab-content {
|
|
230
298
|
display: none;
|
|
231
|
-
|
|
232
|
-
/* Increased padding */
|
|
233
|
-
background-color: #fff;
|
|
234
|
-
/* White background for tab content */
|
|
299
|
+
animation: fadeIn 0.3s ease;
|
|
235
300
|
}
|
|
236
301
|
|
|
237
302
|
.tab-content.active {
|
|
238
303
|
display: block;
|
|
239
304
|
}
|
|
240
305
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
letter-spacing: 0.5px;
|
|
252
|
-
/* Added letter spacing */
|
|
306
|
+
@keyframes fadeIn {
|
|
307
|
+
from {
|
|
308
|
+
opacity: 0;
|
|
309
|
+
transform: translateY(10px);
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
to {
|
|
313
|
+
opacity: 1;
|
|
314
|
+
transform: translateY(0);
|
|
315
|
+
}
|
|
253
316
|
}
|
|
254
317
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
318
|
+
/* Improvements Box */
|
|
319
|
+
.improvements {
|
|
320
|
+
background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
|
|
321
|
+
border-radius: 12px;
|
|
322
|
+
padding: 30px;
|
|
323
|
+
margin: 30px 0;
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
.improvements h3 {
|
|
327
|
+
margin-top: 0;
|
|
258
328
|
}
|
|
259
329
|
|
|
260
|
-
.
|
|
261
|
-
|
|
262
|
-
padding:
|
|
263
|
-
/* Increased padding */
|
|
264
|
-
border-left: 5px solid #ffc107;
|
|
265
|
-
/* Thicker border */
|
|
266
|
-
margin: 15px 0;
|
|
267
|
-
/* Increased margin */
|
|
268
|
-
border-radius: 6px;
|
|
269
|
-
/* More rounded corners */
|
|
330
|
+
.improvements ul {
|
|
331
|
+
list-style: none;
|
|
332
|
+
padding: 0;
|
|
270
333
|
}
|
|
271
334
|
|
|
272
|
-
.
|
|
335
|
+
.improvements li {
|
|
336
|
+
padding: 10px 0;
|
|
337
|
+
padding-left: 30px;
|
|
338
|
+
position: relative;
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
.improvements li::before {
|
|
342
|
+
content: '✓';
|
|
343
|
+
position: absolute;
|
|
344
|
+
left: 0;
|
|
345
|
+
color: var(--secondary);
|
|
273
346
|
font-weight: bold;
|
|
274
|
-
|
|
275
|
-
|
|
347
|
+
font-size: 1.2rem;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
/* Stats */
|
|
351
|
+
.stats {
|
|
352
|
+
display: grid;
|
|
353
|
+
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
|
|
354
|
+
gap: 20px;
|
|
355
|
+
margin: 30px 0;
|
|
276
356
|
}
|
|
277
357
|
|
|
358
|
+
.stat {
|
|
359
|
+
text-align: center;
|
|
360
|
+
padding: 25px;
|
|
361
|
+
background: var(--light);
|
|
362
|
+
border-radius: 10px;
|
|
363
|
+
border: 2px solid var(--border);
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
.stat-value {
|
|
367
|
+
font-size: 2.5rem;
|
|
368
|
+
font-weight: 700;
|
|
369
|
+
color: var(--primary);
|
|
370
|
+
display: block;
|
|
371
|
+
}
|
|
372
|
+
|
|
373
|
+
.stat-label {
|
|
374
|
+
color: var(--text);
|
|
375
|
+
font-size: 0.9rem;
|
|
376
|
+
margin-top: 5px;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
/* Footer */
|
|
278
380
|
footer {
|
|
279
|
-
|
|
280
|
-
|
|
381
|
+
background: var(--dark);
|
|
382
|
+
color: var(--light);
|
|
383
|
+
padding: 40px;
|
|
281
384
|
text-align: center;
|
|
282
|
-
color: #7f8c8d;
|
|
283
|
-
padding-top: 20px;
|
|
284
|
-
border-top: 1px solid #ddd;
|
|
285
|
-
/* Added top border to footer */
|
|
286
385
|
}
|
|
287
386
|
|
|
288
|
-
footer
|
|
289
|
-
color:
|
|
290
|
-
|
|
291
|
-
font-
|
|
292
|
-
|
|
387
|
+
footer a {
|
|
388
|
+
color: var(--primary);
|
|
389
|
+
text-decoration: none;
|
|
390
|
+
font-weight: 500;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
footer a:hover {
|
|
394
|
+
text-decoration: underline;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
/* Responsive */
|
|
398
|
+
@media (max-width: 768px) {
|
|
399
|
+
header h1 {
|
|
400
|
+
font-size: 2.5rem;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
header .tagline {
|
|
404
|
+
font-size: 1.1rem;
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
.content {
|
|
408
|
+
padding: 30px 20px;
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
.features-grid {
|
|
412
|
+
grid-template-columns: 1fr;
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
.tab-buttons {
|
|
416
|
+
flex-direction: column;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
.tab-button {
|
|
420
|
+
width: 100%;
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
/* Install Section */
|
|
425
|
+
.install-section {
|
|
426
|
+
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
|
|
427
|
+
color: white;
|
|
428
|
+
padding: 40px;
|
|
429
|
+
border-radius: 12px;
|
|
430
|
+
margin: 40px 0;
|
|
431
|
+
text-align: center;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
.install-section h2 {
|
|
435
|
+
color: white;
|
|
436
|
+
border: none;
|
|
437
|
+
margin: 0 0 20px 0;
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
.install-section .code-block {
|
|
441
|
+
background: rgba(0, 0, 0, 0.3);
|
|
442
|
+
backdrop-filter: blur(10px);
|
|
293
443
|
}
|
|
294
444
|
</style>
|
|
295
445
|
</head>
|
data/lib/lanet/cli.rb
CHANGED
|
@@ -134,11 +134,7 @@ module Lanet
|
|
|
134
134
|
puts "Content: #{result[:content]}"
|
|
135
135
|
|
|
136
136
|
if result.key?(:verified)
|
|
137
|
-
verification_status =
|
|
138
|
-
"VERIFIED"
|
|
139
|
-
else
|
|
140
|
-
"NOT VERIFIED: #{result[:verification_status]}"
|
|
141
|
-
end
|
|
137
|
+
verification_status = result[:verified] ? "VERIFIED" : "NOT VERIFIED: #{result[:verification_status]}"
|
|
142
138
|
puts "Signature: #{verification_status}"
|
|
143
139
|
end
|
|
144
140
|
|