GET 新技能!自己的网站突然就不香了

news/2024/5/19 18:47:39/文章来源:https://wangsong.blog.csdn.net/article/details/107077160

松哥自己的网站有两大类:

一个就是大家看到的 www.javaboy.org,这个网站是基于 GitHub Pages 做的,使用的技术栈是 hexo+icarus,公众号上的所有文章我都会同步到这个网站上去。

还有一类就是电子书网站,这个就比较多了:

  • http://maven.javaboy.org
  • http://spring.javaboy.org
  • http://springmvc.javaboy.org
  • http://mybatis.javaboy.org
  • http://springboot.javaboy.org
  • http://vhr.javaboy.org

这一类电子书网站技术栈是 Jekyll + jekyll-TeXt-theme,这个松哥在之前的文章中已经介绍过了,具体小伙伴们可以参考:不花一分钱,把自己零散的知识整理成体系,制作成在线电子书。

最近看别人用 vuepress 搭建博客网站,突然感觉自己的网站就不香了。。。

那就再撸一个吧!

1.vuepress 介绍

类似于大家所熟知的 hexo,vuepress 也可以用来生成静态网页。如果大家做过 vue 开发,或者了解过松哥的微人事(https://github.com/lenve/vhr),你会发现 vuepress 非常亲切,想要做定制也非常容易,不像 hexo 定制那样陌生。

根据 vuepress 官网的介绍,VuePress 由两部分组成:第一部分是一个极简静态网站生成器,它包含由 Vue 驱动的主题系统和插件 API,另一个部分是为书写技术文档而优化的默认主题,它的诞生初衷是为了支持 Vue 及其子项目的文档需求。

每一个由 VuePress 生成的页面都带有预渲染好的 HTML,也因此具有非常好的加载性能和搜索引擎优化(SEO)。同时,一旦页面被加载,Vue 将接管这些静态内容,并将其转换成一个完整的单页应用(SPA),其他的页面则会只在用户浏览到的时候才按需加载。所以大家不用担心自己网站无法被搜索引擎爬虫。

无论是 hexo 还是 vuepress,一个核心目的就是让我们专注于内容而不是网站建设,从这个角度来说,其实两个都不错,只不过对于有 vue 开发经验的小伙伴,vuepress 更加容易上手和定制。

相比于其他的电子书网站,vue 显然更具备优势,例如:

Nuxt

VuePress 能做的事情,Nuxt 理论上确实能够胜任,但 Nuxt 是为构建应用程序而生的,而 VuePress 则专注在以内容为中心的静态网站上,同时提供了一些为技术文档定制的开箱即用的特性。

Docsify / Docute

这两个项目同样都是基于 Vue,然而它们都是完全的运行时驱动,因此对 SEO 不够友好。如果你并不关注 SEO,同时也不想安装大量依赖,它们仍然是非常好的选择!

Hexo

Hexo 一直驱动着 Vue 的文档 —— 事实上,在把我们的主站从 Hexo 迁移到 VuePress 之前,我们可能还有很长的路要走。Hexo 最大的问题在于他的主题系统太过于静态以及过度地依赖纯字符串,而我们十分希望能够好好地利用 Vue 来处理我们的布局和交互,同时,Hexo 的 Markdown 渲染的配置也不是最灵活的。

GitBook

我们的子项目文档一直都在使用 GitBook。GitBook 最大的问题在于当文件很多时,每次编辑后的重新加载时间长得令人无法忍受。它的默认主题导航结构也比较有限制性,并且,主题系统也不是 Vue 驱动的。GitBook 背后的团队如今也更专注于将其打造为一个商业产品而不是开源工具。

2.搭建

2.1 项目创建

具体的搭建其实很容易。

首先确保电脑本地安装了 nodejs(如果本地的 vue 开发环境齐全的话,就不用额外准备了,如果对 vue 不熟悉,不妨看看松哥的微人事视频教程)。

环境准备好之后,接下来开始创建项目。

首先准备一个新的目录:

mkdir java-guide
cd java-guide

接下来对目录进行初始化:

npm init

初始化的过程中会有一些询问,需要配置就配置一下,不需要配置就直接回车,最终选择 yes 即可。

接下来安装 vuepress 依赖:

npm install -D vuepress

准备好之后,接下来我们就可以创建第一篇文章了。

在一开始创建的 java-guide 目录下创建 docs 目录(目录名随意),然后在目录中创建一个 README.md 文件,这个将是我们网站的首页,README.md 中随便写一行作为测试内容。

接下来修改 package.json,添加两行脚本:

"scripts": {"test": "echo \"Error: no test specified\" && exit 1","docs:dev": "vuepress dev docs","docs:build": "vuepress build docs"
},

docs:dev 是开发环境下运行,docs:build 则是项目编译。

所有工作都准备好之后,接下来就可以启动项目了,启动命令如下:

npm run docs:dev

项目启动成功后,浏览器地址栏输入 http://localhost:8080/ 就可以看到启动效果。当然现在的效果比较简单,就一个 hello javaboy!

2.2 首页配置

现在的页面太简单了,我们可以对项目首页进行配置,打开 docs/README.md 文件,添加如下内容:

---
home: true
heroImage: https://open.weixin.qq.com/qr/code?username=a_javaboy
heroText: 江南一点雨
tagline: Java 修炼手册
actionText: 开始学习 →
actionLink: /springboot/
features:
- title: 纯原创details: 不做互联网的搬运工,松哥纯手敲,纯原创教程。
- title: 成系列details: 成系列的教程合集,告别碎片化学习,Java 学习一步到位!
- title: 有案例details: 文章都有配套案例,部分系列有配套视频,扫码关注微信公众号【江南一点雨】,及时获取文档更新通知!
footer: 关注微信公众号【江南一点雨】,回复 888 ,领取 Spring Boot+Vue 项目实战资料!---

修改完成后,项目不用重启,和 vue 一样,会自动热更新,浏览器会自动刷新,此时的首页展示效果如下:

2.3 导航页配置

导航页的配置需要新建 docs/.vuepress/config.js 配置文件,文件内容如下:

module.exports = {title: '江南一点雨',head: [['link', {rel: 'icon', href: 'https://open.weixin.qq.com/qr/code?username=a_javaboy'}]],themeConfig: {logo: 'https://open.weixin.qq.com/qr/code?username=a_javaboy',nav: [ {text: '首页', link: '/'},{text: '国际站', link: 'http://www.javaboy.org'},{text: '国内站', link: 'http://www.itboyhub.com'}],sidebar: 'auto'}
};

head 中配置的是浏览器的角标,logo 则是浏览器导航栏的 logo。

配置完成后,显示效果如下:

大家看到,上面多了导航栏。

在 themeConfig.nav 中配置导航栏,link 是导航栏链接的地址,可以将 link 替换成一个 items ,items 是一个数组,items 会通过下拉框的形式展示出来,例如:

nav: [{text: '首页', link: '/'},{text: '国际站', link: 'http://www.javaboy.org'},{text: '国内站', link: 'http://www.itboyhub.com'},{text: '其他', items: [{text: '国际站', link: 'http://www.javaboy.org'},{text: '国内站', link: 'http://www.itboyhub.com'}]}
],

2.4 侧边栏配置

侧边栏的配置其实就是左边菜单的配置。

使用 vuepress ,我们写文章可能会对文件进行分类,例如像下面这样:

java 目录放 Java 文章,python 目录放 python 文章。我们随便向目录放几篇文章进来。

目录结构如下:

java-guide
├─package-lock.json
├─package.json
├─docs
|  ├─README.md
|  ├─python
|  |   ├─README.md
|  |   ├─python-1.md
|  |   └python-2.md
|  ├─java
|  |  ├─README.md
|  |  ├─java-1.md
|  |  └java-2.md
|  ├─.vuepress
|  |     └config.js

python 和 java 目录下,对应文章的访问路径分别是:

  • http://localhost:8080/java/java-1
  • http://localhost:8080/java/java-2
  • http://localhost:8080/python/python-1
  • http://localhost:8080/python/python-2

注意,每篇文章顶部需要标明文章的标题(当然也有其他方式配置文章标题,松哥推荐这种方式),以 java-1.md 为例,文章顶部内容如下:

---
title: Java01
---

同时,java 和 python 目录下都还有一个 README.md 文件,这个文件的访问路径是

  • http://localhost:8080/java/

或者:

  • http://localhost:8080/python/

这样大家先把文件目录的访问路径搞清楚。

接下来,我们在 docs/.vuepress/config.js 中配置侧边栏导航,如下:

sidebar: [{title: 'Java',path: '/java/',collapsable: false,sidebarDepth: 2,children: ['/java/java-1','/java/java-2']},{title: 'Python',path: '/python/',collapsable: false,sidebarDepth: 2,children: ['/python/python-1','/python/python-2']},
]

配置完成后,效果如下:

当然,具体配置方式有很多种,松哥这里结合自己的使用方式先介绍一种,其他的配置方式小伙伴们可以参考官网。

3.部署

3.1 通用型

和 hexo 一样,vuepress 最终也是编译成静态文件扔到服务器,所以如果你是自己的服务器,那么很简单,首先执行如下命令进行编译:

npm run docs:build

编译成功后会生成如下目录结构:

java-guide
├─docs
|  ├─.vuepress
|  |     ├─dist
|  |     |  ├─404.html
|  |     |  ├─index.html
|  |     |  ├─python
|  |     |  |   ├─index.html
|  |     |  |   ├─python-1.html
|  |     |  |   └python-2.html
|  |     |  ├─java
|  |     |  |  ├─index.html
|  |     |  |  ├─java-1.html
|  |     |  |  └java-2.html
|  |     |  ├─assets
|  |     |  |   ├─js
|  |     |  |   | ├─10.fd63f6ac.js
|  |     |  |   | ├─11.919333a2.js
|  |     |  |   | ├─2.5618c3b9.js
|  |     |  |   | ├─3.01385c65.js
|  |     |  |   | ├─4.7d5f245c.js
|  |     |  |   | ├─5.5e19538d.js
|  |     |  |   | ├─6.6523d9fe.js
|  |     |  |   | ├─7.6182cc1a.js
|  |     |  |   | ├─8.5aa56f7e.js
|  |     |  |   | ├─9.c492a2c2.js
|  |     |  |   | └app.803870cb.js
|  |     |  |   ├─img
|  |     |  |   |  └search.83621669.svg
|  |     |  |   ├─css
|  |     |  |   |  └0.styles.3f949b7f.css

dist 目录下的文件就是我们要扔到服务器上的静态文件,直接扔到 nginx 对应的目录下即可。

3.2 GitHub Pages

当然,也可以利用 GitHub Pages 部署,省事!

GitHub Pages 我就不做过多介绍了,不了解的小伙伴可以参考这两篇文章:

  • 不用花一分线,松哥手把手教你上线个人博客
  • 不花一分钱,把自己零散的知识整理成体系,制作成在线电子书

准备好 GitHub 仓库之后,在项目根目录下创建一个脚本文件 deploy.sh ,内容如下:

#!/usr/bin/env sh# 确保脚本抛出遇到的错误
set -e# 生成静态文件
npm run docs:build# 进入生成的文件夹
cd docs/.vuepress/dist# 如果是发布到自定义域名
echo 'docs.javaboy.org' > CNAMEgit init
git add -A
git commit -m 'deploy'# 如果发布到 https://<USERNAME>.github.io
git push -f git@github.com:onedocs/onedocs.github.io.git mastercd -

这个有两个地方需要根据自己的实际情况修改,一个是如果需要自定义域名,改成自己的域名;另一个是 GitHub 账户,改成自己的。

最后,执行该脚本即可。执行完成后,项目就上线了。

如果是 Windows 系统,按照这个脚本中的命令自行执行即可,都是比较简单的命令,我就不再赘述。

4.小结

好啦,今天主要向小伙伴们介绍了 vuepress,前前后后大家个人博客已经向大家安利了三种技术栈了:

  • hexo+icarus
  • Jekyll + jekyll-TeXt-theme
  • vuepress

感兴趣的小伙伴不妨试试哦~

如果觉得有收获,记得点个在看鼓励下松哥~

参考:

  1. https://vuepress.vuejs.org/zh/guide

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

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

相关文章

学习笔记网站之在ASP和PHP语言及数据库选择上的3个要点[图文]

学习笔记网站之在ASP和PHP语言及数据库选择上的3个要点[图文]去年12月份&#xff0c;我开始着手建立一个学习类的博客网站&#xff0c;由于博客站点我以前就接触过&#xff0c;因此在网站建设方面还是有些心得的&#xff0c;不过让我有些拿不定注意的是&#xff1a;如何选择系统…

数据库操作对比:Sql Server与MYSQL相比有哪些建站优势?

最近一直在做博客网站&#xff0c;从定位主题到程序和数据库的选择&#xff0c;确实废了不少心思&#xff0c;经过细致的思考&#xff0c;最终将主题定位为读书方面&#xff0c;还有文学和学习笔记&#xff0c;但是对于程序和数据库问题&#xff0c;我一直就比较费心&#xff0…

读书博客网站靠打赏插件营收的方案是否具备技术可行性[图]

今年&#xff0c;我开始着手读书博客的研究&#xff0c;一直以来&#xff0c;都想写一个关于读书主题的博客网站&#xff0c;本人对于教育行业还是非常喜欢的&#xff0c;古诗词、古典文学、IT技术学习&#xff0c;都感兴趣。但是作为一个技术小白&#xff0c;只能从头学习了&a…

网站建设思考之好六网的原创数据成长之路[图]

最近也在学着写博客&#xff0c;因为我开始学习编程等相关知识了&#xff0c;因此比较关注网站建设这一块&#xff0c;也就对一些优秀的新网站有些思考了&#xff0c;这段时间在网站看帖子&#xff0c;突然发现了一个增长很快的新站&#xff0c;它就是好六网&#xff0c;这个网…

Z-Blog2.3Avengers测试完善后将带来博客网站的革命性突破[图]

最近打开博客网站后台的时候&#xff0c;发现提示系统版本有更新&#xff0c;ZBLOG官网一看发现更新了Z-Blog2.3Avengers版本&#xff0c;这是一个ASP程序脚本语言编写的博客系统&#xff0c;而我正是使用了这套系统&#xff0c;主要是在于其易用性&#xff0c;而zblog asp又可…

熊掌号是什么及对小网站真的有保护作用吗?

2017年下半年&#xff0c;科技界发起了改革&#xff0c;而尤其以百度最为显眼&#xff0c;百度说&#xff1a;我们要打造原创生态&#xff0c;要对原创数据进行保护&#xff0c;将流量导出给优质熊掌号&#xff0c;而怎么才能做出优质的熊掌号呢&#xff1f;那就是必须要做原创…

熊掌号收录比例对于网站原创数据排名的影响[图]

从去年下半年开始&#xff0c;我在写博客了&#xff0c;因为我觉得业余写写博客也还是很不错的&#xff0c;但是从2017年下半年开始&#xff0c;百度已经推出了原创保护功能和熊掌号平台&#xff0c;为此&#xff0c;我也提交了不少以前的老数据&#xff0c;而这些历史数据对于…

网站建设就要像2018世界杯的俄罗斯队大杀四方[图]

今天心情不错&#xff0c;因为昨天晚上观看了世界杯比赛&#xff0c;尤其是对俄罗斯队的大杀四方感到十分霸气侧漏啊&#xff0c;因此我联想到了自己的博客网站&#xff0c;我的博客是去年年底上线的&#xff0c;一直想建设一个关于读书和读后感作文写作方面的站点&#xff0c;…

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年&#xff0c;著名的自媒体网站今日头条可以说是火得一塌糊涂&#xff0c;虽然从目前来看也遇到了一点瓶颈&#xff0c;毕竟发展到了一定的规模&#xff0c;继续增长就更加难了&#xff0c;但如今的今日头条规模和流量已经非常大了。我们无语预估近日头条的日流量达到了…

阿根廷绝杀尼日尼亚给我们互联网建站者带来什么启示?

今天凌晨两点钟&#xff0c;作为世界杯球迷的我也观看了阿根廷对战尼日尼亚的足球赛事&#xff0c;而一开场不久&#xff0c;梅西就凭借着自己超凡的球技破门&#xff0c;这是梅西在2018年俄罗斯奥运会上第一次成功射门&#xff0c;除了他自身非常激动外&#xff0c;整个阿根廷…

经营10多年的科技网站月光博客每月可以赚多少钱?[图]

经营10多年的科技网站月光博客每月可以赚多少钱&#xff1f; 相信你也想知道这个问题吧&#xff0c;我反正是充满了好奇。月光博客是十多年前就已经崛起的一个优秀博客&#xff0c;主打科技主题&#xff0c;曾经引得很多粉丝关注&#xff0c;而我也是他的读者&#xff0c;但随着…

centos6.9 svn提交更新到网站根目录

一、首先创建网站根目录 ~] # mkdir -pv /export/home/cms/www_dyrs ~] # svn co svn://127.0.0.1/svn1 /export/home/cms/www_dyrs ## svn://127.0.0.1/svn 的意思是 创建的版本库的路径 svnadmin create /path/svn1 这样的创建方式 二、在版本库的hooks目录下复制post-comm…

