update
This commit is contained in:
@@ -329,7 +329,7 @@ const filtered = headings.filter(h => h.depth <= 3);
|
||||
data-aos-once="true"
|
||||
>Let's Connect</h2>
|
||||
<p
|
||||
class="text-sm leading-6 text-neutral-600 dark:text-neutral-300"
|
||||
class="text-sm leading-6 text-neutral-700 dark:text-neutral-300"
|
||||
data-aos="fade-up-xs"
|
||||
data-aos-delay="100"
|
||||
data-aos-duration="500"
|
||||
@@ -339,7 +339,7 @@ const filtered = headings.filter(h => h.depth <= 3);
|
||||
href={siteConfig.social.twitter}
|
||||
target="_blank"
|
||||
class="text-indigo-500 underline">follow me on twitter</a
|
||||
>, or you can send me an <a href="mailto:hello@ricouic.om" class="text-indigo-500 underline"
|
||||
>, or you can send me an <a href="mailto:hello@ricoui.com" class=" underline"
|
||||
>email</a
|
||||
> and I'll be sure to get back to you.
|
||||
</p>
|
||||
|
||||
@@ -4,7 +4,7 @@ import PageHeader from "@/components/elements/PageHeader.astro";
|
||||
import BlogSection from "@/components/sections/BlogSection.astro";
|
||||
|
||||
// 使用与分页页面相同的每页文章数量
|
||||
const POSTS_PER_PAGE = 3;
|
||||
const POSTS_PER_PAGE = 6;
|
||||
// 博客首页显示第一页内容
|
||||
const currentPage = 1;
|
||||
---
|
||||
|
||||
@@ -10,8 +10,20 @@ export const POSTS_PER_PAGE = 6;
|
||||
// 生成分页路径
|
||||
export async function getStaticPaths() {
|
||||
const allPosts = await getCollection("post");
|
||||
// 使用顶层定义的POSTS_PER_PAGE常量
|
||||
const totalPages = Math.ceil(allPosts.length / POSTS_PER_PAGE);
|
||||
|
||||
// 按发布日期排序文章
|
||||
let posts = allPosts.sort(
|
||||
(a, b) => b.data.publishDate.valueOf() - a.data.publishDate.valueOf()
|
||||
);
|
||||
|
||||
// 查找特色文章,在列表页需要从主列表中移除
|
||||
const featuredPost = posts.find((post) => post.data.featured);
|
||||
if (featuredPost) {
|
||||
posts = posts.filter((post) => post.data.featured !== true);
|
||||
}
|
||||
|
||||
// 使用移除特色文章后的文章数量计算总页数
|
||||
const totalPages = Math.ceil(posts.length / POSTS_PER_PAGE);
|
||||
|
||||
return Array.from({ length: totalPages }, (_, i) => {
|
||||
const page = i + 1;
|
||||
|
||||
58
src/pages/work/luonmodels.astro
Normal file
58
src/pages/work/luonmodels.astro
Normal file
@@ -0,0 +1,58 @@
|
||||
---
|
||||
import { Image } from "astro:assets";
|
||||
import PostLayout from "@/layouts/PostLayout.astro";
|
||||
import PageHeader from "@/components/elements/PageHeader.astro";
|
||||
import ActionBar from "@/components/widgets/ActionBar.astro";
|
||||
import SeparatorLine from "@/components/elements/SeparatorLine.astro";
|
||||
|
||||
//自动导入 Image 组件和图像
|
||||
const allImages = await Astro.glob('../../assets/work/luonmodels/*.{jpg,png,webp}');
|
||||
const logoUrl = "https://luonmodels.vercel.app/favicon.png";
|
||||
---
|
||||
<PostLayout
|
||||
title="LUON - Agency Website Template"
|
||||
description = 'LUONModels is a sleek and fluid Astro enterprise template specifically designed for modeling agencies, photographers, and studios.',
|
||||
keywords = 'LUONModels, Agency Website Template, Astro, Modeling Agency, Photographer, Studio',
|
||||
>
|
||||
<div class="work article">
|
||||
<main class="work-wrapper">
|
||||
<PageHeader
|
||||
title="LUON - Agency Website Template"
|
||||
tags={["Designer","Portfolio","Open Source"]}
|
||||
className="mb-6 md:mb-8"
|
||||
>
|
||||
</PageHeader>
|
||||
</section>
|
||||
<div class="site-container m-auto">
|
||||
<SeparatorLine />
|
||||
</div>
|
||||
<section class="article-content">
|
||||
<div class="site-container mx-auto my-8 md:my-16 ">
|
||||
<div>
|
||||
<p>
|
||||
LUONModels is a sleek and fluid Astro enterprise template specifically designed for modeling agencies, photographers, and studios. It aims to showcase people, photography, and information clearly and effectively, while also making it convenient to build event pages, content blogs, and various other specialized pages.
|
||||
</p>
|
||||
<p>Features</p>
|
||||
<ul>
|
||||
<li>✅ Responsive Design: Fully optimized for mobile and desktop viewing, ensuring a consistent experience across devices.</li>
|
||||
<li>✅ Built with Astro.js: Leverages the powerful features of Astro.js for optimized performance and easy customize.</li>
|
||||
<li>✅ Intuitive User Interface: Minimalist layout promotes ease of use, allowing users to find what they need without confusion.</li>
|
||||
<li>✅ Speed Optimization: Engineered for exceptional loading times, ensuring that users don’t have to wait on page loads.</li>
|
||||
<li>✅ Customizable Components: Flexibility to customize elements easily, aligning with your brand’s identity and needs.</li>
|
||||
<li>✅ SEO Friendly: Built with search engine optimization in mind, helping improve visibility and rankings.</li>
|
||||
</ul>
|
||||
<p>🔗🔗 <a href="https://luonmodels.vercel.app/" target="_blank">Live Demo</a></p>
|
||||
</div>
|
||||
{allImages.map((img, index) => (
|
||||
<picture class="picture mt-8 md:mt-12 mb-8 md:mb-12 rounded-2xl overflow-hidden">
|
||||
<Image src={img.default} alt={`Image ${index + 1}`} class="w-full h-full object-cover" loading="lazy" decoding="async" quality={100}/>
|
||||
</picture>
|
||||
))}
|
||||
</div>
|
||||
</section>
|
||||
</main>
|
||||
</div>
|
||||
<ActionBar logo={logoUrl} tags={["Agency", "Website"]} url="https://luonmodels.vercel.app/" github="https://ricoui.gumroad.com/l/luon" visitLabel="Visit Site" />
|
||||
</PostLayout>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user