This commit is contained in:
parent
0761c560a4
commit
045d184cbf
|
|
@ -18,5 +18,5 @@ jobs:
|
||||||
steps:
|
steps:
|
||||||
- name: 'Checkout codes' # 步骤一,获取仓库代码
|
- name: 'Checkout codes' # 步骤一,获取仓库代码
|
||||||
uses: actions/checkout@v1
|
uses: actions/checkout@v1
|
||||||
- name: 'Run baiduPush.sh' # 步骤二,执行sh命令文件
|
- name: 'Run baiduPush' # 步骤二,执行sh命令文件
|
||||||
run: npm install && bash ./baiduPush.sh # 注意,运行目录是仓库根目录
|
run: npm install && npm run baiduPush # 运行目录是仓库根目录
|
||||||
|
|
@ -1,14 +1,14 @@
|
||||||
# 基于VuePress构建的静态博客
|
# 一个简洁至上的 博客 & 文档 & 笔记管理 主题
|
||||||
|
|
||||||
## Introduce
|
## Introduce
|
||||||
|
|
||||||
1. 根据 vuepress 的默认主题修改而成,追求**极简主义**。
|
1. 根据 [vuepress](https://vuepress.vuejs.org/zh/) 的默认主题修改而成,追求**简洁至上**。
|
||||||
|
|
||||||
2. 这是一个兼具**博客文章** 与 **学习笔记** 管理的博客主题。
|
2. 这是一个兼具 **博客文章** & **技术文档** & **学习笔记** 管理的博客主题。
|
||||||
|
|
||||||
3. 添加博客所需的**评论**、**时间轴**、**分类**、**最近更新** 等。
|
3. 添加博客所需的**评论**、**时间轴**、**分类**、**最近更新** 等。
|
||||||
|
|
||||||
4. 这主题可以很方便的管理你的**学习笔记**和**教程文档**,**扩展的搜索框**让你快速查找文档。
|
4. 这主题可以很方便的管理你的**学习笔记**和**技术文档**,**扩展的搜索框**让你快速查找文档。
|
||||||
|
|
||||||
5. 添加对*前端程序员*很友好**demo演示模块**,很方便的在博客中插入demo,同时可以查看demo源码,跳转到codepen在线编辑。
|
5. 添加对*前端程序员*很友好**demo演示模块**,很方便的在博客中插入demo,同时可以查看demo源码,跳转到codepen在线编辑。
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,6 @@
|
||||||
# 确保脚本抛出遇到的错误
|
# 确保脚本抛出遇到的错误
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
node utils/baiduPush.js # 生成所有链接文件
|
|
||||||
|
|
||||||
# 百度链接推送
|
# 百度链接推送
|
||||||
curl -H 'Content-Type:text/plain' --data-binary @urls.txt "http://data.zz.baidu.com/urls?site=https://xugaoyi.com&token=T5PEAzhGaPNbjQ2X"
|
curl -H 'Content-Type:text/plain' --data-binary @urls.txt "http://data.zz.baidu.com/urls?site=https://xugaoyi.com&token=T5PEAzhGaPNbjQ2X"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ module.exports = {
|
||||||
|
|
||||||
"/04.更多/": [{"title":"学习","collapsable":false,"children":[["01.学习/02.提高学习效率的策略.md","提高学习效率的策略"],["01.学习/03.提高记忆的技巧.md","提高记忆的技巧"],["01.学习/04.自律小建议.md","自律小建议"],["01.学习/05.处理问题的思路.md","处理问题的思路"]]},{"title":"面试","collapsable":false,"children":[["03.面试/01.面试问题集锦.md","面试问题集锦"]]},{"title":"英语","collapsable":false,"children":[["04.英语/01.英语基础.md","英语基础"]]},{"title":"心情杂货","collapsable":false,"children":[["05.心情杂货/01.一个完美主义者的自我救赎.md","一个完美主义者的自我救赎"]]},["97.学习网站.md","学习网站"],["98.在线工具.md","在线工具"],["99.友情链接.md","友情链接"]],
|
"/04.更多/": [{"title":"学习","collapsable":false,"children":[["01.学习/02.提高学习效率的策略.md","提高学习效率的策略"],["01.学习/03.提高记忆的技巧.md","提高记忆的技巧"],["01.学习/04.自律小建议.md","自律小建议"],["01.学习/05.处理问题的思路.md","处理问题的思路"]]},{"title":"面试","collapsable":false,"children":[["03.面试/01.面试问题集锦.md","面试问题集锦"]]},{"title":"英语","collapsable":false,"children":[["04.英语/01.英语基础.md","英语基础"]]},{"title":"心情杂货","collapsable":false,"children":[["05.心情杂货/01.一个完美主义者的自我救赎.md","一个完美主义者的自我救赎"]]},["97.学习网站.md","学习网站"],["98.在线工具.md","在线工具"],["99.友情链接.md","友情链接"]],
|
||||||
|
|
||||||
"/about/": [["01.about.md","about"]],
|
"/about/": [["01.关于.md","关于"]],
|
||||||
|
|
||||||
"/timeline/": [["01.时间轴.md","时间轴"]],
|
"/timeline/": [["01.时间轴.md","时间轴"]],
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -40,29 +40,47 @@ curl -H 'Content-Type:text/plain' --data-binary @urls.txt "http://data.zz.baidu.
|
||||||
没关系,技术的本质就是让人"偷懒"的。于是,我写了一个nodejs工具,用于把所有的博客页面链接生成到`urls.txt`
|
没关系,技术的本质就是让人"偷懒"的。于是,我写了一个nodejs工具,用于把所有的博客页面链接生成到`urls.txt`
|
||||||
|
|
||||||
```js
|
```js
|
||||||
|
// baiduPush.js
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生成百度链接推送文件
|
* 生成百度链接推送文件
|
||||||
*/
|
*/
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const readFileList = require('./modules/readFileList');
|
const logger = require('tracer').colorConsole();
|
||||||
|
const matter = require('gray-matter'); // FrontMatter解析器 https://github.com/jonschlinkert/gray-matter
|
||||||
|
const readFileList = require('./modules/readFileList');
|
||||||
const urlsRoot = path.join(__dirname, '..', 'urls.txt'); // 百度链接推送文件
|
const urlsRoot = path.join(__dirname, '..', 'urls.txt'); // 百度链接推送文件
|
||||||
const DOMAIN = 'https://xugaoyi.com'
|
const DOMAIN = process.argv.splice(2)[0]; // 获取命令行传入的参数
|
||||||
|
|
||||||
|
if (!DOMAIN) {
|
||||||
|
logger.error('请在运行此文件时指定一个你要进行百度推送的域名参数,例:node utils/baiduPush.js https://xugaoyi.com')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
main();
|
main();
|
||||||
function main() {
|
function main() {
|
||||||
fs.writeFileSync(urlsRoot, DOMAIN)
|
fs.writeFileSync(urlsRoot, DOMAIN)
|
||||||
const files = readFileList(); // 读取所有md文件数据
|
const files = readFileList(); // 读取所有md文件数据
|
||||||
|
|
||||||
files.forEach( file => {
|
files.forEach( file => {
|
||||||
const link = `\r\n${DOMAIN}${file.permalink}/`;
|
const { data } = matter(fs.readFileSync(file.filePath, 'utf8'));
|
||||||
console.log(link);
|
|
||||||
fs.appendFileSync(urlsRoot, link);
|
if (data.permalink) {
|
||||||
|
const link = `\r\n${DOMAIN}${data.permalink}/`;
|
||||||
|
console.log(link)
|
||||||
|
fs.appendFileSync(urlsRoot, link);
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
上面代码仅是针对我个人的博客生成链接到`urls.txt`文件。更多代码在 [这里](https://github.com/xugaoyi/blog/blob/master/utils/baiduPush.js)。
|
上面代码仅是针对我个人的博客生成链接到`urls.txt`文件。更多代码在 [这里](https://github.com/xugaoyi/blog/blob/master/utils/baiduPush.js)。
|
||||||
|
|
||||||
|
运行如下命令就可以生产一个包含博客所有链接的`urls.txt`文件:
|
||||||
|
```sh
|
||||||
|
node utils/baiduPush.js https://xugaoyi.com
|
||||||
|
```
|
||||||
哈哈,第一个麻烦解决了:smirk:,接下来是解决第二个需要手动运行推送命令的问题。
|
哈哈,第一个麻烦解决了:smirk:,接下来是解决第二个需要手动运行推送命令的问题。
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -80,6 +98,7 @@ GitHub Actions 是一个 CI/CD(持续集成/持续部署)工具,但也可
|
||||||
配置文件的第一部分是触发条件。
|
配置文件的第一部分是触发条件。
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
## baiduPush.yml
|
||||||
name: 'baiduPush'
|
name: 'baiduPush'
|
||||||
|
|
||||||
on:
|
on:
|
||||||
|
|
@ -102,12 +121,31 @@ jobs:
|
||||||
- name: 'Checkout codes' # 步骤一,获取仓库代码
|
- name: 'Checkout codes' # 步骤一,获取仓库代码
|
||||||
uses: actions/checkout@v1
|
uses: actions/checkout@v1
|
||||||
- name: 'Run baiduPush.sh' # 步骤二,执行sh命令文件
|
- name: 'Run baiduPush.sh' # 步骤二,执行sh命令文件
|
||||||
run: npm install && bash ./baiduPush.sh # 运行命令。(注意,运行目录是仓库根目录)
|
run: npm install && npm run baiduPush # 运行命令。(注意,运行目录是仓库根目录)
|
||||||
```
|
```
|
||||||
|
|
||||||
上面代码中,指定运行环境是最新的ubuntu,流程的第一步是从代码仓库获取代码,第二步运行两个命令,先安装项目依赖,再运行`baiduPush.sh`文件。完整代码看 [这里](https://github.com/xugaoyi/blog/blob/master/.github/workflows/baiduPush.yml)
|
上面代码中,指定运行环境是最新的ubuntu,流程的第一步是从代码仓库获取代码,第二步运行两个命令,先安装项目依赖,再运行写在`package.json`的`baiduPush`命令。完整代码看 [这里](https://github.com/xugaoyi/blog/blob/master/.github/workflows/baiduPush.yml)
|
||||||
|
|
||||||
### `baiduPush.sh`生成`urls.txt`和执行百度推送命令
|
|
||||||
|
|
||||||
|
### `baiduPush`命令在`package.json`配置
|
||||||
|
|
||||||
|
```js
|
||||||
|
// package.json
|
||||||
|
"scripts": {
|
||||||
|
"baiduPush": "node utils/baiduPush.js https://xugaoyi.com && bash baiduPush.sh"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
上面脚本中在`node utils/baiduPush.js`的后面加入你的域名参数。运行此命令生成`urls.txt`文件,然后执行`baiduPush.sh`文件。
|
||||||
|
|
||||||
|
注意,在使用window系统时,请使用git bash命令窗运行上面的脚本。
|
||||||
|
|
||||||
|
> `baiduPush`命令之所以没有放在`baiduPush.yml`的 run 里面是因为我想在本地也可以执行`npm run baiduPush`命令。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### `baiduPush.sh`执行百度推送命令
|
||||||
|
|
||||||
`baiduPush.sh`文件:
|
`baiduPush.sh`文件:
|
||||||
|
|
||||||
|
|
@ -116,23 +154,21 @@ jobs:
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
node utils/baiduPush.js # 生成所有链接文件
|
|
||||||
|
|
||||||
# 百度链接推送
|
# 百度链接推送
|
||||||
curl -H 'Content-Type:text/plain' --data-binary @urls.txt "http://data.zz.baidu.com/urls?site=https://xugaoyi.com&token=T5PEAzhGa*****"
|
curl -H 'Content-Type:text/plain' --data-binary @urls.txt "http://data.zz.baidu.com/urls?site=https://xugaoyi.com&token=T5PEAzhGa*****"
|
||||||
|
|
||||||
rm -rf urls.txt # 灭迹
|
rm -rf urls.txt # 灭迹
|
||||||
```
|
```
|
||||||
|
|
||||||
上面代码中,先使用node运行先前写好的工具用于生成`urls.txt`文件,然后执行推送命令。
|
上面代码中,把`urls.txt`文件中的所有链接一次性推送。
|
||||||
|
|
||||||
> baiduPush.sh内的命令其实可以写在yml文件的`run`字段中,我这里分开写是为了方便在本地也可以运行baiduPush.sh文件。
|
> baiduPush.sh内的命令之所以没有写在`package.json`是因为我觉得命令太长了,不方便阅读。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
写好配置,推送到仓库,就会在每天的早上7点钟,自动运行命令生成一个包含博客所有页面链接的`urls.txt`文件,并把所有链接一次性推送到百度。麻麻再也不用担心我的网站不被收录~~:kissing_heart: :kissing_heart: :kissing_heart:
|
写好配置,推送到仓库,就会在每天的早上7点钟,自动运行命令生成一个包含博客所有页面链接的`urls.txt`文件,并把所有链接一次性推送到百度。麻麻再也不用担心我的网站不被收录~~:kissing_heart: :kissing_heart: :kissing_heart:
|
||||||
|
|
||||||
在这个基础上可以扩展,满足你自己的定时需求。
|
在这个基础上可以扩展,使用GitHub Actions满足你自己的各种定时需求。
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -5,7 +5,9 @@ permalink: /pages/41f87d890d0a02af
|
||||||
---
|
---
|
||||||
# 解决百度无法收录搭建在GitHub上的静态博客的问题
|
# 解决百度无法收录搭建在GitHub上的静态博客的问题
|
||||||
|
|
||||||
|
::: warning
|
||||||
|
如果你正在寻找本博客的搭建文档,博主建议你直接查看[vuepress](https://vuepress.vuejs.org/zh/)官方文档。另外,本博客对vuepress默认主题做的改造,可以查看这个仓库的[README](https://github.com/xugaoyi/blog)。
|
||||||
|
:::
|
||||||
|
|
||||||
## 背景
|
## 背景
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
---
|
---
|
||||||
title: "about"
|
title: 关于
|
||||||
date: "2019-12-25 14:27:01"
|
date: 2019-12-25 14:27:01
|
||||||
permalink: "/about"
|
permalink: /about
|
||||||
sidebar: false
|
sidebar: false
|
||||||
article: false
|
article: false
|
||||||
---
|
---
|
||||||
|
|
||||||
# 关于
|
# 关于
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
"build": "node utils/frontmatter.js && node utils/sidebar.js && vuepress build docs",
|
"build": "node utils/frontmatter.js && node utils/sidebar.js && vuepress build docs",
|
||||||
"deploy": "bash deploy.sh",
|
"deploy": "bash deploy.sh",
|
||||||
"updateFM": "node utils/frontmatter.js -update",
|
"updateFM": "node utils/frontmatter.js -update",
|
||||||
"baiduPush": "node utils/baiduPush.js && bash baiduPush.sh"
|
"baiduPush": "node utils/baiduPush.js https://xugaoyi.com && bash baiduPush.sh"
|
||||||
},
|
},
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|
|
||||||
|
|
@ -3,11 +3,16 @@
|
||||||
*/
|
*/
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
|
const logger = require('tracer').colorConsole();
|
||||||
const matter = require('gray-matter'); // FrontMatter解析器 https://github.com/jonschlinkert/gray-matter
|
const matter = require('gray-matter'); // FrontMatter解析器 https://github.com/jonschlinkert/gray-matter
|
||||||
const readFileList = require('./modules/readFileList');
|
const readFileList = require('./modules/readFileList');
|
||||||
const urlsRoot = path.join(__dirname, '..', 'urls.txt'); // 百度链接推送文件
|
const urlsRoot = path.join(__dirname, '..', 'urls.txt'); // 百度链接推送文件
|
||||||
|
const DOMAIN = process.argv.splice(2)[0]; // 获取命令行传入的参数
|
||||||
|
|
||||||
const DOMAIN = 'https://xugaoyi.com'
|
if (!DOMAIN) {
|
||||||
|
logger.error('请在运行此文件时指定一个你要进行百度推送的域名参数,例:node utils/baiduPush.js https://xugaoyi.com')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
main();
|
main();
|
||||||
|
|
||||||
|
|
@ -19,7 +24,12 @@ function main() {
|
||||||
const files = readFileList(); // 读取所有md文件数据
|
const files = readFileList(); // 读取所有md文件数据
|
||||||
|
|
||||||
files.forEach( file => {
|
files.forEach( file => {
|
||||||
const { data } = matter(fs.readFileSync(file.filePath, 'utf8'));
|
const { data } = matter(fs.readFileSync(file.filePath, 'utf8'));
|
||||||
data.permalink && fs.appendFileSync(urlsRoot, `\r\n${DOMAIN}${data.permalink}/`);
|
|
||||||
|
if (data.permalink) {
|
||||||
|
const link = `\r\n${DOMAIN}${data.permalink}/`;
|
||||||
|
console.log(link)
|
||||||
|
fs.appendFileSync(urlsRoot, link);
|
||||||
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue