从零用VitePress搭建博客教程(2) – VitePress默认首页和头部导航配置

接上一节:从零用VitePress搭建博客教程(1) – VitePress的安装和运行

四、默认首页配置

配置首页之前,我们需要了解VitePress的默认主题,它是提供了首页布局,通过设置 layout 选项为页面 frontmatter 来选择页面布局。

layout 主要有 3 个布局选项doc, page, 和 home,详细如下:

  • layout: doc:doc 是默认布局,它将整个 Markdown 内容样式化为“文档”外观。

  • layout: page :选项 page 被视为“空白页”, Markdown 仍然会被解析,并且所有 Markdown Extensions 与 doc 布局同样生效,但它不会获得任何默认样式。

  • layout: home :选项 home 将生成模板化的“主页”,在此布局中,您可以设置额外的选项,例如hero和features。

  • layout: false 无布局(纯空白页),解析 Markdown 但不会获得任何默认样式

1、首页配置

那么我们想要配置主页,选择layout: home 即可,它有herofeatures两个部分的配置。

首先在index.md顶部,写入如下代码

---
layout: home
---

这样我们就开启了首页的布局配置,之后,我们就可以通过设置其他选项(如 hero 和 features)进行配置了。

1.1、Hero 部分

Hero 部分位于主页顶部,下面是如何配置 Hero 部分。要注意缩进

---
  layout: home
  hero:
    image: 
      src: /logo.png
      alt: 前端吧
  name: 前端吧
  text: 关注web前端开发为主的博客网站和前端网址导航
  tagline: 收集有一大批前端相关的技术网站,包括Vue、React等技术资料的生态网站,方便快速访问
---

name: 是文档标题

text: 是类似文档副标题内容

tagline: 文档标语

基本效果如下:

有一点VitePress首页的样子了,在后面我们还会跟大家说下怎么修改样式。

1.2、按钮部分

按钮部分主要通过actions来配置的,如下:

---
  layout: home
  hero:
    image: 
      src: /logo.png
      alt: 前端吧
    name: 前端吧
    text: 关注web前端开发为主的博客网站和网址导航
    tagline: 收集有一大批前端相关的技术网站,包括Vue、React等技术资料的生态网站,方便快速访问。
    actions:
    - theme: brand
      text: 开始使用
      link: /guide/start
    - theme: alt
      text: 前端吧官网
      link: http://qianduan8.com/
---
  • theme 是按钮的主题,只有 brand 和 alt 两种,也就是分别对应目前网页中绿色和灰色按钮

  • text 是按钮的文字

  • link 是按钮的链接,点击后跳转,可以是网址URL,也可以是文档中的绝对路径,根路径是 docs,可以省略文档类型,默认是 md

比如上面按钮配置的/guide/start链接,我们在 docs 下创建 guide 目录,再在 guide 目录下创建 start.md 文件,现实简单输入一些文字试试,点击按钮就可以跳转到/guide/start页面了

