2021年7月17日星期六

利用Github Action自动化部署Hugo

 先前抱怨过Hugo本地编译再git push至远端的操作过于繁琐,今天发现可以通过Github Action实现对Hugo的自动化部署并实践成功,故记录折腾过程。

此处应有 从各种意义上来讲这玩意太他妈邪门.jpg

总之因为各种教程都有点语焉不详,于是还是自己把傻瓜化的过程记录下来得了。

竟然把Repository(资料库)拼成Respiratory(呼吸道)了,丢人

这一步不用说吧,新建后将所有文件添加至新repo里(我用Github Desktop上传的),然后准备进行下一步操作。

在本地新生成用于两个repo间通讯的SSH KEY

1
2
3
ssh-keygen -tecdsa
cat ~/.ssh/id_ecdsa.pub #获取公钥
cat ~/.ssh/id_ecdsa. # 获取私钥

添加私钥的方法如下 https://d33wubrfki0l68.cloudfront.net/8376c81e255bf5be2fc5dd28eead474f16fefeee/e3b4b/deploying-hugo-with-github-actions/0004.jpg https://d33wubrfki0l68.cloudfront.net/46f1a9366d4d9f4faac8ac0f8c2be937f6abace7/e04d5/deploying-hugo-with-github-actions/0005.jpg 此处因我的私钥变量名定为ACTIONS_DEPLOY_KEY,故填写相应名称。

在放置博客源文件的repo里,在Actions中建立Workflow https://d33wubrfki0l68.cloudfront.net/ae1a56a805b9fe6ae4ac2c7a5ddb6b2c7610cc15/c79ae/deploying-hugo-with-github-actions/0006.jpg

我的build.yml文件如下

随后即可等待自动远端生成站点。

对于我这样几乎无Coding基础的用户来说,为了更进一步少敲代码,除了自己写一个批处理文件,也可以应用Github Desktop进行处理。桌面版在这里下载,在pull后即可进行commitpush操作。唯一需要注意的是,如果之前就用的SSH连接,且仅在WSL内生成过SSH KEY,在Windows下需要再进行一次操作以保证能勾顺利git push

所以说犯懒是推动发明进步的第一生产力(迫真)

目前是通过Hugo部署在Github Pages上,套了一层Cloudflare CDN,并利用Github Action完成自动化部署;本地则通过Github Desktop简化上传操作。


转自:https://aozaki-kuro.com/deploying-hugo-with-github-actions/

使用 GitHub Actions 自动部署 Hugo 站点

 一直使用 Hugo 来生成静态网站,并通过 Travis CI 来自动化部署到 GitHub Pages。今天偶然得知 travis-ci.org 将于五月底关闭,正好趁此机会用 GitHub Actions 来替换 Travis CI。

创建代码仓库

首先按照文档创建 GitHub Pages 站点。该仓库可见性必须是 Public。

另外创建一个仓库用来存放 Hugo 的源文件,名称随意,这里假设仓库名叫 pages-hugo-source。建议将仓库可见性设置成 Private 以保护好你的源代码。

创建完毕后你的账户下将存在以下两个代码仓库:

  • https://github.com/<YourName>/<YourName>.github.io (公开的)
  • https://github.com/<YourName>/pages-hugo-source (私有的)

创建 Workflow 配置

在 pages-hugo-source 仓库下新建 .github/workflows/hugo.yml 文件。内容如下:

name: Generate Site
on:
  push:
    branches:
      - master
