如何在 VitePress 中自定义logo,打造精美首页 #home-hero-image


💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
在这里插入图片描述

  • 推荐:「stormsha的主页」👈,「stormsha的知识库」👈持续学习,不断总结,共同进步,为了踏实,做好当下事儿~

  • 专栏导航

    • Python系列: Python面试题合集,剑指大厂
    • Git系列: Git操作技巧
    • GO系列: 记录博主学习GO语言的笔记,该笔记专栏尽量写的试用所有入门GO语言的初学者
    • 数据库系列: 详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 运维系列: 总结好用的命令,高效开发
    • 算法与数据结构系列: 总结数据结构和算法,不同类型针对性训练,提升编程思维

    非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

    💖The Start💖点点关注,收藏不迷路💖

    📒文章目录

      • 1. 为什么要自定义 #home-hero-image
      • 2. 初始化 VitePress 项目
      • 3. 创建自定义主题文件
        • 3.1 配置主题入口文件
        • 3.2 创建自定义组件
      • 4. 配置 VitePress
      • 5. 运行和验证
      • 6. 高级技巧
        • 6.1 响应式设计
        • 6.2 动态背景
        • 6.3 使用 SVG 图像
        • 6.4 图像懒加载
      • 7、总结


在这里插入图片描述
VitePress 是一个轻量级的静态网站生成器,专为文档和博客而设计,基于 Vite 构建。对于希望为自己的项目文档创建高效、现代且美观的站点的开发者来说,VitePress 是一个极具吸引力的选择。在这个教程中,我们将深入探讨如何在 VitePress 中自定义首页的 #home-hero-image,使其更符合你的品牌或项目需求。

1. 为什么要自定义 #home-hero-image

在你的文档站点的首页,#home-hero-image 是第一个引起访问者注意的视觉元素。一个精美的首页图片可以显著提升用户体验和品牌形象。通过自定义 #home-hero-image,你可以展示与你的项目或品牌相关的图像,使主页更具吸引力和个性化。

2. 初始化 VitePress 项目

在开始自定义之前,我们需要确保已经初始化了一个 VitePress 项目。如果你还没有,请按照以下步骤进行设置:

npm init vitepress my-docs
cd my-docs
npm install

创建项目后,你可以通过运行 npm run docs:dev 启动本地开发服务器,并在浏览器中访问 http://localhost:3000 查看默认的 VitePress 站点。

3. 创建自定义主题文件

为了自定义 #home-hero-image,我们需要创建一个自定义主题文件。在项目根目录下,创建以下目录结构:

my-docs
├─ .vitepress
│  ├─ theme
│  │  ├─ index.js
│  │  ├─ components
│  │  │  └─ HomeHero.vue

3.1 配置主题入口文件

.vitepress/theme/index.js 文件中,引入默认主题并添加自定义组件:

import DefaultTheme from 'vitepress/theme'
import HomeHero from './components/HomeHero.vue'export default {...DefaultTheme,Layout: () => {const Layout = DefaultTheme.Layout()Layout.components.HomeHero = HomeHeroreturn Layout}
}

3.2 创建自定义组件

接下来,在 .vitepress/theme/components 目录下创建 HomeHero.vue 文件,用于定义自定义的 #home-hero-image 组件:

<template><div class="home-hero-image"><img src="/path/to/your/image.png" alt="Hero Image"></div>
</template><script>
export default {name: 'HomeHero'
}
</script><style>
.home-hero-image {text-align: center;margin-top: 50px;
}
.home-hero-image img {width: 100%;max-width: 800px;border-radius: 8px;
}
</style>

在这个组件中,我们定义了一个简单的 img 标签,并添加了一些基本的样式。你可以根据自己的需求进一步定制样式。

4. 配置 VitePress

确保在 .vitepress/config.js 中正确配置了主题:

