开发工具

月伴飞鱼 2024-08-17 14:49:22
工具相关
支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者!

MAC

实用软件:

Dynamic Wallpaper:动态视频壁纸

腾讯柠檬清理

SwitchHosts

数据库管理工具:

数据库建模工具:

ZooKeeper:WEB管理工具

Redis:Another Redis Desktop Manager

Tabby:命令行终端增强软件

画UML图工具:

PDF工具:

HomeBrew

国内安装:

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"

JDK

Oracle官网下载JDK1.8安装包:

配置系统的环境变量:

JDK真实主目录如下:

/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jdk/Contents/Home

打开.bash_profile,在文件的末尾加入这几行语句:

open ~/.bash_profile

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_281.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH:.
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.

source ~/.bash_profile

验证JDK1.8是否安装成功

# 确认配置生效
java -version

ITerm2

下载地址:https://iterm2.com/downloads.html

主题配置:

  • 主题:Solarized Dark theme,下载地址:http://ethanschoonover.com/solarized
  • 配置:打开 Preferences ,Profiles -> Colors -> Color Presets,选择 Import。
  • 选择刚才解压的solarized->iterm2-colors-solarized->Solarized Dark.itermcolors文件。
  • 导入成功后,在 Color Presets下选择 Solarized Dark 主题。

ZSH

# 使用brew安装zsh
brew install zsh 

# 将zsh加入shells备选列表
echo /usr/local/bin/bash | sudo tee -a /etc/shells

# 切换到zsh(之后需要重新打开命令窗口)
chsh -s /usr/local/bin/zsh

OhMyzsh

sh -c "$(curl -fsSL https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh)"

配置zsh:

vi ~/.zshrc

根据主题列表 https://github.com/ohmyzsh/ohmyzsh/wiki/themes ,选择想要的主题

ZSH_THEME="af-magic

#改为
ZSH_THEME="ys"

Python

brew install python3

IDEA

主题配置

2023版本之后的 JetBrains IDEs,在设置中有一个 New UI的选项,区别于默认的经典样式

  • 打开设置界面,在 Appearance & Behavior菜单下找到New UI,勾选 Enable new UI,然后确定

Dracula Theme 主题插件:Dracula Colorful

图标插件 Atom Material Icons

GIT

常用命令

删除远程分支:

git push origin --delete branch_name

删除本地分支:

git branch -D branch_name

Fork别人的代码以及如何拉取最新的源项目代码。

upstream是fork的源项目起的别名,最后这个是源项目的git仓库地址。

git remote add upstream git@xxxxxxx.git

upstream是上面起的源项目别名,dev是要拉取的源项目分支。

git pull upstream dev

参与开源

开源社区中常见的三个身份标签。

contributor(贡献者)

  • 只要参与过一次贡献就算是贡献者。

committer(提交者)

  • 成为 contributor 后,如果能保证持续贡献,而且有扎实的技术功底,经 PMC(管理委员会)投票或讨论决定后,可以成为一名 committer。
  • committer 和 contributor 的 区别, commiter 对于项目的仓库是具有写的权限的。
  • 可以审核并合并 contributor 的 代码,而且成为 commiter,还会获得一个后缀为@apache.org 的邮箱。

PMC(管理委员会)

  • Committer 中表现优秀的话,是可以成为 PMC 的。
  • PMC 要负责整个项目的走向,做出一些重要的决策,要具备前瞻性的技术眼光。

GitHub

GitHub Trend:

GitHub的趋势榜,https://github.com/trending

Github Topics:

展示了最新、最热门的讨论主题,https://github.com/topics

Github Explore:

根据你平时的兴趣,推荐一些项目,https://github.com/explore

Chrome插件

源码查看

Github1s

Sourcegraph

翻译插件

镜像加速下载

快速访问GitHub

ping:github.global.ssl.fastly.netgithub.com,得到其分别对应的ip地址

编辑hosts文件,追加刚刚ping的结果

#github
10.13.252.88 github.global.ssl.fastly.net
20.205.243.166 github.com

MAT

安装地址:https://www.eclipse.org/mat/downloads.php

  • 下载太慢可以更改镜像地址

MAT需要高版本Java环境:

  • 一定要将APP移入Applications后再打开,不然会报错

加载大dump文件,报错java heap space

编辑文件MemoryAnalyzer.ini

  • 参考:9个G的Dump,配置成16384M
-Xmx2048m

菜单

img