jobs:
  build-deploy:
    runs-on: ubuntu-18.04
    steps:
      - name: Check out source
        uses: actions/checkout@v2
        
      - name: Setup hugo
        uses: peaceiris/actions-hugo@v2
        with:
          hugo-version: "latest" # 可以修改为你使用的 Hugo 版本
          extended: true # 设置是否需要 extended 版本
          
      - name: Build
        run: hugo --minify
        
      - name: Deploy
        uses: peaceiris/actions-gh-pages@v3
        with:
          deploy_key: ${{ secrets.DEPLOY_TOKEN }} # 另外还支持 github_token 和 personal_token
          external_repository: <YourName>/<YourName>.github.io` # 修改为你的 GitHub Pages 仓库
          publish_dir: ./public
          keep_files: false
          publish_branch: master
          # 如果使用自定义域名,还需要添加下面一行配置
          # cname: www.fournoas.com

该配置用到了两个第三方 Actions,分别是 Hugo setup 和 GitHub Pages action。前者用于安装 Hugo,后者用于部署静态站点。

设置 SSH Key

GitHub Pages action 支持三种身份验证方式:

此处使用 deploy_key 方式。

执行命令创建 SSH Key:

ssh-keygen -t rsa -b 4096 -C "$(git config user.email)" -f gh-pages -N ""
# You will get 2 files:
#   gh-pages.pub (public key)
#   gh-pages     (private key)

如果在 Windows 系统下运行该命令,要将命令中的 $(git config user.email) 替换成你的邮箱地址。

访问如下地址设置 Public key:

https://github.com/<YourName>/<YourName>.github.io/settings/keys/new

表单中的 Title 随意填写,将刚才生成的 gh-pages.pub 文件内容填入 Key 中,勾选 Allow write access,点击 Add key 按钮保存。

访问如下地址设置 Private key:

https://github.com/<YourName>/pages-hugo-source/settings/secrets/actions/new

表单中的 Name 填入 DEPLOY_TOKEN,将刚才生成的 gh-pages 文件内容填入 Value 中,点击 Add secret 按钮保存。

执行 GitHub Actions

将 pages-hugo-source 仓库的代码提交并推送到 GitHub,会自动触发 GitHub Actions 执行。可以访问如下网址来查看 Workflows 是否执行成功:

https://github.com/<YourName>/pages-hugo-source/actions

等待 workflow 执行完毕,静态站点就算是发布成功了。

转自:https://www.fournoas.com/posts/deploy-hugo-site-using-github-actions/

Github Actions自动部署Hugo到Gitee同时刷新Gitee Pages

 

我的博客使用GitHub上的pages功能发布的基于Hugo生成的静态网站,基本无法正常访问,所以想要同步一份到gitee上发布,现在使用GitHub Actions提供的计算机资源就可以直接在GitHub上进行静态网站的生成,发布,远程刷新gitee pages,触发条件可以是push或者定时等等,可谓十分好用,之后看到可以直接同步到gitee仓库,就实现一下试试,以下就是实现步骤,以及踩坑,当然强烈建议看开源代码的官方说明文档。

生成公钥和私钥并填入仓库

输入ssh-keygen -t rsa -C "user@email.com",然后回车几次,会生成 id_rsa.pub 文件和 id_rsa 文件,分别存放公钥和私钥:

image

Gitee仓库填入公钥

将公钥 id_rsa.pub 中的数据填入到gitee待备份仓库界面下 settings→Deploy keys→add personal public key

这里注意:要选右上添加personal public key才有写入权限

image

GitHub仓库填入私钥

Settings→Secret→New repository secre 用于之后的程序环境配置访问,命名为GITEE_RSA_PRIVATE_KEY

image

生成GitHub账号的 personal access token

image

将仓库权限选上就行了,然后将生成的token,配到私钥配置的地方 仓库→Settings→Secret→New repository secre,命名为ACCESS_TOKEN

image-20210423172942681

在仓库secret处添加GITEE_PASSWORD,放入gitee账号密码用于刷新gitee pages

同之前步骤相同,之后用于环境变量的配置,就是以下3条secret,OSS的是自动部署到阿里OSS的脚本使用的,我是放在一个脚本里运行,需要了解可以看我另一篇文章。

在GitHub仓库创建并编写Actions脚本!!!

文件名随意从这点开就行,下面有模板,点开后修改也行,创建的文件默认放在.github/workflows/

也可以用命令创建mkdir -p .github/workflows && touch .github/workflows/name.yml

image

将代码拷入,修改具体变量,比如仓库名等,如果不需要deploy直接去掉就行了,不影响:

name: deploy blog to gitee
 
on:
  push:
    branches:
      - main    # master 分支 push 的时候触发
      
jobs:
  deploy: #执行部署Hugo生成静态代码,默认放在gh-pages分支
    runs-on: ubuntu-18.04
    steps:
      - uses: actions/checkout@v2
        with:
          submodules: recursive  # Fetch Hugo themes (true OR recursive)
          fetch-depth: 0    # Fetch all history for .GitInfo and .Lastmod

      - name: Setup Hugo
        uses: peaceiris/actions-hugo@v2
        with:
          hugo-version: '0.81.0'
          extended: true #不需要extended版本就可以注释

      - name: Build
        run: hugo --minify

      - name: Deploypage
        uses: peaceiris/actions-gh-pages@v3
        with:
          personal_token: ${{ secrets.ACCESS_TOKEN }}
          external_repository: JohntunLiu/JohntunLiu.github.io
          publish_branch: gh-pages  # default: gh-pages
          publish_dir: ./public
          
      - name: Deploygitee
        uses: peaceiris/actions-gh-pages@v3
        with:
          personal_token: ${{ secrets.ACCESS_TOKEN }}
          publish_dir: ./public
                
  
  sync: #同步到gitee仓库
    needs: deploy
    runs-on: ubuntu-latest
    steps:
    - name: Sync to Gitee
      uses: wearerequired/git-mirror-action@master
      env:
        SSH_PRIVATE_KEY: ${{ secrets.GITEE_RSA_PRIVATE_KEY }}
      with:
        # 来源仓库
        source-repo: "git@github.com:JohntunLiu/myblog.git"
        # 目标仓库
        destination-repo: "git@gitee.com:JohntunLiu/JohntunLiu.git"
        
  reload-pages:
    needs: sync
    runs-on: ubuntu-latest
    steps:
      - name: Build Gitee Pages
        uses: yanglbme/gitee-pages-action@main
        with:
          # 注意替换为你的 Gitee 用户名
          gitee-username: JohntunLiu
          # 注意在 Settings->Secrets 配置 GITEE_PASSWORD
          gitee-password: ${{ secrets.GITEE_PASSWORD }}
          # 注意替换为你的 Gitee 仓库,仓库名严格区分大小写,请准确填写,否则会出错
          gitee-repo: JohntunLiu/JohntunLiu
          # 要部署的分支,默认是 master,若是其他分支,则需要指定(指定的分支必须存在)
          branch: gh-pages

点击commit changes 提交运行,之后就看得到运行流程了

image

实际效果和流程

如果是部署其他静态网站,修改deploy的代码块就行了,我顺便把部署到GitHub pages放在了里面:name: Deploypage

如果是hugo的话开源人员还提供了缓存机制,可以提高部署速度,可以去开源部分看,具体怎么看就是复制- uses: peaceiris/actions-hugo@v2 后面的部分搜索到GitHub中看,比如:https://github.com/peaceiris/actions-hugo,readme.md文档写得相当详实,也会更新说明

image

转自:https://segmentfault.com/a/1190000039887159

2021年7月16日星期五

markdown基本语法

 title: "markdown基本语法"

slug: "markdown-yu-fa"
date: 2020-05-16T08:47:25+08:00
draft: false
toc: true
weight: false
categories: ["学习笔记"]
tags: ["tips"]

编写博客需要使用Markdown,因此需要熟记语法规则,虽然Markdown语法比较少,但是一个一个查起来也是很蛋疼的(目录被标题的预览搞乱了。。。

常用的Markdown语法规则有:

  • 标题(我把标题扔到网页最后面了,目录被打乱了。。。)

  • 字体加粗倾斜

  • 引用

  • 分割线

  • 图片

  • 超链接

  • 列表

  • 表格

  • 代码

  • 小文本

  • 特殊字符转义

  • 字体颜色大小

  • 文本居中

  • 勾选框

  • 首行缩进

  • 链接到其他文章

  • 文字背景色

  • 标签

  • 选项卡

  • 按钮

1. 字体加粗倾斜

字体倾斜需要在文本两端各加一个* 字体加粗需要在文本两端各加两个* 字体同时倾斜加粗需要在文本两端各加三个* 字体加入删除线需要在文本两端各加两个~~

示例

*倾斜的文字*
**加粗的文字**
***倾斜加粗的文字***
~~加删除线的文字~~
++加下划线的文字++

预览效果

倾斜的文字 加粗的文字 *倾斜加粗的文字* 加删除线的文字 ++加下划线的文字++

2. 引用

引用需要在文本前加一个>,引用可以嵌套,比如两个>>或三个>>>

示例

> 引用的文本
>> 嵌套的引用文本
>>> 再次嵌套的文本

预览效果

引用的文本

嵌套的引用文本

再次嵌套的文本

3. 分割线

分割线使用连续三个及以上的*-实现,前后都有段落时各空出一行

示例

***

*****

---

-----

预览效果





4. 图片

使用链接形式插入图片

语法

![图片alt](图片url 图片title)

其中图片alt为图片下面的文字,相当于注释,图片url为图片的地址,图片title为鼠标悬浮到图片上显示的内容,此项选填

5. 超链接

超链接形式和图片类似,删掉前面的!即可

5.1. 普通链接方法

语法

[超链接名称](超链接地址 超链接title)

超链接title选填,鼠标悬浮时显示

示例

[Github](https://github.com github)

预览效果

Github

5.2. 高级链接方法

示例

使用1作为变量 [Github][1]
在末尾为1赋值
[1]:https://github.com github

预览效果

使用1作为变量 Github 在末尾为1赋值 [1]:https://github.com github

6. 列表

列表分为有序列表和无序列表,都可以嵌套,嵌套时在下一个列表前加Tab或加三个空格 其中有序列表使用符号*+-即可

示例

- C
+ C++
* Java

- 嵌套1
- 嵌套2
- 嵌套3

1. C
2. C++
3. Java

1. 嵌套1
1. 嵌套2
2. 嵌套2(1)
3. 嵌套2(2)
1. 嵌套3
2. 嵌套3(1)
2. 嵌套2(3)
2. 嵌套1(1)

预览效果

  • C

  • C++

  • Java

  • 嵌套1

    • 嵌套1

      • 嵌套3

  1. C

  2. C++

  3. Java

  4. 嵌套1

    1. 嵌套2

    2. 嵌套2(1)

    3. 嵌套2(2)

      1. 嵌套3

      2. 嵌套3(1)

    4. 嵌套2(3)

  5. 嵌套1(1)

7. 表格

示例

表头|表头|表头
-|:-:|-:
内容|内容|内容
内容|内容|内容

其中第二行表示对齐方式

  • 默认为左对齐,只写-

  • 居中为:-:

  • 右对齐为-:

预览效果

表头表头表头
内容内容内容
内容内容内容

8. 代码

代码使用反引号 表示,反引号是键盘左上角的~`键输入,而不是键盘右边的引号 连续三个反引号可以生成代码块,代码块后面的字符表示不同的语言类型,示例中多打了括号