import { defineConfig } from 'vitepress'export default defineConfig({themeConfig: {// 其他配置}
})

5. 运行和验证

保存所有文件后,运行 npm run docs:dev,然后打开浏览器访问 http://localhost:3000。你应该可以看到自定义的 #home-hero-image 显示在首页。

6. 高级技巧

6.1 响应式设计

为了确保 #home-hero-image 在不同设备上都能有良好的显示效果,我们可以添加一些媒体查询,使图像在小屏幕设备上自动调整大小:

@media (max-width: 768px) {.home-hero-image img {width: 90%;max-width: 400px;}
}

6.2 动态背景

如果你想要一个动态背景,可以使用 CSS 动画或 JavaScript。例如,使用 CSS 动画实现一个简单的淡入效果:

.home-hero-image {animation: fadeIn 2s ease-in-out;
}@keyframes fadeIn {from {opacity: 0;}to {opacity: 1;}
}

6.3 使用 SVG 图像

SVG 图像具有无限缩放性和较小的文件大小,非常适合用于网站图像。你可以直接在 HomeHero.vue 中插入 SVG 代码:

<template><div class="home-hero-image"><svg width="800" height="400" xmlns="http://www.w3.org/2000/svg"><!-- SVG 内容 --></svg></div>
</template>

6.4 图像懒加载

为了提升页面加载速度,可以使用懒加载技术来延迟加载图像。使用原生的 loading 属性:

<template><div class="home-hero-image"><img src="/path/to/your/image.png" alt="Hero Image" loading="lazy"></div>
</template>

7、总结

通过上述步骤和技巧,你已经成功地在 VitePress 中自定义了 #home-hero-image。这种自定义不仅能增强你站点的视觉吸引力,还能提升用户体验。如果你对 VitePress 或其他前端技术有更多兴趣,欢迎持续关注我的博客,获取最新的开发技巧和教程。


🔥🔥🔥道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

💖The End💖点点关注,收藏不迷路💖

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/385671.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【matlab】使用movefile批量修改命名,并保留原命名中指定的数字

【matlab】使用movefile批量修改命名&#xff0c;并保留原命名中指定的数字 文章目录 【matlab】使用movefile批量修改命名&#xff0c;并保留原命名中指定的数字一、情况说明二、代码示例通配符正则表达式匹配 (regexp 函数):提取捕获组中的数字 (number 变量): 一、情况说明 …

CTF之网站被黑

简单看一下网页和源码没发现什么明显漏洞 那就扫描一下目录 发现了/shell.php文件&#xff0c;访问一下&#xff0c;发现是一个后台管理登录页面 别无他法只能爆破喽&#xff0c;爆破后发现密码是hack flag{25891d9e9d377f006eda3ca7d4c34c4d}

rust学习——move关键字

示例讲解 在闭包章节中&#xff0c;有讲过 move 关键字在闭包中的使用可以让该闭包拿走环境中某个值的所有权&#xff0c;同样地&#xff0c;你可以使用 move 来将所有权从一个线程转移到另外一个线程。 首先&#xff0c;来看看在一个线程中直接使用另一个线程中的数据会如何…

22.备份交换机-处理无法投递的消息

前面提到当消息发送给交换机&#xff0c;交换机出故障&#xff0c;或者队列出现故障&#xff0c;会反馈给生产者。 如果交换机备份&#xff0c;将无法投递的消息发送给备份交换机&#xff0c;再由备份交换机给备份队列和告警队列的思路&#xff0c;来防止消息不丢失。 小提示…

探索LLM世界:新手小白的学习路线图

随着人工智能的发展&#xff0c;语言模型&#xff08;Language Models, LLM&#xff09;在自然语言处理&#xff08;NLP&#xff09;领域的应用越来越广泛。对于新手小白来说&#xff0c;学习LLM不仅能提升技术水平&#xff0c;还能为职业发展带来巨大的机遇。那么&#xff0c;…

BGP路由反射器

原理概述 缺省情况下&#xff0c;路由器从它的一个 IBGP对等体那里接收到的路由条目不会被该路由器再传递给其他IBGP对等体&#xff0c;这个原则称为BGP水平分割原则&#xff0c;该原则的根本作用是防止 AS内部的BGP路由环路。因此&#xff0c;在AS内部&#xff0c;一般需要每台…

SAP PP学习笔记31 - 计划运行的步骤2 - Scheduling(日程计算),BOM Explosion(BOM展开)

上一章讲了计划运行的5大步骤中的前两步&#xff0c;计算净需求和计算批量大小。 SAP PP学习笔记30 - 计划运行的步骤1 - Net requirements calculation 计算净需求(主要讲了安全库存要素)&#xff0c;Lot-size calculation 计算批量大小-CSDN博客 本章继续讲计划运行的后面几…

Golang | Leetcode Golang题解之第283题移动零

题目&#xff1a; 题解&#xff1a; func moveZeroes(nums []int) {left, right, n : 0, 0, len(nums)for right < n {if nums[right] ! 0 {nums[left], nums[right] nums[right], nums[left]left}right} }

vue3前端开发-小兔鲜项目-使用pinia插件完成token的本地存储

vue3前端开发-小兔鲜项目-使用pinia插件完成token的本地存储&#xff01;实际业务开发中&#xff0c;token是一个表示着用户登录状态的重要信息&#xff0c;它有自己的生命周期。因此&#xff0c;这个参数值必须实例化存储在本地中。不能跟着pinia。因为pinia是基于内存设计的模…

使用法国云手机进行面向法国的社媒营销

在当今数字化和全球化的时代&#xff0c;社交媒体已经成为企业营销和拓展市场的重要工具。对于想进入法国市场的企业来说&#xff0c;如何在海外社媒营销中脱颖而出、抓住更多的市场份额&#xff0c;成为了一个关键问题。法国云手机正为企业提供全新的营销工具&#xff0c;助力…

photoshop学习笔记——移动工具

移动工具&#xff0c;可以对图层进行移动&#xff0c;快捷键 V 使用的素材已经放上了&#xff0c;直接下载即可 按住ctrl 可以自动选取&#xff0c;鼠标点击哪个对象&#xff0c;自动选中哪个图层 按住 shift 校正角度&#xff08;只能沿着直线移动&#xff09; 按住 alt 拖…

Redis的分布式锁

目录 一、定义与原理 基于Redis的分布式锁 获取锁 释放锁 锁误删问题&#xff1a;因为key值一样,将别人的锁删掉了 锁误判问题二&#xff1a;判断锁和释放锁不是原子性的 Lua脚本 分布式锁&#xff1a;满足分布式系统或集群模式下多进程可见并且互斥的锁 分布式锁的优点…

Linux驱动开发——字符设备驱动开发

1 概述 1.1 说明 本文是学习rk3568开发板驱动开发的记录&#xff0c;代码依托于rk3568开发板 1.2 字符设备介绍 字符设备是 Linux 驱动中最基本的一类设备驱动&#xff0c;字符设备就是一个一个字节&#xff0c;按照字节流进行读写操作的设备&#xff0c;读写数据是分先后顺…

Navicat Charts Creator for Mac:数据可视化利器

Navicat Charts Creator for Mac是一款专为Mac用户设计的数据可视化工具&#xff0c;它将复杂的数据转化为直观、易懂的图表&#xff0c;帮助用户更好地理解和分析数据。 该软件支持连接到多种数据库&#xff0c;如MySQL、MariaDB、PostgreSQL等&#xff0c;轻松获取实时数据&…

23 PCBEditor封装创建向导介绍24 PCBEditor3D封装展示25 PCB封装库的管理与调用

23 PCBEditor封装创建向导介绍_BGA为例&&24 PCBEditor3D封装展示&&25 PCB封装库的管理与调用 第一部分 23 PCBEditor封装创建向导介绍_BGA为例一、创建焊盘二、PCBEditor创建封装 第二部分 24 PCBEditor3D封装展示第三部分 25 PCB封装库的管理与调用一、指定库…

黑马头条vue2.0项目实战(二)——登录注册功能的实现

1. 布局结构 目标 能实现登录页面的布局 能实现基本登录功能 能掌握 Vant 中 Toast 提示组件的使用 能理解 API 请求模块的封装 能理解发送验证码的实现思路 能理解 Vant Form 实现表单验证的使用 这里主要使用到三个 Vant 组件&#xff1a; NavBar 导航栏 Form 表单 F…

Linux文件恢复

很麻烦 一般还是小心最好 特别恢复的时候 可能不能选择某个文件夹去扫描恢复 所以 删除的时候 用rm -i代替rm 一定小心 以及 探索下linux的垃圾箱机制 注意 一定要恢复到不同文件夹 省的出问题 法1 系统自带工具 debugfs 但是好像不能重启&#xff1f; testdisk 1、安装 …

C++项目——高并发内存池

一、什么是内存池 内存池(Memory Pool) 是一种动态内存分配与管理技术。 通常情况下&#xff0c;程序员习惯直接使用new、delete、malloc、free 等API申请分配和释放内存&#xff0c;这样导致的后果是&#xff1a;当程序长时间运行时&#xff0c;由于所申请内存块的大小不定&…

OpenCV 图像预处理—图像金字塔

文章目录 相关概念高斯金字塔拉普拉斯金字塔应用 构建高斯金字塔为什么要对当前层进行模糊&#xff1f;1. 平滑处理2. 减少混叠&#xff08;Aliasing&#xff09;3. 多尺度表示4. 图像降采样 举个栗子创建高斯金字塔和拉普拉斯金字塔&#xff0c;并用拉普拉斯金字塔恢复图像 相…