@liustack/pagepress 0.9.0 → 2.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.
@@ -1,452 +0,0 @@
1
- <!DOCTYPE html>
2
- <html lang="en">
3
-
4
- <head>
5
- <meta charset="UTF-8" />
6
- <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
- <title>{{title}}</title>
8
- <style>
9
- /* ===== VOGUE/WIRED Premium Magazine Style ===== */
10
- /* Fonts (Bebas Neue, Cormorant Garamond, Inter) are injected at runtime via Fontsource */
11
-
12
- :root {
13
- --black: #0a0a0a;
14
- --white: #ffffff;
15
- --cream: #faf8f5;
16
- --accent: #dc2626;
17
- --accent-dark: #b91c1c;
18
- --gray-100: #f5f5f5;
19
- --gray-200: #e5e5e5;
20
- --gray-400: #a0a0a0;
21
- --gray-600: #666666;
22
- }
23
-
24
- * {
25
- box-sizing: border-box;
26
- }
27
-
28
- body {
29
- font-family: 'Inter', -apple-system, sans-serif;
30
- font-size: 15px;
31
- line-height: 1.9;
32
- color: var(--black);
33
- background: var(--white);
34
- margin: 0;
35
- font-weight: 400;
36
- -webkit-print-color-adjust: exact;
37
- print-color-adjust: exact;
38
- }
39
-
40
- .magazine {
41
- max-width: 100%;
42
- margin: 0;
43
- padding: 0;
44
- }
45
-
46
- /* Body Content - Single Column */
47
- .content {
48
- max-width: 720px;
49
- margin: 0 auto;
50
- padding: 80px 60px 100px;
51
- }
52
-
53
- /* ===== Heading System ===== */
54
- h1 {
55
- font-family: 'Bebas Neue', Impact, sans-serif;
56
- font-size: 5em;
57
- font-weight: 400;
58
- line-height: 0.95;
59
- letter-spacing: 0.02em;
60
- text-transform: uppercase;
61
- margin: 0 0 0.2em;
62
- color: var(--black);
63
- }
64
-
65
- h2 {
66
- font-family: 'Bebas Neue', Impact, sans-serif;
67
- font-size: 2.2em;
68
- font-weight: 400;
69
- letter-spacing: 0.02em;
70
- text-transform: uppercase;
71
- color: var(--black);
72
- margin: 2em 0 0.5em;
73
- position: relative;
74
- padding-bottom: 0.4em;
75
- }
76
-
77
- h2::after {
78
- content: '';
79
- position: absolute;
80
- bottom: 0;
81
- left: 0;
82
- width: 48px;
83
- height: 2px;
84
- background: var(--accent);
85
- }
86
-
87
- h3 {
88
- font-family: 'Cormorant Garamond', Georgia, serif;
89
- font-size: 1.4em;
90
- font-weight: 600;
91
- font-style: normal;
92
- color: var(--gray-600);
93
- margin: 1.8em 0 0.5em;
94
- letter-spacing: 0.01em;
95
- }
96
-
97
- /* Subtitle/Lead */
98
- .lead {
99
- font-family: 'Cormorant Garamond', Georgia, serif;
100
- font-size: 1.3em;
101
- font-style: italic;
102
- line-height: 1.7;
103
- color: var(--gray-600);
104
- margin-bottom: 2.5em;
105
- border-left: 3px solid var(--accent);
106
- padding-left: 1.2em;
107
- }
108
-
109
- /* Paragraph */
110
- p {
111
- margin: 0 0 1.4em;
112
- text-align: justify;
113
- hyphens: auto;
114
- }
115
-
116
- /* Drop Cap - Bold Style */
117
- .content>p:first-of-type::first-letter {
118
- font-family: 'Bebas Neue', Impact, sans-serif;
119
- font-size: 4.5em;
120
- float: left;
121
- line-height: 0.8;
122
- margin: 0.05em 0.1em 0 0;
123
- color: var(--accent);
124
- font-weight: 400;
125
- }
126
-
127
- /* Emphasis */
128
- strong {
129
- font-weight: 600;
130
- color: var(--black);
131
- }
132
-
133
- em {
134
- font-family: 'Cormorant Garamond', Georgia, serif;
135
- font-style: italic;
136
- }
137
-
138
- /* Links */
139
- a {
140
- color: var(--accent-dark);
141
- text-decoration: none;
142
- border-bottom: 1px solid var(--accent);
143
- transition: border-color 0.2s;
144
- }
145
-
146
- a:hover {
147
- border-color: var(--accent-dark);
148
- }
149
-
150
- /* ===== Blockquote - Elegant Pull Quote ===== */
151
- blockquote {
152
- column-span: all;
153
- margin: 3em 0;
154
- padding: 2.5em 3em;
155
- background: var(--cream);
156
- border: none;
157
- position: relative;
158
- }
159
-
160
- blockquote::before {
161
- content: '"';
162
- font-family: 'Bebas Neue', Impact, sans-serif;
163
- font-size: 6em;
164
- color: var(--accent);
165
- position: absolute;
166
- top: -0.1em;
167
- left: 0.15em;
168
- line-height: 1;
169
- }
170
-
171
- blockquote p {
172
- font-family: 'Cormorant Garamond', Georgia, serif;
173
- font-size: 1.5em;
174
- font-style: italic;
175
- font-weight: 400;
176
- line-height: 1.5;
177
- text-align: left;
178
- color: var(--black);
179
- margin: 0;
180
- position: relative;
181
- z-index: 1;
182
- }
183
-
184
- /* ===== Code ===== */
185
- code {
186
- font-family: 'JetBrains Mono', 'SF Mono', monospace;
187
- font-size: 0.85em;
188
- background: var(--gray-100);
189
- padding: 0.2em 0.5em;
190
- border-radius: 3px;
191
- border: 1px solid var(--gray-200);
192
- }
193
-
194
- pre {
195
- column-span: all;
196
- font-family: 'JetBrains Mono', 'SF Mono', monospace;
197
- font-size: 0.8em;
198
- line-height: 1.7;
199
- background: var(--black);
200
- color: #e8e8e8;
201
- padding: 28px 32px;
202
- margin: 2.5em 0;
203
- overflow-x: auto;
204
- position: relative;
205
- border-radius: 0;
206
- }
207
-
208
- pre::before {
209
- content: '';
210
- position: absolute;
211
- top: 0;
212
- left: 0;
213
- width: 4px;
214
- height: 100%;
215
- background: linear-gradient(180deg, var(--accent) 0%, var(--accent-dark) 100%);
216
- }
217
-
218
- pre code {
219
- background: transparent;
220
- padding: 0;
221
- color: inherit;
222
- border: none;
223
- }
224
-
225
- /* Syntax Highlighting - Warm Dark */
226
- pre .comment,
227
- pre .c,
228
- pre .c1,
229
- pre .ch,
230
- pre .cm,
231
- pre .cs {
232
- color: #6b7280;
233
- font-style: italic;
234
- }
235
-
236
- pre .keyword,
237
- pre .k,
238
- pre .kc,
239
- pre .kd,
240
- pre .kn,
241
- pre .kp,
242
- pre .kr,
243
- pre .kt {
244
- color: #f0abfc;
245
- }
246
-
247
- pre .string,
248
- pre .s,
249
- pre .s1,
250
- pre .s2,
251
- pre .sa,
252
- pre .sb,
253
- pre .sc,
254
- pre .sd,
255
- pre .se,
256
- pre .sh,
257
- pre .si,
258
- pre .sr,
259
- pre .ss,
260
- pre .sx {
261
- color: #86efac;
262
- }
263
-
264
- pre .function,
265
- pre .nf,
266
- pre .fm {
267
- color: #93c5fd;
268
- }
269
-
270
- pre .number,
271
- pre .mi,
272
- pre .mf,
273
- pre .mh,
274
- pre .mo,
275
- pre .mb,
276
- pre .il {
277
- color: #fcd34d;
278
- }
279
-
280
- pre .class,
281
- pre .nc,
282
- pre .nd,
283
- pre .ne {
284
- color: #67e8f9;
285
- }
286
-
287
- pre .operator,
288
- pre .o,
289
- pre .ow {
290
- color: #f0abfc;
291
- }
292
-
293
- pre .builtin,
294
- pre .bp {
295
- color: #93c5fd;
296
- }
297
-
298
- /* ===== Table ===== */
299
- table {
300
- column-span: all;
301
- width: 100%;
302
- border-collapse: collapse;
303
- margin: 2.5em 0;
304
- font-size: 0.95em;
305
- }
306
-
307
- th {
308
- font-family: 'Inter', sans-serif;
309
- font-size: 0.75em;
310
- font-weight: 600;
311
- letter-spacing: 0.08em;
312
- text-transform: uppercase;
313
- text-align: left;
314
- padding: 14px 18px;
315
- background: var(--black);
316
- color: var(--white);
317
- }
318
-
319
- th:first-child {
320
- border-left: 3px solid var(--accent);
321
- }
322
-
323
- td {
324
- padding: 14px 18px;
325
- border-bottom: 1px solid var(--gray-200);
326
- vertical-align: top;
327
- }
328
-
329
- tr:hover td {
330
- background: var(--cream);
331
- }
332
-
333
- /* ===== Lists ===== */
334
- ul,
335
- ol {
336
- margin: 1.4em 0;
337
- padding-left: 1.5em;
338
- }
339
-
340
- li {
341
- margin-bottom: 0.5em;
342
- }
343
-
344
- ul {
345
- list-style: none;
346
- }
347
-
348
- ul li {
349
- position: relative;
350
- padding-left: 0.3em;
351
- }
352
-
353
- ul li::before {
354
- content: '';
355
- position: absolute;
356
- left: -1.2em;
357
- top: 0.65em;
358
- width: 6px;
359
- height: 6px;
360
- background: var(--accent);
361
- border-radius: 50%;
362
- }
363
-
364
- ol li::marker {
365
- color: var(--accent-dark);
366
- font-weight: 600;
367
- }
368
-
369
- /* ===== Divider ===== */
370
- hr {
371
- column-span: all;
372
- border: none;
373
- height: 3px;
374
- background: var(--black);
375
- margin: 3em 0;
376
- opacity: 1;
377
- }
378
-
379
- /* ===== Images ===== */
380
- figure {
381
- column-span: all;
382
- margin: 2.5em 0;
383
- }
384
-
385
- img {
386
- width: 100%;
387
- height: auto;
388
- display: block;
389
- }
390
-
391
- figcaption {
392
- font-size: 0.8em;
393
- color: var(--gray-600);
394
- font-style: italic;
395
- margin-top: 12px;
396
- padding-left: 12px;
397
- border-left: 2px solid var(--accent);
398
- }
399
-
400
- /* ===== Print ===== */
401
- @page {
402
- size: A4;
403
- margin: 24mm 20mm;
404
- }
405
-
406
- @media print {
407
- body {
408
- background: white;
409
- }
410
-
411
- .content {
412
- max-width: 100%;
413
- padding: 0;
414
- }
415
-
416
- pre,
417
- th {
418
- -webkit-print-color-adjust: exact;
419
- print-color-adjust: exact;
420
- }
421
-
422
- h1,
423
- h2 {
424
- page-break-after: avoid;
425
- }
426
-
427
- pre,
428
- blockquote,
429
- table,
430
- figure {
431
- page-break-inside: avoid;
432
- }
433
- }
434
-
435
- .content.single-column {
436
- column-count: 1;
437
- }
438
- </style>
439
- {{styles}}
440
- </head>
441
-
442
- <body>
443
- <main class="magazine">
444
- <div class="content">
445
- {{body}}
446
- </div>
447
- </main>
448
-
449
-
450
- </body>
451
-
452
- </html>