问题描述

我的博客源码放在src分支上,pages放在master分支上,但是今天我在另一个电脑上想写博客,但是我克隆博客源码的时候输错了命令,不小心克隆到了master分支上.master分支上的pages是自动部署的,不需要我操作,我不想再本地上看到任何master分支的内容.

解决方案

方案1 删除本地仓库 重新克隆src分支

1
2
3
cd ..
rm -rf blogRoot/
git clone -b src git@github.com:lanlan2017/lanlan2017.github.io.git

方案2 下载src分支 然后删除本地master分支

1
2
3
git fetch origin src:src
git checkout src
git branch -d master

删除远程master分支的记录

查看远程仓库地址:

1
2
3
 u0_a391@localhost ~/my/blogRoot> (src) git remote -v                                                                   
origin git@github.com:lanlan2017/lanlan2017.github.io.git (fetch)
origin git@github.com:lanlan2017/lanlan2017.github.io.git (push)

先删除远程地址,然后再添加远程地址:

1
2
git remote remove origin
git remote add -t src origin git@github.com:lanlan2017/lanlan2017.github.io.git

拉去远程src分支,这样本地上就只有远程上的src分支的记录:

1
2
3
4
5
 u0_a391@localhost ~/my/blogRoot> (src) git pull origin src 
From github.com:lanlan2017/lanlan2017.github.io
* branch src -> FETCH_HEAD
* [new branch] src -> origin/src

问题描述

我在手机上想通过SSH克隆我的仓库,但是需要登入到Github上才能获取到SSH链接,其他方式好像只能获取HTTPS链接.有时候登陆比较麻烦,所以我需要写点代码来实现HTTPS和SSH地址的相互转换。

实例

在下面输入框中输入地址,然后点击转换按钮即可转换HTTPS地址为SSH地址,或者转换SSH地址为HTTPS地址:

SSH链接格式

1
git@远程仓库域名:用户名/仓库名.git

例如:

1
git@github.com:lanlan2017/lanlan2017.github.io.git

Https格式

1
https://远程仓库域名/用户名/仓库名.git

例如:

1
https://github.com/lanlan2017/lanlan2017.github.io.git

转换规则

经过观察,我发现后面的用户名/仓库名.git都是一样的,

  • 在这部分前面加上git@远程仓库域名:就得到SSH地址,
  • 在这部分前面加上https://远程仓库域名/就得到HTTPS地址.

SSH转HTTPS

匹配正则:

1
^git@(.+?):(.+?/.+?\.git)$

替换正则:

1
https://$1/$2

HTTPS转SSH

1
^https://(.+?)/(.+?/.+?\.git)$

替换正则:

1
git@$1:$2

源码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<input type="text" id='input' placeholder="请输入HTTPS/SSH地址" size="40"/><button onclick='switchHttpsSsh()'>转换</button>
<script>
var input = document.getElementById('input');
function switchHttpsSsh(text) {
if (text == null) {
copy(switchHttpsSsh(input.value));
} else {
var httpsRegex = /^https:\/\/(.+?)\/(.+?\/.+?\.git)$/;
var sshRegex = /^git@(.+?):(.+?\/.+?\.git)$/;
if (httpsRegex.test(text)) {
// 将https的git仓库地址转为ssh
text = text.replace(httpsRegex, "git@$1:$2");
} else if (sshRegex.test(text)) {
// 将ssh的git仓库地址转为https
text = text.replace(sshRegex, "https://$1/$2");
}
input.value=text;
return text;
}
}
function copy(text) {
var temp = document.createElement("textarea");
temp.value = text;
document.body.appendChild(temp);
temp.select();
// alert('打断,看效果');
document.execCommand('copy');
document.body.removeChild(temp);
}
</script>

问题描述

JS中当在正则表达式中写HTML标签时,浏览器可能会错误的将正则表达式中的HTML标签当成HTML标签解析,而不是正则表达式,例如,对于如下JS代码:

1
2
3
4
5
6
<script>
...
var regexs=/<div id='my_toc'>\n\n(.+\n)+\n</div>\n<script>.+</script>\n/m;
text=text.replace(regexs,toc);
...
</script>

浏览器可能会解析成:

1
2
3
<script>
...
var regexs=/<div id='my_toc'>\n\n(.+\n)+\n</div>\n<script>.+</script>

这就会运行错误:

解决方案

使用字符组[],将html标签的反斜线,或者尖括号<>包裹起来,也就是将改如下形式:

1
2
3
4
5
6
<script>
...
var regexs=/[<]div id='my_toc'>\n\n(.+\n)+\n<[/]div>\n[<]script>.+<[/]script>\n/m;
text=text.replace(regexs,toc);
...
</script>

这样<[/]script>依然匹配</script>,浏览器也不会解析错误.

更新

其实是因为我通过/pattern/这种方式来创建正则,而HTML中带有反斜线/,将反斜线写成:\/即可,也就是如下所示:

1
2
3
4
5
6
<script>
...
var regexs=/<div id='my_toc'>\n\n(.+\n)+\n<\/div>\n<script>.+<\/script>\n/m;
text=text.replace(regexs,toc);
...
</script>

不过还是使用上面的那种方式比较严格,这种方式<script>可能依旧被解析成html标签.

命令格式

