@liustack/pagepress 2.0.0 → 3.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.
@@ -0,0 +1,262 @@
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
+ /**
10
+ * Default Theme — Clean minimalist design
11
+ */
12
+
13
+ :root {
14
+ --text-primary: #1d1d1f;
15
+ --text-secondary: #6e6e73;
16
+ --text-tertiary: #86868b;
17
+ --bg-primary: #ffffff;
18
+ --border-color: #d2d2d7;
19
+ --border-light: #e5e5ea;
20
+ --accent: #0071e3;
21
+ --code-bg: #f5f5f7;
22
+ --code-block-bg: #f6f8fa;
23
+ }
24
+
25
+ * {
26
+ box-sizing: border-box;
27
+ margin: 0;
28
+ padding: 0;
29
+ }
30
+
31
+ body {
32
+ font-family: system-ui, -apple-system, BlinkMacSystemFont,
33
+ "PingFang SC", "Hiragino Sans GB", "Noto Sans CJK SC", sans-serif;
34
+ font-size: 16px;
35
+ line-height: 1.75;
36
+ color: var(--text-primary);
37
+ background: var(--bg-primary);
38
+ -webkit-font-smoothing: antialiased;
39
+ -moz-osx-font-smoothing: grayscale;
40
+ -webkit-print-color-adjust: exact;
41
+ print-color-adjust: exact;
42
+ }
43
+
44
+ .container {
45
+ max-width: 900px;
46
+ margin: 0 auto;
47
+ padding: 64px 56px 120px;
48
+ }
49
+
50
+ /* Heading System */
51
+ h1, h2, h3, h4, h5, h6 {
52
+ font-weight: 600;
53
+ line-height: 1.25;
54
+ margin-top: 1.5em;
55
+ margin-bottom: 0.5em;
56
+ }
57
+
58
+ h1 {
59
+ font-size: 32px;
60
+ line-height: 1.15;
61
+ margin-top: 0;
62
+ margin-bottom: 20px;
63
+ }
64
+
65
+ h2 {
66
+ font-size: 24px;
67
+ margin-top: 40px;
68
+ }
69
+
70
+ h3 {
71
+ font-size: 18px;
72
+ }
73
+
74
+ h4 {
75
+ font-size: 16px;
76
+ color: var(--text-secondary);
77
+ }
78
+
79
+ /* Paragraph */
80
+ p {
81
+ margin-bottom: 1.25em;
82
+ }
83
+
84
+ strong {
85
+ font-weight: 600;
86
+ }
87
+
88
+ a {
89
+ color: var(--accent);
90
+ text-decoration: none;
91
+ }
92
+
93
+ a:hover {
94
+ text-decoration: underline;
95
+ }
96
+
97
+ /* Blockquote */
98
+ blockquote {
99
+ margin: 1.5em 0;
100
+ padding: 0 0 0 1em;
101
+ border-left: 3px solid var(--border-color);
102
+ color: var(--text-secondary);
103
+ font-style: italic;
104
+ }
105
+
106
+ blockquote p:last-child {
107
+ margin-bottom: 0;
108
+ }
109
+
110
+ /* Code */
111
+ code {
112
+ font-family: ui-monospace, Menlo, Consolas, monospace;
113
+ font-size: 0.875em;
114
+ padding: 0.15em 0.4em;
115
+ background: var(--code-bg);
116
+ border-radius: 4px;
117
+ color: var(--text-primary);
118
+ white-space: break-spaces;
119
+ overflow-wrap: anywhere;
120
+ word-break: break-word;
121
+ }
122
+
123
+ pre {
124
+ margin: 1.5em 0;
125
+ padding: 20px 24px;
126
+ background: var(--code-block-bg);
127
+ border: 1px solid var(--border-light);
128
+ border-radius: 8px;
129
+ overflow-x: auto;
130
+ font-family: ui-monospace, Menlo, Consolas, monospace;
131
+ font-size: 13px;
132
+ line-height: 1.6;
133
+ color: var(--text-primary);
134
+ white-space: pre-wrap;
135
+ overflow-wrap: anywhere;
136
+ word-break: break-word;
137
+ }
138
+
139
+ pre code {
140
+ display: block;
141
+ padding: 0;
142
+ background: transparent;
143
+ color: inherit;
144
+ border-radius: 0;
145
+ font-size: inherit;
146
+ font-family: inherit;
147
+ white-space: inherit;
148
+ overflow-wrap: inherit;
149
+ word-break: inherit;
150
+ }
151
+
152
+ /* Syntax highlighting — light theme */
153
+ pre .hljs { color: #24292e; }
154
+ pre .hljs-comment, pre .hljs-quote { color: #6a737d; font-style: italic; }
155
+ pre .hljs-keyword, pre .hljs-selector-tag, pre .hljs-literal, pre .hljs-type { color: #d73a49; font-weight: 600; }
156
+ pre .hljs-string, pre .hljs-attr, pre .hljs-symbol, pre .hljs-bullet, pre .hljs-addition { color: #032f62; }
157
+ pre .hljs-number { color: #005cc5; }
158
+ pre .hljs-title, pre .hljs-section { color: #6f42c1; }
159
+ pre .hljs-built_in, pre .hljs-name { color: #005cc5; }
160
+ pre .hljs-variable, pre .hljs-template-variable { color: #e36209; }
161
+ pre .hljs-meta { color: #6f42c1; }
162
+
163
+ /* codehilite compatibility */
164
+ pre .c, pre .ch, pre .cm, pre .c1, pre .cs { color: #6a737d; font-style: italic; }
165
+ pre .k, pre .kc, pre .kd, pre .kn, pre .kp, pre .kr, pre .kt { color: #d73a49; font-weight: 600; }
166
+ pre .s, pre .s1, pre .s2, pre .sa, pre .sb, pre .sc, pre .sd, pre .se, pre .sh, pre .si, pre .sr, pre .ss, pre .sx { color: #032f62; }
167
+ pre .nf, pre .fm { color: #6f42c1; }
168
+ pre .mi, pre .mf, pre .mh, pre .mo, pre .mb, pre .il { color: #005cc5; }
169
+ pre .bp { color: #005cc5; }
170
+
171
+ /* Table */
172
+ table {
173
+ width: 100%;
174
+ margin: 1.5em 0;
175
+ border-collapse: collapse;
176
+ font-size: 15px;
177
+ }
178
+
179
+ th, td {
180
+ padding: 10px 14px;
181
+ text-align: left;
182
+ border-bottom: 1px solid var(--border-light);
183
+ }
184
+
185
+ th {
186
+ font-weight: 600;
187
+ color: var(--text-primary);
188
+ border-bottom-color: var(--border-color);
189
+ }
190
+
191
+ tr:last-child td {
192
+ border-bottom: none;
193
+ }
194
+
195
+ /* Lists */
196
+ ul, ol {
197
+ margin: 1em 0;
198
+ padding-left: 1.5em;
199
+ }
200
+
201
+ li {
202
+ margin: 0.4em 0;
203
+ line-height: 1.75;
204
+ }
205
+
206
+ li::marker {
207
+ color: var(--text-secondary);
208
+ }
209
+
210
+ /* Images */
211
+ img {
212
+ max-width: 100%;
213
+ height: auto;
214
+ display: block;
215
+ margin: 1.5em auto;
216
+ border-radius: 8px;
217
+ }
218
+
219
+ /* Divider */
220
+ hr {
221
+ border: none;
222
+ height: 1px;
223
+ background: var(--border-color);
224
+ margin: 2em 0;
225
+ }
226
+
227
+ /* Print */
228
+ @page {
229
+ size: A4;
230
+ margin: 24mm 20mm;
231
+ }
232
+
233
+ @media print {
234
+ .container {
235
+ padding: 0;
236
+ max-width: none;
237
+ }
238
+
239
+ h1 { font-size: 24px; }
240
+ h2 { font-size: 18px; }
241
+
242
+ pre {
243
+ background: var(--code-block-bg) !important;
244
+ color: var(--text-primary) !important;
245
+ border: 1px solid var(--border-light);
246
+ -webkit-print-color-adjust: exact;
247
+ print-color-adjust: exact;
248
+ }
249
+
250
+ pre code { color: inherit !important; }
251
+ }
252
+ </style>
253
+ {{styles}}
254
+ </head>
255
+
256
+ <body>
257
+ <article class="container">
258
+ {{body}}
259
+ </article>
260
+ </body>
261
+
262
+ </html>
@@ -0,0 +1,326 @@
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
+ /* ===== GitHub Markdown Style ===== */
10
+ :root {
11
+ --color-fg-default: #1f2328;
12
+ --color-fg-muted: #636c76;
13
+ --color-canvas-default: #ffffff;
14
+ --color-canvas-subtle: #f6f8fa;
15
+ --color-border-default: #d0d7de;
16
+ --color-border-muted: #d8dee4;
17
+ --color-accent-fg: #0969da;
18
+ }
19
+
20
+ @page {
21
+ size: A4;
22
+ margin: 18mm 20mm;
23
+ }
24
+
25
+ * {
26
+ box-sizing: border-box;
27
+ }
28
+
29
+ body {
30
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", Helvetica, Arial, sans-serif;
31
+ font-size: 16px;
32
+ line-height: 1.8;
33
+ color: var(--color-fg-default);
34
+ background: var(--color-canvas-default);
35
+ margin: 0;
36
+ -webkit-print-color-adjust: exact;
37
+ print-color-adjust: exact;
38
+ }
39
+
40
+ .document {
41
+ max-width: 860px;
42
+ margin: 0 auto;
43
+ padding: 72px 64px 100px;
44
+ }
45
+
46
+ /* Headings */
47
+ h1,
48
+ h2,
49
+ h3,
50
+ h4,
51
+ h5,
52
+ h6 {
53
+ margin-top: 32px;
54
+ margin-bottom: 18px;
55
+ font-weight: 600;
56
+ line-height: 1.25;
57
+ }
58
+
59
+ h1 {
60
+ font-size: 2em;
61
+ padding-bottom: 0.3em;
62
+ border-bottom: 1px solid var(--color-border-muted);
63
+ }
64
+
65
+ h2 {
66
+ font-size: 1.5em;
67
+ padding-bottom: 0.3em;
68
+ border-bottom: 1px solid var(--color-border-muted);
69
+ }
70
+
71
+ h3 {
72
+ font-size: 1.25em;
73
+ }
74
+
75
+ h4 {
76
+ font-size: 1em;
77
+ }
78
+
79
+ /* Paragraph */
80
+ p {
81
+ margin-top: 0;
82
+ margin-bottom: 20px;
83
+ }
84
+
85
+ /* Links */
86
+ a {
87
+ color: var(--color-accent-fg);
88
+ text-decoration: none;
89
+ }
90
+
91
+ a:hover {
92
+ text-decoration: underline;
93
+ }
94
+
95
+ /* Lists */
96
+ ul,
97
+ ol {
98
+ margin-top: 0;
99
+ margin-bottom: 16px;
100
+ padding-left: 2em;
101
+ }
102
+
103
+ li {
104
+ margin-top: 0.25em;
105
+ }
106
+
107
+ li+li {
108
+ margin-top: 0.25em;
109
+ }
110
+
111
+ /* Code */
112
+ code {
113
+ font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
114
+ font-size: 85%;
115
+ background: var(--color-canvas-subtle);
116
+ padding: 0.2em 0.4em;
117
+ border-radius: 6px;
118
+ white-space: break-spaces;
119
+ overflow-wrap: anywhere;
120
+ word-break: break-word;
121
+ }
122
+
123
+ pre {
124
+ font-family: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;
125
+ font-size: 85%;
126
+ line-height: 1.45;
127
+ background: var(--color-canvas-subtle);
128
+ border-radius: 6px;
129
+ padding: 16px;
130
+ overflow: auto;
131
+ margin: 0 0 16px;
132
+ white-space: pre-wrap;
133
+ overflow-wrap: anywhere;
134
+ word-break: break-word;
135
+ }
136
+
137
+ pre code {
138
+ background: transparent;
139
+ padding: 0;
140
+ font-size: 100%;
141
+ display: block;
142
+ white-space: inherit;
143
+ overflow-wrap: inherit;
144
+ word-break: inherit;
145
+ }
146
+
147
+ /* Syntax Highlighting */
148
+ pre .comment,
149
+ pre .c,
150
+ pre .ch,
151
+ pre .cm,
152
+ pre .c1,
153
+ pre .cs {
154
+ color: #6e7781;
155
+ font-style: italic;
156
+ }
157
+
158
+ pre .keyword,
159
+ pre .k,
160
+ pre .kc,
161
+ pre .kd,
162
+ pre .kn,
163
+ pre .kp,
164
+ pre .kr,
165
+ pre .kt {
166
+ color: #cf222e;
167
+ font-weight: 600;
168
+ }
169
+
170
+ pre .string,
171
+ pre .s,
172
+ pre .s1,
173
+ pre .s2,
174
+ pre .sa,
175
+ pre .sb,
176
+ pre .sc,
177
+ pre .sd,
178
+ pre .se,
179
+ pre .sh,
180
+ pre .si,
181
+ pre .sr,
182
+ pre .ss,
183
+ pre .sx {
184
+ color: #0a3069;
185
+ }
186
+
187
+ pre .function,
188
+ pre .nf,
189
+ pre .fm {
190
+ color: #8250df;
191
+ }
192
+
193
+ pre .number,
194
+ pre .mi,
195
+ pre .mf,
196
+ pre .mh,
197
+ pre .mo,
198
+ pre .mb,
199
+ pre .il {
200
+ color: #0550ae;
201
+ }
202
+
203
+ pre .class,
204
+ pre .nc,
205
+ pre .nd,
206
+ pre .ne {
207
+ color: #953800;
208
+ }
209
+
210
+ pre .operator,
211
+ pre .o,
212
+ pre .ow {
213
+ color: #cf222e;
214
+ }
215
+
216
+ pre .builtin,
217
+ pre .bp {
218
+ color: #0550ae;
219
+ }
220
+
221
+ pre .decorator,
222
+ pre .at {
223
+ color: #953800;
224
+ }
225
+
226
+ /* Blockquote */
227
+ blockquote {
228
+ margin: 0 0 16px;
229
+ padding: 0 1em;
230
+ color: var(--color-fg-muted);
231
+ border-left: 0.25em solid var(--color-border-default);
232
+ }
233
+
234
+ blockquote> :first-child {
235
+ margin-top: 0;
236
+ }
237
+
238
+ blockquote> :last-child {
239
+ margin-bottom: 0;
240
+ }
241
+
242
+ /* Table */
243
+ table {
244
+ width: 100%;
245
+ border-spacing: 0;
246
+ border-collapse: collapse;
247
+ margin-bottom: 16px;
248
+ }
249
+
250
+ th,
251
+ td {
252
+ padding: 6px 13px;
253
+ border: 1px solid var(--color-border-default);
254
+ }
255
+
256
+ th {
257
+ font-weight: 600;
258
+ background: var(--color-canvas-subtle);
259
+ }
260
+
261
+ tr:nth-child(2n) {
262
+ background: var(--color-canvas-subtle);
263
+ }
264
+
265
+ /* Divider */
266
+ hr {
267
+ height: 0.25em;
268
+ padding: 0;
269
+ margin: 24px 0;
270
+ background-color: var(--color-border-default);
271
+ border: 0;
272
+ }
273
+
274
+ /* Images */
275
+ img {
276
+ max-width: 100%;
277
+ box-sizing: content-box;
278
+ }
279
+
280
+ /* Print Styles */
281
+ @media print {
282
+ body {
283
+ background: white;
284
+ }
285
+
286
+ .document {
287
+ max-width: none;
288
+ margin: 0 auto;
289
+ padding: 0;
290
+ }
291
+
292
+ h1,
293
+ h2,
294
+ h3,
295
+ h4 {
296
+ page-break-after: avoid;
297
+ }
298
+
299
+ pre,
300
+ blockquote,
301
+ table,
302
+ figure {
303
+ page-break-inside: avoid;
304
+ }
305
+
306
+ pre {
307
+ background: var(--color-canvas-subtle) !important;
308
+ -webkit-print-color-adjust: exact;
309
+ print-color-adjust: exact;
310
+ }
311
+ }
312
+ </style>
313
+ {{styles}}
314
+ </head>
315
+
316
+ <body>
317
+ <main class="document">
318
+ <article class="markdown-body">
319
+ {{body}}
320
+ </article>
321
+ </main>
322
+
323
+
324
+ </body>
325
+
326
+ </html>