-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
一篇带你用 VuePress + Github Pages 搭建博客 #235
Comments
如果我想频繁更新我这个线上的文档 并且让他人也可以参与进来文档共建 是不是把vuepress-start这个文件夹都提到github上来最好呢? |
巧了,宝, 应该是克隆 master 分支到本地仓库,然后本地仓库打包出的gh-pages文件提PR 给原始仓库 gh-pages |
好巧! |
期待到时候使用 Vuepress-next | 我摸爬滚打了一整年,到时候基建任务交给我hhhh |
如果不想
毕竟 |
sh deploy.sh sh 是要安装什么包吗 |
你可以这么理解
|
整个项目是一个 git 仓库,执行 sh 脚本,在生成的 dist 目录种还要再初始化一个仓库,push 会报错,没法部署。 |
发一下脚本,或者仓库我可以看看 |
羽哥 reco 的加载界面好像没了 |
引入主题的时候 Uncaught Error: Cannot find module '@theme/mixins/posts' 报错 |
赞赞 |
2023 最新,GitHub 在后面把默认的 master 分支改成了 main 分支,所以这里面的 master 应该改为 main ,不然会报错 git push -f git@github.com:mqyqingfeng/learn-typescript.git master:gh-pages |
你好,想问一下在部署运行之后,但是在Github上的Pages却没有看到相对应的出现,这是什么原因呢 |
win系统可以在电脑中安装git,然后在你项目根文件夹里面运行git命令行,执行sh deploy.sh也可以。需要你本地的git和github设置了ssh。 |
部署这一块看不懂有懂的大佬吗? |
谢谢大佬分享。遇到一个中文路径引用图片时失败的问题,可以参见 这篇博客 解决。 |
我也是同样问题 |
总感觉这种实现方式还是有点ugly |
感谢大佬 |
https://ts.yayujs.com/ 域名SSL证书过期了 🚨 |
(undefined) assets/js/styles.d6073527.js from Terser |
前言
最近完成了 TypeScript 最新官方文档 Hanbook 的翻译,一共十四篇,堪称国内的最好 TypeScript4 入门教程之一。为了方便大家阅读,我用 VuePress + Github Pages 搭建了博客,博客效果如下:
博客地址如下:
0. VuePress
VuePress 自然不用多说,基于 Vue 的静态网站生成器,风格简约,配置也比较简单。之所以不使用 VitePress,是因为想使用现有的主题, 而 VitePress 不兼容当前 VuePress 的生态系统,至于为什么不选择 VuePress@next,考虑到还处于 Beta 阶段,等稳定后再开始迁移。
1. 本地搭建
快速开始同 VuePress 官网:
yarn init # npm init
yarn add -D vuepress # npm install -D vuepress
yarn docs:dev # npm run docs:dev
VuePress 会在 http://localhost:8080 (opens new window) 启动一个热重载的开发服务器。
2. 基础配置
在文档目录下创建一个
.vuepress
目录,所有 VuePress 相关的文件都会被放在这里。此时你的项目结构可能是这样:在
.vuepress
文件夹下添加config.js
,配置网站的标题和描述,方便 SEO:此时界面类似于:
3. 添加导航栏
我们现在在页首的右上角添加导航栏,修改
config.js
:效果如下:
更多的配置参考 VuePress 导航栏。
4. 添加侧边栏
现在我们添加一些 md 文档,目前文档的目录如下:
我们在
config.js
配置如下:对应的效果如下:
5. 更换主题
现在基本的目录和导航功能已经实现,但如果我还想要加载 loading、切换动画、模式切换(暗黑模式)、返回顶部、评论等功能呢,为了简化开发成本,我们可以直接使用主题,这里使用的主题是 vuepress-theme-reco:
现在我们安装 vuepress-theme-reco:
npm install vuepress-theme-reco --save-dev # or yarn add vuepress-theme-reco
然后在
config.js
里引用该主题:刷新一下页面,我们会发现一些细节的改变,比如加载时的 loading 动画、以及支持切换暗黑模式:
6. 添加文章信息
但我们也会发现,像条件类型这一篇文章,
条件类型(Conditional Types)
竟然出现了两遍,这是因为这个主题自动提取了第一个大标题作为本文的标题,我们可以在每篇文章的 md 文件中添加一些信息修改:--- title: 条件类型 author: 冴羽 date: '2021-12-12' ---
此时文章的效果如下:
但如果你不想要标题、作者、时间这些信息呢,我们可以在样式里隐藏,这个稍后会讲到。
7. 设置语言
注意,上图的文章时间,我们写入的格式为
2021-12-12
,但是显示的是12/12/2021
,这是因为 VuePress 默认的 lang 为en-US
,我们修改一下 config.js:可以发现时间换了一种展示方式:
8. 开启目录结构
在原本的主题里,我们发现每篇文章的目录结构出现在左侧:
而 vuepress-theme-reco 将原有的侧边栏的中的多级标题移出,生成子侧边栏,放在了页面的右侧,如果你要全局开启,可在页面 config.js 里设置开启:
此时效果如下:
9. 修改主题颜色
VuePress 基于 Vue,所以主题色用的是 Vue 的绿色,然而 TypeScript 的官方色则是蓝色,那如何修改 VuePress 的主题色呢?
你可以创建一个
.vuepress/styles/palette.styl
文件,文件代码如下:此时可以发现主题颜色变了:
更多的颜色修改参考 VuePress 的 palette.styl。
10. 自定义修改样式
如果你想自定义修改一些 DOM 元素的样式呢?就比如在暗黑模式下:
我们发现用作强调的文字颜色比较暗淡,在暗黑模式下看不清楚,我想改下这个文字的颜色和背景色呢?
而 VuePress 提供了一种添加额外样式的简便方法。你可以创建一个
.vuepress/styles/index.styl
文件。这是一个 Stylus 文件,但你也可以使用正常的 CSS 语法。我们在 .vupress 文件夹下创建这个目录,然后创建 index.styl 文件,代码如下:
此时文字就清晰了很多:
那之前我们提到的隐藏每篇文章的标题、作者、时间呢,其实也是类似的方式:
最后的效果如下:
11. 部署
我们的博客就算是正式的做好了,接下来我们部署到免费的 Github Pages 上。我们在 Github 上新建一个仓库,这里我取得仓库名为:
learn-typescript
。对应,我们需要在
config.js
添加一个base
路径配置:最终的
config.js
文件内容为:然后我们在项目
vuepress-starter
目录下建立一个脚本文件:deploy.sh
,注意修改一下对应的用户名和仓库名:然后命令行切换到
vuepress-starter
目录下,执行sh deploy.sh
,就会开始构建,然后提交到远程仓库,注意这里提交到了gh-pages
分支,我们查看下对应仓库分支的代码:我们可以在仓库的
Settings -> Pages
中看到最后的地址:像我最后生成的地址就是 https://mqyqingfeng.github.io/learn-typescript/
至此,我们完成了 VuePress 和 Github Pages 的部署。
系列文章
系列文章目录地址:https://github.com/mqyqingfeng/Blog
微信:「mqyqingfeng」,加我进冴羽唯一的读者群。
如果有错误或者不严谨的地方,请务必给予指正,十分感谢。如果喜欢或者 有所启发,欢迎 star,对作者也是一种鼓励。
The text was updated successfully, but these errors were encountered: