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

news2024/11/16 13:46:36

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

  • 推荐:「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 = HomeHero
    return 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.coloradmin.cn/o/1956396.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言 | Leetcode C语言题解之第282题给表达式添加运算符

题目&#xff1a; 题解&#xff1a; #define MAX_COUNT 10000 // 解的个数足够大 #define NUM_COUNT 100 // 操作数的个数足够大 long long num[NUM_COUNT] {0};long long calc(char *a) { // 计算表达式a的值// 将数字和符号&#xff0c;入栈memset(num, 0, sizeof(num));in…

差分法求解 Burgers 方程(附完整MATLAB 及 Python代码)

Burgers 方程的数值解及误差分析 引言 Burgers 方程是一个非线性偏微分方程&#xff0c;在流体力学、非线性声学和交通流理论中有广泛应用。本文将通过数值方法求解带粘性的 Burgers 方程&#xff0c;并分析其误差。 方程模型 Burgers 方程的形式为&#xff1a; u t u u …

在react中如何计算本地存储体积

1.定义useLocalStorageSize钩子函数 // 计算localStorage大小 function useLocalStorageSize() {const [size, setSize] useState(0);useEffect(() > {const calculateSize () > {let totalSize 0;for (let key in localStorage) {//过滤掉继承自原型链的属性if (loc…

Profinet转EtherNet/IP协议转化网关(功能与配置)

怎么样把Profinet和EtherNet/IP两个协议连接起来?有很多朋友想要了解这个问题&#xff0c;那么作者在这里统一说明一下。其实有一个不错的设备产品可以很轻易地解决这个问题&#xff0c;名为JM-PN-EIP。接下来作者就从该设备的功能及配置详细说明一下。 一&#xff0c;设备主…

力扣高频SQL 50题(基础版)第二十二题

文章目录 力扣高频SQL 50题&#xff08;基础版&#xff09;第二十二题1084 销售分析题目说明思路分析实现过程准备数据实现方式结果截图 力扣高频SQL 50题&#xff08;基础版&#xff09;第二十二题 1084 销售分析 题目说明 表&#xff1a; Product --------------------- …

Scraperr能从网页中抓取数据

什么是 Scraperr &#xff1f; Scraperr 是一个自托管的 Web 应用程序&#xff0c;允许用户通过 XPath 指定元素从网页中抓取数据。用户可以提交要抓取的 URL 和相应元素&#xff0c;结果将显示在表格中。用户可以下载作业结果的 Excel 表&#xff0c;以及重新运行该作业的选项…

在这个只有病人去的场所,你看到了哪些意料之外的举动?--医者仁心:医院里的温情奇迹

在这个只有病人去的场所&#xff0c;你看到了哪些意料之外的举动? --医者仁心&#xff1a;医院里的温情奇迹 在繁忙与喧嚣交织的医院里&#xff0c;每一天都上演着生与死的较量&#xff0c;但在这片看似冷漠的土地上&#xff0c;却也悄然绽放着无数温暖人心的花朵。今天&…

prompt输入框模拟禁用弹窗

