热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

手牵手,我们一起搭建VuePress博客

平时Google搜问题的时候,很多方案都是链接到博客上的,有简书、博客园、思否等等,当然,还有很多个人搭建的博客,风格各异。慢慢的,自己又有了自搭博客的想法,一是作为自己工作踩坑的

平时Google搜问题的时候,很多方案都是链接到博客上的,有简书、博客园、思否等等,当然,还有很多个人搭建的博客,风格各异。慢慢的,自己又有了自搭博客的想法,一是作为自己工作踩坑的学习记录,二者万一哪天也能帮到别人解决了什么问题,岂不美哉

选定VuePress

前后利用工作之余想了几种方案,也考虑过Hexo,也是很火的博客搭建工具,但又想借此机会,学习一下新技术,VuePress是我所在一个技术交流群里一位大佬推荐的,我了解之后,确实很喜欢, 它有以下几个特点:

  • 轻易上手,配置简单
  • Vue驱动,享用Vue+webpack开发环境,可以自定义Vue组件
  • 性能高效

其实上面的优点官网都有介绍,我比较认可,再赘述一遍

详情请浏览VuePress中文网

开始安装

# 全局安装 VuePress
yarn global add vuepress # 或者用 npm install -g vuepress

为了方便省事,免去重新构建整个项目的时间,可以从官网demo那里clone下来整个项目,到后面根据自己的情况再去修改

# cd 到你要保存blog的文件夹, 然后clone
git clone git@github.com:docschina/vuepress.git

启动调试

cd vuepress //进入项目根目录
yarn //安装依赖
yarn dev //启动调试服务

当终端中出现 VuePress dev server listening at http://localhost:8080/
就说明项目已经正常启动调试了,你可以在浏览器输入http://localhost:8080/预览整个博客项目

《手牵手,我们一起搭建VuePress博客》

修改项目结构

你看到的项目结构应该是下面这样的

.
├── .vuepress
│ ├── components
│ ├── config.js // 网站基础配置文件,主要修改的文件
│ └── public // 存放网站静态资源,例如图片
├── config
│ └── README.md
├── default-theme-config
│ └── README.md
├── guide
│ ├── README.md
│ ├── assets.md
│ ├── basic-config.md
│ ├── custom-themes.md
│ ├── deploy.md
│ ├── getting-started.md
│ ├── i18n.md
│ ├── markdown.md
│ └── using-vue.md
├── zh // 我们需要的中文配置
| ├── README.md // 首页配置文件
│ ├── config
│ ├── default-theme-config
│ └── guide
└── README.md // 首页配置文件

因为我们主要是中文界面,不考虑英文,所以,可以直接把zh文件夹里的所有文件移动到上层目录,覆盖原有的guidedefault-theme-configconfig,以及首页配置文件README.md
完成之后应该是这样的目录结构

.
├── .vuepress
│ ├── components
│ ├── config.js
│ └── public
├── config
│ └── README.md // 可删除
├── default-theme-config // 这个也可以删,或者改成自己需要的
│ └── README.md
├── guide // 也可删除,建议根据这个修改成自己的blog内容
│ ├── README.md
│ ├── assets.md
│ ├── basic-config.md
│ ├── custom-themes.md
│ ├── deploy.md
│ ├── getting-started.md
│ ├── i18n.md
│ ├── markdown.md
│ └── using-vue.md
├── README.md

网站基本配置

.vuepress下的config.js里,包括了网站需要设置的标题、描述等基本信息

简单列举一些,因为没有留原来的,附上的是我修改后的

