dsh-design-studio 0.9.0 → 0.11.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.
- package/README.en.md +6 -4
- package/README.md +6 -4
- package/assets/demo.gif +0 -0
- package/assets/hero-sm.jpg +0 -0
- package/cordis.patch.yml +5 -0
- package/gallery-seed/d/orderg-x__alley-noodles/08e9e40834f9/_shots/menu.jpg +0 -0
- package/gallery-seed/d/orderg-x__alley-noodles/08e9e40834f9/app.css +64 -0
- package/gallery-seed/d/orderg-x__alley-noodles/08e9e40834f9/cart.html +120 -0
- package/gallery-seed/d/orderg-x__alley-noodles/08e9e40834f9/design.json +56 -0
- package/gallery-seed/d/orderg-x__alley-noodles/08e9e40834f9/menu.html +200 -0
- package/gallery-seed/d/orderg-x__alley-noodles/08e9e40834f9/order.html +135 -0
- package/gallery-seed/d/orderg-x__alley-noodles/08e9e40834f9/tokens.css +43 -0
- package/gallery-seed/d/orderg-x__autumn-sale/08e9e40834f9/_shots/email.jpg +0 -0
- package/gallery-seed/d/orderg-x__autumn-sale/08e9e40834f9/design.json +20 -0
- package/gallery-seed/d/orderg-x__autumn-sale/08e9e40834f9/email.html +268 -0
- package/gallery-seed/d/orderg-x__little-painter/08e9e40834f9/_shots/courses.jpg +0 -0
- package/gallery-seed/d/orderg-x__little-painter/08e9e40834f9/courses.html +364 -0
- package/gallery-seed/d/orderg-x__little-painter/08e9e40834f9/design.json +49 -0
- package/gallery-seed/d/orderg-x__little-painter/08e9e40834f9/lesson.html +196 -0
- package/gallery-seed/d/orderg-x__little-painter/08e9e40834f9/tokens.css +55 -0
- package/gallery-seed/d/orderg-x__little-painter/08e9e40834f9/ui.css +255 -0
- package/gallery-seed/d/orderg-x__moon-fair/08e9e40834f9/_shots/poster.jpg +0 -0
- package/gallery-seed/d/orderg-x__moon-fair/08e9e40834f9/design.json +21 -0
- package/gallery-seed/d/orderg-x__moon-fair/08e9e40834f9/poster.html +165 -0
- package/gallery-seed/d/orderg-x__moon-fair/08e9e40834f9/tokens.css +35 -0
- package/gallery-seed/d/orderg-x__paw-diary/08e9e40834f9/_shots/home.jpg +0 -0
- package/gallery-seed/d/orderg-x__paw-diary/08e9e40834f9/app.css +155 -0
- package/gallery-seed/d/orderg-x__paw-diary/08e9e40834f9/booking.html +232 -0
- package/gallery-seed/d/orderg-x__paw-diary/08e9e40834f9/design.json +57 -0
- package/gallery-seed/d/orderg-x__paw-diary/08e9e40834f9/health.html +221 -0
- package/gallery-seed/d/orderg-x__paw-diary/08e9e40834f9/home.html +225 -0
- package/gallery-seed/d/orderg-x__paw-diary/08e9e40834f9/tokens.css +54 -0
- package/gallery-seed/d/orderg-x__pocket-ledger/08e9e40834f9/_shots/overview.jpg +0 -0
- package/gallery-seed/d/orderg-x__pocket-ledger/08e9e40834f9/app.css +79 -0
- package/gallery-seed/d/orderg-x__pocket-ledger/08e9e40834f9/design.json +51 -0
- package/gallery-seed/d/orderg-x__pocket-ledger/08e9e40834f9/entries.html +161 -0
- package/gallery-seed/d/orderg-x__pocket-ledger/08e9e40834f9/icons.svg +30 -0
- package/gallery-seed/d/orderg-x__pocket-ledger/08e9e40834f9/overview.html +181 -0
- package/gallery-seed/d/orderg-x__pocket-ledger/08e9e40834f9/tokens.css +50 -0
- package/gallery-seed/d/orderg-x__time-bookshop/08e9e40834f9/_shots/home.jpg +0 -0
- package/gallery-seed/d/orderg-x__time-bookshop/08e9e40834f9/book.html +279 -0
- package/gallery-seed/d/orderg-x__time-bookshop/08e9e40834f9/design.json +21 -0
- package/gallery-seed/d/orderg-x__time-bookshop/08e9e40834f9/home.html +348 -0
- package/gallery-seed/d/orderg-x__time-bookshop/08e9e40834f9/style.css +297 -0
- package/gallery-seed/d/orderg-x__time-bookshop/08e9e40834f9/tokens.css +49 -0
- package/gallery-seed/d/orderg-x__year-review/08e9e40834f9/01-cover.html +133 -0
- package/gallery-seed/d/orderg-x__year-review/08e9e40834f9/02-highlights.html +67 -0
- package/gallery-seed/d/orderg-x__year-review/08e9e40834f9/03-growth.html +89 -0
- package/gallery-seed/d/orderg-x__year-review/08e9e40834f9/04-milestones.html +92 -0
- package/gallery-seed/d/orderg-x__year-review/08e9e40834f9/05-next.html +99 -0
- package/gallery-seed/d/orderg-x__year-review/08e9e40834f9/06-thanks.html +61 -0
- package/gallery-seed/d/orderg-x__year-review/08e9e40834f9/_shots/01-cover.jpg +0 -0
- package/gallery-seed/d/orderg-x__year-review/08e9e40834f9/deck.css +67 -0
- package/gallery-seed/d/orderg-x__year-review/08e9e40834f9/design.json +25 -0
- package/gallery-seed/d/orderg-x__year-review/08e9e40834f9/tokens.css +30 -0
- package/gallery-seed/index.json +1 -0
- package/gallery-seed/thumbs/orderg-x__alley-noodles.webp +0 -0
- package/gallery-seed/thumbs/orderg-x__autumn-sale.webp +0 -0
- package/gallery-seed/thumbs/orderg-x__little-painter.webp +0 -0
- package/gallery-seed/thumbs/orderg-x__moon-fair.webp +0 -0
- package/gallery-seed/thumbs/orderg-x__paw-diary.webp +0 -0
- package/gallery-seed/thumbs/orderg-x__pocket-ledger.webp +0 -0
- package/gallery-seed/thumbs/orderg-x__time-bookshop.webp +0 -0
- package/gallery-seed/thumbs/orderg-x__year-review.webp +0 -0
- package/lib/browser.js +23 -9
- package/lib/bundle.js +12 -3
- package/lib/client.js +3106 -111
- package/lib/core.js +44 -11
- package/lib/gallery/css.js +230 -0
- package/lib/gallery/html.js +313 -0
- package/lib/gallery/index.js +22 -0
- package/lib/gallery/market-routes.js +306 -0
- package/lib/gallery/market.js +623 -0
- package/lib/gallery/pack.js +311 -0
- package/lib/gallery/policy.js +1560 -0
- package/lib/gallery/qrfind.js +181 -0
- package/lib/gallery/render.js +148 -0
- package/lib/gallery/routes.js +360 -0
- package/lib/gallery/tar.js +118 -0
- package/lib/gallery/use.js +125 -0
- package/lib/gallery/zip.js +212 -0
- package/lib/handoff.js +291 -29
- package/lib/history.js +3 -1
- package/lib/index.js +118 -24
- package/lib/inspire.js +142 -0
- package/lib/offline.js +17 -0
- package/lib/picker.js +425 -32
- package/lib/serve.js +88 -11
- package/lib/works.js +238 -0
- package/locale/en.json +2 -1
- package/locale/offline/en.json +6 -0
- package/locale/offline/zh.json +6 -0
- package/locale/zh.json +2 -1
- package/package.json +10 -3
- package/skills/ui-design/SKILL.md +9 -0
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="zh">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<meta name="dsh-design" content="web">
|
|
7
|
+
<title>首页 · 拾光书店</title>
|
|
8
|
+
<link rel="stylesheet" href="tokens.css">
|
|
9
|
+
<link rel="stylesheet" href="style.css">
|
|
10
|
+
</head>
|
|
11
|
+
<body>
|
|
12
|
+
|
|
13
|
+
<div class="strip">
|
|
14
|
+
<div class="wrap">
|
|
15
|
+
<span class="num">第 38 期 · 2026 年 11 月号</span>
|
|
16
|
+
<span class="open"><i></i>今日营业 10:00 – 22:00 · 二楼咖啡角开放</span>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
|
|
20
|
+
<header class="mast">
|
|
21
|
+
<div class="wrap">
|
|
22
|
+
<div class="mast-row">
|
|
23
|
+
<p class="mast-side">在梧桐巷卖书的<br>第十一年</p>
|
|
24
|
+
<a class="logo" href="home.html">拾光书店</a>
|
|
25
|
+
<p class="mast-side r">SHIGUANG<br>BOOKS · 2015</p>
|
|
26
|
+
</div>
|
|
27
|
+
<nav class="mast-nav" aria-label="栏目">
|
|
28
|
+
<a href="#feature">本月主推</a>
|
|
29
|
+
<a href="#new">新书上架</a>
|
|
30
|
+
<a href="#picks">店员推荐</a>
|
|
31
|
+
<a href="#events">读书会</a>
|
|
32
|
+
<a href="#visit">到店</a>
|
|
33
|
+
<a class="end" href="book.html">我的书单 <span class="count num">2</span></a>
|
|
34
|
+
</nav>
|
|
35
|
+
</div>
|
|
36
|
+
</header>
|
|
37
|
+
|
|
38
|
+
<main>
|
|
39
|
+
<section id="feature" class="wrap feature" aria-label="本月主推">
|
|
40
|
+
<figure class="feature-cover">
|
|
41
|
+
<a href="book.html" aria-label="查看《雾港来信》">
|
|
42
|
+
<svg class="cover" viewBox="0 0 400 600" role="img" aria-label="《雾港来信》封面:雾里的灯塔和海上漂着的一封信">
|
|
43
|
+
<defs>
|
|
44
|
+
<linearGradient id="fogA" x1="0" y1="0" x2="0" y2="1"><stop offset="0" stop-color="#EEEBE4"/><stop offset="1" stop-color="#C8C4BA"/></linearGradient>
|
|
45
|
+
<pattern id="seaA" width="10" height="7" patternUnits="userSpaceOnUse"><path d="M0 3.5h10" stroke="#E8E4DA" stroke-width=".8" opacity=".28"/></pattern>
|
|
46
|
+
</defs>
|
|
47
|
+
<rect width="400" height="600" fill="url(#fogA)"/>
|
|
48
|
+
<path d="M0 392 C60 372 110 384 160 368 S260 352 310 364 S380 372 400 362 V430 H0Z" fill="#B7B3AA"/>
|
|
49
|
+
<path d="M128 266 L400 214 L400 322Z" fill="#FFFFFF" opacity=".5"/>
|
|
50
|
+
<path d="M98 430 L110 284 H134 L146 430Z" fill="#161616"/>
|
|
51
|
+
<path d="M106 334 H138 M103 382 H141" stroke="#EEEBE4" stroke-width="7"/>
|
|
52
|
+
<rect x="106" y="264" width="32" height="20" fill="#161616"/>
|
|
53
|
+
<rect x="113" y="268" width="18" height="12" fill="#F6F3EC"/>
|
|
54
|
+
<path d="M101 264 L122 244 L143 264Z" fill="#161616"/>
|
|
55
|
+
<rect y="426" width="400" height="174" fill="#25292C"/>
|
|
56
|
+
<rect y="426" width="400" height="174" fill="url(#seaA)"/>
|
|
57
|
+
<rect y="300" width="400" height="30" fill="#FFFFFF" opacity=".42"/>
|
|
58
|
+
<rect y="346" width="400" height="12" fill="#FFFFFF" opacity=".32"/>
|
|
59
|
+
<rect y="410" width="400" height="26" fill="#FFFFFF" opacity=".26"/>
|
|
60
|
+
<g transform="translate(46 474) rotate(-7)">
|
|
61
|
+
<rect width="128" height="80" fill="#F3EFE6"/>
|
|
62
|
+
<path d="M0 0 L64 46 L128 0" fill="none" stroke="#161616" stroke-width="2"/>
|
|
63
|
+
<rect x="98" y="10" width="20" height="24" fill="none" stroke="#161616" stroke-width="1.5" stroke-dasharray="2.5 2"/>
|
|
64
|
+
</g>
|
|
65
|
+
<text x="346" y="64" font-family="'Songti SC', 'Noto Serif SC', serif" font-weight="900" font-size="56" fill="#111111" style="writing-mode: vertical-rl; letter-spacing: 10px">雾港来信</text>
|
|
66
|
+
<text x="290" y="68" font-family="'Songti SC', 'Noto Serif SC', serif" font-size="16" fill="#111111" style="writing-mode: vertical-rl; letter-spacing: 6px">沈栖 著</text>
|
|
67
|
+
<rect x="280" y="166" width="20" height="20" fill="#111111"/>
|
|
68
|
+
<text x="290" y="181" text-anchor="middle" font-family="'Songti SC', serif" font-weight="700" font-size="13" fill="#F3EFE6">栖</text>
|
|
69
|
+
<text x="200" y="574" text-anchor="middle" font-family="'Songti SC', serif" font-size="13" fill="#D8D3C8" letter-spacing="6">青岚出版社</text>
|
|
70
|
+
</svg>
|
|
71
|
+
</a>
|
|
72
|
+
<figcaption><span>精装 · 368 页</span><span>封面插画 / 周未</span></figcaption>
|
|
73
|
+
</figure>
|
|
74
|
+
|
|
75
|
+
<div class="feature-text">
|
|
76
|
+
<div class="top"><span class="kicker">本月主推</span><span class="label num">NO.11 · 长篇小说</span></div>
|
|
77
|
+
<h1>雾港来信</h1>
|
|
78
|
+
<p class="sub">一座港口城市,十二封没有寄出的信。</p>
|
|
79
|
+
<p class="byline"><span><b>沈栖</b> 著</span><span>青岚出版社</span><span class="num">2026 年 9 月</span></p>
|
|
80
|
+
<p class="lead">雾港的人习惯把话留到第二天再说。直到她在邮局阁楼里找到一只铁皮盒子:十二封信,贴好了邮票,写好了地址,一封也没有寄出去。沈栖用十二个月、十二封信,慢慢拼出一座城、一家人没说出口的那部分。</p>
|
|
81
|
+
<div class="pull">
|
|
82
|
+
<span class="mark" aria-hidden="true">「</span>
|
|
83
|
+
<div>
|
|
84
|
+
<blockquote>雾是从海上来的。每年十一月,它总在傍晚六点漫过防波堤,先吞掉灯塔的底座,再吞掉码头上那排生锈的铁桩。」</blockquote>
|
|
85
|
+
<cite>摘自第一封信 · 第 3 页</cite>
|
|
86
|
+
</div>
|
|
87
|
+
</div>
|
|
88
|
+
<div class="buy">
|
|
89
|
+
<div class="price"><b class="num"><small>¥</small>58</b><s class="num">¥68</s><span>店内价</span></div>
|
|
90
|
+
<div class="acts">
|
|
91
|
+
<a class="btn btn-line" href="book.html">加入书单</a>
|
|
92
|
+
<a class="btn btn-dark" href="book.html">读书摘与书评 →</a>
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
95
|
+
</div>
|
|
96
|
+
</section>
|
|
97
|
+
|
|
98
|
+
<section id="new" class="wrap sec" aria-labelledby="new-title">
|
|
99
|
+
<div class="sec-head">
|
|
100
|
+
<h2 id="new-title">新书上架</h2>
|
|
101
|
+
<p>本周到店 23 种。挑了五本放在门口的长桌上,翻开看看。</p>
|
|
102
|
+
<a class="more" href="#new">全部新书 →</a>
|
|
103
|
+
</div>
|
|
104
|
+
<ul class="shelf">
|
|
105
|
+
<li>
|
|
106
|
+
<a class="book" href="book.html">
|
|
107
|
+
<svg class="cover" viewBox="0 0 200 300" role="img" aria-label="《慢车去北方》封面">
|
|
108
|
+
<rect width="200" height="300" fill="#C99A4A"/>
|
|
109
|
+
<circle cx="148" cy="150" r="32" fill="#F1E3C6"/>
|
|
110
|
+
<rect y="196" width="200" height="104" fill="#8E6B30"/>
|
|
111
|
+
<path d="M0 240 H200 M0 262 H200 M0 282 H200" stroke="#A47D3B" stroke-width="1"/>
|
|
112
|
+
<path d="M0 196 H200" stroke="#111111" stroke-width="1.5"/>
|
|
113
|
+
<g fill="#111111"><rect x="16" y="182" width="32" height="12"/><rect x="51" y="182" width="32" height="12"/><rect x="86" y="182" width="32" height="12"/><rect x="121" y="178" width="22" height="16"/></g>
|
|
114
|
+
<path d="M172 146 V196 M165 153 H179 M190 158 V196" stroke="#111111" stroke-width="1.2"/>
|
|
115
|
+
<text x="18" y="54" font-family="'Songti SC', serif" font-weight="900" font-size="30" fill="#111111">慢车</text>
|
|
116
|
+
<text x="18" y="90" font-family="'Songti SC', serif" font-weight="900" font-size="30" fill="#111111">去北方</text>
|
|
117
|
+
<text x="18" y="114" font-family="'Songti SC', serif" font-size="10" fill="#111111" letter-spacing="2">陆远山 著</text>
|
|
118
|
+
</svg>
|
|
119
|
+
<span class="cat">游记</span>
|
|
120
|
+
<h3>慢车去北方</h3>
|
|
121
|
+
<p class="by">陆远山 著</p>
|
|
122
|
+
<p class="pr num"><b>¥56</b><span class="muted">平装 · 296 页</span></p>
|
|
123
|
+
</a>
|
|
124
|
+
</li>
|
|
125
|
+
<li>
|
|
126
|
+
<a class="book" href="book.html">
|
|
127
|
+
<svg class="cover" viewBox="0 0 200 300" role="img" aria-label="《纸上植物志》封面">
|
|
128
|
+
<rect width="200" height="300" fill="#EEE7D7"/>
|
|
129
|
+
<path d="M94 246 C97 196 102 146 118 70" fill="none" stroke="#4E5A40" stroke-width="2"/>
|
|
130
|
+
<g fill="#5E6B4E">
|
|
131
|
+
<ellipse cx="80" cy="200" rx="26" ry="10" transform="rotate(-28 80 200)"/>
|
|
132
|
+
<ellipse cx="124" cy="176" rx="24" ry="9" transform="rotate(24 124 176)"/>
|
|
133
|
+
<ellipse cx="84" cy="146" rx="22" ry="8" transform="rotate(-36 84 146)"/>
|
|
134
|
+
<ellipse cx="128" cy="118" rx="20" ry="8" transform="rotate(30 128 118)"/>
|
|
135
|
+
<ellipse cx="104" cy="92" rx="16" ry="7" transform="rotate(-50 104 92)"/>
|
|
136
|
+
</g>
|
|
137
|
+
<path d="M150 238 C150 224 160 214 172 214 C172 228 164 238 150 238Z M150 238 C140 230 136 220 138 210 C148 214 152 226 150 238Z" fill="#B88A3E"/>
|
|
138
|
+
<path d="M150 238 V256" stroke="#B88A3E" stroke-width="1.5"/>
|
|
139
|
+
<text x="20" y="40" font-family="'Songti SC', serif" font-size="10" fill="#4E5A40" letter-spacing="3">许枝 绘著</text>
|
|
140
|
+
<text x="20" y="282" font-family="'Songti SC', serif" font-weight="900" font-size="24" fill="#2D3326" letter-spacing="2">纸上植物志</text>
|
|
141
|
+
</svg>
|
|
142
|
+
<span class="cat">自然 · 手绘</span>
|
|
143
|
+
<h3>纸上植物志</h3>
|
|
144
|
+
<p class="by">许枝 绘著</p>
|
|
145
|
+
<p class="pr num"><b>¥88</b><span class="muted">精装 · 彩印</span></p>
|
|
146
|
+
</a>
|
|
147
|
+
</li>
|
|
148
|
+
<li>
|
|
149
|
+
<a class="book" href="book.html">
|
|
150
|
+
<svg class="cover" viewBox="0 0 200 300" role="img" aria-label="《盐与灯塔》封面">
|
|
151
|
+
<rect width="200" height="300" fill="#22324A"/>
|
|
152
|
+
<circle cx="60" cy="86" r="22" fill="#E9E2D0"/>
|
|
153
|
+
<path d="M118 236 L126 132 H140 L148 236Z" fill="none" stroke="#E9E2D0" stroke-width="2"/>
|
|
154
|
+
<path d="M122 120 H144 V132 H122Z M126 120 L133 110 L140 120" fill="none" stroke="#E9E2D0" stroke-width="2"/>
|
|
155
|
+
<path d="M0 236 H200" stroke="#E9E2D0" stroke-width="1.5"/>
|
|
156
|
+
<path d="M10 252 q10 -6 20 0 t20 0 t20 0 M90 266 q10 -6 20 0 t20 0 t20 0 M30 282 q10 -6 20 0 t20 0" fill="none" stroke="#8FA0B4" stroke-width="1.2"/>
|
|
157
|
+
<text x="176" y="40" font-family="'Songti SC', serif" font-weight="900" font-size="26" fill="#E9E2D0" style="writing-mode: vertical-rl; letter-spacing: 4px">盐与灯塔</text>
|
|
158
|
+
<text x="152" y="42" font-family="'Songti SC', serif" font-size="10" fill="#C9D1DB" style="writing-mode: vertical-rl; letter-spacing: 2px">林望舒</text>
|
|
159
|
+
</svg>
|
|
160
|
+
<span class="cat">小说</span>
|
|
161
|
+
<h3>盐与灯塔</h3>
|
|
162
|
+
<p class="by">林望舒 著</p>
|
|
163
|
+
<p class="pr num"><b>¥49</b><span class="muted">平装 · 232 页</span></p>
|
|
164
|
+
</a>
|
|
165
|
+
</li>
|
|
166
|
+
<li>
|
|
167
|
+
<a class="book" href="book.html">
|
|
168
|
+
<svg class="cover" viewBox="0 0 200 300" role="img" aria-label="《夜航的鲸》封面">
|
|
169
|
+
<rect width="200" height="300" fill="#141414"/>
|
|
170
|
+
<g fill="#E9E2D0"><circle cx="34" cy="40" r="1.4"/><circle cx="70" cy="62" r="1"/><circle cx="150" cy="30" r="1.6"/><circle cx="172" cy="78" r="1"/><circle cx="120" cy="54" r="1"/><circle cx="24" cy="110" r="1"/><circle cx="96" cy="24" r="1.2"/></g>
|
|
171
|
+
<path d="M22 196 C40 160 96 150 136 166 C156 174 168 172 178 160 C176 176 168 186 156 190 C150 214 112 228 70 220 C44 214 28 206 22 196Z" fill="#E9E2D0"/>
|
|
172
|
+
<circle cx="60" cy="190" r="2.4" fill="#141414"/>
|
|
173
|
+
<path d="M0 238 H200" stroke="#E9E2D0" stroke-width=".8" opacity=".5"/>
|
|
174
|
+
<text x="20" y="270" font-family="'Songti SC', serif" font-weight="900" font-size="26" fill="#E9E2D0" letter-spacing="3">夜航的鲸</text>
|
|
175
|
+
<text x="20" y="288" font-family="'Songti SC', serif" font-size="10" fill="#B8B2A4" letter-spacing="2">周未 诗集</text>
|
|
176
|
+
</svg>
|
|
177
|
+
<span class="cat">诗集</span>
|
|
178
|
+
<h3>夜航的鲸</h3>
|
|
179
|
+
<p class="by">周未 著</p>
|
|
180
|
+
<p class="pr num"><b>¥42</b><span class="muted">锁线 · 160 页</span></p>
|
|
181
|
+
</a>
|
|
182
|
+
</li>
|
|
183
|
+
<li>
|
|
184
|
+
<a class="book" href="book.html">
|
|
185
|
+
<svg class="cover" viewBox="0 0 200 300" role="img" aria-label="《小城修表人》封面">
|
|
186
|
+
<rect width="200" height="300" fill="#E8E2D4"/>
|
|
187
|
+
<circle cx="100" cy="132" r="62" fill="#F7F4EC" stroke="#111111" stroke-width="2"/>
|
|
188
|
+
<circle cx="100" cy="132" r="54" fill="none" stroke="#111111" stroke-width=".8"/>
|
|
189
|
+
<path d="M100 82 V90 M100 174 V182 M50 132 H58 M142 132 H150 M75 89 l3 5 M122 175 l3 5 M57 107 l5 3 M138 154 l5 3 M125 89 l-3 5 M78 175 l-3 5 M143 107 l-5 3 M62 154 l-5 3" stroke="#111111" stroke-width="1.6"/>
|
|
190
|
+
<path d="M100 132 L100 96 M100 132 L126 146" stroke="#111111" stroke-width="2.4" stroke-linecap="round"/>
|
|
191
|
+
<circle cx="100" cy="132" r="3.5" fill="#111111"/>
|
|
192
|
+
<text x="100" y="244" text-anchor="middle" font-family="'Songti SC', serif" font-weight="900" font-size="26" fill="#111111" letter-spacing="2">小城修表人</text>
|
|
193
|
+
<text x="100" y="268" text-anchor="middle" font-family="'Songti SC', serif" font-size="10" fill="#444444" letter-spacing="3">苏迟 著</text>
|
|
194
|
+
</svg>
|
|
195
|
+
<span class="cat">非虚构</span>
|
|
196
|
+
<h3>小城修表人</h3>
|
|
197
|
+
<p class="by">苏迟 著</p>
|
|
198
|
+
<p class="pr num"><b>¥59</b><span class="muted">平装 · 312 页</span></p>
|
|
199
|
+
</a>
|
|
200
|
+
</li>
|
|
201
|
+
</ul>
|
|
202
|
+
</section>
|
|
203
|
+
|
|
204
|
+
<section id="picks" class="wrap sec" aria-labelledby="picks-title">
|
|
205
|
+
<div class="picks">
|
|
206
|
+
<div class="picks-side">
|
|
207
|
+
<h2 id="picks-title">店员推荐</h2>
|
|
208
|
+
<p>每周三更新。我们只写真心读完的书,每人每周一本。</p>
|
|
209
|
+
<ul class="staff">
|
|
210
|
+
<li><span class="av dark">禾</span><span>阿禾 · 文学区</span></li>
|
|
211
|
+
<li><span class="av paper">满</span><span>小满 · 自然与艺术</span></li>
|
|
212
|
+
<li><span class="av">周</span><span>老周 · 店长</span></li>
|
|
213
|
+
</ul>
|
|
214
|
+
</div>
|
|
215
|
+
<div class="notes">
|
|
216
|
+
<article class="note">
|
|
217
|
+
<p class="q">写守塔人的一年,几乎没有情节,却让人一页一页舍不得放下。适合睡前读二十页,然后关灯。</p>
|
|
218
|
+
<a class="src" href="book.html">
|
|
219
|
+
<svg class="cover" viewBox="0 0 200 300" aria-hidden="true"><rect width="200" height="300" fill="#22324A"/><circle cx="60" cy="86" r="22" fill="#E9E2D0"/><path d="M118 236 L126 132 H140 L148 236Z" fill="none" stroke="#E9E2D0" stroke-width="5"/><path d="M0 236 H200" stroke="#E9E2D0" stroke-width="4"/></svg>
|
|
220
|
+
<span><b>盐与灯塔</b><span>阿禾 推荐 · 11 月 4 日</span></span>
|
|
221
|
+
</a>
|
|
222
|
+
</article>
|
|
223
|
+
<article class="note">
|
|
224
|
+
<p class="q">作者在阳台上种了七年植物,也画了七年。每一页都闻得到泥土味,送给不怎么读书的朋友也合适。</p>
|
|
225
|
+
<a class="src" href="book.html">
|
|
226
|
+
<svg class="cover" viewBox="0 0 200 300" aria-hidden="true"><rect width="200" height="300" fill="#EEE7D7"/><path d="M92 270 C96 210 100 150 118 70" fill="none" stroke="#4E5A40" stroke-width="5"/><g fill="#5E6B4E"><ellipse cx="80" cy="200" rx="30" ry="12" transform="rotate(-28 80 200)"/><ellipse cx="124" cy="160" rx="28" ry="11" transform="rotate(24 124 160)"/><ellipse cx="96" cy="112" rx="24" ry="10" transform="rotate(-40 96 112)"/></g></svg>
|
|
227
|
+
<span><b>纸上植物志</b><span>小满 推荐 · 11 月 4 日</span></span>
|
|
228
|
+
</a>
|
|
229
|
+
</article>
|
|
230
|
+
<article class="note">
|
|
231
|
+
<p class="q">一趟三十六小时的绿皮车,十一个陌生人。店里推荐了两年,还是被问得最多的那本游记。</p>
|
|
232
|
+
<a class="src" href="book.html">
|
|
233
|
+
<svg class="cover" viewBox="0 0 200 300" aria-hidden="true"><rect width="200" height="300" fill="#C99A4A"/><circle cx="148" cy="150" r="32" fill="#F1E3C6"/><rect y="196" width="200" height="104" fill="#8E6B30"/><g fill="#111111"><rect x="16" y="178" width="40" height="16"/><rect x="62" y="178" width="40" height="16"/><rect x="108" y="174" width="28" height="20"/></g></svg>
|
|
234
|
+
<span><b>慢车去北方</b><span>老周 推荐 · 10 月 28 日</span></span>
|
|
235
|
+
</a>
|
|
236
|
+
</article>
|
|
237
|
+
</div>
|
|
238
|
+
</div>
|
|
239
|
+
</section>
|
|
240
|
+
|
|
241
|
+
<section id="events" class="wrap sec" aria-labelledby="events-title">
|
|
242
|
+
<div class="events">
|
|
243
|
+
<div class="events-side">
|
|
244
|
+
<h2 id="events-title">读书会</h2>
|
|
245
|
+
<p>每月三场,在二楼长桌。名额有限,报名后到店报名字签到即可。</p>
|
|
246
|
+
<a class="more" href="#events">往期回顾 →</a>
|
|
247
|
+
</div>
|
|
248
|
+
<ol>
|
|
249
|
+
<li class="ev">
|
|
250
|
+
<div class="date"><b class="num">15</b><span>11 月 · 周六</span></div>
|
|
251
|
+
<div>
|
|
252
|
+
<h3>《雾港来信》共读夜:雾、信与等待</h3>
|
|
253
|
+
<p>读完第一到第四封信再来。作者沈栖会线上连线半小时,回答大家的问题。</p>
|
|
254
|
+
<div class="meta num"><span>19:30 – 21:00</span><span>二楼长桌</span><span>主持 阿禾</span></div>
|
|
255
|
+
</div>
|
|
256
|
+
<div class="act"><a class="btn btn-line" href="book.html">报名</a><small>余 <b>6</b> 席</small></div>
|
|
257
|
+
</li>
|
|
258
|
+
<li class="ev">
|
|
259
|
+
<div class="date"><b class="num">22</b><span>11 月 · 周六</span></div>
|
|
260
|
+
<div>
|
|
261
|
+
<h3>植物手帐工作坊</h3>
|
|
262
|
+
<p>跟《纸上植物志》的作者许枝一起,用一下午画一片银杏叶。纸和颜料店里准备。</p>
|
|
263
|
+
<div class="meta num"><span>15:00 – 17:30</span><span>一楼窗边</span><span>材料费 ¥30</span></div>
|
|
264
|
+
</div>
|
|
265
|
+
<div class="act"><a class="btn btn-line" href="#events">报名</a><small>余 <b>2</b> 席</small></div>
|
|
266
|
+
</li>
|
|
267
|
+
<li class="ev">
|
|
268
|
+
<div class="date"><b class="num">29</b><span>11 月 · 周六</span></div>
|
|
269
|
+
<div>
|
|
270
|
+
<h3>旧书交换夜</h3>
|
|
271
|
+
<p>带一本你读过、愿意送出去的书,夹一张写给下一位读者的便签,换一本别人的。</p>
|
|
272
|
+
<div class="meta num"><span>19:00 – 21:30</span><span>全店</span><span>免费 · 不限名额</span></div>
|
|
273
|
+
</div>
|
|
274
|
+
<div class="act"><a class="btn btn-line" href="#events">提醒我</a><small>已有 <b>41</b> 人</small></div>
|
|
275
|
+
</li>
|
|
276
|
+
</ol>
|
|
277
|
+
</div>
|
|
278
|
+
</section>
|
|
279
|
+
|
|
280
|
+
<section id="visit" class="visit" aria-labelledby="visit-title">
|
|
281
|
+
<div class="wrap">
|
|
282
|
+
<div class="visit-col">
|
|
283
|
+
<h2 id="visit-title">到店</h2>
|
|
284
|
+
<h3>营业时间</h3>
|
|
285
|
+
<table class="hours">
|
|
286
|
+
<tr><td>周一至周四</td><td>10:00 – 21:00</td></tr>
|
|
287
|
+
<tr><td>周五至周日</td><td>10:00 – 22:00</td></tr>
|
|
288
|
+
<tr><td>每月第一个周一</td><td>店休整理</td></tr>
|
|
289
|
+
</table>
|
|
290
|
+
</div>
|
|
291
|
+
<div class="visit-col">
|
|
292
|
+
<h3>地址</h3>
|
|
293
|
+
<p>梧桐巷 17 号,老邮局对面</p>
|
|
294
|
+
<h3>怎么来</h3>
|
|
295
|
+
<p>南门站 B 口出,沿梧桐巷步行约 6 分钟</p>
|
|
296
|
+
<h3>店里有</h3>
|
|
297
|
+
<p>二楼咖啡角,可以带书入座<br>包书皮 · 代寻绝版书 · 寄存</p>
|
|
298
|
+
</div>
|
|
299
|
+
<div class="map">
|
|
300
|
+
<svg viewBox="0 0 640 340" role="img" aria-label="手绘地图:从南门站 B 口沿梧桐巷步行到拾光书店">
|
|
301
|
+
<rect width="640" height="340" fill="#FFFFFF"/>
|
|
302
|
+
<defs><pattern id="riverA" width="12" height="12" patternUnits="userSpaceOnUse" patternTransform="rotate(-20)"><path d="M0 6h12" stroke="#111111" stroke-width=".6" opacity=".35"/></pattern></defs>
|
|
303
|
+
<path d="M0 268 C120 250 220 300 340 286 S540 250 640 270 V340 H0Z" fill="url(#riverA)"/>
|
|
304
|
+
<path d="M0 268 C120 250 220 300 340 286 S540 250 640 270" fill="none" stroke="#111111" stroke-width="1"/>
|
|
305
|
+
<g fill="#EAE5DA">
|
|
306
|
+
<rect x="40" y="40" width="150" height="80"/><rect x="230" y="40" width="120" height="80"/><rect x="390" y="40" width="200" height="80"/>
|
|
307
|
+
<rect x="40" y="160" width="150" height="70"/><rect x="390" y="160" width="90" height="70"/><rect x="520" y="160" width="70" height="70"/>
|
|
308
|
+
</g>
|
|
309
|
+
<path d="M0 140 H640 M210 0 V250 M370 0 V255 M500 140 V250" stroke="#111111" stroke-width="2"/>
|
|
310
|
+
<path d="M230 160 H350 V230 H230Z" fill="#F4F1EA" stroke="#111111" stroke-width="1"/>
|
|
311
|
+
<text x="290" y="200" text-anchor="middle" font-family="'PingFang SC', sans-serif" font-size="12" fill="#555555">老邮局</text>
|
|
312
|
+
<text x="104" y="134" font-family="'PingFang SC', sans-serif" font-size="12" fill="#111111">梧桐巷</text>
|
|
313
|
+
<text x="222" y="30" font-family="'PingFang SC', sans-serif" font-size="12" fill="#111111" style="writing-mode: vertical-rl">南门大街</text>
|
|
314
|
+
<text x="520" y="300" font-family="'PingFang SC', sans-serif" font-size="12" fill="#111111">河滨步道</text>
|
|
315
|
+
<circle cx="70" cy="140" r="11" fill="#111111"/>
|
|
316
|
+
<text x="70" y="144" text-anchor="middle" font-family="'PingFang SC', sans-serif" font-weight="600" font-size="11" fill="#FFFFFF">B</text>
|
|
317
|
+
<text x="52" y="104" font-family="'PingFang SC', sans-serif" font-size="12" fill="#111111">南门站</text>
|
|
318
|
+
<path d="M84 140 H418" stroke="#C8231B" stroke-width="2" stroke-dasharray="5 5"/>
|
|
319
|
+
<circle cx="430" cy="140" r="9" fill="#C8231B"/>
|
|
320
|
+
<circle cx="430" cy="140" r="3.5" fill="#FFFFFF"/>
|
|
321
|
+
<rect x="400" y="86" width="96" height="30" fill="#111111"/>
|
|
322
|
+
<text x="448" y="106" text-anchor="middle" font-family="'Songti SC', serif" font-weight="700" font-size="14" fill="#F4F1EA">拾光书店</text>
|
|
323
|
+
<path d="M430 116 V128" stroke="#111111" stroke-width="1.5"/>
|
|
324
|
+
<text x="250" y="160" font-family="'PingFang SC', sans-serif" font-size="11" fill="#C8231B" dy="-26">步行约 6 分钟</text>
|
|
325
|
+
<g transform="translate(598 300)"><path d="M0 -18 L6 0 L0 -4 L-6 0Z" fill="#111111"/><text y="16" text-anchor="middle" font-family="'PingFang SC', sans-serif" font-size="11" fill="#111111">北</text></g>
|
|
326
|
+
</svg>
|
|
327
|
+
</div>
|
|
328
|
+
</div>
|
|
329
|
+
</section>
|
|
330
|
+
</main>
|
|
331
|
+
|
|
332
|
+
<footer class="foot">
|
|
333
|
+
<div class="wrap">
|
|
334
|
+
<div class="foot-grid">
|
|
335
|
+
<div>
|
|
336
|
+
<a class="logo" href="home.html">拾光书店</a>
|
|
337
|
+
<p>每月一期《拾光》店刊,记下这个月读到的好书和来过的人,到店免费取阅。</p>
|
|
338
|
+
</div>
|
|
339
|
+
<div><h4>逛书店</h4><ul><li><a href="#feature">本月主推</a></li><li><a href="#new">新书上架</a></li><li><a href="#picks">店员推荐</a></li><li><a href="#events">读书会</a></li></ul></div>
|
|
340
|
+
<div><h4>关于</h4><ul><li><a href="#visit">到店指南</a></li><li><a href="#">我们的故事</a></li><li><a href="#">店员们</a></li><li><a href="#">合作与寄售</a></li></ul></div>
|
|
341
|
+
<div><h4>这周在读</h4><ul><li><a href="book.html">《雾港来信》</a></li><li><a href="book.html">《盐与灯塔》</a></li><li><a href="book.html">《小城修表人》</a></li></ul></div>
|
|
342
|
+
</div>
|
|
343
|
+
<div class="foot-base"><span>© 2026 拾光书店 · 梧桐巷 17 号</span><span>书是慢慢读的,店也是慢慢开的。</span></div>
|
|
344
|
+
</div>
|
|
345
|
+
</footer>
|
|
346
|
+
|
|
347
|
+
</body>
|
|
348
|
+
</html>
|