Clarity主题深度定制指南

Clarity主题深度定制指南

由于Clarity主题的功能缺失,很多功能需要自行添加,得益于很多前辈的教程和AI的协助,制作出很多不错的页面和功能,在此发文做记录,以便自己与后来者查看。包含完整的Vue组件代码与CSS样式。
提醒

部分教程来自于 栖童の小站,我在此基础上做了些调整,感谢大佬的详细教程。

前言

持续更新中

页面相关

添加说说页面

点击查看Ech0

在/app/pages/新建essay.vue

在/app/types/新建talk.ts

添加标签页面

在/app/pages/新建tags.vue

友链朋友圈

适配六神的轻量友链朋友圈

在/scripts/新建generate-friend.ts

执行

text
pnpm tsx scripts/generate-friend.ts

会在public目录生成friend.json 在/app/pages/新建fcircle.vue

添加 about 页面

在/app/pages/新建about.vue

添加留言板页面

在/app/pages/新建comments.vue

侧边栏

如何添加自定义侧边栏

修改/app/composables/useWidgets.ts,以恋爱墙为例。

text
import {
    LazyWidgetBlogLog,
    LazyWidgetBlogStats,
    LazyWidgetBlogTech,
    LazyWidgetCommGroup,
    LazyWidgetEmpty,
    LazyWidgetGithubCard,
    LazyWidgetToc,
    LazyWidgetLoveWall, // 恋爱墙
} from '#components'
import { pascal } from 'radash'

// @keep-sorted
const rawWidgets = {
    LazyWidgetBlogLog,
    LazyWidgetBlogStats,
    LazyWidgetBlogTech,
    LazyWidgetCommGroup,
    LazyWidgetEmpty,
    LazyWidgetGithubCard,
    LazyWidgetToc,
    LazyWidgetLoveWall, // 恋爱墙
}

在你需要添加的page页面修改对应的vue,/app/pages/index.vue是文章首页.

text
// 修改下列参数,'WidgetBlogStats'在上方就是上方'WidgetLoveWall'则是最底下,可自行调整侧边栏顺序
<template #aside>
    <WidgetBlogStats />
    <WidgetBlogTech />
    <WidgetBlogLog />
    <WidgetCommGroup />
    <WidgetLoveWall /> // 恋爱墙
</template>

添加访客欢迎显示

在/app/components/widget/新建WelcomeVisitor.vue

最新评论

在/app/components/widget/新建LatestComments.vue

修改TOC

文章footer

添加分享功能

修改/app/components/post/PostFooter.vue

添加打赏功能

在/app/components/post/新建Donation.vue

修改/app/pages/[...slug].vue

text
<PostFooter v-bind="post" />
<PostDonation /> //添加项
<PostSurround />
<PostComment />

修改blog.config.ts

text
    /** 禁止搜索引擎收录的路径 */
	robotsNotIndex: ['/preview', '/previews/*'],
},

/** 赞赏配置 */
donation: {
    enable: true,
    message: '感谢您的支持,这将激励我创作更多优质内容!',
    items: {
      "微信支付": 'https://example.com/wechat-pay.png',
      "支付宝": 'https://example.com/alipay.png',
      "xxx": 'https://example.com/xxx.png'
    }
},

/** 博客 Atom 订阅源 */

指定页面关闭评论、赞赏、分享、功能

按照如下代码修改/app/pages/[...slug].vue

text
   <PostFooter v-if="post.postfooter" v-bind="post" />
	<PostDonation v-if="post.donation" />
	<PostSurround />
	<PostComment v-if="post.comment" />

在content.config.ts中添加如下代码

text
const articleSchema = z.object({
	draft: z.boolean().default(false),
	permalink: z.string().optional(),
	postfooter: z.boolean().default(true),
	donation: z.boolean().default(true),
	comment: z.boolean().default(true),

使用示例

text
---
title: '文章标题'
date: '2025-01-01'
postfooter: false#关闭分享按钮(连带着版权一起隐藏)
donation: false#关闭赞赏
comment: false#关闭评论
---

Twikoo评论样式美化

修改/app/components/post/Comment.vue。

微信支付
支付宝
QQ

感谢您的支持,这将激励我创作更多优质内容!

新故事即将发生
禁止用pip在系统全局Python环境安装包的解决办法

评论区

评论加载中...