VuePress如何搭建个人网站?

news/2024/5/9 2:00:13/文章来源:https://blog.csdn.net/Crazymryan/article/details/106866574

作者: 南宫__

https://www.jianshu.com/p/37509da5a020

前言

只听过vue,没听过vuepress?它可是新的vue全家桶成员之一,尤雨溪大神于2018年4月12日推出。
不信?请看Evan You github。star数已过万。
vuepress用于迅速搭建技术文档网站与个人博客,简单快捷,下面和我一起开始学习吧!


(想直接coding的同学可从第三节开始)

一、模块概述

1. 定义

Vue 驱动的静态网站生成器

2. 亮点

自己总结的vuepress优点

3. 同类模块横向对比

①. Nuxt:

  • Nuxt: VuePress 能做的事情,Nuxt 理论上确实能够胜任,但Nuxt 是为构建应用程序而生的

  • VuePress: 专注在以内容为中心的静态网站上,同时提供了一些为技术文档定制的开箱即用的特性

②. Docsify / Docute:
同样都是基于 Vue,然而它们都是完全的运行时驱动,因此对 SEO 不够友好

③. Hexo:
主题系统太过于静态以及过度地依赖纯字符串, 而不是基于Vue。同时,Hexo 的 Markdown 渲染的配置也不是最灵活的

④. GitBook:

  • 当文件很多时,每次编辑后的重新加载时间长得令人无法忍受

  • 默认主题导航结构也比较有限制性

  • 主题系统也不是 Vue 驱动的

  • GitBook 团队更专注于将其打造为一个商业产品而不是开源工具

二、成品展示

1. 技术文档网站:

vue全家桶官网:vue、vuex、vue-cli、vue-router以及vuepress本身

2. 个人博客:

博客1(默认主题)、博客2(自定义主题)

三、开始搭建

coding之前,建议大家先了解markdown语法,为之后的文档撰写做铺垫:传送门

1. 全局安装 VuePress

npm install \-g vuepress

2. 创建并进入项目

mkdir vuepress-demo && cd vuepress-demo

3. 初始化项目

npm init \-y // 默认配置yes
在生成的package.json中,添加如下两个启动命令:

"scripts": {"dev": "vuepress dev docs","build": "vuepress build docs"
}
4. 创建基本项目结构

官方只有推荐目录结构,并没有现成的cli,所以需要通过命令行或手动创建如下结构:

vuepress-demo
├─package.json
├─docs
|  ├─README.md
|  ├─.vuepress
|  |     ├─config.js
|  |     ├─public
|  |     |   └avatar.png
|  |     |   └spider.png

其中有后缀的是文件,没后缀的是文件夹

5. 配置config.js

该文件为项目最重要的配置文件,几乎所有配置项都是在此进行。
我们先来一个最简单的配置看看效果:

module.exports = {title: '南宫的博客',head: [ // 注入到当前页面的 HTML <head> 中的标签['link', { rel: 'icon', href: '/avatar.png' }], // 增加一个自定义的 favicon(网页标签的图标)],themeConfig: {logo: '/avatar.png',  // 左上角logonav:[ // 导航栏配置{text: '首页', link: '/' },{text: '技术文档', link: '/tech/interview/' },{text: '简书主页', link: 'https://www.jianshu.com/u/c455567c7f50'}      ],sidebar: 'auto', // 侧边栏配置}};

想看详细配置的同学可直接查询官网-config配置。
注意:路由根路径为docs文件夹,静态资源(图片)根路径为public文件夹

6. 启动项目

npm run dev
默认服务启动在了http://localhost:8080/,效果如下:

demo第一版

我们配置的title、nav、sidebar、logo全都生效了!
恭喜,你完成了第一个极简版demo!

这里使用的官方默认主题

  • 左上角的logo与title

  • 右上角的全局搜索框与nav导航栏

  • 左侧的sidebar导航栏(自动将md一级标题设置为导航文案)

  • 右侧的markdown内容

注意:项目自带热更新; 但config.js有时可能会热更新失败,需要重启项目

7. 配置首页(可选):

一般的技术文档网站都需要一个首页作为该技术的简介,个人博客也需要这样的欢迎页。vuepress提供了一个默认格式的简洁首页,需要在你的根级(docs下)README.md添加home: true,格式如下:

---
home: true
heroImage: /spider.png
heroText: 我的主页
tagline: My homepage
actionText: 技术文档 →
actionLink: /tech/interview/
features:
- title: 简洁至上details: 以 Markdown 为中心的项目结构,以最少的配置帮助你专注于写作。
- title: Vue驱动details: 享受 Vue + webpack 的开发体验,在 Markdown 中使用 Vue 组件,同时可以使用 Vue 来开发自定义主题。
- title: 高性能details: VuePress 为每个页面预渲染生成静态的 HTML,同时在页面被加载的时候,将作为 SPA 运行。
footer: 南宫的个人博客
---

效果如下:

8. 变更主题(可选)

① 更换主题:
对默认主题不满意,想换个别的主题?安排!
config.js中设置:

module.exports = {theme: 'vuepress-theme-xx'
}

可以在npm中寻找自己喜欢的主题,其中以 @vuepress/theme- 开头的主题是官方维护的主题:

② 开发主题:
npm上也没有合适的主题?安排!
那咱们就自己开发一个主题,篇幅原因就不介绍细节了,感兴趣的同学可以自行查看官方文档-开发主题

③ 修改默认主题:
不想那么麻烦,但默认主题又不满足需求?安排!
那就在默认主题基础上做一些修改,以满足需求。
执行如下命令,可将默认主题的各功能组件释放出来:
vuepress eject docs
你会发现,在根目录下,多了一个theme文件夹,如下:

上图列出了主要的布局组件,只需在其中做适量修改以满足业务需求即可。

9. md文件中使用vue组件(可选)

vuepress项目中的md文件,可以直接使用vue组件。
我们可以在.vuepress文件夹下新建一个components文件夹,其中的vue组件会自动注册到全局,如下:

页面效果如下:

10. 客户端增强(可选)

如果你想对自己的应用做一些优化,比如使用router做登录拦截、给vue实例挂载全局变量或注册其他组件等,可以在.vuepress下新建文件enhanceApp.js

export default ({Vue, // VuePress 正在使用的 Vue 构造函数options, // 附加到根实例的一些选项router, // 当前应用的路由实例siteData // 站点元数据
}) => {// ...做一些其他的应用级别的优化
}

这个文件类似于vue-cli脚手架中的main.js文件

四、部署上线

通过上面的工作,我们已经掌握了vuepress的基本用法,大家可以填充更多的md文件去丰富你的网页。
但这些都还只是跑在本地,想要所有人都能通过互联网访问你的网站,需要申请一个域名以及服务器,并将你的项目部署上去:

1. 选择你的服务器

服务器有免费和收费两种,各有优劣:
① 免费:
使用 Github Pages 。即 Github 提供的、用于搭建个人网站的静态站点托管服务。很多人用它搭建个人博客。这种方式的好处是免费、方便,坏处是速度可能会有些慢、不能被国内的搜索引擎收录。
② 收费:
国内做的比较好的云服务有阿里云、腾讯云,好处是速度有保证、可以被搜索引擎收录,坏处是要花钱,土豪请无视。
这里我们选择方案①

2. github创建仓库

① 登录 github
② 新建仓库一:username.github.io
(必须为你的github账户的username,而不是昵称啥的)
③ 新建仓库二,名称随意如vuepress-demo
二者的关系是:仓库一负责显示网站内容,我们不需要改动它;日常开发和新增内容,都在仓库二中,并通过 npm run deploy 命令,将代码发布到仓库一

3. 关联本地项目与github仓库
// 先cd到你的demo
cd vuepress-demo
// git初始化
git init
// 关联github仓库
git remote add origin git@github.com:nan-gong/vuepress-demo.git
4. 新建部署文件

①根目录下新建deploy.sh:

#!/usr/bin/env sh# 确保脚本抛出遇到的错误
set -e# 生成静态文件
npm run build# 进入生成的文件夹
cd docs/.vuepress/dist# 如果是发布到自定义域名
# echo 'www.yourwebsite.com' > CNAMEgit init
git add -A
git commit -m 'deploy'# 如果你想要部署到 https://USERNAME.github.io
git push -f git@github.com:nan-gong/nan-gong.github.io.git master# 如果发布到 https://USERNAME.github.io/<REPO>  REPO=github上的项目
# git push -f git@github.com:USERNAME/<REPO>.git master:gh-pagescd -

② 根目录新建README.md
此文件为你的项目描述或用法,一般的git项目都会有此文件,和项目中的md文件无关。

5. git提交

git提交前,先确保你的本地登录了git账号,否则没有权限提交到远端。
如果本地未登录,可参考git初次登录教程。
另外,可以在根目录下添加.gitignore文件,以防止不必要的提交:

// 提交到暂存区
git add .
// 提交到本地仓库
git commit -m '基本搭建完毕'
// push到github仓库
git push --set-upstream origin master

检查你的github仓库,发现已经上传成功:

6. 新建deploy指令并执行

package.json 文件夹中添加发布命令:

"scripts": {"deploy": "bash deploy.sh"
}

npm run deploy

7. 发布成功!

查看自己的博客域名:https://nan-gong.github.io/
这样所有的人都能访问到你的博客了!

8. PWA(可选)

PWA,即progressive web apps,以web的形式给你原生app的体验。
VuePress 默认支持 PWA,配置方法如下:
① config.js添加配置:

head: [ // 注入到当前页面的 HTML <head> 中的标签['link', { rel: 'manifest', href: '/photo.jpg' }],['link', { rel: 'apple-touch-icon', href: '/photo.jpg' }],
],
serviceWorker: true // 是否开启 PWA

② public 文件夹下新建 manifest.json 文件,添加:

{"name": "南宫","short_name": "南宫","start_url": "index.html","display": "standalone","background_color": "#2196f3","description": "南宫的个人主页","theme_color": "blue","icons": [{"src": "./avatar.png","sizes": "144x144","type": "image/png"}],"related_applications": [{"platform": "web"},{"platform": "play","url": "https://play.google.com/store/apps/details?id=cheeaun.hackerweb"}]}

③ 重新部署:npm run deploy
④ 移动端操作:

完结撒花!

  1. 点个「在看」,让更多的人也能看到这篇内容

  2. 如果喜欢本篇文章,可以关注「悲伤日记」,持续为您推送好文章

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

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

相关文章

网站优化,这十个工具你可以看看

转载自&#xff1a;Jarttos bloghttp://jartto.wang工欲善其事&#xff0c;必先利其器。在「网站优化实战&#xff1a;http://jartto.wang/2019/02/16/web-optimization/」中我们提到了一些优化的相关经验&#xff0c;并没有对优化工具展开讨论&#xff0c;这节就让我们一起上手…

网站监控笔记(一) — Performance

What is website monitoring?什么是网站监控&#xff1f;其实我们主要是实时监控网站性能&#xff0c;是否存在异常资源、请求、代码出错 、页面加载消耗时长 等 一系列问题&#xff01;如果出现这些问题&#xff0c;你能不能及时定位问题原因? 在之前的 《如何优化祖传代码》…

服务器反爬虫攻略:Apache/Nginx/PHP禁止某些User Agent抓取网站

2019独角兽企业重金招聘Python工程师标准>>> 一、Apache ①、通过修改 .htaccess 文件 修改网站目录下的.htaccess&#xff0c;添加如下代码即可(2 种代码任选)&#xff1a; 可用代码 (1)&#xff1a; RewriteEngine On RewriteCond %{HTTP_USER_AGENT} (^$|FeedDem…

见多识广:CodePen项目网站简介

见多识广&#xff1a;CodePen项目网站简介 by zhangxinxu from http://www.zhangxinxu.com 本文地址&#xff1a;http://www.zhangxinxu.com/wordpress/?p2499 一、CodePen是干嘛的&#xff1f; CodePenclick for visit!顾名思意&#xff0c;codepen, 即“代码笔”&#xff0c…

大型网站技术架构(六)网站的伸缩性架构

2019独角兽企业重金招聘Python工程师标准>>> 网站系统的伸缩性架构最重要的技术手段就是使用服务器集群功能&#xff0c;通过不断地向集群中添加服务器来增强整个集群的处理能力。“伸”即网站的规模和服务器的规模总是在不断扩大。 1、网站架构的伸缩性设计 网站的…

postgre sql 括字段_啥?我写的一条SQL让公司网站瘫痪了...

【51CTO.com原创稿件】一条慢查询会造成什么后果?之前我一直觉得不就是返回数据会慢一些么&#xff0c;用户体验变差?图片来自 Pexels其实远远不止&#xff0c;我经历过几次线上事故&#xff0c;有一次就是由一条 SQL 慢查询导致的。那次是一条 SQL 查询耗时达到 2-3 秒「没有…

Nginx配置网站适配PC和手机

背景 访问同一个域名&#xff0c;需要实现在电脑访问时&#xff0c;访问电脑版&#xff0c;在移动端访问时&#xff0c;访问手机版。 传统的做法可能是进入一个页面时&#xff0c;判断屏幕宽度&#xff0c;根据宽度显示电脑版还是手机版&#xff0c;其实Nginx也可以完成这个判…

如何访问局域网的网站【路由器设置端口映射】

转载请注明出处。 原文作者&#xff1a;宋发元 原文链接&#xff1a;http://blog.csdn.net/u011019141/article/details/53709668 一直以来&#xff0c;在开发中我都使用花生壳对内网的地址做映射&#xff0c;以此达到访问内网的网站资源。但是这之间经过花生壳转发这一折腾&…

概要设计 重要性_深度剖析外贸网站设计必须要做的SEO关键词布局 - 外贸老船长强烈推荐...

外贸网站设计最全面的SEO优化布局导读&#xff1a;设计高质量的外贸营销型网站其中关键词布局优化非常重要&#xff0c;如果你的外贸网站仅仅是设计的很美观好看&#xff0c;但是关键词没有做优化布局的话&#xff0c;相当于一个“花瓶”&#xff0c;客户搜索不到你的网站&…

毕业设计html旅游网站,毕业设计--旅游网站的设计与实现(论文)

毕业设计--旅游网站的设计与实现(论文) 旅游网站的设计与实现旅游网站的设计与实现 论文论文 学 生 姓 名 ** 学 号 专 业 班 级 计算机网络 指 导 教 师 123 I 摘 要 随着计算机技术&#xff0c;网络技术的迅猛发展&#xff0c;Internet 的不断普及&#xff0c;网络在各个领域…

反向索引和自增索引区别_网站建设SEO优化和SEM搜索引擎营销,区别与联系全在这里了...

经常会有人问网站建设SEO优化和SEM搜索引擎营销到底存在什么关系&#xff0c;我找了一个做优化的是不是就可以不再招sem人员了?也有一部分新入行的小伙伴也常常会混淆他们之间的关系&#xff0c;所以我决定一次性把这个问题真正的讲清楚&#xff0c;说透彻。一、什么是SEO优化…

火星浏览器_【工具网站】火星个人导航

现在已存在的网站已经超过十亿&#xff0c;(同时每时每刻也有网站在不断诞生和消失)。有许多网站可能已经融入我们的生活&#xff0c;给我们带来价值&#xff0c;但是也有一些网站可能你都没用过&#xff0c;甚至没听说过。别人不知道的&#xff0c;如果自己知道了&#xff0c;…

网站下面的文件找不到_收藏好这些网站应该没有找不到的字体了!

字体对于一幅设计作品的重要性应该是无需多言了。不同的字体&#xff0c;对应着不同的气质&#xff0c;也就对应着不同的设计风格。但有时候我们费劲千辛万苦也找不到一款合适的字体&#xff0c;甚至都不知道应该去哪里找&#xff01;这可不蛋疼吗&#xff0c;再找不到好看的字…

阿里P9架构师讲解从单机至亿级流量大型网站系统架构的演进过程

阶段一、单机构建网站网站的初期&#xff0c;我们经常会在单机上跑我们所有的程序和软件。此时我们使用一个容器&#xff0c;如tomcat、jetty、jboos&#xff0c;然后直接使用JSP/servlet技术&#xff0c;或者使用一些开源的框架如mavenspringstructhibernate、mavenspringspri…

无法从该网站添加应用_降低跳出率的9个网站设计技巧

在登陆网站的前几秒钟内&#xff0c;用户决定是否要进一步滚动或退出该网站。一种强大的Web设计是一种鼓励用户留在网站上而不跳到其他网站的设计。要创建这样的网页设计&#xff0c;这里有一些简单的技巧&#xff0c;可以极大地提高跳出率。1.制定计划&#xff1a;第一步不应该…

《HTML CSS设计与构建网站》书评之-异类的风格,不一样的效果

《HTML & CSS设计与构建网站》 书评之 异类的风格&#xff0c;不一样的效果很高兴在此向大家推荐一本制作网页所需要的书籍&#xff0c;它就是《HTML & CSS设计与构建网站》&#xff0d;五星畅销书籍&#xff0c;本书是由(美)达科特(Duckett, J.) 著&#xff0c;刘涛&a…

那些著名网站的90年代

它们都是显赫一时的品牌&#xff0c;Smashing Apps 几个月前曾发过一篇文章&#xff0c;介绍27个著名品牌的网站 &#xff0c;它们引领当今 Web 设计风潮&#xff0c;然而&#xff0c;从没有哪个领域象 Web 设计这样&#xff0c;10年便恍若隔世&#xff0c;本文搜集一些著名品牌…

win10iis网站服务器,win10iis无法开启|如何开启win10专业版系统iis

win10iis无法开启|如何开启win10专业版系统iis1、我们只要按下键盘上的Windows X 进入后我们点击”控制面板“ 选项&#xff0c;打开进入;2、然后在打开控制面板下面我们点击“程序”选项&#xff0c;然后我们打开进入细节如下图所示;3、在进入到程序管理界面中我们点击“启用…

华为云该网站服务器错了,验证服务器出错

验证服务器出错 内容精选换一换如果请求因错误导致未被处理&#xff0c;则会返回一条错误响应。错误响应中包括错误码和具体错误描述。表1列出了错误响应中的常见错误码。如果您已经完成了域名授权验证配置&#xff0c;且域名验证未生效&#xff0c;请参照本章节进行处理。操作…

VS2012+Win7网站发布详细步骤

VS2012Win7网站发布详细步骤 本机环境&#xff1a;本文分三个部分介绍Web项目发布的常规方法&#xff0c;大神级别可以略过&#xff0c;主要是为了方便一些初学者。 第一部分&#xff1a;VS2012把项目发布到文件系统。 第二部分&#xff1a;IIS配置发布好的项目。 第三部分&…