Dominator Tree

使用 Dominator Tree了解各支配树起点对象所支配内存的大小,进而了解哪几个Root对象是 GC 无法释放大内存的原因

Shallow Heap 和 Retained Heap分别表示对象自身不包含引用的大小和对象自身并包含引用的大小

  • 针对非数组类型的对象,Shallow Heap的大小就是对象与它所有的成员变量大小的总和

  • 针对数组类型的对象,Shallow Heap的大小是数组元素对象的大小总和

当个别对象支配树的 Retained Heap 很大且存在明显倾斜时,可以重点分析它们的对象支配关系

  • 展开RingBuffer的子树进一步定位到问题根因

如下图可看出最终是业务类的 LogData 对象持有的 String字符串过大

img

Histogram

它默认直接罗列每个类实例的数量和累计内存占比

包括自身内存占用量(Shallow Heap)及支配对象的内存占用量(Retained Heap)

img

业务类LogData存在131072个对象,消耗的内存也比较靠前:

  • SdkSpan和SpanData存在同样的问题,因此这三个类必定存在问题

使用场景

  • 有些情况下, Dominator Tree 无法展现出热点对象(如按 Class 聚合也无明显热点对象:

    • 此时 Dominator Tree 很难做关联分析判断哪类对象占比高)
  • 这时可以使用 Histogram 查看所有对象所属类的分布,快速定位占据 Retained Heap 大头的类

使用技巧

  • Integer,StringObject[] 一般不直接导致内存问题
  • 为更好的组织视图,可以通过 Class LoaderPackage 分组进一步排查问题

ChatGPT

程序员效率工具:https://devv.ai/

英语学习

Chrome插件:

  • Voice Control For ChatGPT
    • 利用 ChatGPT 练习雅思口语的神器

Maven

下载地址:http://maven.apache.org/download.cgi

基本配置

安装配置:

配置系统的环境变量:

open ~/.bash_profile

export MAVEN_HOME=/Users/kun/Desktop/midongtools/apache-maven-3.5.0
export PATH=$PATH:$MAVEN_HOME/bin

source ~/.bash_profile

验证是否安装成功

mvn -v

镜像配置:

阿里云镜像配置,修改settting.xml文件,在mirrors标签下添加子节点。

 <mirror>
 	<id>nexus-aliyun</id>
 	<mirrorOf>central</mirrorOf>
 	<name>Nexus aliyun</name>
	 <url>http://maven.aliyun.com/nexus/content/groups/public</url>
 </mirror>

远程仓库认证配置

setting.xml文件下的servers元素的子元素server中添加相关远程仓库的认证信息。

  • 其中id元素即为项目POM文件声明的远程仓库的ID。
<settings>
    ...
    <servers>
    ...
        <server>
            <id>[repositoryId]</id>
            <username>[username]</username>
            <password>[password]</password>
        </server>
    ...
    </servers>
    ...
</settings>

基础知识

基本信息

标 签 作 用
groupId 通常为组织或公司域名反写
artifactId 项目的名称
version 项目的版本信息
name 项目的简称
description 项目的简要描述

生命周期

clean

  • 清除当前工程编译后生成的文件(即删除target整个目录)

validate

  • 对工程进行基础验证,如工程结构、pom、资源文件等是否正确

compile

  • src/main/java目录下的源码进行编译(会生成target目录)

test

  • 编译并执行src/test/java/目录下的所有测试用例

package

  • 将当前项目打包,普通项目打jar包,webapp项目打war

verify

  • 验证工程所有代码、配置进行是否正确,如类中代码的语法检测等

install

  • 将当前工程打包,然后安装到本地仓库,别人可通过GAV导入

site

  • 生成项目的概述、源码测试覆盖率、开发者列表等站点文档(需要额外配置)

deploy

  • 将当前工程对应的包,上传到远程仓库,提供给他人使用(私服会用)

依赖范围

项目引入的所有依赖,如果不显式指定依赖范围,默认是compile,意味着所有环境下都生效。

一般的依赖包无需更改,只有某些特殊的依赖,才需要手动配置一下,如:

  • JUnit、spring-test这类包,只在测试环境使用,所以配成test
  • Tomcat内置servlet-api包,为了避免在运行环境冲突,应该配成provided
依赖范围 编译环境 测试环境 运行环境
compile 生效 生效 生效
provided 生效 生效 不生效
system 生效 生效 不生效
runtime 不生效 生效 生效
test 不生效 生效 不生效