module.exports = {
dest: 'vuepress', // yarn 打包生成的文件地址,在根目录下会有一个vuepress文件夹
locales: { // 语言配置
'/': {
lang: 'zh-CN',
title: 'devZhang', // 网站标题
description: 'Something Good Will Be Happen!' // 网站描述,显示在标题下面
}
},
head: [ // 额外添加到当前页面 标签里的标签
['link', { rel: 'icon', href: `/logo.png` }],
['link', { rel: 'manifest', href: '/manifest.json' }],
['meta', { name: 'theme-color', content: '#3eaf7c' }],
['meta', { name: 'apple-mobile-web-app-capable', content: 'yes' }],
['meta', { name: 'apple-mobile-web-app-status-bar-style', content: 'black' }],
['link', { rel: 'apple-touch-icon', href: `/icons/apple-touch-icon-152x152.png` }],
['link', { rel: 'mask-icon', href: '/icons/safari-pinned-tab.svg', color: '#3eaf7c' }],
['meta', { name: 'msapplication-TileImage', content: '/icons/msapplication-icon-144x144.png' }],
['meta', { name: 'msapplication-TileColor', content: '#000000' }]
],
serviceWorker: true, // VuePress支持PWA配置
theme: 'vue', // 主题文件

通过上面的serviceWorker配置,配合public里的manifest.json配置icons图标使用。

配置网站首页

.docs下的README.md就是网站首页配置文件,以下是我修改保留的东西,把没用的都删了

---
home: true // 是否启用首页默认布局
heroImage: /alone.png // 首页显示的图片地址
actionText: Go Blog → // 首页按钮的文字
actionLink: /js/ // 点击首页按钮后链接的路径
---

我的首页效果展示:
《手牵手,我们一起搭建VuePress博客》

配置网站结构

下面是我在官方Demo基础上修改后的网站结构,可供参考

themeConfig: {
repo: 'dvxiaofan', // github名称,可以加参数(/项目名),直接到项目。 只写用户名就会直接到你github首页
editLinks: false, // 每篇文章底部是否显示查看原文和编辑, 不需要,就设置为false
docsDir: 'docs',
locales: { // 网站顶部的导航栏配置
'/': {
nav: [
{
text: 'Web前端', // 显示名字
items: [ // 下面有二级目录,就这样设置
{
text: 'JS',
link: '/js/'
},
{
text: 'CSS',
link: '/css/'
},
{
text: 'HTML',
link: '/html/'
},
]
},
{
text: '轮子',
items: [
{
text: 'Echarts',
link: '/echarts/'
},
{
text: 'Vue',
link: '/vue/'
},
]
},
{
text: '生活随笔',
link: '/lifes/'
},
{
text: '关于',
link: '/about/'
}
],
sidebar: { // 侧边栏配置
'/js/': jsSidebarConfig('JS相关'),
}
}
}
}
}
// 侧边栏具体配置
function jsSidebarConfig (title) {
return [
{
title,
collapsable: false, // 是否可折叠
children: [ // 对应每一篇文章,省略了`.md`扩展名
'', // 默认对应`README.md`
'js01',
'js02',
'js03',
'js04',
'js05',
]
}
]
}

网站顶部目录效果展示
《手牵手,我们一起搭建VuePress博客》

部署上线

在运行yarn build之后生成的是静态页面,我们需要把打包生成的vuepress文件夹中的内容托管到服务器,这样才能真能的通过网络浏览我们的博客。
暂时可以用GitHub来托管,省去了自己花钱买服务器和域名的繁琐。

我们需要在GitHub上建立两个仓库, 一个是平时新增维护整个博客用的, 一个用来托管博客打包后的文件

比如,我建立了一个MyBlogdvxiaofan.github.io

注意

这个
dvxiaofan.github.io里 前面的名字是你的GitHub用户名, 必须一模一样!我GitHub名是
dvxiaofan,所以项目名就是前面的样子

第一个仓库就放整个项目,具体git操作不再赘述。

编写发布脚本

为了方便以后发布使用,打开项目跟目录下的 scripts文件夹里的 deploy-gh.sh文件, 修改成下面这样

cd vuepress // 进入到打包好的输出文件夹
git init
git add -A
git commit -m 'deploy'
git push -f git@github.com:dvxiaofan/dvxiaofan.github.io.git master // 代码上传到前面建立的第二个仓库的master分支, 你需要替换成自己的

查看成果

把上面的文章保存,在终端里cd到整个项目目录下,然后执行yarn deploy-gh, 脚本就会开始执行,知道最后结束,代码提交部署成功, 你就可以输入托管博客的查看地址https://dvxiaofan.github.io, 没问题的话,你应该会看到自己的博客了。

小结