# 开始访问官网-测试内容
[前端吧官网](http://qianduan8.com/)

1.3、features 部分

features部分:简单说就是网站文档说明或者附加内容部分,具体看最终效果就知道了。

---
  layout: home
  hero:
    image: 
      src: /logo.png
      alt: 前端吧
    name: 前端吧
    text: 关注web前端开发为主的博客网站和网址导航
    tagline: 收集有一大批前端相关的技术网站,包括Vue、React等技术资料的生态网站,方便快速访问。
    actions:
    - theme: brand
      text: 开始使用
      link: /guide/start
    - theme: alt
      text: 前端吧官网
      link: http://qianduan8.com/
  features:
  - title: UnoCSS
    details: Unocss是一种基于PurgeCSS的CSS框架,它可以帮助你更简洁、更高效地编写CSS。 Unocss的语法非常简单,它采用了类似于Tailwind CSS的类名方式。
    link: https://unocss.dev/
    linkText: 了解更多
  - title: Vue3
    details: 渐进式JavaScript框架.
    link: https://cn.vuejs.org/
    linkText: 了解更多
  - title: vitePress
    details: Vite & Vue Powered Static Site Generator.
    link: https://vitepress.dev/
  - title: Pinia
    details: 符合直觉的Vue.js 状态管理库.
    link: https://pinia.vuejs.org/zh/
  - title: Vuex
    details: 是一个专为 Vue.js 应用程序开发的状态管理模式.
    link: https://vuex.vuejs.org/zh/
  - title: Vue Router
    details: Vue.js 的官方路由,为 Vue.js 提供富有表现力、可配置的、方便的路由.
    link: https://router.vuejs.org/zh/
---
  1. icon 是每个 feature 盒子的图标

  2. title 是每个 feature 盒子的标题

  3. details 是每个 feature 盒子的详细描述内容

  4. link 是每个 feature 盒子的单击要素组件时链接,简单说就是链接地址,链接可以是内部链接,也可以是外部链接。

  5. linkText 是每个 feature 盒子的链接要显示在要素组件内部的文本,简单说就是链接文本,最好与 link 选项一起使用。

效果如下:

2、头部导航栏配置

我们可以通过配置文件config.js中的themeConfig选项定义主题配置,通过它我们可以配置网站的logo、主导航、标题、侧边导航等等。

在 vitePress 中,一个 .md 文件就可以作为一张页面,并且,在根目录 docs 中的.md可自动生成路由。

所以头部导航的配置,只需在config.js中的themeConfig中的nav配置即可,在这我们还可以把logo也配置上

// 头部导航
import topNav from "./topNav";
 
export default {
  title: "前端吧",
  description: "关注web前端开发为主的博客网站和前端网址大全",
  // 打包目录 outDir: "./dist",
  head: [
    // 添加图标
    ["link", { rel: "icon", href: "/favicon.ico" }],
  ],
  // 主题配置
  themeConfig: {
    // 导航上的logo
    logo: "/logo.png",
    // 隐藏logo右边的标题
    siteTitle: false,
    // 头部导航栏配置
    nav: topNav,
  },
};

然后我们新建一个topNav/index.js文件, index.js代码如下

export default [
  {
    text: "前端网聚",
    items: [
      { text: "前端综合", link: "/site/page" },
      { text: "HTML/CSS", link: "/site/html-css" },
      { text: "框架组件", link: "/site/framework" },
    ],
  },
  {
    text: "技术笔记",
    items: [
      { text: "VitePress", link: "/note/vitePress" },
      { text: "Vue", link: "/note/vue" },
      { text: "react", link: "/note/react" },
    ],
  },
  {
    text: "关于我们",
    link: "/about/page",
  },
  { text: "更新日志", link: "" },
];

效果如下:

然后我们再创建site、note等相关文件夹和文件即可

之后就可以愉快地编写md文件内容了

注意点:

这里我发现在创建导航的时候有一个细节要注意,比如关于我们,假如我们创建的是about/index.md,这个时候导航就没有选中样式效果。

index.md改为其他名字即可,比如page.md,此时才有选中的样式效果。

3、左侧导航栏配置

关于左侧导航栏的配置,在themeConfig中的sidebar配置即可

这里,我们新建一个sideBar文件夹,用于专门放左侧导航栏的js文件,比如我们新建一个vitePressBar.js(这里如何管理导航文件,根据自己需求处理)。

import { vitePressNote } from "./sideBar/vitePressBar";
 
export default {
  // 主题配置
  themeConfig: {
    // 左侧导航栏
    sidebar: {
      "/note/vitePress": vitePressNote,
    },
  },
};

vitePressBar.js

// VitePress技术笔记左侧导航栏
export const vitePressNote = [
  {
    text: "从零开始用VitePress搭建个人博客的笔记",
    items: [
      {
        text: "1.VitePress的安装和首页配置",
        link: "/note/vitePress/page1",
      },
      {
        text: "2.VitePress默认主题修改和配置",
        link: "/note/vitePress/page2",
      },
      {
        text: "3.如何自定义布局和主题样式修改?",
        link: "/note/vitePress/page3",
      },
      {
        text: "4.如何自定义布局页面模板?",
        link: "/note/vitePress/page4",
      },
      {
        text: "5.第三方组件库的使用-组件库文档",
        link: "/note/vitePress/page5",
      },
    ],
  },
];

然后新建相关页面即可

效果

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Unsigned char 和 char 的主要区别在于其范围。一个 char 变量占 1 个字节,可以容纳 -128 到 127 的整数,而 unsigned char 变量同样占据1个字节,但是可以容纳 0 到 255 的整数。因此,char 变量可以表示有符号和无符号的值,而 unsigned char 变量只能表示无符号值。 ### 回答2: unsigned char 和 char 的区别在于它们的取值范围和表示方法。 首先,char 是有符号类型的字符型数据,它可以表示从-128到127的整数。其中,负数用补码表示,正数和零用原码表示。而 unsigned char 是无符号类型的字符型数据,它可以表示从0到255的整数,只用原码表示。 其次,char 在内存中占用一个字节(8位),但是与具体的实现有关,有时也可能占用其他大小的字节。unsigned char 也是占用一个字节。 再次,char 主要用于存储和处理字符,例如存储ASCII码表示的字母、数字和符号。而 unsigned char 则常用于表示字节数据,例如像素值、传感器数据等。 最后,char 可以用于执行算术和逻辑运算,包括正负号、加减乘除等操作,而 unsigned char 也可以进行相同的运算,但结果会被解释为无符号的值。 总结来说,unsigned char 和 char 的主要区别在于取值范围和表示方法。不同的场景和需求会决定使用哪种类型。 ### 回答3: unsigned char和char是在C语言中使用的两种不同类型的数据。它们的主要区别在于其取值范围和对待负数的方式。 首先,char类型是有符号的,它可以表示整数值的范围是-128到127(对应于8位的补码表示)。这意味着char类型可以表示负数和正数。例如,对于char x = -1;,x的值将是-1。 反之,unsigned char类型是无符号的,它仅能表示非负整数值。unsigned char类型的取值范围是0到255(对应于8位的无符号二进制表示)。这意味着unsigned char类型只能表示正数或零。例如,对于unsigned char x = 255;,x的值将是255。 其次,由于char类型是有符号的,它对负数的处理方式是使用补码表示法。这意味着负数使用符号位的方式来表示,并且对应的二进制值是正数值的补码。例如,对于char x = -1;,它的二进制表示为11111111。 与此相反,由于unsigned char类型是无符号的,它没有符号位,因此使用的是直接的二进制值表示。例如,对于unsigned char x = 255;,它的二进制表示为11111111。 综上所述,unsigned char和char之间的主要区别在于它们的取值范围和对负数的处理方式。char类型能够表示负数和正数,而unsigned char类型仅能表示正数或零,并且对于负数的处理方式不同。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值