间接依赖

如果Dependency-A 引用了 Dependency-B ,而 Dependency-B 又依赖于 Dependency-C

  • 只需要引入Dependency-B即可,Maven会自动将子模块所依赖的包导入。

依赖顺序:

如工程中引入 Dependency-ADependency-B 两个依赖,二者又分别引用了不同版本的 Dependency-C ,但最终编译时同一个依赖即便是不同的版本也只会选择一份。

计算规则:

  • Dependency-A 定义在 Dependency-B 之前,则最终将导入 Dependency-A 中的 Dependency-C 版本。

依赖调解

当一个间接依赖存在多条引入路径时,为避免依赖重复Maven会通过依赖调解来确定该间接依赖的引入路径。

依赖调解遵循以下原则,优先使用第一原则,当第一原则无法解决时,则通过第二原则解决。

  • 第一原则: 路径最短者优先。
  • 第二原则: 第一声明者优先。

可选依赖

当某个间接依赖是可选依赖时,无论依赖范围是什么,其都不会因为传递性依赖机制而被引入。

  • 只有显式地配置项目中某依赖的option元素为true时,该依赖才是可选依赖。

排除依赖

在引用多个模块时可能会发生版本兼容冲突问题,通过 exclusions 标签即可实现依赖排除。

<dependency>
        <groupId>com.apple</groupId>
        <artifactId>B</artifactId>
        <version>2.3</version>
        <exclusions>
            <exclusion>
                <groupId>com.google</groupId>
                <artifactId>C</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

变量配置

当项目中引入了大量依赖,为了方便管理通常将引入依赖的版本通过变量进行统一配置,从而实现更直观的依赖管理。

通过 properties 标签即可自定义变量配置,然后使用 ${} 引用变量。

<properties>
    <mysql.version>8.0.30</mysql.version>
</properties>

<dependencies>
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <!-- 使用 "${}" 引用上述自定义变量 -->
        <version>${mysql.version}</version>
    </dependency>
</dependencies>

模块配置

模块继承:

通过 parent 即可标记当前模块的父模块,且子模块将会继承父模块中的所有依赖配置。

  • 子模块若没有指定的 groupIdversion 默认继承父模块中的配置。

其中 relativePath 用于指定父模块的 POM 文件目录,省略时默认值为 ../pom.xml ,即当前目录的上一级中,若仍未找到则会在本地仓库中寻找。

<!-- module-1 pom.xml -->
<parent>
    <groupId>xyz.ibudai</groupId>
    <artifactId>maven-demo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <relativePath>../pom.xml</relativePath>
</parent>

<artifactId>module-1</artifactId>

依赖管理

将项目依赖统一定义在父模块的 dependencyManagement 标签中,子模块只需继承父模块并在 dependencies 引入所需的依赖,便可自动读取父模块 dependencyManagement 所指定的版本。

dependencyManagement 既不会在当前模块引入依赖,也不会给其子模块引入依赖,但其可以被继承的。

只有在子模块下同样声明了该依赖,才会引入到模块中,子模块中只需在依赖中引入 groupIdartifactId 即可, 也可以指定版本则会进行覆盖。

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.30</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.13.2</version>
        </dependency>
    </dependencies>
</dependencyManagement>

构建配置

版本指定:

<plugin> 标签内可指定工程打包编译时使用的 JDK 版本,可根据服务器环境手动修改版本。

<plugins>
    <plugin>
        <!-- 编译时使用 JDK 版本 -->
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>
        <configuration>
            <source>8</source>
            <target>8</target>
        </configuration>
    </plugin>
</plugins>

主类配置

在打包时可能出现无法识别工程主类的问题,导致编译后的文件无法正常运行,此时则可以在 pom 文件中手动设置工程的主类。

  • 其中 <mainClass> 中配置的为项目主类的完成限定名。
<plugins>
    <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
        <configuration>
            <mainClass>xyz.ibudai.TestWebApplication</mainClass>
            <layout>JAR</layout>
        </configuration>
    </plugin>
</plugins>

基本操作

更新父子模块版本号

mvn versions插件可以帮忙更新所有子模块的版本号

  • Maven会自动安装一个versions的插件帮你完成修改父子模块版本号一系列的工作。
mvn versions:set -DnewVersion=1.0.1-SNAPSHOT
mvn -N versions:update-child-modules

回滚:

mvn versions:revert

提交:

 mvn versions:commit 