学习自媒体:靠打赏插件经营网站是否靠谱?[图]

作为一个IT人&#xff0c;如果你要问我&#xff1a;现在互联网中最火爆的是什么&#xff1f;我一定会回答&#xff1a;自媒体。没错&#xff0c;自媒体在现在来说已经是个被广泛认知的东西&#xff0c;例如&#xff1a;今日头条、搜狐自媒体、百家号等等&#xff0c;都非常有名…

ASP和PHP语言哪个更适合建设个人读书笔记博客网站?[图]

在我接触的编程语言中&#xff0c;ASP和PHP是我笔记熟悉的&#xff0c;但实际上我对编写程序并不是很懂&#xff0c;但对程序语言却接触的笔记早。早在2006年&#xff0c;我就接触了ASP语言&#xff0c;因为ASP脚本语言在那个时代是非常流行的&#xff0c;我就是因为想做网站所…

base标签抓取错误:我不再用discuz程序建设门户网站[图]

以前我是采用discuz程序的门户来建设网站的&#xff0c;因为我一开始创建地方论坛的时候就采用了这套程序&#xff0c;不得不说的是&#xff0c;discuz论坛程序是国内最好的论坛系统&#xff0c;也得到了广泛的使用&#xff0c;而比较令我们开心的是&#xff0c;这套程序是免费…

