如何采用VuePress构建文档网站

这篇具有很好参考价值的文章主要介绍了如何采用VuePress构建文档网站。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作者:倾城
博客: https://www.codingbrick.com
寄语:当你意识到面子不重要时,你才算个真正的成年人。

在建设博客的初期,我采用GitBook构建了编码专家的专栏系统。GitBook是基于Node.js的静态页构建组件,可以将Markdown文档渲染为静态页,支持插件扩展,使用非常简单。由于它不支持深度的定制,使用了一段时间后,无法满足我的要求了。

有一天我看到某博客采用VuePress,简洁美观、功能强大。VuePress的帮助文档非常详实,是Vue团队的诚意之作。正好我有一些Vue开发的功底,犹如出狱的色狼碰上了洗澡的刘亦菲。如果时间可以倒流,我绝对不会用WordPress来构建我的博客。WordPress固然成熟,设计的太“重”了。

VuePress 是一个 Vue 驱动的静态网站生成器,使用Markdown编写文档,提供成熟的主题、侧边栏、搜索功能等,轻松创建如何结构清晰、易于导航和搜索的文档网站。VuePress集成了自动化部署工具,可以将生成的静态网站部署到各种托管平台上,如GitHub Pages、Netlify等。VuePress还支持自动化的更新和发布,使得您可以轻松地更新网站内容,并保持与代码仓库的同步。(来自VuePress官网)

1 安装Nodejs

根据Vuepress官网的部署指南,Vuepress v2.0依赖Node.js版本是v16.19.0+。推荐采用 yum 方式安装首先确认镜像地址是否可用,文件路径是:/etc/yum.repos.d/CentOS-Base.repo,参考内容如下所示:

# CentOS-Base.repo
#
# The mirror system uses the connecting IP address of the client and the
# update status of each mirror to pick mirrors that are updated to and
# geographically close to the client.  You should use this for CentOS updates
# unless you are manually picking other mirrors.
#
# If the mirrorlist= does not work for you, as a fall back you can try the 
# remarked out baseurl= line instead.
#
#
 
[base]
name=CentOS-$releasever - Base - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/os/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#released updates 
[updates]
name=CentOS-$releasever - Updates - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/extras/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/centosplus/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7
 
#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib - mirrors.aliyun.com
failovermethod=priority
baseurl=http://mirrors.aliyun.com/centos/$releasever/contrib/$basearch/
        http://mirrors.aliyuncs.com/centos/$releasever/contrib/$basearch/
        http://mirrors.cloud.aliyuncs.com/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos/RPM-GPG-KEY-CentOS-7

yum 方式安装的默认版本是16.18.1,达不到VuePress 2.0需要的最小版本16.19.0,必须指定版本号,命令如下:

# 检查可用版本
yum list available nodejs
# 安装指定版本
yum install nodejs-16.20.0

有时候 yum 源里面没有相应的Node.js版本,可以采用n模块安装指定版本,命令如下:

# 首先安装npm模块
yum install npm
# 利用npm安装n模块
npm install -g n
# 安装最新版
n latest
# 或者指定版本
n 16.20.0
# 显示版本号,证明安装成功
node -v

2 初始化项目

VuePress的默认主题比较简陋,缺乏SEO、Markdown 语法扩展等功能,推荐直接使用vuepress-theme-hope。这个版本提供了更加美观的主题,默认集成许多实用的插件,大大增强了原有的功能。

首先初始化项目,命令如下:

npm init vuepress-theme-hope

这个命令会下载所有的依赖包,根据提示依次设置项目名称、版本号等信息,最终会生成带有空页面的初始工程。

采用如下命令启动调试:

npm run docs:dev

开发完毕后,可以构建静态页部署到服务器上,静态页默认输出路径是 .vuepress/dist/,构建命令如下:

npm run docs:build

3 迁移项目

如果重新部署项目,需要再次安装依赖包,下载项目源码后,在根目录执行命令:

npm install vuepress@next
npm install vuepress-theme-hope

4 开发经验

4.1 配置插件

VuePress支持很多插件,以安装搜索插件为例,命令如下:

# 安装搜索插件
npm i -D vuepress-plugin-search-pro

在 config.ts 文件里面找到 defineUserConfig,在配置项里增加代码:

  plugins: [
    searchProPlugin({
      // 索引全部内容
      indexContent: true,
      hotReload: true,
      // 为分类和标签添加索引
      customFields: [
        {
          getter: (page) => page.frontmatter.category,
          formatter: "分类:$content",
        },
        {
          getter: (page) => page.frontmatter.tag,
          formatter: "标签:$content",
        }
      ]
    })
  ]

4.2 百度统计

在 config.ts文件里面找到 defineUserConfig,在这个配置项的 header 里插入百度统计的脚本,如下所示:

  head: [
    // 百度统计
    [
      "script",
      {},
      `
      var _hmt = _hmt || [];
      (function() {
        var hm = document.createElement("script");
        hm.src = "https://hm.baidu.com/hm.js?去百度统计网站获取相应代码";
        var s = document.getElementsByTagName("script")[0];
        s.parentNode.insertBefore(hm, s);
      })();
        `
    ]
  ]

新建文件 enhanceApp.ts ,加入如下内容:

export default ({ router }) => {
    /**
     * vuepress 是基于 vue 的单页面应用,页面切换过程中不会重新加载页面,不会触发百度统计。
     * 以下代码用于监听路由切换事件,当切换页面时,手动上报百度统计 
     */
    router.beforeEach((to, from, next) => {
      console.log("切换路由", to.fullPath, from.fullPath);
  
      //触发百度的pv统计
      if (typeof _hmt != "undefined") {
        if (to.path) {
          _hmt.push(["_trackPageview", to.fullPath]);
          console.log("上报百度统计", to.fullPath);
        }
      }
      // continue
      next();
    });
  };
  

