chore: baseline V8.10.0-dev.1 with v8_workflows type-mapping fix and trade-pro spec
- SiteForge Enterprise V8.10.0-dev.1 upstream source (210 tests) - Fix: v8_workflows._mapped_input now reads both 类型/分类 columns so WXR imports keep post/product types instead of collapsing to page - Docs: trade-pro theme port spec (R3) and implementation plan Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
{
|
||||
"id": "minimal",
|
||||
"name": "极简创意",
|
||||
"description": "奶油白和纯黑,编辑式排版与作品展示",
|
||||
"version": "0.3.0",
|
||||
"style": "editorial",
|
||||
"entry": "site.html",
|
||||
"styles": [
|
||||
"theme.css",
|
||||
"blocks.css"
|
||||
],
|
||||
"page_templates": [
|
||||
"home",
|
||||
"about",
|
||||
"contact",
|
||||
"listing",
|
||||
"product",
|
||||
"article",
|
||||
"brand",
|
||||
"standard",
|
||||
"notfound"
|
||||
],
|
||||
"blocks": [
|
||||
"hero",
|
||||
"richtext",
|
||||
"features",
|
||||
"stats",
|
||||
"collection",
|
||||
"image_text",
|
||||
"gallery",
|
||||
"faq",
|
||||
"cta",
|
||||
"attributes",
|
||||
"spacer"
|
||||
],
|
||||
"responsive": true,
|
||||
"auto_binding": true
|
||||
}
|
||||
@@ -0,0 +1,233 @@
|
||||
{
|
||||
"home": [
|
||||
{
|
||||
"id": "612f6ea910",
|
||||
"type": "hero",
|
||||
"visible": true,
|
||||
"title": "少即是多,体验至上",
|
||||
"subtitle": "DESIGN THAT MATTERS",
|
||||
"description": "{{site.tagline}}",
|
||||
"button": "探索作品",
|
||||
"href": "/product/",
|
||||
"align": "left"
|
||||
},
|
||||
{
|
||||
"id": "a448a548e5",
|
||||
"type": "image_text",
|
||||
"visible": true,
|
||||
"title": "设计不止于外观",
|
||||
"subtitle": "OUR PHILOSOPHY",
|
||||
"description": "展示业务流程和服务理念。",
|
||||
"image": "",
|
||||
"image_side": "right",
|
||||
"button": "了解更多",
|
||||
"href": "/about/"
|
||||
},
|
||||
{
|
||||
"id": "8a2f9a939b",
|
||||
"type": "collection",
|
||||
"visible": true,
|
||||
"title": "精选项目",
|
||||
"subtitle": "SELECTED WORK",
|
||||
"source": "case",
|
||||
"limit": 6,
|
||||
"columns": 3,
|
||||
"button": "查看全部",
|
||||
"href": "/product/"
|
||||
},
|
||||
{
|
||||
"id": "e27cec0c11",
|
||||
"type": "gallery",
|
||||
"visible": true,
|
||||
"title": "视觉记录",
|
||||
"images": [],
|
||||
"columns": 3
|
||||
},
|
||||
{
|
||||
"id": "2bb8c1f33e",
|
||||
"type": "cta",
|
||||
"visible": true,
|
||||
"title": "有一个新的想法?",
|
||||
"subtitle": "告诉我们您的需求,我们将提供适合的方案。",
|
||||
"button": "联系我们",
|
||||
"href": "/contact/"
|
||||
}
|
||||
],
|
||||
"about": [
|
||||
{
|
||||
"id": "35e7b20667",
|
||||
"type": "image_text",
|
||||
"visible": true,
|
||||
"title": "认识我们",
|
||||
"subtitle": "OUR APPROACH",
|
||||
"description": "展示业务流程和服务理念。",
|
||||
"image": "",
|
||||
"image_side": "right",
|
||||
"button": "了解更多",
|
||||
"href": "/about/"
|
||||
},
|
||||
{
|
||||
"id": "61ff3a5f5c",
|
||||
"type": "stats",
|
||||
"visible": true,
|
||||
"title": "我们的实力",
|
||||
"items": [
|
||||
{
|
||||
"value": "50,000+",
|
||||
"label": "服务案例"
|
||||
},
|
||||
{
|
||||
"value": "70+",
|
||||
"label": "市场覆盖"
|
||||
},
|
||||
{
|
||||
"value": "30+",
|
||||
"label": "合作伙伴"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "8bceb456e8",
|
||||
"type": "features",
|
||||
"visible": true,
|
||||
"title": "我们的优势",
|
||||
"items": [
|
||||
{
|
||||
"title": "专业服务",
|
||||
"text": "从咨询到交付"
|
||||
},
|
||||
{
|
||||
"title": "品质保障",
|
||||
"text": "严格的质量流程"
|
||||
},
|
||||
{
|
||||
"title": "全球网络",
|
||||
"text": "连接不同市场"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"contact": [
|
||||
{
|
||||
"id": "a6a53010e6",
|
||||
"type": "richtext",
|
||||
"visible": true,
|
||||
"title": "联系我们",
|
||||
"body": "<p>请填写企业联系方式与地址。</p>"
|
||||
},
|
||||
{
|
||||
"id": "17485c5650",
|
||||
"type": "cta",
|
||||
"visible": true,
|
||||
"title": "欢迎联系",
|
||||
"subtitle": "告诉我们您的需求,我们将提供适合的方案。",
|
||||
"button": "联系我们",
|
||||
"href": "/contact/"
|
||||
}
|
||||
],
|
||||
"listing": [
|
||||
{
|
||||
"id": "10c25d0a3c",
|
||||
"type": "collection",
|
||||
"visible": true,
|
||||
"title": "全部作品",
|
||||
"subtitle": "为客户提供适合的解决方案",
|
||||
"source": "case",
|
||||
"limit": 24,
|
||||
"columns": 2,
|
||||
"button": "查看全部",
|
||||
"href": "/product/"
|
||||
}
|
||||
],
|
||||
"product": [
|
||||
{
|
||||
"id": "3ee3cf11c4",
|
||||
"type": "image_text",
|
||||
"visible": true,
|
||||
"title": "产品介绍",
|
||||
"subtitle": "OUR APPROACH",
|
||||
"description": "{{page.summary}}",
|
||||
"image": "{{page.cover}}",
|
||||
"image_side": "right",
|
||||
"button": "了解更多",
|
||||
"href": "/about/"
|
||||
},
|
||||
{
|
||||
"id": "04dee2c7f5",
|
||||
"type": "attributes",
|
||||
"visible": true,
|
||||
"title": "产品规格与参数"
|
||||
},
|
||||
{
|
||||
"id": "8282854cb4",
|
||||
"type": "richtext",
|
||||
"visible": true,
|
||||
"title": "产品详情",
|
||||
"body": "{{page.body}}"
|
||||
},
|
||||
{
|
||||
"id": "7cbffd4a6b",
|
||||
"type": "cta",
|
||||
"visible": true,
|
||||
"title": "开启新的合作",
|
||||
"subtitle": "告诉我们您的需求,我们将提供适合的方案。",
|
||||
"button": "联系我们",
|
||||
"href": "/contact/"
|
||||
}
|
||||
],
|
||||
"article": [
|
||||
{
|
||||
"id": "7b72e8bf3f",
|
||||
"type": "richtext",
|
||||
"visible": true,
|
||||
"title": "{{page.title}}",
|
||||
"body": "{{page.body}}"
|
||||
}
|
||||
],
|
||||
"brand": [
|
||||
{
|
||||
"id": "6c6b62b1f7",
|
||||
"type": "image_text",
|
||||
"visible": true,
|
||||
"title": "{{page.title}}",
|
||||
"subtitle": "OUR APPROACH",
|
||||
"description": "{{page.summary}}",
|
||||
"image": "{{page.cover}}",
|
||||
"image_side": "right",
|
||||
"button": "了解更多",
|
||||
"href": "/about/"
|
||||
},
|
||||
{
|
||||
"id": "1e8d347355",
|
||||
"type": "collection",
|
||||
"visible": true,
|
||||
"title": "品牌产品",
|
||||
"subtitle": "为客户提供适合的解决方案",
|
||||
"source": "product",
|
||||
"limit": 6,
|
||||
"columns": 3,
|
||||
"button": "查看全部",
|
||||
"href": "/product/"
|
||||
}
|
||||
],
|
||||
"standard": [
|
||||
{
|
||||
"id": "82c5bbcae8",
|
||||
"type": "richtext",
|
||||
"visible": true,
|
||||
"title": "{{page.title}}",
|
||||
"body": "{{page.body}}"
|
||||
}
|
||||
],
|
||||
"notfound": [
|
||||
{
|
||||
"id": "d197054638",
|
||||
"type": "cta",
|
||||
"visible": true,
|
||||
"title": "页面暂时无法访问",
|
||||
"subtitle": "告诉我们您的需求,我们将提供适合的方案。",
|
||||
"button": "返回首页",
|
||||
"href": "/"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,8 @@
|
||||
<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><base href="/"><title>{{seo_title}}</title><meta name="description" content="{{seo_description}}"><meta name="robots" content="{{'noindex,follow' if mode=='notfound' else (page.robots or 'index,follow')}}">{% if canonical %}<link rel="canonical" href="{{canonical}}">{% endif %}<link rel="stylesheet" href="assets/theme.css"><link rel="stylesheet" href="assets/blocks.css"><link rel="stylesheet" href="assets/custom.css"></head><body>
|
||||
<header class="container header"><a href="./" class="brand">{{site.name}}<span>®</span></a><nav><a href="./">Index</a>{% for n in nav if n.route!='/' %}<a href="{{link(n.route)}}">{{n.title}}</a>{% endfor %}{% if entries|selectattr('type','equalto','product')|list %}<a href="product/">Collection</a>{% endif %}{% if entries|selectattr('type','equalto','post')|list %}<a href="post/">Journal</a>{% endif %}</nav><a class="contact" href="mailto:{{site.email or "info@example.com"}}">CONTACT ↗</a></header>
|
||||
{% if blueprint_mode %}{% elif mode=='home' %}<section class="container hero"><div class="topline"><span>ESTABLISHED IN IDEAS.</span><span>DESIGNED FOR CHANGE.</span></div><h1>{{page.title if page.title!=site.name else 'Less, but better.'}}</h1><div class="hero-bottom"><p>{{page.summary or site.tagline or 'Thoughtfully made. Beautifully simple. Designed to make an impact.'}}</p><a href="product/">EXPLORE THE WORK <b>↗</b></a></div>{% if page.cover %}<div class="hero-image"><img src="{{asset(page.cover)}}" alt="{{page.title}}"></div>{% else %}<div class="hero-image graphic"><div class="shape a"></div><div class="shape b"></div><div class="shape c"></div><span>SIMPLICITY<br>IS INTENTIONAL.</span></div>{% endif %}</section>
|
||||
{% else %}<section class="container inner-hero"><span class="topline">{{type_names.get(page.type,'THE STUDIO')|upper}} <b>—</b> {{'INDEX' if mode=='listing' else 'ABOUT'}}</span><h1>{{page.title}}</h1><p>{{page.summary}}</p></section>{% endif %}
|
||||
{% if blueprint_mode %}<main class="sf-canvas">{{blocks}}</main>{% else %}<main class="container content">{% if mode in ['detail','home'] and (content or blocks) %}<article class="rich-content">{{blocks}}{{content}}</article>{% endif %}{% if mode=='detail' and page.cover %}<div class="detail-img"><img src="{{asset(page.cover)}}" alt="{{page.title}}"></div>{% endif %}
|
||||
{% set picks=listing_items if mode=='listing' else entries|selectattr('type','equalto','product')|list if mode=='home' else [] %}
|
||||
{% if picks %}<div class="list-head"><span>01 / SELECTED WORK</span><h2>{{'Our collection' if mode=='home' else page.title}}</h2></div><div class="list">{% for item in picks[:12] %}<a href="{{link(item.route)}}" class="item"><div class="thumb">{% if item.cover %}<img src="{{asset(item.cover)}}" alt="{{item.title}}">{% else %}<span>{{'%02d' % loop.index}}</span>{% endif %}</div><div class="info"><span>COLLECTION / {{'%02d' % loop.index}}</span><h3>{{item.title}}</h3><p>{{item.summary|truncate(110)}}</p><b>VIEW PROJECT ↗</b></div></a>{% endfor %}</div>{% endif %}
|
||||
</main>{% endif %}<footer class="container"><div class="footer-lead">Good design<br>means business. <span>↗</span></div><div class="footer-bottom"><span>{{site.name}} — {{site.tagline}}</span><span>© {{site.name}} · SITEFORGE</span></div></footer></body></html>
|
||||
@@ -0,0 +1 @@
|
||||
*{box-sizing:border-box}body{margin:0;color:#171717;background:#faf9f6;font:16px/1.6 Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}.container{width:min(1260px,90%);margin:auto}.header{height:110px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #cccac4}.brand{font-family:Georgia,"Times New Roman",serif;font-size:30px;font-weight:bold;letter-spacing:-1px}.brand span{font-size:12px;vertical-align:top}.header nav{display:flex;gap:33px;font-size:12px;flex-wrap:wrap}.header nav a:hover{text-decoration:underline}.contact{font-size:12px;font-weight:bold;border-bottom:1px solid black;padding-bottom:5px}.hero{padding:48px 0 0}.topline{display:flex;justify-content:space-between;font-size:10px;letter-spacing:2.3px;font-weight:bold}.hero h1,.inner-hero h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(65px,9.1vw,155px);line-height:1;letter-spacing:-8px;font-weight:400;margin:85px 0 40px}.hero-bottom{display:flex;justify-content:space-between;align-items:end;margin:35px 0 64px;gap:25px}.hero-bottom p{font-size:18px;max-width:490px;margin:0}.hero-bottom a{font-size:12px;letter-spacing:1.5px;border-bottom:1px solid black;padding-bottom:8px}.hero-image{height:425px;background:#deddd4;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center}.hero-image img{height:100%;width:100%;object-fit:cover}.graphic{background:#cec8bc}.shape{position:absolute;border-radius:50%;background:linear-gradient(125deg,#ede9e1,#98918a);box-shadow:25px 30px 40px #59544c22}.shape.a{height:550px;width:550px;left:5%;top:-230px}.shape.b{width:280px;height:280px;right:15%;bottom:-120px;background:#989e97}.shape.c{width:160px;height:160px;right:40%;top:0;background:#ece9e3}.graphic>span{position:relative;font-size:25px;letter-spacing:7px;font-weight:500;line-height:1.5}.inner-hero{padding:80px 0;border-bottom:1px solid #d3d0ca}.inner-hero h1{font-size:clamp(48px,8vw,115px);margin:40px 0}.inner-hero p{font-size:18px;color:#777;max-width:660px}.content{padding:70px 0 130px}.list-head{display:grid;grid-template-columns:1fr 2fr;align-items:center;margin:30px 0 40px;border-bottom:1px solid black}.list-head span{font-size:10px;letter-spacing:2px}.list-head h2{font-family:Georgia,serif;font-weight:400;font-size:54px;letter-spacing:-2px}.list{display:grid;grid-template-columns:repeat(2,1fr);gap:80px 35px}.item{display:block}.item:hover h3{text-decoration:underline}.thumb{height:290px;background:#e3e1d8;display:grid;place-items:center}.thumb img{width:100%;height:100%;object-fit:contain}.thumb span{font-family:Georgia,serif;font-size:140px;color:#c0bcb2}.info{padding:25px 0}.info>span{font-size:10px;letter-spacing:1.5px}.info h3{font-family:Georgia,serif;font-size:36px;font-weight:400;margin:12px 0}.info p{color:#666;max-width:400px}.info b{font-size:11px;letter-spacing:1px}.rich-content{margin:25px 0}.section{padding:45px 0}.block-hero{padding:50px 0}.block-hero h1{font-family:Georgia,serif;font-size:60px;font-weight:400}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.feature{border-top:1px solid #8f8a84;padding-top:20px}.feature-mark{font-size:12px}.stats{display:grid;grid-template-columns:repeat(4,1fr)}.stat strong{font-family:Georgia,serif;display:block;font-size:47px;font-weight:400}.stat span{font-size:11px;letter-spacing:1px}.cta{padding:55px;background:#e4e0d8}.cta h2{font-family:Georgia,serif;font-weight:400;font-size:44px}.btn{display:inline-block;background:#222;color:white;padding:13px 20px;font-size:12px}.detail-img img{max-width:100%;max-height:550px}footer{border-top:1px solid #b9b5ae;padding:70px 0 25px}.footer-lead{font-family:Georgia,serif;font-size:clamp(45px,6vw,90px);line-height:1.05;letter-spacing:-4px}.footer-lead span{color:#909084}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid #d5d1c9;margin-top:90px;padding-top:25px;font-size:11px;color:#777}@media(max-width:850px){.header{height:auto;padding:26px 0;flex-wrap:wrap}.header nav{order:3;width:100%}.hero h1{letter-spacing:-4px;margin-top:60px}.hero-image{height:320px}.list{gap:35px}.list-head{grid-template-columns:1fr}.footer-lead{letter-spacing:-2px}}@media(max-width:560px){.list,.feature-grid,.stats{grid-template-columns:1fr}.hero h1{font-size:67px}.hero-bottom,.topline,.footer-bottom{flex-direction:column;align-items:start;gap:15px}.hero-image{height:240px}.list-head h2{font-size:40px}.inner-hero{padding:50px 0}}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"id": "minimal",
|
||||
"name": "极简创意",
|
||||
"description": "奶油白和纯黑,编辑式排版与作品展示;V3 专业全页模板、分类/详情/导航和搜索",
|
||||
"version": "1.0.0",
|
||||
"style": "editorial",
|
||||
"entry": "pro.html",
|
||||
"styles": [
|
||||
"theme.css",
|
||||
"blocks.css"
|
||||
],
|
||||
"page_templates": [
|
||||
"home",
|
||||
"about",
|
||||
"contact",
|
||||
"listing",
|
||||
"category",
|
||||
"product",
|
||||
"article",
|
||||
"brand",
|
||||
"case",
|
||||
"service",
|
||||
"faq",
|
||||
"standard",
|
||||
"notfound"
|
||||
],
|
||||
"blocks": [
|
||||
"hero",
|
||||
"richtext",
|
||||
"features",
|
||||
"stats",
|
||||
"collection",
|
||||
"image_text",
|
||||
"gallery",
|
||||
"faq",
|
||||
"cta",
|
||||
"attributes",
|
||||
"spacer"
|
||||
],
|
||||
"responsive": true,
|
||||
"auto_binding": true,
|
||||
"professional_layout": true
|
||||
}
|
||||
@@ -0,0 +1,273 @@
|
||||
{
|
||||
"home": [
|
||||
{
|
||||
"id": "612f6ea910",
|
||||
"type": "hero",
|
||||
"visible": true,
|
||||
"title": "少即是多,体验至上",
|
||||
"subtitle": "DESIGN THAT MATTERS",
|
||||
"description": "{{site.tagline}}",
|
||||
"button": "探索作品",
|
||||
"href": "/product/",
|
||||
"align": "left"
|
||||
},
|
||||
{
|
||||
"id": "a448a548e5",
|
||||
"type": "image_text",
|
||||
"visible": true,
|
||||
"title": "设计不止于外观",
|
||||
"subtitle": "OUR PHILOSOPHY",
|
||||
"description": "展示业务流程和服务理念。",
|
||||
"image": "",
|
||||
"image_side": "right",
|
||||
"button": "了解更多",
|
||||
"href": "/about/"
|
||||
},
|
||||
{
|
||||
"id": "8a2f9a939b",
|
||||
"type": "collection",
|
||||
"visible": true,
|
||||
"title": "精选项目",
|
||||
"subtitle": "SELECTED WORK",
|
||||
"source": "case",
|
||||
"limit": 6,
|
||||
"columns": 3,
|
||||
"button": "查看全部",
|
||||
"href": "/product/"
|
||||
},
|
||||
{
|
||||
"id": "e27cec0c11",
|
||||
"type": "gallery",
|
||||
"visible": true,
|
||||
"title": "视觉记录",
|
||||
"images": [],
|
||||
"columns": 3
|
||||
},
|
||||
{
|
||||
"id": "2bb8c1f33e",
|
||||
"type": "cta",
|
||||
"visible": true,
|
||||
"title": "有一个新的想法?",
|
||||
"subtitle": "告诉我们您的需求,我们将提供适合的方案。",
|
||||
"button": "联系我们",
|
||||
"href": "/contact/"
|
||||
}
|
||||
],
|
||||
"about": [
|
||||
{
|
||||
"id": "35e7b20667",
|
||||
"type": "image_text",
|
||||
"visible": true,
|
||||
"title": "认识我们",
|
||||
"subtitle": "OUR APPROACH",
|
||||
"description": "展示业务流程和服务理念。",
|
||||
"image": "",
|
||||
"image_side": "right",
|
||||
"button": "了解更多",
|
||||
"href": "/about/"
|
||||
},
|
||||
{
|
||||
"id": "61ff3a5f5c",
|
||||
"type": "stats",
|
||||
"visible": true,
|
||||
"title": "我们的实力",
|
||||
"items": [
|
||||
{
|
||||
"value": "50,000+",
|
||||
"label": "服务案例"
|
||||
},
|
||||
{
|
||||
"value": "70+",
|
||||
"label": "市场覆盖"
|
||||
},
|
||||
{
|
||||
"value": "30+",
|
||||
"label": "合作伙伴"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "8bceb456e8",
|
||||
"type": "features",
|
||||
"visible": true,
|
||||
"title": "我们的优势",
|
||||
"items": [
|
||||
{
|
||||
"title": "专业服务",
|
||||
"text": "从咨询到交付"
|
||||
},
|
||||
{
|
||||
"title": "品质保障",
|
||||
"text": "严格的质量流程"
|
||||
},
|
||||
{
|
||||
"title": "全球网络",
|
||||
"text": "连接不同市场"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"contact": [
|
||||
{
|
||||
"id": "a6a53010e6",
|
||||
"type": "richtext",
|
||||
"visible": true,
|
||||
"title": "联系我们",
|
||||
"body": "<p>请填写企业联系方式与地址。</p>"
|
||||
},
|
||||
{
|
||||
"id": "17485c5650",
|
||||
"type": "cta",
|
||||
"visible": true,
|
||||
"title": "欢迎联系",
|
||||
"subtitle": "告诉我们您的需求,我们将提供适合的方案。",
|
||||
"button": "联系我们",
|
||||
"href": "/contact/"
|
||||
}
|
||||
],
|
||||
"listing": [
|
||||
{
|
||||
"id": "10c25d0a3c",
|
||||
"type": "collection",
|
||||
"visible": true,
|
||||
"title": "全部作品",
|
||||
"subtitle": "为客户提供适合的解决方案",
|
||||
"source": "case",
|
||||
"limit": 24,
|
||||
"columns": 2,
|
||||
"button": "查看全部",
|
||||
"href": "/product/"
|
||||
}
|
||||
],
|
||||
"product": [
|
||||
{
|
||||
"id": "3ee3cf11c4",
|
||||
"type": "image_text",
|
||||
"visible": true,
|
||||
"title": "产品介绍",
|
||||
"subtitle": "OUR APPROACH",
|
||||
"description": "{{page.summary}}",
|
||||
"image": "{{page.cover}}",
|
||||
"image_side": "right",
|
||||
"button": "了解更多",
|
||||
"href": "/about/"
|
||||
},
|
||||
{
|
||||
"id": "04dee2c7f5",
|
||||
"type": "attributes",
|
||||
"visible": true,
|
||||
"title": "产品规格与参数"
|
||||
},
|
||||
{
|
||||
"id": "8282854cb4",
|
||||
"type": "richtext",
|
||||
"visible": true,
|
||||
"title": "产品详情",
|
||||
"body": "{{page.body}}"
|
||||
},
|
||||
{
|
||||
"id": "7cbffd4a6b",
|
||||
"type": "cta",
|
||||
"visible": true,
|
||||
"title": "开启新的合作",
|
||||
"subtitle": "告诉我们您的需求,我们将提供适合的方案。",
|
||||
"button": "联系我们",
|
||||
"href": "/contact/"
|
||||
}
|
||||
],
|
||||
"article": [
|
||||
{
|
||||
"id": "7b72e8bf3f",
|
||||
"type": "richtext",
|
||||
"visible": true,
|
||||
"title": "{{page.title}}",
|
||||
"body": "{{page.body}}"
|
||||
}
|
||||
],
|
||||
"brand": [
|
||||
{
|
||||
"id": "6c6b62b1f7",
|
||||
"type": "image_text",
|
||||
"visible": true,
|
||||
"title": "{{page.title}}",
|
||||
"subtitle": "OUR APPROACH",
|
||||
"description": "{{page.summary}}",
|
||||
"image": "{{page.cover}}",
|
||||
"image_side": "right",
|
||||
"button": "了解更多",
|
||||
"href": "/about/"
|
||||
},
|
||||
{
|
||||
"id": "1e8d347355",
|
||||
"type": "collection",
|
||||
"visible": true,
|
||||
"title": "品牌产品",
|
||||
"subtitle": "为客户提供适合的解决方案",
|
||||
"source": "product",
|
||||
"limit": 6,
|
||||
"columns": 3,
|
||||
"button": "查看全部",
|
||||
"href": "/product/"
|
||||
}
|
||||
],
|
||||
"standard": [
|
||||
{
|
||||
"id": "82c5bbcae8",
|
||||
"type": "richtext",
|
||||
"visible": true,
|
||||
"title": "{{page.title}}",
|
||||
"body": "{{page.body}}"
|
||||
}
|
||||
],
|
||||
"notfound": [
|
||||
{
|
||||
"id": "d197054638",
|
||||
"type": "cta",
|
||||
"visible": true,
|
||||
"title": "页面暂时无法访问",
|
||||
"subtitle": "告诉我们您的需求,我们将提供适合的方案。",
|
||||
"button": "返回首页",
|
||||
"href": "/"
|
||||
}
|
||||
],
|
||||
"case": [
|
||||
{
|
||||
"type": "image_text",
|
||||
"title": "{{page.title}}",
|
||||
"image": "{{page.cover}}",
|
||||
"description": "{{page.summary}}"
|
||||
},
|
||||
{
|
||||
"type": "richtext",
|
||||
"title": "项目概述",
|
||||
"body": "{{page.body}}"
|
||||
}
|
||||
],
|
||||
"service": [
|
||||
{
|
||||
"type": "richtext",
|
||||
"title": "{{page.title}}",
|
||||
"body": "{{page.body}}"
|
||||
},
|
||||
{
|
||||
"type": "cta",
|
||||
"title": "了解更多",
|
||||
"href": "/contact/"
|
||||
}
|
||||
],
|
||||
"faq": [
|
||||
{
|
||||
"type": "faq",
|
||||
"title": "常见问题",
|
||||
"items": []
|
||||
}
|
||||
],
|
||||
"category": [
|
||||
{
|
||||
"type": "collection",
|
||||
"title": "分类产品",
|
||||
"source": "product",
|
||||
"limit": 24
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
<section class="pro-inner-hero pro-info-hero"><div class="pro-wrap"><span class="pro-eyebrow">{{ 'GET IN TOUCH' if kind=='contact' else ('OUR STORY' if kind=='about' else 'EXPLORE') }}</span><h1>{{page.title}}</h1><p>{{page.summary}}</p></div></section>
|
||||
<section class="pro-section pro-info-section"><div class="pro-wrap pro-info-grid"><div><span class="pro-eyebrow">{{'CONNECT / CONTACT' if kind=='contact' else 'ABOUT / DISCOVER'}}</span><h2>{{'让我们开始沟通。' if kind=='contact' else page.title}}</h2>{% if kind=='contact' and footer_email %}<a class="pro-contact-email" href="mailto:{{footer_email}}">{{footer_email}} ↗</a>{% elif kind=='contact' %}<p class="pro-muted">请先在网站管理后台填写正式联系邮箱。</p>{% endif %}</div><div class="pro-info-copy">{{body_copy(content,page)}}{% if page.cover %}<img class="pro-info-photo" src="{{safe_image(page.cover)}}" alt="{{page.title}}">{% endif %}</div></div></section>
|
||||
@@ -0,0 +1 @@
|
||||
<section class="pro-article-hero"><div class="pro-wrap pro-article-width"><span class="pro-eyebrow">LATEST NEWS / INSIGHTS</span><h1>{{page.title}}</h1><p>{{page.summary}}</p>{% if fields.get('publish_date') %}<time>{{fields.get('publish_date')}}</time>{% endif %}</div></section><article class="pro-wrap pro-article-content">{% if page.cover %}<img class="pro-article-cover" src="{{safe_image(page.cover)}}" alt="{{page.title}}">{% endif %}{{body_copy(content,page)}}<a class="pro-text-link" href="/news/">← 返回新闻</a></article>
|
||||
@@ -0,0 +1 @@
|
||||
<section class="pro-inner-hero pro-brand-hero"><div class="pro-wrap pro-brand-hero-grid"><div><span class="pro-eyebrow">BRAND PROFILE / PARTNERS</span><h1>{{page.title}}</h1><p>{{page.summary}}</p></div><div class="pro-brand-media">{{cover(page,'brand')}}</div></div></section><section class="pro-section"><div class="pro-wrap">{{body_copy(content,page)}}{% if related %}{{section_title('PRODUCT LINE','相关产品','/products/')}}{{grid(related,'product')}}{% endif %}</div></section>
|
||||
@@ -0,0 +1 @@
|
||||
<section class="pro-inner-hero"><div class="pro-wrap"><span class="pro-eyebrow">SELECTED WORK / PROJECT</span><h1>{{page.title}}</h1><p>{{page.summary}}</p></div></section><section class="pro-section"><div class="pro-wrap pro-case-detail">{% if page.cover %}<img src="{{safe_image(page.cover)}}" alt="{{page.title}}">{% endif %}<div class="pro-case-meta">{% if fields.get('location') %}<span>项目地点<br><strong>{{fields.get('location')}}</strong></span>{% endif %}{% if fields.get('industry') %}<span>所属行业<br><strong>{{fields.get('industry')}}</strong></span>{% endif %}</div>{{body_copy(content,page)}}<a class="pro-text-link" href="/cases/">浏览更多案例 →</a></div></section>
|
||||
@@ -0,0 +1,2 @@
|
||||
<section class="pro-inner-hero pro-listing-hero"><div class="pro-wrap"><span class="pro-eyebrow">DISCOVER / {{'CATEGORY' if kind=='category' else 'COLLECTION'}}</span><h1>{{page.title}}</h1><p>{{page.summary or '查看此栏目的全部已发布内容。'}}</p><div class="pro-breadcrumb"><a href="/">首页</a><span>/</span><strong>{{page.title}}</strong></div></div></section>
|
||||
<section class="pro-section pro-list-section"><div class="pro-wrap">{{ filters() }}<div class="pro-filter-scope">{{grid(listing,'catalog')}}</div></div></section>
|
||||
@@ -0,0 +1,7 @@
|
||||
<section class="pro-inner-hero pro-info-hero"><div class="pro-wrap"><span class="pro-eyebrow">{{ 'GET IN TOUCH' if kind=='contact' else ('OUR STORY' if kind=='about' else 'EXPLORE') }}</span><h1>{{page.title}}</h1><p>{{page.summary}}</p></div></section>
|
||||
<section class="pro-section pro-info-section"><div class="pro-wrap pro-info-grid"><div><span class="pro-eyebrow">{{'CONNECT / CONTACT' if kind=='contact' else 'ABOUT / DISCOVER'}}</span><h2>{{'让我们开始沟通。' if kind=='contact' else page.title}}</h2>{% if kind=='contact' and footer_email %}<a class="pro-contact-email" href="mailto:{{footer_email}}">{{footer_email}} ↗</a>{% elif kind=='contact' %}<p class="pro-muted">请先在网站管理后台填写正式联系邮箱。</p>{% endif %}</div><div class="pro-info-copy">{{body_copy(content,page)}}{% if page.cover %}<img class="pro-info-photo" src="{{safe_image(page.cover)}}" alt="{{page.title}}">{% endif %}</div></div></section>
|
||||
|
||||
{% if form_endpoint %}
|
||||
<section class="pro-section"><div class="pro-wrap pro-inquiry-wrap"><div><span class="pro-eyebrow">CONTACT FORM</span><h2>提交业务咨询</h2><p>提交内容将直接发送到网站管理员配置的外部表单服务。</p></div>
|
||||
<form class="pro-inquiry" action="{{form_endpoint}}" method="POST"><label>姓名 <input name="name" autocomplete="name" required maxlength="100"></label><label>邮箱 <input name="email" type="email" autocomplete="email" required maxlength="180"></label><label>咨询内容 <textarea name="message" required minlength="6" maxlength="5000"></textarea></label><input name="website" tabindex="-1" autocomplete="off" class="pro-honeypot" aria-hidden="true"><button type="submit" class="pro-button">提交咨询 ↗</button><p>表单提交由外部服务处理,请确认其隐私政策及垃圾信息过滤设置。</p></form></div></section>
|
||||
{% endif %}
|
||||
@@ -0,0 +1,2 @@
|
||||
<section class="pro-inner-hero pro-info-hero"><div class="pro-wrap"><span class="pro-eyebrow">{{ 'GET IN TOUCH' if kind=='contact' else ('OUR STORY' if kind=='about' else 'EXPLORE') }}</span><h1>{{page.title}}</h1><p>{{page.summary}}</p></div></section>
|
||||
<section class="pro-section pro-info-section"><div class="pro-wrap pro-info-grid"><div><span class="pro-eyebrow">{{'CONNECT / CONTACT' if kind=='contact' else 'ABOUT / DISCOVER'}}</span><h2>{{'让我们开始沟通。' if kind=='contact' else page.title}}</h2>{% if kind=='contact' and footer_email %}<a class="pro-contact-email" href="mailto:{{footer_email}}">{{footer_email}} ↗</a>{% elif kind=='contact' %}<p class="pro-muted">请先在网站管理后台填写正式联系邮箱。</p>{% endif %}</div><div class="pro-info-copy">{{body_copy(content,page)}}{% if page.cover %}<img class="pro-info-photo" src="{{safe_image(page.cover)}}" alt="{{page.title}}">{% endif %}</div></div></section>
|
||||
@@ -0,0 +1,3 @@
|
||||
<section class="pro-home-hero pro-minimal-hero"><div class="pro-wrap"><div class="pro-minimal-meta"><span>INDEPENDENT / CREATIVE / CONSIDERED</span><span>NO. 001 — ESTABLISH A PRESENCE</span></div><h1>{{page.title if page.title not in (site.name,'首页','Home') else site.name}}<br><em>MAKE IT MATTER.</em></h1><div class="pro-minimal-bottom"><p>{{page.summary or site.tagline or '简洁而清晰地呈现品牌与作品。'}}</p><a href="/cases/">EXPLORE WORK <span>↗</span></a></div></div></section>
|
||||
<section class="pro-section pro-featured"><div class="pro-wrap">{{section_title('01 / INDEX','精选展示','/cases/')}}{{grid(cases if cases else showcase,'case')}}</div></section>
|
||||
<section class="pro-section pro-statement"><div class="pro-wrap pro-statement-layout"><span class="pro-eyebrow">02 / ABOUT</span><div><h2>少一点噪音,多一点重点。</h2><p>{{site.tagline or '在这里介绍企业与品牌的核心价值。'}}</p><a class="pro-text-link" href="/about/">READ OUR STORY ↗</a></div></div></section>
|
||||
@@ -0,0 +1,2 @@
|
||||
<section class="pro-inner-hero pro-listing-hero"><div class="pro-wrap"><span class="pro-eyebrow">DISCOVER / {{'CATEGORY' if kind=='category' else 'COLLECTION'}}</span><h1>{{page.title}}</h1><p>{{page.summary or '查看此栏目的全部已发布内容。'}}</p><div class="pro-breadcrumb"><a href="/">首页</a><span>/</span><strong>{{page.title}}</strong></div></div></section>
|
||||
<section class="pro-section pro-list-section"><div class="pro-wrap">{{ filters() }}<div class="pro-filter-scope">{{grid(listing,'catalog')}}</div></div></section>
|
||||
@@ -0,0 +1 @@
|
||||
<section class="pro-404 pro-wrap"><span>ERROR / 404</span><h1>404</h1><p>抱歉,你访问的页面不存在,或者已被移动。</p><a class="pro-button" href="/">返回首页 ↗</a></section>
|
||||
@@ -0,0 +1,3 @@
|
||||
<section class="pro-section pro-product-layout"><div class="pro-wrap"><div class="pro-breadcrumb"><a href="/">首页</a><span>/</span><a href="/products/">产品中心</a><span>/</span><strong>{{page.title}}</strong></div>
|
||||
<div class="pro-product-hero"><div class="pro-product-gallery"><div class="pro-product-media">{{cover(page,'product')}}</div>{% if gallery|length>1 %}<div class="pro-gallery-thumbs" aria-label="产品图片画廊">{% for photo in gallery %}<button type="button" data-gallery-image="{{photo}}" aria-label="查看第{{loop.index}}张图片"><img src="{{photo}}" alt="{{page.title}} · 图{{loop.index}}" loading="lazy"></button>{% endfor %}</div>{% endif %}</div><div class="pro-product-summary"><span class="pro-eyebrow">PRODUCT DETAILS / {{fields.get('brand') or 'COLLECTION'}}</span><h1>{{page.title}}</h1><p>{{page.summary or '在此查看产品详细资料。'}}</p>{% if fields.get('brand') %}<p class="pro-product-brand">品牌 · {{fields.get('brand')}}</p>{% endif %}<a class="pro-button" href="/contact/">咨询该产品 <span>↗</span></a></div></div>
|
||||
<div class="pro-detail-layout"><div><span class="pro-eyebrow">OVERVIEW</span><h2>产品介绍</h2>{{body_copy(content,page)}}</div><div><span class="pro-eyebrow">SPECIFICATIONS</span><h2>规格参数</h2><div class="pro-specs">{% for row in specs %}<div><span>{{row.label}}</span><strong>{{row.value}}</strong></div>{% else %}<p class="pro-muted">尚未填写详细参数。</p>{% endfor %}</div></div></div></div></section>
|
||||
@@ -0,0 +1,2 @@
|
||||
<section class="pro-inner-hero"><div class="pro-wrap"><span class="pro-eyebrow">SEARCH / CONTENT</span><h1>站内搜索</h1><p>搜索本网站的产品、品牌、新闻和案例。</p></div></section>
|
||||
<main id="main-content" class="sf-search-page pro-wrap"><label for="sf-search">输入关键词</label><input type="search" id="sf-search" placeholder="搜索产品、品牌、新闻、案例……" autofocus><div id="sf-search-count" aria-live="polite"></div><div id="sf-search-results"></div></main>
|
||||
@@ -0,0 +1,2 @@
|
||||
<section class="pro-inner-hero pro-info-hero"><div class="pro-wrap"><span class="pro-eyebrow">{{ 'GET IN TOUCH' if kind=='contact' else ('OUR STORY' if kind=='about' else 'EXPLORE') }}</span><h1>{{page.title}}</h1><p>{{page.summary}}</p></div></section>
|
||||
<section class="pro-section pro-info-section"><div class="pro-wrap pro-info-grid"><div><span class="pro-eyebrow">{{'CONNECT / CONTACT' if kind=='contact' else 'ABOUT / DISCOVER'}}</span><h2>{{'让我们开始沟通。' if kind=='contact' else page.title}}</h2>{% if kind=='contact' and footer_email %}<a class="pro-contact-email" href="mailto:{{footer_email}}">{{footer_email}} ↗</a>{% elif kind=='contact' %}<p class="pro-muted">请先在网站管理后台填写正式联系邮箱。</p>{% endif %}</div><div class="pro-info-copy">{{body_copy(content,page)}}{% if page.cover %}<img class="pro-info-photo" src="{{safe_image(page.cover)}}" alt="{{page.title}}">{% endif %}</div></div></section>
|
||||
@@ -0,0 +1,2 @@
|
||||
<section class="pro-inner-hero pro-info-hero"><div class="pro-wrap"><span class="pro-eyebrow">{{ 'GET IN TOUCH' if kind=='contact' else ('OUR STORY' if kind=='about' else 'EXPLORE') }}</span><h1>{{page.title}}</h1><p>{{page.summary}}</p></div></section>
|
||||
<section class="pro-section pro-info-section"><div class="pro-wrap pro-info-grid"><div><span class="pro-eyebrow">{{'CONNECT / CONTACT' if kind=='contact' else 'ABOUT / DISCOVER'}}</span><h2>{{'让我们开始沟通。' if kind=='contact' else page.title}}</h2>{% if kind=='contact' and footer_email %}<a class="pro-contact-email" href="mailto:{{footer_email}}">{{footer_email}} ↗</a>{% elif kind=='contact' %}<p class="pro-muted">请先在网站管理后台填写正式联系邮箱。</p>{% endif %}</div><div class="pro-info-copy">{{body_copy(content,page)}}{% if page.cover %}<img class="pro-info-photo" src="{{safe_image(page.cover)}}" alt="{{page.title}}">{% endif %}</div></div></section>
|
||||
@@ -0,0 +1,2 @@
|
||||
:root{--pro-text:#272722;--pro-muted:#797972;--pro-border:#d9d8d0;--pro-background:#fafaf7;--pro-surface:#f0f0eb;--pro-accent:#282923;--pro-hero:#272722;--pro-radius:0;--pro-headings:Georgia,Times New Roman,serif;--pro-font:Arial,sans-serif;--pro-wide:1380px}
|
||||
.pro-header{background:#fafaf7;color:#292920}.pro-head-inner{min-height:96px}.pro-logo{min-width:200px}.pro-logo-symbol{font-family:Georgia,serif;color:#272722;font-size:40px;font-weight:400}.pro-logo-name{font-family:Georgia,serif;font-size:23px;font-weight:500}.pro-logo-name small{font-family:Arial,sans-serif;font-size:9px}.pro-navigation a{font-size:12px;font-weight:550}.pro-header-cta{border-radius:0;background:transparent;color:#262621!important;border-bottom:1px solid #222;padding:10px 0}.pro-minimal-hero{background:#f4f3ec;color:#252521;border-bottom:1px solid #d7d7cc}.pro-minimal-hero>.pro-wrap{padding-top:68px;padding-bottom:90px}.pro-minimal-meta{display:flex;justify-content:space-between;color:#727267;font-size:10px;letter-spacing:.16em}.pro-minimal-hero h1{font-weight:400;font-family:Georgia,serif;letter-spacing:-.072em;font-size:clamp(65px,10vw,153px);line-height:1.03;margin:100px 0 85px}.pro-minimal-hero h1 em{font-weight:400;font-style:italic;color:#8f8e82}.pro-minimal-bottom{display:flex;justify-content:space-between;align-items:end;gap:40px;border-top:1px solid #c9c8bf;padding-top:28px}.pro-minimal-bottom p{font-size:17px;max-width:450px;margin:0}.pro-minimal-bottom a{font-weight:750;font-size:11px;letter-spacing:.11em;white-space:nowrap}.pro-minimal-bottom a span{padding-left:25px}.pro-section-head h2{font-weight:400;font-size:clamp(40px,5vw,70px)}.pro-grid{gap:34px 20px}.pro-card{border:0;background:transparent;border-radius:0}.pro-card:hover{box-shadow:none}.pro-card-cover{height:310px;background:#eae9e1}.pro-card-body{padding:23px 0}.pro-card h3{font-family:Georgia,serif;font-size:27px;font-weight:400}.pro-art{background:linear-gradient(145deg,#deddd2,#ebeae5)}.pro-art-ring{border-color:#ffffff8a}.pro-art-center{color:#aba89b}.pro-card-link{border-color:#c7c6bf}.pro-statement{background:#e9e7dc}.pro-statement h2{font-family:Georgia,serif;font-weight:400;font-size:clamp(43px,6vw,83px)}.pro-statement .pro-text-link{color:#292a22}.pro-inner-hero{background:#f0efe8;border-bottom:1px solid #deddd3}.pro-inner-hero h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(60px,9vw,117px)}.pro-article-hero{background:#eeede5}.pro-article-hero h1{font-family:Georgia,serif;font-weight:400}.pro-article-content{max-width:830px}.pro-product-summary h1{font-family:Georgia,serif;font-weight:400}.pro-footer{background:#242520}.pro-footer h2{font-family:Georgia,serif;font-size:40px;font-weight:400}.pro-end-cta{background:#282822}.pro-end-cta h2{font-family:Georgia,serif;font-weight:400}.pro-end-cta a{background:#fff;color:#242520!important}.pro-404 h1{font-family:Georgia,serif;font-weight:400;color:#8f8e82}.pro-dot{color:#a8a595}
|
||||
@@ -0,0 +1,9 @@
|
||||
<!doctype html><html lang="zh-CN"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><base href="/"><title>{{ seo_title }}</title><meta name="description" content="{{ seo_description }}"><meta name="robots" content="{{ 'noindex,follow' if noindex else page.get('robots','index,follow') }}">{% if canonical and not noindex %}<link rel="canonical" href="{{ canonical }}">{% endif %}<link rel="stylesheet" href="assets/theme.css"><link rel="stylesheet" href="assets/blocks.css"><link rel="stylesheet" href="assets/factory.css"><link rel="stylesheet" href="assets/pro-base.css"><link rel="stylesheet" href="assets/pro.css">{% if theme_overrides %}<link rel="stylesheet" href="assets/theme-overrides.css">{% endif %}<link rel="stylesheet" href="assets/custom.css"></head><body class="sf-theme-minimal pro-minimal"><a class="pro-skip" href="#main-content">跳转至正文</a>
|
||||
{% from '_professional_components.html' import card,cover,grid,section_title,filters,footer_links,body_copy with context %}
|
||||
<header class="sf-site-head pro-header"><div class="pro-wrap pro-head-inner"><a class="pro-logo" href="/"><span class="pro-logo-symbol">◌</span><span class="pro-logo-name">{{site.name}}<small> / STUDIO</small></span></a><button class="pro-mobile-toggle" type="button" data-pro-menu aria-controls="pro-navigation" aria-expanded="false" aria-label="打开导航">☰</button><nav id="pro-navigation" class="pro-navigation" aria-label="主导航">{% for link in nav %}{% if link.children %}<div class="pro-nav-group"><a href="{{link.route}}">{{link.title}}</a><button type="button" class="pro-nav-disclose" aria-expanded="false" aria-label="展开{{link.title}}子菜单">▾</button><div class="pro-nav-children" hidden>{% for child in link.children %}<a href="{{child.route}}">{{child.title}}</a>{% for leaf in child.children %}<a class="pro-nav-leaf" href="{{leaf.route}}">— {{leaf.title}}</a>{% endfor %}{% endfor %}</div></div>{% else %}<a href="{{link.route}}">{{link.title}}</a>{% endif %}{% endfor %}<a href="/search/">⌕ 搜索</a></nav><a href="/contact/" class="pro-header-cta">LET'S TALK ↗</a></div></header>
|
||||
{% if not designer_replace %}{% include 'minimal/pages/' ~ kind ~ '.html' %}{% endif %}
|
||||
|
||||
{% if has_custom and kind!='notfound' %}<main id="main-content" class="sf-canvas pro-custom-content">{{custom_blocks}}</main>{% else %}<main id="main-content" class="sf-canvas pro-custom-content" aria-hidden="true"></main>{% endif %}
|
||||
{% if kind not in ('notfound','search') %}<section class="pro-end-cta"><div class="pro-wrap"><div><span class="pro-eyebrow">LET'S CONNECT</span><h2>从这里开始下一步。</h2><p>{{site.tagline or '了解更多产品、服务与合作信息。'}}</p></div><a href="/contact/">联系我们 <span>↗</span></a></div></section>{% endif %}
|
||||
<footer class="sf-site-foot pro-footer"><div class="pro-wrap"><div class="pro-footer-top"><div><span class="pro-eyebrow">STAY CURIOUS</span><h2>{{site.name}}<span class="pro-dot">.</span></h2><p>{{footer_text}}</p></div><div class="pro-footer-links">{{footer_links(nav)}}</div><div><span class="pro-eyebrow">SAY HELLO</span><p>{{footer_email or '请在后台配置企业联系方式'}}</p></div></div><div class="pro-footer-bottom"><span>© {{site.name}}</span><span>MADE WITH INTENTION</span></div></div></footer>
|
||||
<script defer src="assets/site-runtime.js"></script><script defer src="assets/pro.js"></script></body></html>
|
||||
@@ -0,0 +1,8 @@
|
||||
<!doctype html><html lang="zh-CN"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><base href="/"><title>{{seo_title}}</title><meta name="description" content="{{seo_description}}"><meta name="robots" content="{{'noindex,follow' if mode=='notfound' else (page.robots or 'index,follow')}}">{% if canonical %}<link rel="canonical" href="{{canonical}}">{% endif %}<link rel="stylesheet" href="assets/theme.css"><link rel="stylesheet" href="assets/blocks.css"><link rel="stylesheet" href="assets/custom.css"></head><body>
|
||||
<header class="container header"><a href="./" class="brand">{{site.name}}<span>®</span></a><nav><a href="./">Index</a>{% for n in nav if n.route!='/' %}<a href="{{link(n.route)}}">{{n.title}}</a>{% endfor %}{% if entries|selectattr('type','equalto','product')|list %}<a href="product/">Collection</a>{% endif %}{% if entries|selectattr('type','equalto','post')|list %}<a href="post/">Journal</a>{% endif %}</nav><a class="contact" href="mailto:{{site.email or "info@example.com"}}">CONTACT ↗</a></header>
|
||||
{% if blueprint_mode %}{% elif mode=='home' %}<section class="container hero"><div class="topline"><span>ESTABLISHED IN IDEAS.</span><span>DESIGNED FOR CHANGE.</span></div><h1>{{page.title if page.title!=site.name else 'Less, but better.'}}</h1><div class="hero-bottom"><p>{{page.summary or site.tagline or 'Thoughtfully made. Beautifully simple. Designed to make an impact.'}}</p><a href="product/">EXPLORE THE WORK <b>↗</b></a></div>{% if page.cover %}<div class="hero-image"><img src="{{asset(page.cover)}}" alt="{{page.title}}"></div>{% else %}<div class="hero-image graphic"><div class="shape a"></div><div class="shape b"></div><div class="shape c"></div><span>SIMPLICITY<br>IS INTENTIONAL.</span></div>{% endif %}</section>
|
||||
{% else %}<section class="container inner-hero"><span class="topline">{{type_names.get(page.type,'THE STUDIO')|upper}} <b>—</b> {{'INDEX' if mode=='listing' else 'ABOUT'}}</span><h1>{{page.title}}</h1><p>{{page.summary}}</p></section>{% endif %}
|
||||
{% if blueprint_mode %}<main class="sf-canvas">{{blocks}}</main>{% else %}<main class="container content">{% if mode in ['detail','home'] and (content or blocks) %}<article class="rich-content">{{blocks}}{{content}}</article>{% endif %}{% if mode=='detail' and page.cover %}<div class="detail-img"><img src="{{asset(page.cover)}}" alt="{{page.title}}"></div>{% endif %}
|
||||
{% set picks=listing_items if mode=='listing' else entries|selectattr('type','equalto','product')|list if mode=='home' else [] %}
|
||||
{% if picks %}<div class="list-head"><span>01 / SELECTED WORK</span><h2>{{'Our collection' if mode=='home' else page.title}}</h2></div><div class="list">{% for item in picks[:12] %}<a href="{{link(item.route)}}" class="item"><div class="thumb">{% if item.cover %}<img src="{{asset(item.cover)}}" alt="{{item.title}}">{% else %}<span>{{'%02d' % loop.index}}</span>{% endif %}</div><div class="info"><span>COLLECTION / {{'%02d' % loop.index}}</span><h3>{{item.title}}</h3><p>{{item.summary|truncate(110)}}</p><b>VIEW PROJECT ↗</b></div></a>{% endfor %}</div>{% endif %}
|
||||
</main>{% endif %}<footer class="container"><div class="footer-lead">Good design<br>means business. <span>↗</span></div><div class="footer-bottom"><span>{{site.name}} — {{site.tagline}}</span><span>© {{site.name}} · SITEFORGE</span></div></footer></body></html>
|
||||
@@ -0,0 +1 @@
|
||||
*{box-sizing:border-box}body{margin:0;color:#171717;background:#faf9f6;font:16px/1.6 Arial,Helvetica,sans-serif}a{color:inherit;text-decoration:none}.container{width:min(1260px,90%);margin:auto}.header{height:110px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #cccac4}.brand{font-family:Georgia,"Times New Roman",serif;font-size:30px;font-weight:bold;letter-spacing:-1px}.brand span{font-size:12px;vertical-align:top}.header nav{display:flex;gap:33px;font-size:12px;flex-wrap:wrap}.header nav a:hover{text-decoration:underline}.contact{font-size:12px;font-weight:bold;border-bottom:1px solid black;padding-bottom:5px}.hero{padding:48px 0 0}.topline{display:flex;justify-content:space-between;font-size:10px;letter-spacing:2.3px;font-weight:bold}.hero h1,.inner-hero h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(65px,9.1vw,155px);line-height:1;letter-spacing:-8px;font-weight:400;margin:85px 0 40px}.hero-bottom{display:flex;justify-content:space-between;align-items:end;margin:35px 0 64px;gap:25px}.hero-bottom p{font-size:18px;max-width:490px;margin:0}.hero-bottom a{font-size:12px;letter-spacing:1.5px;border-bottom:1px solid black;padding-bottom:8px}.hero-image{height:425px;background:#deddd4;overflow:hidden;position:relative;display:flex;align-items:center;justify-content:center}.hero-image img{height:100%;width:100%;object-fit:cover}.graphic{background:#cec8bc}.shape{position:absolute;border-radius:50%;background:linear-gradient(125deg,#ede9e1,#98918a);box-shadow:25px 30px 40px #59544c22}.shape.a{height:550px;width:550px;left:5%;top:-230px}.shape.b{width:280px;height:280px;right:15%;bottom:-120px;background:#989e97}.shape.c{width:160px;height:160px;right:40%;top:0;background:#ece9e3}.graphic>span{position:relative;font-size:25px;letter-spacing:7px;font-weight:500;line-height:1.5}.inner-hero{padding:80px 0;border-bottom:1px solid #d3d0ca}.inner-hero h1{font-size:clamp(48px,8vw,115px);margin:40px 0}.inner-hero p{font-size:18px;color:#777;max-width:660px}.content{padding:70px 0 130px}.list-head{display:grid;grid-template-columns:1fr 2fr;align-items:center;margin:30px 0 40px;border-bottom:1px solid black}.list-head span{font-size:10px;letter-spacing:2px}.list-head h2{font-family:Georgia,serif;font-weight:400;font-size:54px;letter-spacing:-2px}.list{display:grid;grid-template-columns:repeat(2,1fr);gap:80px 35px}.item{display:block}.item:hover h3{text-decoration:underline}.thumb{height:290px;background:#e3e1d8;display:grid;place-items:center}.thumb img{width:100%;height:100%;object-fit:contain}.thumb span{font-family:Georgia,serif;font-size:140px;color:#c0bcb2}.info{padding:25px 0}.info>span{font-size:10px;letter-spacing:1.5px}.info h3{font-family:Georgia,serif;font-size:36px;font-weight:400;margin:12px 0}.info p{color:#666;max-width:400px}.info b{font-size:11px;letter-spacing:1px}.rich-content{margin:25px 0}.section{padding:45px 0}.block-hero{padding:50px 0}.block-hero h1{font-family:Georgia,serif;font-size:60px;font-weight:400}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.feature{border-top:1px solid #8f8a84;padding-top:20px}.feature-mark{font-size:12px}.stats{display:grid;grid-template-columns:repeat(4,1fr)}.stat strong{font-family:Georgia,serif;display:block;font-size:47px;font-weight:400}.stat span{font-size:11px;letter-spacing:1px}.cta{padding:55px;background:#e4e0d8}.cta h2{font-family:Georgia,serif;font-weight:400;font-size:44px}.btn{display:inline-block;background:#222;color:white;padding:13px 20px;font-size:12px}.detail-img img{max-width:100%;max-height:550px}footer{border-top:1px solid #b9b5ae;padding:70px 0 25px}.footer-lead{font-family:Georgia,serif;font-size:clamp(45px,6vw,90px);line-height:1.05;letter-spacing:-4px}.footer-lead span{color:#909084}.footer-bottom{display:flex;justify-content:space-between;border-top:1px solid #d5d1c9;margin-top:90px;padding-top:25px;font-size:11px;color:#777}@media(max-width:850px){.header{height:auto;padding:26px 0;flex-wrap:wrap}.header nav{order:3;width:100%}.hero h1{letter-spacing:-4px;margin-top:60px}.hero-image{height:320px}.list{gap:35px}.list-head{grid-template-columns:1fr}.footer-lead{letter-spacing:-2px}}@media(max-width:560px){.list,.feature-grid,.stats{grid-template-columns:1fr}.hero h1{font-size:67px}.hero-bottom,.topline,.footer-bottom{flex-direction:column;align-items:start;gap:15px}.hero-image{height:240px}.list-head h2{font-size:40px}.inner-hero{padding:50px 0}}
|
||||
Reference in New Issue
Block a user