建站心得之discuz门户程序相比ZBLOG具有哪些优势[图]

以前我是采用discuz门户程序建站的&#xff0c;因为个人觉得&#xff0c;这套程序确实不错&#xff0c;而门户discuz门户也可以生成纯静态HTML文件&#xff0c;这对于我们有特殊要求的站长来说&#xff0c;非常重要&#xff0c;因为纯静态不仅可以提升网页的访问速度&#xff0…

织梦程序和ZBLOG系统比较:哪个更加适合建设中小型网站?[图]

以前也用织梦程序做过网站&#xff0c;其实也就是尝试一下罢了&#xff0c;没有用心做站&#xff0c;但是也对织梦的模板进行过修改&#xff0c;发现还是很不多的&#xff0c;但是&#xff0c;后来我换掉了织梦&#xff0c;改用ZBLOG系统&#xff0c;这是什么原因呢&#xff1f…

博客建站之disucz论坛程序的优点和缺点分析[图]

我一直对写博客的人非常佩服&#xff0c;因为写博客是个需要长期坚持的过程&#xff0c;可能是十年深知一辈子&#xff0c;这些人起码具有强大的意志力&#xff0c;而且他们的文字功底也都不错&#xff0c;这些是我们普通人难以做到的&#xff0c;因此我也想学习一下他们的这种…

读书笔记ZBLOG网站是否可以打造成10万IP的流量站?[图]

博客是靠博主一点点积累起来的个人网站&#xff0c;主要是记录作者的一些心得和学习笔记&#xff0c;或者写一个主题。但是纵观国内的博客网站&#xff0c;没有发现一个独立博客是做到了10万IP的&#xff0c;这说明了什么呢&#xff1f; 到底是因为博客网站很难做成流量站&…

读书笔记网站建设之我放弃zblog-php博客系统的三个原因[图]

很早以前我就接触了博客&#xff0c;而在10年前&#xff0c;写博客是一种时尚&#xff0c;大量的博主将自己的经验心得和学习资料放在个人博客上分享&#xff0c;这对于互联网的发展来说非常重要&#xff0c;因为大家需要一个交流和互动的平台&#xff0c;每个人都有自己的长度…