1
git clone -b 分支名 git仓库地址 本地路径

例如:

1
git clone -b src git@github.com:lanlan2017/lanlan2017.github.io.git blogRoot

问题描述

今天我使用自动部署Travis CI自动部署的Hexo博客的时候,仓库名称不小心填错了,导致我的Github上的其他仓库被覆盖了.

解决方案

进入本地仓库,然后强制推送到被错误覆盖的仓库上.

格式1

1
git push 远程仓库名 分支名 --force

例如:

1
git push origin master --force

格式2

1
git push -f 远程仓库名 分支名

例如:

1
git push -f origin master

参考资料

https://blog.csdn.net/WangJQ12/article/details/80974031

前言

本文基于Hexo+NexT7.

安装生成站点地图的插件

1
npm install hexo-generator-sitemap --save

谷歌收录

验证网站所有权

翻墙,然后打开Google Webmaster Tools:https://www.google.com/webmasters/tools,
登陆,然后选择获取content:

配置主题配置文件

打开主题配置文件
搜素:

1
google_site_verification

然后粘贴获取的:content即可:
这里有一张图片

重新部署

1
hexo clean&&hexo g&&hexo d

提交站点地图

重新部署后,会在网站根目录下生成一个sitemap.xml文件,先在浏览器看看是否能正确访问到这个文件.

1
https://lanlan2017.github.io/sitemap.xml

在谷歌站长工具控制台中提交sitemap.xml的地址即可.
这里有一张图片
这里有一张图片
然后在已提交的站点地图,点击站点地图,可以看到索引的数量:
这里有一张图片
这里有一张图片

必应收录

必应收录和谷歌收录类似,必应收录不需要翻墙即可设置

百度收录

安装插件

1
npm install hexo-generator-baidu-sitemap --save

获取content

打开百度站长工具:https://ziyuan.baidu.com/site/
点击站点管理,添加网站:
这里有一张图片
选择协议头,然后填入站点:
这里有一张图片
设置站点领域:
这里有一张图片
然后选择HTML验证,复制content的值:
这里有一张图片

配置主题配置文件

打开主题配置文件,搜索:

1
baidu_site_verification

然后粘贴获取都的content.
然后搜素:

1
baidu_push

设置为true即可:

1
baidu_push: true

重新部署

1
hexo clean&&hexo g&&hexo d

然后会在站点根目录下生成站点地图文件:baidusitemap.xml:

1
https://lanlan2017.github.io/baidusitemap.xml

等待部署完毕,然后点击完成验证

提交sitemap

在百度站长工具中,点击左侧的数据引入,链接提交,
这里有一张图片
然后下拉,选择自动提交,然后选择sitemap,粘贴baidusitemap.xml的地址,提交即可
这里有一张图片

查看被收录的文章

在搜素框中输入:

1
site:网站地址

即可查看搜素引擎收录的效果:

1
site:https://lanlan2017.github.io

例如谷歌收录的效果如下:
这里有一张图片

参考资料

https://theme-next.org/docs/theme-settings/seo

VScode Markdown插件汇总

Markdown Shortcuts

支持的功能
使用方式:

鼠标右键方式

选中文字,然后按下鼠标右键,点击对应的方式即可.

命令方式

按下ctrl+3然后输入对应的命令即可.

1

  • Markdown All in One

Markdown Todo

这个插件可以勾选todo或者取消勾选todo
使用方式:
按下ctrl+3,打开命令面板,然后输入todo,根据提示选择即可进行选择即可

更换国内源

更换Termux清华大学源,加快软件包下载速度.

官方方法

设置默认编辑器

1
export EDITOR=vi

编辑源文件

1
apt edit-sources

将原来的https://termux.net官方源替换为http://mirrors.tuna.tsinghua.edu.cn/termux

直接编辑源文件

上面是官方推荐的方法,其实还有更简单的方法,类似于Linux下直接去编辑源文件:

1
vi  $PREFIX/etc/apt/sources.list

修改效果

1
2
3
4
5
6
u0_a391@localhost~ cat $PREFIX/etc/apt/sources.list
# The main termux repository:
# deb https://termux.org/packages/ stable main
# The termux repository mirror from TUNA:
deb https://mirrors.tuna.tsinghua.edu.cn/termux stable main

查看当前用户的home目录

在Linux中当打开终端的时候一般会进入用的home目录,windows中的cmd也是如此.
windows中%UserProfile%这个变量保存了当前用户的主目录

1
echo %UserProfile%
1
2
C:\Users\lan>echo %UserProfile%
C:\Users\lan

用户开机启动文件夹路径

用户的开机启动目录格式如下:

1
用户home目录路径\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

在用户的开机启动文件夹放置程序

打开cmd,然后输入如下命令,即可打开当前用户的开机启动文件夹:

1
explorer.exe %USERPROFILE%\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup

然后将要运行的程序或程序的快捷方式复制到这个目录下,这样当该用户登陆系统时,就会启动这个程序.
例如,我现在想在开机时启动任务管理器(C:\Windows\System32\Taskmgr.exe),则创建任务管理器的一个快捷方式,然后粘贴到开机启动文件夹中即可:
图片

Windows/Setting/Startup/

参考资料

https://blog.csdn.net/qq459080123/article/details/81392060