Arthas

官方文档:https://arthas.aliyun.com/

Arthas可以帮助开发人员在运行时对Java应用进行调试和诊断,解决线上问题

连接应用

默认连接:

指 Arthas 自动连接当前机器上正在运行的 Java 应用程序。

$ java -jar arthas-boot.jar

尝试连接指定的 IP 地址和端口号上的 Java 应用程序。

$ java -jar arthas-boot.jar --target-ip 127.0.0.1 --telnet-port 3658

Telnet 连接:

通过 Telnet 协议连接到 Java 应用程序。

$ telnet 127.0.0.1 3658

进入Arthas Shell:

./as.sh

查看JVM状态:

在Arthas Shell中,可以通过以下命令查看当前JVM的状态。

$ jvm

方法调用链路追踪

查看某个方法被调用了多少次、被哪些方法调用了,甚至是每一次调用的参数和返回值。

追踪某个方法的所有调用:

$ trace com.example.demo.service.UserService getUserById

追踪某个类中所有方法的调用:

$ trace com.example.demo.service.UserService

追踪某个方法的详细信息:

追踪com.example.demo.service.UserService类中的getUserById方法的前5次调用,并打印出每次调用的参数和返回值。

$ trace com.example.demo.service.UserService getUserById -n 5

监控系统资源消耗

监控CPU占用率:

输出一个监控面板,其中包含了CPU占用率、Java线程数、内存使用情况等信息。

$ dashboard

监控线程:

输出当前JVM中所有线程的信息。

$ thread

监控GC:

输出GC的相关信息。

动态修改代码

修改某个类的某个方法的返回值:

修改com.example.demo.service.UserService类中的getUserById方法的返回值为"Hello Arthas!"

$ redefine com.example.demo.service.UserService getUserById "return \"Hello Arthas!\";"

添加某个类的某个方法:

com.example.demo.service.UserService类中添加一个名为addUser的方法,并且该方法的参数为String nameInteger age,最后将会输出日志并返回true

$ redefine -c com.example.demo.service.UserService -m addUser --params-string "java.lang.String name, java.lang.Integer age" "logger.info(\"addUser invoked! name:{} age:{}\", name, age); return true;"

常用命令

查看方法调用次数:

查看com.example.demo.service.UserService类中的getUserById方法在最近的3秒钟内被调用的次数。

$ sc -d 3 com.example.demo.service.UserService getUserById

查看线程堆栈:

$ thread -i [线程ID]

输出指定ID的线程的堆栈信息。

查看类的加载情况:

查看com.example.demo.service.UserService类的加载情况。

$ classloader -c com.example.demo.service.UserService

Hexo

NPM安装:

安装太慢的话,使用镜像解决。

npm config set registry http://registry.npm.taobao.org

下载Hexo:

输入hexo g生成静态网页,然后输入hexo s打开本地服务器。

npm install -g hexo-cli

hexo init blog

本地连接GitHub:

首先右键打开Git Bash,然后输入下面命令:

git config --global user.name "godweiyang"

git config --global user.email "792321264@qq.com"

生成密钥SSH key:
ssh-keygen -t rsa -C "792321264@qq.com"

打开GitHub,在头像下面点击Settings,再点击SSH and GPG keys,新建一个SSH,名字随便。

cat ~/.ssh/id_rsa.pub

将输出的内容复制到框中,点击确定保存。

输入ssh -T git@github.com,出现你的用户名,那就成功了。

主页文章按更新时间排序

index_generator:
  path: ''
  per_page: 20
  order_by: -updated

per_page 设置每页显示的文章数量。

order_by 指定文章的排序方式。

  • -date: 按照文章发布日期的倒序排序;
  • -updated: 按照文章更新时间的倒序排序;
  • -title: 按照文章标题的倒序排序;

域名绑定

你的hexo本地目录, cd sourcetouch CNAME创建CNAME文件。

xiaoflyfish.cn

给解析添加A类型:

  • 185.199.108.153

  • 185.199.109.153

  • 185.199.110.153

  • 185.199.111.153

博客备份

切换并创建一个叫hexo的分支
git checkout -b hexo

# 切换分支
git checkout hexo

将复制过来的文件推送到github
git add .

git commit -m "新建分支"

git remote add origin https://github.com/zine-fj/zine-fj.github.io.git

git push -u origin hexo

注意:如果themes下human的文件夹无法上传,因为有.git文件。