这次就先写到这里,后期有时间会把博客部署到自己的域名上去,到时候再来更新文章


推荐阅读
  • window下的python安装插件,Go语言社区,Golang程序员人脉社 ... [详细]
  • 本文将详细介绍如何在Webpack项目中安装和使用ECharts,包括全量引入和按需引入的方法,并提供一个柱状图的示例。 ... [详细]
  • Android 构建基础流程详解
    Android 构建基础流程详解 ... [详细]
  • 深入浅出 webpack 系列(二):实现 PostCSS 代码的编译与优化
    在前一篇文章中,我们探讨了如何通过基础配置使 Webpack 完成 ES6 代码的编译。本文将深入讲解如何利用 Webpack 实现 PostCSS 代码的编译与优化,包括配置相关插件和加载器,以提升开发效率和代码质量。我们将详细介绍每个步骤,并提供实用示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • 在Linux系统中,网络配置是至关重要的任务之一。本文详细解析了Firewalld和Netfilter机制,并探讨了iptables的应用。通过使用`ip addr show`命令来查看网卡IP地址(需要安装`iproute`包),当网卡未分配IP地址或处于关闭状态时,可以通过`ip link set`命令进行配置和激活。此外,文章还介绍了如何利用Firewalld和iptables实现网络流量控制和安全策略管理,为系统管理员提供了实用的操作指南。 ... [详细]
  • 在开发过程中,我最初也依赖于功能全面但操作繁琐的集成开发环境(IDE),如Borland Delphi 和 Microsoft Visual Studio。然而,随着对高效开发的追求,我逐渐转向了更加轻量级和灵活的工具组合。通过 CLIfe,我构建了一个高度定制化的开发环境,不仅提高了代码编写效率,还简化了项目管理流程。这一配置结合了多种强大的命令行工具和插件,使我在日常开发中能够更加得心应手。 ... [详细]
  • Vue应用预渲染技术详解与实践 ... [详细]
  • 本文详细介绍了在 Ubuntu 系统上搭建 Hadoop 集群时遇到的 SSH 密钥认证问题及其解决方案。通过本文,读者可以了解如何在多台虚拟机之间实现无密码 SSH 登录,从而顺利启动 Hadoop 集群。 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • Vue CLI 初始化 Webpack 项目时,main.js 文件是如何被调用的? ... [详细]
  • 本文探讨了如何通过检测浏览器类型来动态加载特定的npm包,从而优化前端性能。具体而言,仅在用户使用Edge浏览器时加载相关包,以提升页面加载速度和整体用户体验。此外,文章还介绍了实现这一目标的技术细节和最佳实践,包括使用User-Agent字符串进行浏览器识别、条件加载策略以及性能监控方法。 ... [详细]
  • 深入解析:React与Webpack配置进阶指南(第二部分)
    在本篇进阶指南的第二部分中,我们将继续探讨 React 与 Webpack 的高级配置技巧。通过实际案例,我们将展示如何使用 React 和 Webpack 构建一个简单的 Todo 应用程序,具体包括 `TodoApp.js` 文件中的代码实现,如导入 React 和自定义组件 `TodoList`。此外,我们还将深入讲解 Webpack 配置文件的优化方法,以提升开发效率和应用性能。 ... [详细]
  • 本文详细介绍了在 Vue.js 前端框架中集成 vue-i18n 插件以实现多语言支持的方法。通过具体的配置步骤和示例代码,帮助开发者快速掌握如何在项目中实现国际化功能,提升用户体验。同时,文章还探讨了常见的多语言切换问题及解决方案,为开发人员提供了实用的参考。 ... [详细]
  • 在GitHub上克隆vue-element-admin项目时遇到依赖安装错误
    在 GitHub 上克隆 vue-element-admin 项目后,使用 `npm install` 安装依赖时遇到了未知的 Git 错误。具体错误信息为 `npm ERR! code 128`,提示命令执行失败。这可能是由于网络问题、Git 配置不正确或某些依赖包的仓库地址无效导致的。建议检查网络连接、更新 Git 版本并确保所有依赖项的 URL 正确无误。 ... [详细]
author-avatar
同亮uncle_847
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有