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:
浅念
2026-10-22 16:49:25 +08:00
commit 8cea7dee20
354 changed files with 20736 additions and 0 deletions
@@ -0,0 +1,38 @@
{
"id": "industrial",
"name": "工业制造",
"description": "工业蓝与工程网格,产品分类及技术资料",
"version": "0.3.0",
"style": "technical",
"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,245 @@
{
"home": [
{
"id": "0cdf18bf7f",
"type": "hero",
"visible": true,
"title": "工程质量,值得信赖",
"subtitle": "INDUSTRIAL ENGINEERING",
"description": "{{site.tagline}}",
"button": "查看产品",
"href": "/product/",
"align": "left"
},
{
"id": "f846a2ff6b",
"type": "features",
"visible": true,
"title": "制造与服务能力",
"items": [
{
"title": "专业服务",
"text": "从咨询到交付"
},
{
"title": "品质保障",
"text": "严格的质量流程"
},
{
"title": "全球网络",
"text": "连接不同市场"
}
]
},
{
"id": "ff4655d684",
"type": "collection",
"visible": true,
"title": "工业产品系列",
"subtitle": "PRODUCT SOLUTIONS",
"source": "product",
"limit": 6,
"columns": 3,
"button": "查看全部",
"href": "/product/"
},
{
"id": "4355daaba0",
"type": "image_text",
"visible": true,
"title": "工程标准与服务流程",
"subtitle": "QUALITY FIRST",
"description": "展示业务流程和服务理念。",
"image": "",
"image_side": "right",
"button": "了解更多",
"href": "/about/"
},
{
"id": "9e5056370d",
"type": "cta",
"visible": true,
"title": "获取专业产品方案",
"subtitle": "告诉我们您的需求,我们将提供适合的方案。",
"button": "联系我们",
"href": "/contact/"
}
],
"about": [
{
"id": "8ced1e0493",
"type": "image_text",
"visible": true,
"title": "认识我们",
"subtitle": "OUR APPROACH",
"description": "展示业务流程和服务理念。",
"image": "",
"image_side": "right",
"button": "了解更多",
"href": "/about/"
},
{
"id": "52b6064084",
"type": "stats",
"visible": true,
"title": "我们的实力",
"items": [
{
"value": "50,000+",
"label": "服务案例"
},
{
"value": "70+",
"label": "市场覆盖"
},
{
"value": "30+",
"label": "合作伙伴"
}
]
},
{
"id": "cf39bcb75d",
"type": "features",
"visible": true,
"title": "我们的优势",
"items": [
{
"title": "专业服务",
"text": "从咨询到交付"
},
{
"title": "品质保障",
"text": "严格的质量流程"
},
{
"title": "全球网络",
"text": "连接不同市场"
}
]
}
],
"contact": [
{
"id": "597f6ffb08",
"type": "richtext",
"visible": true,
"title": "联系我们",
"body": "<p>请填写企业联系方式与地址。</p>"
},
{
"id": "8c02c61415",
"type": "cta",
"visible": true,
"title": "欢迎联系",
"subtitle": "告诉我们您的需求,我们将提供适合的方案。",
"button": "联系我们",
"href": "/contact/"
}
],
"listing": [
{
"id": "2c3106baf6",
"type": "collection",
"visible": true,
"title": "工业产品目录",
"subtitle": "为客户提供适合的解决方案",
"source": "product",
"limit": 24,
"columns": 3,
"button": "查看全部",
"href": "/product/"
}
],
"product": [
{
"id": "42925dc8e3",
"type": "image_text",
"visible": true,
"title": "产品介绍",
"subtitle": "OUR APPROACH",
"description": "{{page.summary}}",
"image": "{{page.cover}}",
"image_side": "right",
"button": "了解更多",
"href": "/about/"
},
{
"id": "503266af35",
"type": "attributes",
"visible": true,
"title": "产品规格与参数"
},
{
"id": "b2b1f5293c",
"type": "richtext",
"visible": true,
"title": "产品详情",
"body": "{{page.body}}"
},
{
"id": "3837f66074",
"type": "cta",
"visible": true,
"title": "开启新的合作",
"subtitle": "告诉我们您的需求,我们将提供适合的方案。",
"button": "联系我们",
"href": "/contact/"
}
],
"article": [
{
"id": "c2573cb88d",
"type": "richtext",
"visible": true,
"title": "{{page.title}}",
"body": "{{page.body}}"
}
],
"brand": [
{
"id": "f43b705317",
"type": "image_text",
"visible": true,
"title": "{{page.title}}",
"subtitle": "OUR APPROACH",
"description": "{{page.summary}}",
"image": "{{page.cover}}",
"image_side": "right",
"button": "了解更多",
"href": "/about/"
},
{
"id": "b3faf08170",
"type": "collection",
"visible": true,
"title": "品牌产品",
"subtitle": "为客户提供适合的解决方案",
"source": "product",
"limit": 6,
"columns": 3,
"button": "查看全部",
"href": "/product/"
}
],
"standard": [
{
"id": "7937550319",
"type": "richtext",
"visible": true,
"title": "{{page.title}}",
"body": "{{page.body}}"
}
],
"notfound": [
{
"id": "59383d762e",
"type": "cta",
"visible": true,
"title": "页面暂时无法访问",
"subtitle": "告诉我们您的需求,我们将提供适合的方案。",
"button": "返回首页",
"href": "/"
}
]
}
@@ -0,0 +1,12 @@
<!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>
<div class="top"><div class="wrap"><span>ENGINEERING · MANUFACTURING · SUPPLY</span><span>GLOBAL INDUSTRIAL SOLUTIONS</span></div></div>
<header><div class="wrap header-inner"><a class="brand" href="./"><span class="brand-icon">▰</span><span>{{site.name}}<small>INDUSTRIAL SOLUTIONS</small></span></a><nav><a href="./">Home</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/">Products</a>{% endif %}{% if entries|selectattr('type','equalto','post')|list %}<a href="post/">News</a>{% endif %}</nav><a class="request" href="mailto:{{site.email or "info@example.com"}}">REQUEST A QUOTE ↗</a></div></header>
{% if blueprint_mode %}{% elif mode=='home' %}<section class="hero"><div class="wrap hero-grid"><div class="hero-text"><span class="kicker"><i></i> STRONGER CONNECTIONS. SMARTER SOLUTIONS.</span><h1>{{page.title if page.title!=site.name else 'BUILT TO LAST.'}}</h1><p>{{page.summary or site.tagline or 'Industrial excellence, quality products and dependable worldwide delivery.'}}</p><a class="button" href="product/">EXPLORE PRODUCTS <b>↗</b></a><div class="hero-tags"><span>01 / MATERIALS</span><span>02 / ENGINEERING</span><span>03 / SERVICE</span></div></div><div class="hero-art">{% if page.cover %}<img src="{{asset(page.cover)}}" alt="{{page.title}}">{% else %}<div class="ring ring-1"></div><div class="ring ring-2"></div><div class="ring ring-3"></div><span>INDUSTRY<br>IN MOTION</span>{% endif %}</div></div></section>
{% elif mode=='notfound' %}<section class="subhero"><div class="wrap"><span class="kicker">ERROR</span><h1>404 — Page not found</h1></div></section>
{% else %}<section class="subhero"><div class="wrap"><span class="kicker">{{type_names.get(page.type,'COMPANY')|upper}} / {{'PRODUCT CATALOG' if mode=='listing' else 'OUR EXPERTISE'}}</span><h1>{{page.title}}</h1><p>{{page.summary}}</p></div></section>{% endif %}
{% if blueprint_mode %}<main class="sf-canvas">{{blocks}}</main>{% else %}<main class="wrap main">{% if mode=='home' %}<div class="metrics"><div><strong>01</strong><span>PRODUCT ENGINEERING</span></div><div><strong>02</strong><span>GLOBAL SOURCING</span></div><div><strong>03</strong><span>QUALITY ASSURANCE</span></div></div>{% endif %}
{% if mode in ['home','detail'] and (content or blocks) %}<article class="rich-content">{{blocks}}{{content}}</article>{% endif %}
{% if mode=='detail' and page.cover %}<figure class="detail-image"><img src="{{asset(page.cover)}}" alt="{{page.title}}"></figure>{% endif %}
{% set cards=listing_items if mode=='listing' else entries|selectattr('type','equalto','product')|list if mode=='home' else [] %}
{% if cards %}<div class="titlebar"><div><span class="kicker">OUR PORTFOLIO</span><h2>{{'Product Catalogue' if mode=='listing' else 'Explore Our Products'}}</h2></div>{% if mode=='home' %}<a href="product/">ALL PRODUCTS ↗</a>{% endif %}</div><div class="product-grid">{% for item in cards[:12] %}<a href="{{link(item.route)}}" class="product"><div class="product-img">{% if item.cover %}<img src="{{asset(item.cover)}}" alt="{{item.title}}">{% else %}<div class="technical-graphic"><span>+</span><span>+</span><span>+</span><span>+</span></div>{% endif %}</div><div class="product-info"><span>INDUSTRIAL / {{type_names.get(item.type,'PRODUCT')|upper}}</span><h3>{{item.title}}</h3><p>{{item.summary|truncate(100)}}</p><div class="arrow">DISCOVER DETAILS <b>→</b></div></div></a>{% endfor %}</div>{% endif %}</main>
{% endif %}<footer><div class="wrap"><div class="footer-cols"><div><h2>{{site.name}}</h2><p>{{site.tagline}}</p></div><div><span>INDUSTRIAL SOLUTIONS</span><p>Quality materials. Dependable service.<br>Worldwide supply.</p></div></div><div class="bottom"><span>© {{site.name}}</span><span>DESIGNED TO DELIVER. BUILT WITH SITEFORGE.</span></div></div></footer></body></html>
File diff suppressed because one or more lines are too long
@@ -0,0 +1,43 @@
{
"id": "industrial",
"name": "工业制造",
"description": "工业蓝与工程网格,产品分类及技术资料;V3 专业全页模板、分类/详情/导航和搜索",
"version": "1.0.0",
"style": "technical",
"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,285 @@
{
"home": [
{
"id": "0cdf18bf7f",
"type": "hero",
"visible": true,
"title": "工程质量,值得信赖",
"subtitle": "INDUSTRIAL ENGINEERING",
"description": "{{site.tagline}}",
"button": "查看产品",
"href": "/product/",
"align": "left"
},
{
"id": "f846a2ff6b",
"type": "features",
"visible": true,
"title": "制造与服务能力",
"items": [
{
"title": "专业服务",
"text": "从咨询到交付"
},
{
"title": "品质保障",
"text": "严格的质量流程"
},
{
"title": "全球网络",
"text": "连接不同市场"
}
]
},
{
"id": "ff4655d684",
"type": "collection",
"visible": true,
"title": "工业产品系列",
"subtitle": "PRODUCT SOLUTIONS",
"source": "product",
"limit": 6,
"columns": 3,
"button": "查看全部",
"href": "/product/"
},
{
"id": "4355daaba0",
"type": "image_text",
"visible": true,
"title": "工程标准与服务流程",
"subtitle": "QUALITY FIRST",
"description": "展示业务流程和服务理念。",
"image": "",
"image_side": "right",
"button": "了解更多",
"href": "/about/"
},
{
"id": "9e5056370d",
"type": "cta",
"visible": true,
"title": "获取专业产品方案",
"subtitle": "告诉我们您的需求,我们将提供适合的方案。",
"button": "联系我们",
"href": "/contact/"
}
],
"about": [
{
"id": "8ced1e0493",
"type": "image_text",
"visible": true,
"title": "认识我们",
"subtitle": "OUR APPROACH",
"description": "展示业务流程和服务理念。",
"image": "",
"image_side": "right",
"button": "了解更多",
"href": "/about/"
},
{
"id": "52b6064084",
"type": "stats",
"visible": true,
"title": "我们的实力",
"items": [
{
"value": "50,000+",
"label": "服务案例"
},
{
"value": "70+",
"label": "市场覆盖"
},
{
"value": "30+",
"label": "合作伙伴"
}
]
},
{
"id": "cf39bcb75d",
"type": "features",
"visible": true,
"title": "我们的优势",
"items": [
{
"title": "专业服务",
"text": "从咨询到交付"
},
{
"title": "品质保障",
"text": "严格的质量流程"
},
{
"title": "全球网络",
"text": "连接不同市场"
}
]
}
],
"contact": [
{
"id": "597f6ffb08",
"type": "richtext",
"visible": true,
"title": "联系我们",
"body": "<p>请填写企业联系方式与地址。</p>"
},
{
"id": "8c02c61415",
"type": "cta",
"visible": true,
"title": "欢迎联系",
"subtitle": "告诉我们您的需求,我们将提供适合的方案。",
"button": "联系我们",
"href": "/contact/"
}
],
"listing": [
{
"id": "2c3106baf6",
"type": "collection",
"visible": true,
"title": "工业产品目录",
"subtitle": "为客户提供适合的解决方案",
"source": "product",
"limit": 24,
"columns": 3,
"button": "查看全部",
"href": "/product/"
}
],
"product": [
{
"id": "42925dc8e3",
"type": "image_text",
"visible": true,
"title": "产品介绍",
"subtitle": "OUR APPROACH",
"description": "{{page.summary}}",
"image": "{{page.cover}}",
"image_side": "right",
"button": "了解更多",
"href": "/about/"
},
{
"id": "503266af35",
"type": "attributes",
"visible": true,
"title": "产品规格与参数"
},
{
"id": "b2b1f5293c",
"type": "richtext",
"visible": true,
"title": "产品详情",
"body": "{{page.body}}"
},
{
"id": "3837f66074",
"type": "cta",
"visible": true,
"title": "开启新的合作",
"subtitle": "告诉我们您的需求,我们将提供适合的方案。",
"button": "联系我们",
"href": "/contact/"
}
],
"article": [
{
"id": "c2573cb88d",
"type": "richtext",
"visible": true,
"title": "{{page.title}}",
"body": "{{page.body}}"
}
],
"brand": [
{
"id": "f43b705317",
"type": "image_text",
"visible": true,
"title": "{{page.title}}",
"subtitle": "OUR APPROACH",
"description": "{{page.summary}}",
"image": "{{page.cover}}",
"image_side": "right",
"button": "了解更多",
"href": "/about/"
},
{
"id": "b3faf08170",
"type": "collection",
"visible": true,
"title": "品牌产品",
"subtitle": "为客户提供适合的解决方案",
"source": "product",
"limit": 6,
"columns": 3,
"button": "查看全部",
"href": "/product/"
}
],
"standard": [
{
"id": "7937550319",
"type": "richtext",
"visible": true,
"title": "{{page.title}}",
"body": "{{page.body}}"
}
],
"notfound": [
{
"id": "59383d762e",
"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,4 @@
<section class="pro-home-hero pro-industrial-hero"><div class="pro-wrap pro-home-grid"><div class="pro-hero-copy"><span class="pro-eyebrow">ENGINEERED FOR WHAT'S NEXT / 001</span><h1>{{page.title if page.title not in (site.name,'首页','Home') else site.name}}<em> BUILT TO PERFORM.</em></h1><p>{{page.summary or site.tagline or '从材料到解决方案,一站式展示企业实力。'}}</p><div class="pro-hero-actions"><a class="pro-button" href="/products/">查看产品系列 ↗</a><a class="pro-outline-button" href="/contact/">获取方案</a></div></div><div class="pro-hero-art">{% if page.cover %}<img src="{{safe_image(page.cover)}}" alt="{{page.title}}">{% else %}<div class="pro-technical"><div></div><div></div><div></div><strong>FORM / FUNCTION</strong></div>{% endif %}</div></div></section>
{% if categories %}<section class="pro-section pro-category-band"><div class="pro-wrap">{{section_title('PRODUCT SYSTEMS','从类别开始探索','/products/')}}<div class="pro-category-tiles">{% for cat in categories[:6] %}<a href="{{cat.url}}"><span>0{{loop.index}}</span><strong>{{cat.name}}</strong><b>↗</b></a>{% endfor %}</div></div></section>{% endif %}
<section class="pro-section pro-featured"><div class="pro-wrap">{{section_title('PRODUCT PORTFOLIO','核心产品','/products/')}}{{grid(showcase,'industrial')}}</div></section>
<section class="pro-section pro-statement"><div class="pro-wrap pro-statement-layout"><span class="pro-eyebrow">APPLICATIONS & SUPPORT</span><div><h2>专注可靠交付,服务多元项目。</h2><p>{{site.tagline or '企业技术、材料和服务能力展示。'}}</p><a class="pro-text-link" href="/services/">服务与解决方案 ↗</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>
+2
View File
@@ -0,0 +1,2 @@
:root{--pro-text:#173a57;--pro-muted:#6b8191;--pro-border:#d8e3eb;--pro-background:#fff;--pro-surface:#edf3f7;--pro-accent:#16629a;--pro-hero:#0e3959;--pro-radius:2px;--pro-headings:Arial,sans-serif;--pro-wide:1290px}
.pro-header{background:#fff}.pro-logo-symbol{color:#14649b;font-size:38px}.pro-utility{background:#0d3a5a;color:#c6e2f1}.pro-header-cta{border-radius:2px;background:#0c5b94}.pro-industrial-hero{background:linear-gradient(90deg,#eff4f8 0%,#e6eef5 60%,#d7e5f0 100%);color:#123b59}.pro-industrial-hero .pro-hero-copy{padding-right:6%}.pro-industrial-hero .pro-hero-copy h1{font-size:clamp(45px,5.3vw,80px)}.pro-industrial-hero .pro-hero-copy h1 em{color:#186fa4}.pro-industrial-hero .pro-hero-art{border-radius:0;background:#0c466d}.pro-technical{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:3%;overflow:hidden;background:repeating-linear-gradient(0deg,transparent,transparent 39px,#ffffff0b 40px),repeating-linear-gradient(90deg,transparent,transparent 39px,#ffffff0b 40px)}.pro-technical>div{width:21%;height:55%;border-radius:60px;border:27px solid #6ba6d4;transform:skewY(-13deg) rotate(-5deg);box-shadow:18px 17px 0 #14324a,0 0 0 9px #bde2fb inset,12px 22px 50px #081c30}.pro-technical>div:nth-child(2){height:72%;width:27%;border-width:34px}.pro-technical strong{position:absolute;bottom:24px;left:28px;color:#aed1e8;font-size:13px;letter-spacing:.17em}.pro-outline-button{color:#0f5988}.pro-category-band{background:#fff}.pro-category-tiles a{background:#eaf2f7;border-top:4px solid #2176aa;min-height:185px;transition:background .2s}.pro-category-tiles a:hover{background:#dce9f2}.pro-category-tiles strong{font-size:21px}.pro-featured{background:#edf3f7}.pro-card{background:#fff;border-radius:2px}.pro-card-cover{background:#d8e6ef}.pro-art-industrial,.pro-art-product{background:linear-gradient(135deg,#aecadf,#e1f1fb)}.pro-art-center{color:#45789b99}.pro-statement{background:#103e5e;color:#fff}.pro-statement .pro-eyebrow{color:#8dc8eb}.pro-statement p{color:#d3e1e9}.pro-statement .pro-text-link{color:#9cdaff}.pro-inner-hero{background:linear-gradient(115deg,#edf4f9 0%,#d9e9f4 100%)}.pro-inner-hero:after{content:'+';position:absolute;right:11%;top:6%;font-size:350px;font-weight:100;color:#15699b10;line-height:1}.pro-article-hero{background:#dceaf4}.pro-article-hero p{color:#537088}.pro-footer{background:#092c45}.pro-end-cta{background:#0a4772}.pro-end-cta a{background:#fff;color:#144b75!important}.pro-404 h1{color:#156d9d}
+10
View File
@@ -0,0 +1,10 @@
<!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-industrial pro-industrial"><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 %}
<div class="pro-utility"><div class="pro-wrap"><span>ENGINEERING · MATERIALS · SUPPLY</span><span>INDUSTRIAL SOLUTIONS</span></div></div>
<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> INDUSTRIAL</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><button class="pro-catalog-toggle" type="button" data-pro-catalog aria-controls="pro-mega-content" aria-expanded="false">产品分类 ▾</button><a href="/contact/" class="pro-header-cta">询价咨询 <span>↗</span></a></div>{% if categories %}<div class="pro-mega pro-wrap" data-pro-mega id="pro-mega-content" hidden><span>产品分类导航</span><div>{% for cat in categories[:12] %}<a href="{{cat.url}}">{{cat.name}} ↗</a>{% endfor %}</div></div>{% endif %}</header>
{% if not designer_replace %}{% include 'industrial/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">INDUSTRIAL PARTNERSHIP</span><h2>{{site.name}}</h2><p>{{footer_text}}</p></div><div class="pro-footer-links">{{footer_links(nav)}}</div><div><span class="pro-eyebrow">BUSINESS ENQUIRY</span><p>{{footer_email or '请在后台配置企业联系方式'}}</p></div></div><div class="pro-footer-bottom"><span>© {{site.name}}</span><span>ENGINEERED TO DELIVER</span></div></div></footer>
<script defer src="assets/site-runtime.js"></script><script defer src="assets/pro.js"></script></body></html>
@@ -0,0 +1,12 @@
<!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>
<div class="top"><div class="wrap"><span>ENGINEERING · MANUFACTURING · SUPPLY</span><span>GLOBAL INDUSTRIAL SOLUTIONS</span></div></div>
<header><div class="wrap header-inner"><a class="brand" href="./"><span class="brand-icon">▰</span><span>{{site.name}}<small>INDUSTRIAL SOLUTIONS</small></span></a><nav><a href="./">Home</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/">Products</a>{% endif %}{% if entries|selectattr('type','equalto','post')|list %}<a href="post/">News</a>{% endif %}</nav><a class="request" href="mailto:{{site.email or "info@example.com"}}">REQUEST A QUOTE ↗</a></div></header>
{% if blueprint_mode %}{% elif mode=='home' %}<section class="hero"><div class="wrap hero-grid"><div class="hero-text"><span class="kicker"><i></i> STRONGER CONNECTIONS. SMARTER SOLUTIONS.</span><h1>{{page.title if page.title!=site.name else 'BUILT TO LAST.'}}</h1><p>{{page.summary or site.tagline or 'Industrial excellence, quality products and dependable worldwide delivery.'}}</p><a class="button" href="product/">EXPLORE PRODUCTS <b>↗</b></a><div class="hero-tags"><span>01 / MATERIALS</span><span>02 / ENGINEERING</span><span>03 / SERVICE</span></div></div><div class="hero-art">{% if page.cover %}<img src="{{asset(page.cover)}}" alt="{{page.title}}">{% else %}<div class="ring ring-1"></div><div class="ring ring-2"></div><div class="ring ring-3"></div><span>INDUSTRY<br>IN MOTION</span>{% endif %}</div></div></section>
{% elif mode=='notfound' %}<section class="subhero"><div class="wrap"><span class="kicker">ERROR</span><h1>404 — Page not found</h1></div></section>
{% else %}<section class="subhero"><div class="wrap"><span class="kicker">{{type_names.get(page.type,'COMPANY')|upper}} / {{'PRODUCT CATALOG' if mode=='listing' else 'OUR EXPERTISE'}}</span><h1>{{page.title}}</h1><p>{{page.summary}}</p></div></section>{% endif %}
{% if blueprint_mode %}<main class="sf-canvas">{{blocks}}</main>{% else %}<main class="wrap main">{% if mode=='home' %}<div class="metrics"><div><strong>01</strong><span>PRODUCT ENGINEERING</span></div><div><strong>02</strong><span>GLOBAL SOURCING</span></div><div><strong>03</strong><span>QUALITY ASSURANCE</span></div></div>{% endif %}
{% if mode in ['home','detail'] and (content or blocks) %}<article class="rich-content">{{blocks}}{{content}}</article>{% endif %}
{% if mode=='detail' and page.cover %}<figure class="detail-image"><img src="{{asset(page.cover)}}" alt="{{page.title}}"></figure>{% endif %}
{% set cards=listing_items if mode=='listing' else entries|selectattr('type','equalto','product')|list if mode=='home' else [] %}
{% if cards %}<div class="titlebar"><div><span class="kicker">OUR PORTFOLIO</span><h2>{{'Product Catalogue' if mode=='listing' else 'Explore Our Products'}}</h2></div>{% if mode=='home' %}<a href="product/">ALL PRODUCTS ↗</a>{% endif %}</div><div class="product-grid">{% for item in cards[:12] %}<a href="{{link(item.route)}}" class="product"><div class="product-img">{% if item.cover %}<img src="{{asset(item.cover)}}" alt="{{item.title}}">{% else %}<div class="technical-graphic"><span>+</span><span>+</span><span>+</span><span>+</span></div>{% endif %}</div><div class="product-info"><span>INDUSTRIAL / {{type_names.get(item.type,'PRODUCT')|upper}}</span><h3>{{item.title}}</h3><p>{{item.summary|truncate(100)}}</p><div class="arrow">DISCOVER DETAILS <b>→</b></div></div></a>{% endfor %}</div>{% endif %}</main>
{% endif %}<footer><div class="wrap"><div class="footer-cols"><div><h2>{{site.name}}</h2><p>{{site.tagline}}</p></div><div><span>INDUSTRIAL SOLUTIONS</span><p>Quality materials. Dependable service.<br>Worldwide supply.</p></div></div><div class="bottom"><span>© {{site.name}}</span><span>DESIGNED TO DELIVER. BUILT WITH SITEFORGE.</span></div></div></footer></body></html>
File diff suppressed because one or more lines are too long