删除子文件夹下.git后,依然无法提交子文件夹下的文件,解决操作如下。

git rm --cached themes/hueman
git add .
git commit -m "xxx"
git push origin master

换电脑配置

进入 原来电脑 hexo 博客目录,只拷如下几个目录。

换电脑,同时要把.git文件夹复制过去,然后安装相关插件。

scaffolds            文章模版                           必须备份
source               博客文章                           必须备份
themes               主题                              必须备份
.gitignore           限定在push时那些文件可以忽略         必须备份
_config.yml          站点配置文件                       必须备份
package.json         安装包的名称                       必须备份
.ssh                 密钥文件                          必须备份

部署到GitHub

安装一个扩展npm i hexo-deployer-git

最后输入hexo d上传到GitHub上。

deploy:
  type: git
  repository: https://github.com/xiaoflyfish/xiaoflyfish.github.io
  branch: master

部署到Coding

配置SSH公钥:

官方文档:https://coding.net/help/docs/repo/ssh/config.html

Typora图片配置

偏好设置->图像->设置图片根目录

typora-root-url: ../../../themes/hunam/source

插入音乐

npm install hexo-tag-aplayer --save
{% aplayer "Caffeine" "Jeff Williams" "11.mp3" "autoplay" %}
	<%- css('https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.css') %>
	<%- js('https://cdn.jsdelivr.net/npm/aplayer/dist/APlayer.min.js') %>

置顶文章

 npm install hexo-generator-topindex --save
---
title: 每天一个linux命令
date: 2017-01-23 11:41:48
top: 1
categories:
- 运维
tags:
- linux命令
---

如果存在多个置顶文章,top后的参数越大,越靠前。

文章加密

npm install --save hexo-blog-encrypt

全局配置文件_config.yml中启用该插件:

# Security
encrypt:
    enable: true

将 password 字段添加到文章信息头:

title: Hello World
date: 2016-03-30 21:18:02
password: abcd1234xxx
---

按标签加密:

  • 对博文禁用 Tag 加密:
    • 将博文头部的 password 设置为 "" 即可取消 Tag 加密。
title: Hello World
tags:
- 加密文章tag
date: 2019-10-26 20:22:58
password: mikemessi
abstract: 该文章已加密, 请输入密码查看。
message: 该文章已加密, 请输入密码查看。
wrong_pass_message: 密码不正确,请重新输入!
wrong_hash_message: 文章不能被校验, 不过您还是能看看解密后的内容!
---

全局配置文件_config.yml中配置该插件:

# Security
encrypt: # hexo-blog-encrypt
  abstract: 有东西被加密了, 请输入密码查看.
  message: 您好, 这里需要密码.
  tags:
  - {name: tagName, password: 密码A}
  - {name: tagName, password: 密码B}
  template: <div id="hexo-blog-encrypt" data-wpm="{{hbeWrongPassMessage}}" data-whm="{{hbeWrongHashMessage}}"><div class="hbe-input-container"><input type="password" id="hbePass" placeholder="{{hbeMessage}}" /><label>{{hbeMessage}}</label><div class="bottom-line"></div></div><script id="hbeData" type="hbeData" data-hmacdigest="{{hbeHmacDigest}}">{{hbeEncryptedData}}</script></div>
  wrong_pass_message: 抱歉, 这个密码看着不太对, 请再试试.
  wrong_hash_message: 抱歉, 这个文章不能被校验, 不过您还是能看看解密后的内容.

部署云服务器

安装nginx:

yum install -y nginx

启动 nginx 服务器:

systemctl start nginx
systemctl enable nginx

sudo nginx -s reload

配置 Nginx 托管文件目录:

  • 创建目录并修改目录所有权和权限。
mkdir -p /usr/share/nginx/mysite

chown -R $USER:$USER /usr/share/nginx/mysite

chmod -R 755 /usr/share/nginx/mysite

安装GIT:

yum install git

建立文件路径:

mkdir /root/gitrepo/

修改权限:

chown -R $USER:$USER /root/gitrepo/
chmod -R 755 /root/gitrepo/

创建远程 Git 仓库:

cd /root/gitrepo/
git init --bare {自定义仓库名name}.git

Git 钩子(hooks):

  • 在生成的仓库{自定义仓库名name}/hooks 目录下创建一个新的钩子文件。
vim /root/gitrepo/hexo.git/hooks/post-receive

打开文件添加下面的代码:

#!/bin/bash

