1、使用
使用
目录
[toc]
小功能配置
修改个人特点
2024.8.13(已解决)。
公告
- 官方
https://docusaurus.io/zh-CN/docs/api/themes/configuration#table-of-contents
- 配置方法
announcementBar: {
id: 'support_us',
content:
'欢迎访问我的网站:这里将会持续更新docusaurus主题,感谢关注!',
backgroundColor: '#fafbfc',
textColor: '#091E42',
isCloseable: true,
},
- 效果
首页打字机效果
自己配置方法:
-2024.8.13(已解决)
- 配置方法
此部分代码在如下位置。
Hyde大佬配置方法:
https://hydoc.netlify.app/docs/Docusaurus-typewriter
首先,确认是否有适用于 typeit-react 的类型声明包。某些库没有自带类型声明,但社区可能提供了相关的声明包。
运行以下命令来安装 @types 类型声明包(如果有的话):
pnpm install @types/typeit-react --save-dev
- 如果没有找到对应的类型声明包,继续执行下面的步骤。
确保你已经安装了 typeit-react 模块
pnpm install typeit-react
- json
- yaml
"typeit-react": "^2.7.2"
- 如果没有找到现成的类型声明,【自己实操是有的,跳过此步骤】
- 你可以为 typeit-react 创建一个自定义的声明文件。
在项目的 src 目录下创建一个 types 文件夹(如果没有的话),然后在 types 文件夹内创建一个 typeit-react.d.ts 文件,并添加以下内容:
declare module 'typeit-react' {
// 在这里添加自定义的类型声明
import { FC } from 'react';
interface TypeItProps {
options?: any; // 根据需要添加具体的选 项类型
children?: React.ReactNode;
}
const TypeIt: FC<TypeItProps>;
export default TypeIt;
}
在src\components\landing\Hero\index.tsx组件中引入
import TypeIt from 'typeit-react';
5.使用
点击查看更多
import { type Variants, motion } from 'framer-motion';
import Translate from '@docusaurus/Translate';
import HeroSvg from './img/hero.svg';
import SocialLinks from '@site/src/components/SocialLinks';
import { MovingButton } from '../../magicui/moving-border';
import styles from './styles.module.css';
import TypeIt from 'typeit-react';
const variants: Variants = {
visible: (i) => ({
opacity: 1,
y: 0,
transition: {
type: 'spring',
damping: 25,
stiffness: 100,
duration: 0.3,
delay: i * 0.3,
},
}),
hidden: { opacity: 0, y: 30 },
}
function Circle() {
return <div className={styles.circle} />
}
function Name() {
return (
<motion.div
className={styles.hero_text}
custom={1}
initial="hidden"
animate="visible"
variants={variants}
onMouseMove={(e) => {
e.currentTarget.style.setProperty('--x', `${e.clientX}px`)
e.currentTarget.style.setProperty('--y', `${e.clientY}px`)
}}
>
<Translate id="homepage.hero.greet">你好! 我是</Translate>
<span
className={styles.name}
onMouseMove={(e) => {
const bounding = e.currentTarget.getBoundingClientRect()
e.currentTarget.style.setProperty('--mouse-x', `${bounding.x}px`)
e.currentTarget.style.setProperty('--mouse-y', `${bounding.y}px`)
}}
>
<Translate id="homepage.hero.name">Hyde</Translate>
</span>
<span className="ml-1">👋</span>
</motion.div>
)
}
export default function Hero() {
return (
<motion.div className={styles.hero}>
<div className={styles.intro}>
<Name />
<motion.p custom={2} initial="hidden" animate="visible" variants={variants} className="max-lg:px-4">
<TypeIt
getBeforeInit={(instance) => {
instance
.type('明心静性,爱自己。')
.pause(2000) // 停顿3秒
.delete(9)
.pause(500)
.type('越长大,越孤独!')
.pause(2000); // 停顿3秒
return instance;
}}
options={{ loop: true, speed: 200 }} // 添加 speed 参数
className={styles['rainbow-text']} // 添 加彩虹色类
/>
</motion.p>
<motion.div custom={3} initial="hidden" animate="visible" variants={variants}>
<SocialLinks />
</motion.div>
<motion.div className="mt-4 flex gap-2" custom={4} initial="hidden" animate="visible" variants={variants}>
<MovingButton borderRadius="1.25rem" className="relative z-10 flex items-center rounded-2xl border border-neutral-200 border-solid bg-background px-5 py-3 text-center font-semibold text-base dark:border-neutral-800">
<a href={'/'} className="font-semibold">
<Translate id="hompage.hero.introduce">自我介绍</Translate>
</a>
</MovingButton>
</motion.div>
</div>
<motion.div className={styles.background}>
<HeroSvg />
<Circle />
</motion.div>
</motion.div>
)
}
菜单栏模糊代码
-2024.8.22(测试成功)
- 环境
win10 Docusaurus version: 3.4.0 Node version: v20.12.1 pnpm 9.4.0 愧怍仓库
- 效果
- 配置
在src\css\custom.css路径下添加以下代码
.navbar {
-webkit-backdrop-filter: blur(8px);
backdrop-filter: blur(8px);
background-color: hsla(0, 0%, 100%, 0.2);
box-shadow: 0 0 0.2rem rgba(0, 0, 0, 0.102),
0 0.2rem 0.4rem rgba(0, 0, 0, 0.2);
opacity: 1;
/* 添加过渡动画 */
transition: backdrop-filter 0.5s linear, background-color 0.5s linear,
box-shadow 0.5s linear, opacity 0.5s linear;
}
.navbar-sidebar__backdrop {
/* 移动端侧边栏背景色,背景色为透明 */
background-color: rgba(0, 0, 0, 0);
}
解决移动端布局侧边栏高度自适应问题
-2024.8.22(测试成功)。
在src\css\custom.css路径下添加以下代码:
- 环境
win10 Docusaurus version: 3.4.0 Node version: v20.12.1 pnpm 9.4.0 愧怍仓库
- 效果
- 原来
- 修改为
@media (max-width: 1100px) {
省略...
.navbar-sidebar {
height: 200rem; /* 高度为视口高度的 200rem */
}
}
footer波浪效果
2024.8.20-已解决。
自己配置方法
拷贝data/website.ts
文件:
拷贝src/theme/Footer
目录:
重启服务器,观察效果:
文章底部显示最近更新时间
2024年8月25日,已解决。
- 环境
win10 Docusaurus version: 3.4.0 Node version: v20.12.1 pnpm 9.4.0 基于愧怍仓库
- 效果
- 配置方法
配置如下代码:
showLastUpdateTime: true,
showLastUpdateAuthor: false,
然后记得在md文件最开头写上如下内容:
title: 2、部署
id: filesite.io-photot-install
slug: /filesite.io-photot-install
author: One
date: 2024-08-20
last_update:
date: 2024-08-24
在blog目录下是没用的
这个配置在日常文档里有用,但是配置在blog目录下是没用的。。。
默认日期问题该如何解决
如果md文档默认不配置last_update选项,默认渲染后是有时间显示的,为2018年10月14日。 (这个该如何解决呢??。。。)
配置方法
侧边栏左侧线条
2024年8月25日,已解决。
此代码实现由Hydoc的小站大佬提供。🤞🤞(感谢大佬)
- 环境
win10 Docusaurus version: 3.4.0 Node version: v20.12.1 pnpm 9.4.0 基于愧怍仓库
- 效果
- 配置方法
在src\css\custom.css中添加以下代码:
/* 分割线================================================================================================================================== */
/* 侧边栏左侧线条 */
.menu__list .menu__list {
border-bottom: 2px solid #ced9e3;
/* 设置底部边框颜色为透明 */
/* border-bottom-color: #ffc840 !important; */
border-bottom-color: #ffffff00 !important;
/* 设置左边框颜色 */
border-left: 2px solid #ffc840;
/* 设置边框圆角 */
border-radius: 0 0 0 10px;
/* 设置左边距 */
margin-left: 1rem;
/* 设置左边内边距 */
padding-left: 0.3rem;
}
底部分页导航
2024年8月25日,已解决。
此代码实现由Hydoc的小站大佬提供。🤞🤞(感谢大佬)
- 环境
win10 Docusaurus version: 3.4.0 Node version: v20.12.1 pnpm 9.4.0 基于愧怍仓库
- 配置效果
- 配置方法
在src\css\custom.css中添加以下代码:
a:hover {
color: #72a1ed;
}
/* 分页导航 */
.pagination-nav__link {
border: 1px solid #00000000;
padding: 0.5rem;
margin: 0 0.5rem;
transition: all 0.3s ease-in-out;
}
.pagination-nav__link:hover {
border: 1px solid #72a1ed;
transform: scaleX(0.9); /* 缩小宽度到 90% */
}
.pagination-nav__label:hover {
transform: scale(1.1); /* 将元素缩小到原始大小的 80% */
transition: transform 0.3s ease; /* 平滑过渡效果 */
display: inline-block; /* 确保元素在缩放时不会破坏布局 */
}
.pagination-nav {
border: solid #d8d8d8;
border-width: 2px 0 0;
margin: 2em 0;
padding-top: 0.5rem;
}
.pagination-nav__sublabel {
/* 上一页下一页文字颜色 */
color: #72a1ed;
}
上一页和下一个hover背景颜色
- src\theme\PaginatorNavLink\index.tsx
export default function PaginatorNavLink(props: Props): JSX.Element {
const { permalink, title, subLabel, isNext } = props
return (
<Link
className={cn(
// 上一页和下一个hover背景颜色
'pagination-nav__link border-2 border-link hover:bg-[#00000000]',
isNext ? 'pagination-nav__link--next' : 'pagination-nav__link--prev',
)}
to={permalink}
>
{subLabel && <div className="pagination-nav__sublabel">{subLabel}</div>}
<div className="pagination-nav__label">{title}</div>
</Link>
)
}
文章目录滚动条/全局滚动条样式设置
2024年8月25日,已解决。
此代码实现由Hydoc的小站大佬提供。🤞🤞(感谢大佬)
- 环境
win10 Docusaurus version: 3.4.0 Node version: v20.12.1 pnpm 9.4.0 基于愧怍仓库
- 效果
- 配置方法
目录悬停和激活样式
添加样式路径:src\css\custom.css
/* 样式规则适用于所有的 .table-of-contents__link 元素 */
.table-of-contents__link {
border-radius: 8px; /* 圆角边框 */
margin-top: -0.5rem; /* 上边距,调整元素的垂直位置 */
padding: 0.3rem 0 0.3rem 1rem; /* 内边距,顶部和底部 0.3rem,左侧 1rem */
font-weight: 550; /* 字体加粗 */
transition: 0.25s !important; /* 过渡效果,设置样式变化的过渡时间 */
}
/* 鼠标悬停时的样式 */
.table-of-contents__link:hover,
.table-of-contents__link:hover code {
background-color: rgba(4, 184, 145, 0.395); /* 背景颜色,带透明度 */
color: #333; /* 字体颜色 */
}
/* 激活状态下的样式 */
.table-of-contents__link--active,
.table-of-contents__link--active code {
background-color: #00d7a8; /* 背景颜色 */
color: #FFF; /* 字体颜色 */
}
滚动条样式
全局滚动条样式
src\css\custom.css添加以下代码
/* 全局滚动条样式 */
::-webkit-scrollbar {
width: 0.5rem;
height: 0.5rem;
}
::-webkit-scrollbar-track {
border-radius: 2em;
}
/* 滚动条滑块样式 */
::-webkit-scrollbar-thumb {
background-color: var(--color-pink-light);
background-image: -webkit-linear-gradient(
45deg,
hsla(0, 0%, 100%, 0.4) 25%,
transparent 0,
transparent 50%,
hsla(0, 0%, 100%, 0.4) 0,
hsla(0, 0%, 100%, 0.4) 75%,
transparent 0,
transparent
);
border-radius: 2em;
}
/* 滚动条滑块悬停效果 */
::-webkit-scrollbar-thumb:hover {
background: #aaaaaa;
background-image: -webkit-linear-gradient(
45deg,
hsla(0, 0%, 100%, 0.4) 25%,
transparent 0,
transparent 50%,
hsla(0, 0%, 100%, 0.4) 0,
hsla(0, 0%, 100%, 0.4) 75%,
transparent 0,
transparent
);
border-radius: 2em;
}