8cea7dee20
- 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>
9 lines
3.3 KiB
HTML
9 lines
3.3 KiB
HTML
<!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>
|