git --work-tree=/usr/share/nginx/mysite --git-dir=/root/gitrepo/hexo.git checkout -f

赋予该文件可执行权限:

chmod +x /root/gitrepo/hexo.git/hooks/post-receive

设置 SSH Key 免密登录服务器

  • 服务器登陆然后找到 .ssh 目录,如果没有的话,就新建并赋予权限。
mkdir .ssh && chmod 700 .ssh

然后接着新建文件authorized_keys

touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys

查看repo的用户信息:

git config -l

本地查看是否在.ssh下有公钥私钥,如果没有需要创建:

ssh-keygen

将本地id_rsa.pub中的公钥复制粘贴添加到authorized_keys

Nginx配置:

执行命令vim /etc/nginx/nginx.conf,找到http { ... }部分,并向其中添加如下的server:

    server {
        listen       80;
        server_name blog.jackjiang.top; # 你的博客域名

        location / {
            root   /home/blog/hexo-blog;  # 博客所在目录
            index index.html index.php index.htm;
        }
    }
service nginx restart

博客部署云服务器:

  • 修改本地Hexo博客的配置文件_config.yml,找到url:deploy:部分,做如下的修改:
	url: http://blog.jackjiang.top       # 修改为你的博客域名
	root: /
	permalink: :year-:month-:day/:title/
	permalink_defaults:
	
	deploy:
	    type: git
	    repo: blog@your_server_ip:/home/blog/github-blog.git    # 修改为你的服务器IP
	    branch: master

域名解析:

在域名解析服务中添加记录:

主机记录 记录类型 解析路线 记录值
@ A 默认 你的云服务器公网 ip

之后就可以输入域名访问博客。

注意:这里用云服务器的 80 端口,使用 http 访问,如果需要 https 访问,还需要 SSL 证书。

网站收录到百度

查看网站是否被收录:

可以输入 site:域名 来查看域名是否被搜索引擎收录。

如:site:hardyfish.top

百度资源平台配置:

https://ziyuan.baidu.com/

依次选择:用户中心 - 站点管理,添加你的网站。

如:hardyfish.top

网站验证:

文件验证:下载给定的文件,将其放到本地主题目录 source 文件夹,然后部署上去完成验证。

见:https://ziyuan.baidu.com/college/articleinfo?id=1003

提交百度搜索:

安装插件 npm install hexo-baidu-url-submit --save,然后在根目录 _config.yml 文件里写入以下配置。

baidu_url_submit:
  count: 1               # 提交最新的多少个链接
  host: www.itrhx.com    # 在百度站长平台中添加的域名
  token: your_token      # 秘钥
  path: baidu_urls.txt   # 文本文档的地址, 新链接会保存在此文本文档里

在根目录的 _config.yml 文件,url 要改为在百度站长平台添加的域名,也就是网站的首页地址。

# URL
url: https://www.itrhx.com
root: /
permalink: :year/:month/:day/:title/

加入新的 deployer。

# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
- type: git
  repository:
    github: git@github.com:TRHX/TRHX.github.io.git  # 这是原来的 github 配置
    coding: git@git.dev.tencent.com:TRHX/TRHX.git   # 这是原来的 coding 配置
  branch: master
- type: baidu_url_submitter                         # 这是新加的主动推送

网站收录到Google

生成一个网站地图(SiteMap):

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

用命令 hexo g -d 将网站部署上去。

然后访问 首页/sitemap.xml 或者 首页/baidusitemap.xml 就可以看到网站地图了。

  • 其中 sitemap.xml 文件是搜索引擎通用的 sitemap 文件。
  • baidusitemap.xml 是百度专用的 sitemap 文件。

进入谷歌站长平台,登录谷歌账号之后会让你验证网站所有权。

进入:https://search.google.com/search-console/

选择站点地图,将生成的 sitemap 提交就行了。

跳过指定文件的渲染

https://hexo.io/zh-cn/docs/configuration.html

skip_render: "mypage/**/*"
# 将会直接将 `source/mypage/index.html` 和 `source/mypage/code.js` 不做改动地输出到 'public' 目录
# 你也可以用这种方法来跳过对指定文章文件的渲染
skip_render: "_posts/test-post.md"
# 这将会忽略对 'test-post.md' 的渲染

提升加载速度

https://github.com/Colsrch/hexo-offline-popup

支付宝打赏 微信打赏

如果文章对你有帮助,欢迎点击上方按钮打赏作者!