4.3 辅助脚本

懒得去记忆npm原始命令,编写一个Shell脚本用来构建站点,代码如下:

#!/bin/sh

echo "please choose your option(1、2):"
echo "1: hot deploy for developing"
echo "2: build static page(default path: .vuepress/dist/)"

read item
if [ $item == 1 ]
then
  git pull
  npm run docs:dev
elif [ $item == 2 ]
then
  git pull
  npm run docs:build
else
    choose
fi

5 参考文档

https://v2.vuepress.vuejs.org/zh/guide/
https://theme-hope.vuejs.press/zh/guide/文章来源地址https://www.toymoban.com/news/detail-733703.html

到了这里,关于如何采用VuePress构建文档网站的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用VuePress生成静态网站并部署到github

    VuePress是一个基于Vue驱动的静态网站生成器 相关资料 文档:https://v1.vuepress.vuejs.org/zh/ github: https://github.com/vuejs/vuepress vuepress-deploy: https://github.com/jenkey2011/vuepress-deploy/ 安装 目录结构 依赖配置 package.json 站点配置config.js 启动 使用markdown语法书写博客文章 自动部署 vuepress-deplo

    2024年02月11日
    浏览(49)
  • 从零开始:VuePress2 + GitHub Pages 搭建你的第一个免费博客网站

    可能你也想拥有一个属于自己的博客网站,但是自己搭个博客网站不知道从何下手,而且还需要租个云服务器,虽然一个月只需几十块钱,但是我们的博客网站是要长期维护的,日积月累也要不少钱呢。 现在我就教你用 VuePress2 + GitHub Pages 搭建个人博客网站,不用服务器,完

    2024年02月04日
    浏览(55)
  • 零基础!手把手教你使用VuePress2 + GitHub Pages免费搭建个人博客网站

    目录 介绍 VuePress2 pnpm 搭建 安装 Node.js 安装 pnpm 安装 VuePress step 1:创建文件夹并进入该目录 ​编辑 step 2:初始化项目 step 3:安装VuePress step 4:在 package.json 中修改 scripts step 5:创建目录和配置文件 step 6:将默认的临时目录和缓存目录添加到 .gitignore 文件中 step 7:启动服务

    2024年03月13日
    浏览(76)
  • 如何一步一步构建网站ChatGPT插件

    在本文中,我们将一步一步地探索并构建一个名为\\\"AI Prompt Testing\\\"的项目。该项目是一个网站插件,旨在帮助网站生成一个ChatGPT提示测试题,以巩固当前网页的内容。 这个网站ChatGPT插件大概的效果,类比的实现有哪些? addtoany, google analytics addtoany的配置是这样子 google anal

    2024年02月04日
    浏览(65)
  • 实战教程:如何使用Java+SpringBoot+Vue+MySQL构建一个成功的美食网站

    ✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 | SpringBoot/SSM Python实战项目 | Django 微信小

    2024年01月23日
    浏览(56)
  • 【Rust】——采用发布配置自定义构建

    💻博主现有专栏:                 C51单片机(STC89C516),c语言,c++,离散数学,算法设计与分析,数据结构,Python,Java基础,MySQL,linux,基于HTML5的网页设计及应用,Rust(官方文档重点总结),jQuery,前端vue.js,Javaweb开发,Python机器学习等 🥏主页链接:     

    2024年04月16日
    浏览(28)
  • 为什么每个有影响力的内容创作者都需要一个Kadence WordPress网站

    创作者经济正在蓬勃发展,内容创作者正在以前所未有的方式建立受众和收入来源。无论您是在 YouTube、Instagram、TikTok 还是任何其他平台上增加受众,充分利用这些受众变得越来越重要。 Adobe 于 2022 年 8 月发布的一项研究表明,过去 2 年全球创作者经济增长了超过 1.65 亿人,

    2024年02月05日
    浏览(65)
  • 【LangChain】如何本地部署基于chatGPT的实时文档和表格数据的助手,在自己的数据上构建chatGPT?

    (1) LangChain 是一个用于自然语言处理的 Python 库,它的目标是尝试简化自然语言处理任务,提高处理效率和准确性。 该库提供了一组易于使用的函数和工具,可以帮助你实现各种自然语言处理任务,例如语句分割、分词、词性标注、命名实体识别、情感分析等。与其它自然

    2024年02月08日
    浏览(47)
  • 一个简单的tensorRT mnist推理案例,模型采用代码构建

    TensorRT是NVIDIA的一个深度神经网络推理引擎,可以对深度学习模型进行优化和部署。本程序中,使用了TensorRT来加载一个已经训练好的模型并进行推理。 TRTLogger是一个日志记录类,用于记录TensorRT的运行日志。 Matrix是一个矩阵结构体,用于存储模型权重和输入输出数据。Mode

    2023年04月10日
    浏览(40)
  • IMX6ULL采用YOCTO构建嵌入式Linux系统

    切换至工程项目文件夹,如:/home/user/Linux/Yocto/fsl-release-yocto,在该文件夹下使用如下命令: 在本地环境变量中指定repo服务器地址,可以使用清华的镜像源进行更新,即将如下内容复制到你的~/.bashrc里: 切换至Yocto工作路径/home/user/Linux/Yocto/fsl-release-yocto,然后使用如下repo命

    2024年02月02日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包