58 lines
2.6 KiB
HTML
58 lines
2.6 KiB
HTML
<!DOCTYPE html>
|
||
<html xmlns:th="http://www.thymeleaf.org" lang="zh-CN">
|
||
<head th:replace="~{${themeBase} + '/fragments/head' :: head}"></head>
|
||
<body>
|
||
<header th:replace="~{${themeBase} + '/fragments/header' :: header}"></header>
|
||
|
||
<main class="home-main">
|
||
<!-- 首页轮播位(cms_banner position=home;设计尺寸约定 1920×560,见 assets/css 注释) -->
|
||
<section class="banner" th:if="${!#lists.isEmpty(banners)}">
|
||
<div class="banner-slides">
|
||
<a class="banner-slide" th:each="b, stat : ${banners}"
|
||
th:classappend="${stat.first} ? 'active'"
|
||
th:href="${b.linkUrl}" th:title="${b.title}">
|
||
<img th:src="${b.imageUrl}" th:alt="${b.title}">
|
||
<span class="banner-title" th:text="${b.title}">标题</span>
|
||
</a>
|
||
</div>
|
||
<div class="banner-dots" th:if="${#lists.size(banners) > 1}">
|
||
<button th:each="b, stat : ${banners}" th:classappend="${stat.first} ? 'active'"
|
||
th:aria-label="${'第' + (stat.count) + '张'}"></button>
|
||
</div>
|
||
</section>
|
||
|
||
<!-- 置顶/头条区(cms_article topmost 优先) -->
|
||
<section class="top-strip" th:if="${!#lists.isEmpty(topArticles)}">
|
||
<h2 class="section-title">头条推荐</h2>
|
||
<ul>
|
||
<li th:each="item : ${topArticles}">
|
||
<span class="top-badge" th:if="${item.topmost == 1}">置顶</span>
|
||
<a th:href="${url.article(item.id)}" th:text="${item.title}">文章标题</a>
|
||
<time th:if="${item.publishTime != null}"
|
||
th:text="${#temporals.format(item.publishTime, 'yyyy-MM-dd')}">2026-01-01</time>
|
||
</li>
|
||
</ul>
|
||
</section>
|
||
|
||
<!-- 一级栏目区块(每栏目 top 8) -->
|
||
<section class="category-block" th:each="block : ${categoryBlocks}">
|
||
<div class="block-head">
|
||
<h2 th:text="${block.category.name}">栏目名</h2>
|
||
<a class="more" th:href="${block.moreUrl}">更多 ></a>
|
||
</div>
|
||
<ul class="block-list" th:if="${!#lists.isEmpty(block.items)}">
|
||
<li th:each="item : ${block.items}">
|
||
<a th:href="${url.article(item.id)}" th:text="${item.title}">文章标题</a>
|
||
<time th:if="${item.publishTime != null}"
|
||
th:text="${#temporals.format(item.publishTime, 'yyyy-MM-dd')}">2026-01-01</time>
|
||
</li>
|
||
</ul>
|
||
<p class="empty" th:if="${#lists.isEmpty(block.items)}">暂无内容</p>
|
||
</section>
|
||
</main>
|
||
|
||
<footer th:replace="~{${themeBase} + '/fragments/footer' :: footer}"></footer>
|
||
<script th:src="${url.asset('js/main.js')}"></script>
|
||
</body>
|
||
</html>
|