this.$prompt(确认取消申报申请吗?, 提示, {confirmButtonText: 确定,cancelButtonText: 取消,

新款 GPT-4o mini、Llama 3.1、Mistral NeMo 12B 和其他 GenAI 趋势指南

作者使用 GPT-4o 创建的图像&#xff0c;用于表示不同的模型 欢迎来到雲闪世界。自 2022 年 11 月推出 ChatGPT 以来&#xff0c;几乎每周都会出现新的模型、新颖的提示方法、创新的代理框架或其他令人兴奋的 GenAI 突破。2024 年 7 月也不例外&#xff1a;仅在本月&#xff0c…

UDP connect 内核源码分析

1 从诡异开始 最近遇到一个线上问题&#xff0c;client 发了一个 udp 请求&#xff0c;服务器回了一个响应&#xff0c;但诡异的是&#xff0c;client 的 log 却看不到对应的处理日志。抓包发现内核发出了一个指示 udp 目的端口不可达的 icmp 报文&#xff0c;类似这样的&#…

【基于PSINS】UKF/SSUKF对比的MATLAB程序

UKF与SSUKF UKF是&#xff1a;无迹卡尔滤波 SSUKF是&#xff1a;简化超球面无迹卡尔曼滤波 UKF 相较于传统的KF算法&#xff0c;UKF能够更好地处理非线性系统&#xff0c;并且具有更高的估计精度。它适用于多种应用场景&#xff0c;如机器人定位导航、目标跟踪、信号处理等。…

机器学习 | 计算分类算法的ROC和AUC曲线以随机森林为例

受试者工作特征&#xff08;ROC&#xff09;曲线和曲线下面积&#xff08;AUC&#xff09;是常用的分类算法评价指标&#xff0c;本文将讨论如何计算随机森林分类器的ROC 和 AUC。 ROC 和 AUC是量化二分类区分阳性和阴性类别能力的度量。ROC曲线是针对不同分类阈值的真阳性率&…

Mac电脑 系统监测工具 System Dashboard Pro【简单操作,小白轻松上手】

Mac分享吧 文章目录 效果一、下载软件二、开始安装1、双击运行软件&#xff0c;将其从左侧拖入右侧文件夹中&#xff0c;等待安装完毕2、应用程序显示软件图标&#xff0c;表示安装成功 三、运行测试安装完成&#xff01;&#xff01;&#xff01; 效果 一、下载软件 下载软件…

opencascade AIS_PlaneTrihedron 源码学习

AIS_PlaneTrihedron 前言 构建一个可选择的2D轴系在3D绘图中。 这个轴系可以放置在3D系统中的任何位置&#xff0c;提供一个用于在平面中绘制曲线和形状的坐标系。 有三种选择模式&#xff1a; 模式0 选择整个平面“trihedron” 模式1 选择平面“trihedron”的原点 模式2 选择…

Nuxt.js 路由管理:useRouter 方法与路由中间件应用

title: Nuxt.js 路由管理&#xff1a;useRouter 方法与路由中间件应用 date: 2024/7/28 updated: 2024/7/28 author: cmdragon excerpt: 摘要&#xff1a;本文介绍了Nuxt 3中useRouter方法及其在路由管理和中间件应用中的功能。内容包括使用useRouter添加、移除路由&#xf…

Cesium高性能渲染海量矢量建筑

0、数据输入为类似Geojson的压缩文件和纹理图片&#xff0c;基于DrawCommand命令绘制&#xff1b; 1、自定义建筑几何&#xff0c;包括顶点、法线、纹理等&#xff1b; 2、自定义纹理贴图&#xff0c;包括按建筑高度贴图、mipmap多级纹理&#xff1b; 3、自定义批处理表&…

我的新书《Android系统多媒体进阶实战》正式发售了!!!

我的新书要正式发售了&#xff0c;把链接贴在下面&#xff0c;感兴趣的朋友可以支持下。 ❶发售平台&#xff1a;当当&#xff0c;京东&#xff0c;抖音北航社平台&#xff0c;小红书&#xff0c;b站 ❷目前当当和京东已开启预售 ❸当当网 https://u.dangdang.com/KIDHJ ❹…

22 B端产品经理与MySQL基本查询、排序(2)

MySQL基本常识 MySQL&#xff1a;一种关系型数据库管理系统。是按照数据结构来组织、存储和管理数据的仓库。 数据库&#xff1a;是一些关联数据表的集合。 数据表&#xff1a;表是数据的矩阵&#xff0c;看起来像电子表格&#xff0c;如下图&#xff1a;user表和admin表。 …

⌈ 传知代码 ⌋ 红外小目标检测

&#x1f49b;前情提要&#x1f49b; 本文是传知代码平台中的相关前沿知识与技术的分享~ 接下来我们即将进入一个全新的空间&#xff0c;对技术有一个全新的视角~ 本文所涉及所有资源均在传知代码平台可获取 以下的内容一定会让你对AI 赋能时代有一个颠覆性的认识哦&#x…

keil5导入程序到stm32的开发板

如图&#xff0c; 1&#xff0c;安装mdk_514.exe 2&#xff0c;安装Keil.STM32F1xx_DFP.1.0.5.pack 3&#xff0c;注册方法&#xff08;仅限学生使用&#xff09;&#xff1a;http://www.openedv.com/thread-69384-1-1.html 点击keil程序的上面魔法棒&#xff0c; 在device中…