示例

`Hello World!`
(```cpp)
#include <stdio.h>
int main(void){
printf("Hello World!");
return 0;
}
(```)

预览效果

Hello World!

#include <stdio.h>
int main(void){
printf("Hello World!");
return 0;
}

8.1. 代码块语言说明

三个反引号后面的语言格式说明

语言格式
Bashbash
C#cs
C语言cpp
CSScss
DOSdos
Gogo
HTMLxml
iniini
Matlabmatlab
Markdownmarkdown
makefilemakefile
Jsonjson
Javajava
JavaScriptjs / javascript
Objective-Cobjectivec
PHPphp
PowerShellpowershell
Processingprocessing
Pythonpython
Rr
Rubyruby
SQLsql
Swiftswift
TeXtex
VBScriptvbscript
VB.Netvbnet
Vim Scriptvim

9. 小文本

在文本两端分别加入<small></small>即可生成小文本

示例 <small>小文本</small>

预览效果

小文本

10. 转义

在使用一些特殊符号(如#)时需要在符号前加\进行转义,否则符号不会正确显示

示例

\#
\*
\!
\+
\-

预览效果

# * ! + -

10.1. 特殊转义

部分特殊字符需要使用字符串转义

特殊字符转义符号中文名称英文名称
!!感叹号Exclamation mark
"" "双引号Quotation mark
##数字标志Number sign
$$美元标志Dollar sign
%%百分号Percent sign
&& &Ampersand
''单引号Apostrophe
((小括号左边部分Left parenthesis
))小括号右边部分Right parenthesis
**星号Asterisk
++加号Plus sign
<< <小于号Less than
==等于符号Equals sign
-- 减号Minus
>> >大于号Greater than
??问号Question mark
@@艾特Commercial at
[[中括号左边部分Left square bracket
\\反斜杠Reverse solidus (backslash)
]]— 中括号右边部分Right square bracket
{{大括号左边部分Left curly brace
||竖线Vertical bar
}}大括号右边部分Right curly brace
空格Space

11. 字体颜色大小

  • Hexo只支持黑色字体,可以使用Html语言调整颜色,使用<font color="ff0000"></font>包裹需要变色的字体,ff0000可以替换为其他颜色代码。

  • 字号同样使用Html语言调整,使用<font size=12></font>包裹需要改变大小的字体,font size=后是调整的字号。

  • 字体同样使用Html语言调整,使用<font face="华文彩云"></font>包裹需要改变的字体,font face=后是调整的字体名称。

  • 颜色字号字体三者可以叠加使用

示例

<font color="ff0000">这是红色字</font>
<font size=2>这是2号字</font>
<font face="华文彩云">这是华文彩云字</font>
<font face="华文彩云" size=2 color="ff0000">这是2号红色华文彩云字</font>

预览 这是红色字 这是2号字 这是华文彩云字 这是2号红色华文彩云字

12. 字体居中

字体居中同样使用Html语言包裹,有三种格式 示例

{% centerquote %}这是居中字体{% endcenterquote %}
<blockquote class="blockquote-center">这是居中字体</blockquote>
{% cq %}这是居中字体{% endcq %}

预览

{% centerquote %}这是居中字体{% endcenterquote %}

这是居中字体

{% cq %}这是居中字体{% endcq %}

13. 勾选框

一种类似todo list的东西 示例

- [ ]这是勾选框

预览

  • [ ]这是勾选框

14. 首行缩进

Hexo会把缩进的空格忽略掉,所以需要使用转义来进行首行缩进 示例

&emsp;&emsp;这是首行缩进的文本

预览   这是首行缩进的文本

15. 链接到其他文章

Hexo支持引入其他文章链接,语法为,其中slug是要引用markdown的文件名,title是引用文章的标题

{% post_link Hexo博客踩坑指北 [Hexo博客指北] %}

预览

[Hexo博客指北]

16. 文字背景色

文字背景色需要使用Html表格设置,在bgcolor后设置文字背景色,使用颜色英文名 预览

<table><tr><td bgcolor=lightblue>背景色yellow</td></tr></table>

示例

背景色yellow

17. Note标签

17.1. 配置

需要在Next主题配置文件中选择样式,打开_config.yml并搜索Note tag (bs-callout),下面是我的配置,style共有五种,预览可以在这里查看,icon用于设置是否显示图标

# Note tag (bs-callout)
note:
# Note tag style values:
# - simple bs-callout old alert style. Default.
# - modern bs-callout new (v2-v3) alert style.
# - flat flat callout style with background, like on Mozilla or StackOverflow.
# - disabled disable all CSS styles import of note tag.
style: flat
icons: true
border_radius: 3
# Offset lighter of background in % for modern and flat styles (modern: -12 | 12; flat: -18 | 6).
# Offset also applied to label tag variables. This option can work with disabled note tag.
light_bg_offset: 0

17.2. 用法

使用<div>包裹需要显示的内容,class后面显示note的风格,加上no-icon可以隐藏图标 示例

<div class="note default"><p>default</p></div>
<div class="note primary"><p>primary</p></div>
<div class="note success"><p>success</p></div>
<div class="note info"><p>info</p></div>
<div class="note warning"><p>warning</p></div>
<div class="note danger"><p>danger</p></div>
<div class="note default no-icon"><p>danger no-icon</p></div>

预览

default

primary

success

info

warning

danger

danger no-icon

18. Label标签

@前调整label的风格,@后输入显示的内容 示例

{% label default@这是default %}
{% label primary@这是primary %}
{% label success@这是success %}
{% label info@这是info %}
{% label warning@这是warning %}
{% label danger@这是danger %}

**预览

{% label default@这是default %} {% label primary@这是primary %} {% label success@这是success %} {% label info@这是info %} {% label warning@这是warning %} {% label danger@这是danger %}

19. Tab tag选项卡

19.1. 配置

在Next主题文件中搜索Tabs tag,然后将enable设置为true,下面是我的配置

# Tabs tag
tabs:
enable: true
transition:
tabs: true
labels: true
border_radius: 0

19.2. 用法

自定义的选项较多 示例

{% tabs First unique name %}
<!-- tab -->
**This is Tab 1.**
<!-- endtab -->
<!-- tab -->
**This is Tab 2.**
<!-- endtab -->
<!-- tab -->
**This is Tab 3.**
<!-- endtab -->
{% endtabs %}

预览

{% tabs First unique name %} <!-- tab --> This is Tab 1. <!-- endtab --> <!-- tab --> This is Tab 2. <!-- endtab --> <!-- tab --> This is Tab 3. <!-- endtab --> {% endtabs %}

示例 第一行的数字3表示默认显示的Tabs,设置为-1时表示不显示默认Tabs

{% tabs Second unique name, 3 %}
<!-- tab -->
**This is Tab 1.**
<!-- endtab -->
<!-- tab -->
**This is Tab 2.**
<!-- endtab -->
<!-- tab -->
**This is Tab 3.**
<!-- endtab -->
{% endtabs %}

预览

{% tabs Second unique name, 3 %} <!-- tab --> This is Tab 1. <!-- endtab --> <!-- tab --> This is Tab 2. <!-- endtab --> <!-- tab --> This is Tab 3. <!-- endtab --> {% endtabs %}

示例 选项的名称和图标可以自定义,在<!-- tab 自定义名称@自定义图标 -->中调整。具体效果省略。

20. 按钮

示例 使用button或者btn,在两者后面加入要跳转的链接,不加链接的话默认跳转到当前页面

//只显示文字,Text是文字内容
{% button https://siriusq.top/, 主页 %}

//多个按钮并列
{% btn https://siriusq.top/, 主页 %} {% btn #, Text & Title,, Title %}

//只显示图标
<p>{% btn https://siriusq.top/,, home fa-5x %}
{% btn #,, home fa-4x %}
{% btn #,, home fa-3x %}{% btn #,, home fa-2x %}{% btn #,, home fa-lg %}{% btn #,, home %}</p>

//显示文字和图标
<p>{% btn #, Text & Icon (buggy), home %}
{% btn #, Text & Icon (fixed width), home fa-fw %}</p>

预览 只显示文字,Text是文字内容 {% button https://siriusq.top/, 主页 %}

多个按钮并列 {% btn https://siriusq.top/, 主页 %} {% btn #, Text & Title,, Title %}

只显示图标

{% btn https://siriusq.top/,, home fa-5x %} {% btn #,, home fa-4x %} {% btn #,, home fa-3x %}{% btn #,, home fa-2x %}{% btn #,, home fa-lg %}{% btn #,, home %}

显示文字和图标

{% btn #, Text & Icon (buggy), home %} {% btn #, Text & Icon (fixed width), home fa-fw %}

21. 插入视频

因为Github Page提供的空间有限,音乐和视频建议上传到B站或Youtube等平台,通过Html语言嵌入,直接复制网页提供的分享链接即可,使用width设置宽度,height设置高度。

21.1. <video>标签

使用source src设置视频路径 示例

<video width="480" height="320" controls>
<source src="movie.mp4">
</video>

预览(并没有视频)

21.2. <embed>标签

示例

<embed src='http://player.youku.com/player.php/sid/XMzUzNjg1OTQzNg==/v.swf' allowFullScreen='true' quality='high' width='480' height='400' align='middle' allowScriptAccess='always' type='application/x-shockwave-flash'></embed>

预览(随便放的)

21.3. <iframe>标签

示例

<iframe height=400 width=600 src="//player.bilibili.com/player.html?aid=14176961&cid=23141262&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>

预览(自己的B站软广)

21.4. HTML 标签

可以直接用 HTML 的标签,写法如下:

<video poster="https://封面图.jpg" src="https://什么什么什么.mp4" style="max-height :100%; max-width: 100%; display: block; margin-left: auto; margin-right: auto;" controls="controls" loop="loop" preload="meta">Your browser does not support the video tag.</video>

如果想用插件的话,这里推荐 hexo-tag-dplayer,和音乐播放器 Aplayer 属于同一系列插件,是 Dplayer 播放器的 Hexo 标签插件,支持弹幕。

安装:

npm install hexo-tag-dplayer --save

在文章中的写法:

{% dplayer "url=https://什么什么什么.mp4" "https://封面图.jpg" "api=https://api.prprpr.me/dplayer/" "id=" "loop=false" %}

要使用弹幕,必须有 apiid 两项。

22. 插入音乐

首先,你可以直接使用 HTML 的标签,格式如下,其中 music-url 替换为你需要加载的音乐即可:

<audio src="music-url" style="max-height :100%; max-width: 100%; display: block; margin-left: auto; margin-right: auto;" controls="controls" loop="loop" preload="meta">Your browser does not support the audio tag.</audio>

当然,网易云音乐的外链很好用,不仅有可以单曲,还能有歌单。在网易云音乐的播放列表中有生成外链播放器,配置好样式直接复制代码插入文章即可。但是有一些音乐因为版权原因放不了,还有就是不完全支持 https,导致小绿锁不见了。要解决这些缺点,就需要安装插件。

这里推荐 hexo-tag-aplayerAPlayer 播放器的 Hexo 标签插件。安装:

npm install hexo-tag-aplayer --save

载入标签格式如下:

{% aplayer "歌曲名" "歌手名" "https://什么什么什么.mp3" "https://封面图.jpg" "lrc:https://歌词.lrc" %}

还可以支持歌单:

{% aplayerlist %}
{
"autoplay": false,
"showlrc": 3,
"mutex": true,
"music": [
{
"title": "歌曲名",
"author": "歌手名",
"url": "https://什么什么什么.mp3",
"pic": "https://封面图.jpg",
"lrc": "https://歌词.lrc"
},
{
"title": "歌曲名",
"author": "歌手名",
"url": "https://什么什么什么.mp3",
"pic": "https://封面图.jpg",
"lrc": "https://歌词.lrc"
}
]
}
{% endaplayerlist %}

具体的参数设置可以参考该插件的 README 和这插件的 Aplayer 的官方文档

另外,该插件与 hexo-filter-optimize 插件共同使用会出现 BUG,对该问题的具体分析可参见我的文章《加速 Hexo 博客的方法及遇到的问题》。

23. 插入图片

使用图床最方便

24. 标题

在文字前加#和空格,支持六级标题和大小标题,一定不要漏了 空格,空格漏掉的话会和普通字符一样显示

示例

# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题

大标题
===

小标题
---

预览效果略

25. 完成

Hexo中常用的Markdown语法大概就这些了,填坑结束~

26. 参考链接