0%

不管是轮子程序员,cv程序员,还是md程序员(今天新学名词),总会遇到版权相关的问题。
这里从网络上找到的资料做一个梳理,并介绍相关的使用方式。

版权

程序员常常用到的主要是两种版权:

  • 开源代码版权
    • 代码相关
  • 知识共享版权(CC: Creative Commons)
    • 文章相关

开源源代码版权

  1. 各种版权协议(MIT BSD GPL等)。含义,如何选择。 链接
  2. 如果自己版权,如何声明。
    在项目下声明 LICENSE.md 文件 或 LICENSE文件,可以将对应协议全部内容复制。比如:这样。 也可以在LICENSE文件或readme.md中指明协议,以及协议链接(即协议内容),比如:这样。 (其实只要有一个地方能声明是什么协议就好了,至于什么形式都可以)。具体如何选择以及相应的文本 见链接
  3. 如果使用别人,应该如何注明。
    如果用他人项目,你可以将他人的license放到自己目录下。 或者 在源文件中指明该文件或项目是 谁的,什么协议,项目链接等。 (其实只要一个地方声明是引用谁的就好了,至于什么形式都可以)链接

知识共享版权。

  1. CC的各种形式(BY NC ND等)。含义,如何选择。 知识共享
  2. 如果自己版权,如何声明。
    (在文章开头 或 结尾 声明协议 (以及协议的链接 可选)) 具体可参考本博客下的cc声明部分。
  3. 如果使用别人,应该如何注明。
    (在相应地方注明 作者 ,协议, 链接等) 比如: 图/作者,采用 CC BY 4.0 协议授权』

前言

最近发现一个还不错的免费的vps。当然有能力买一个云服务器是最香的。如果仅仅是为了学习,短暂使用,那这个免费的vps还是最香的。
我自己之前使用过 aws, 阿里云。 aws免费一年。阿里云活动100多一年。 虽然花的钱不多,但是用的也不多,仅仅是用于学习,很多时候是浪费的。 所以,这个免费的vps有点香。
先说一下 有一个自己的服务器能做什么?

服务器/云服务器/VPS
1.搭建vpn/梯子。
2.云服务器跑自动化。
3.搭建博客,网站,酷炫的应用等。
4.数据存储, NAS。
5.验证自己学习上遇到的困惑和想法。

所以,能有一台永不宕机,永远在线的服务器是很酷的事。

申请 hax vps

官网
hax vps 是利用虚拟化技术而创建的vps。
hax vps 是免费的,因此1.性能上不能强求太多。2.没有ipv4(这也是很坑的一点)。3.每7天续订一次。(对于长期使用,就别用这个了)

  • 申请vps。(要tg账号)
  • 申请完之后,因为只支持ipv6,如果你所在网络只支持ipv4。可以使用hax 提供的ipv4toipv6。(实际上只是一个纯粹的中转,将所有流量最后还是转发到vps上的)注意ipv4地址一定要能访问得到。hax只让你用三条映射。
    ssh root@103.253.24.78 -p 2345 (经过ipv4toipv6)
    ssh root@2a01:4f8:13a:19e5:1026:a11a:c4a8:0001 (直接使用ipv6连接)
  • 注意,hax只支持ipv6网络,因此你要想用haxvps访问ipv4,那么需要安装warp(原理是通过一个中转点,这个中转点可以访问ipv4 ipv6)。

    hax 应用

    毕竟免费,太复杂的应用是干不了的。只能做一些自动化脚本,梯子等(网站还是有点够呛)
白嫖hax的vps作为翻墙用: 1. 申请vps。 (要tg账号)。 hax账号密码: tgid, 12345678. vps登录账户和密码:root abc1234. 2. 因为hax的vps支持ipv6,所以如果本地是ipv4是无法访问的。 可以用hax提供的ipv4toipv6。 (实际上只是一个纯粹的中转,将所有流量最后还是转发到vps上的。)注意ipv4地址一定要能访问得到。hax只让你用三条映射。 ssh root@103.253.24.78 -p 2345 (经过ipv4toipv6) ssh root@2a01:4f8:13a:19e5:1026:a11a:c4a8:0001 (直接使用ipv6连接) 3.安装 shadowsock-libev并配置。 配置成ipv4 ipv6都能接受的。 一键安装: wget -N https://raw.githubusercontent.com/ruozhiertong/pythonDemo/master/test/env_hax.sh && bash env_hax.sh

3.1.sudo apt-get update. 3.2.sudo apt-get install shadowsocks-libev
3.3.sudo vim /etc/shadowsocks-libev/config.json
https://www.oilandfish.com/posts/shadowsocks-libev.html
同时支持ipv4 和v6.
{
“server”:[“[::0]”, “0.0.0.0”],
“server_port”:8388,
“local_port”:1080,
“password”:”AWS2020aws”,
“timeout”:200,
“method”:”aes-256-cfb”
//“plugin”:”obfs-server”,
//“plugin_opts”:”obfs=http”
}
3.4 sudo /etc/init.d/shadowsocks-libev start

  1. 客户端连接。
    haxv4(经过ipv4toipv6映射了):

103.253.24.78
8388
AWS2022aws
aes-256-cfb

hax:
2a01:4f8:13a:19e5:1026:a11a:c4a8:0001
8388
AWS2022aws
aes-256-cfb

  1. 让hax vps 也能访问ipv4网络。 安装warp。
    https://owo.misaka.rest/warp-vps/

warp: 是让只有ipv6的vps套上ipv4,使得VPS可以访问ipv4网络。 但是如果原来vps只支持ipv6,那么此时外部的ipv4网络还是无法访问到vps。单向的。
https://github.com/fscarmen/warp/blob/main/README.md#WARP%E5%8E%9F%E7%90%86
https://www.veidc.com/19128.html
https://luotianyi.vc/5252.html
https://blog.skk.moe/post/something-about-cf-warp/
查看你的主机支持的网络: http://ip6.me/。 如果支持IPv4,那么是无法访问ipv6的网络上的内容的。ipv6 同理。
http://www.test-ipv6.com/
https://ip.zxinc.org/ipquery/

  1. hax的免费vps要每周续期才可以。 能弄一个自动续期就很完美了。(github action可以。 不过那个脚本好像不能用了)

7.测试 vps速度。
——————– A Bench.sh Script By Teddysun ——————-
Version : v2022-02-22

Usage : wget -qO- bench.sh | bash

CPU Model : AMD Ryzen 5 3600 6-Core Processor
CPU Cores : 1 @ 3593.250 MHz
CPU Cache : 512 KB
AES-NI : Enabled
VM-x/AMD-V : Disabled
Total Disk : 4.7 GB (2.4 GB Used)
Total Mem : 416.0 MB (86.6 MB Used)
Total Swap : 128.0 MB (268.0 KB Used)
System uptime : 0 days, 2 hour 33 min
Load average : 0.00, 0.00, 0.02
OS : Ubuntu 20.04 LTS
Arch : x86_64 (64 Bit)
Kernel : 5.4.0-29-generic
TCP CC : cubic
Virtualization : KVM
Organization : AS13335 Cloudflare, Inc.
Location : Frankfurt am Main / DE
Region : Hesse


I/O Speed(1st run) : 207 MB/s
I/O Speed(2nd run) : 203 MB/s
I/O Speed(3rd run) : 211 MB/s
I/O Speed(average) : 207.0 MB/s


Node Name Upload Speed Download Speed Latency
Speedtest.net 386.46 Mbps 269.90 Mbps 2.97 ms
Los Angeles, US 251.06 Mbps 149.69 Mbps 148.62 ms
Dallas, US 255.47 Mbps 156.11 Mbps 120.55 ms
Montreal, CA 276.02 Mbps 122.99 Mbps 93.10 ms
Paris, FR 829.82 Mbps 299.59 Mbps 21.27 ms
Amsterdam, NL 285.65 Mbps 149.41 Mbps 13.08 ms
Shanghai, CN 4.99 Mbps 85.90 Mbps 249.19 ms
Nanjing, CN 214.21 Mbps 145.04 Mbps 266.27 ms
Guangzhou, CN 118.55 Mbps 75.64 Mbps 258.30 ms
Hongkong, CN 209.17 Mbps 101.95 Mbps 195.77 ms
Seoul, KR 198.94 Mbps 114.69 Mbps 296.75 ms


Finished in : 6 min 2 sec
Timestamp : 2022-02-25 09:42:03 CET


使用支持ipv6的网络去ping hax的vps, 以及用支持ipv6的网络去连接vps的ssser。

使用ipv4之后翻墙成功了。 试试用ipv6的。

验证,是否是warp使得翻墙成功了,因为昨晚的时候一直不成功。 靠。还真的是warp安装之后可以了。 应该是连接上vps了,但是vps无法连接到外面的ipv4网络,因此导致失败,提示的也是network unreachable。
其实现在很多网络还是只支持ipv4,支持ipv6的不多,不过后面会越来越多的。

hax 的ipv4都被墙了,基本用不了,只能ipv6了。

Here's something encrypted, password is required to continue reading.
阅读全文 »

前言

要想写一篇格式清楚,样式精美的文章,在以前需要先写内容,然后再润色样式。这种方式很大程度上影响内容的输出,而且样式在各平台的不统一。
如何只要关注内容,而不必关注样式,并且样式能在各个平台兼容?markdown是一种不错的选择。熟悉了markdown书写规则之后,就能不被样式束缚,可以只关注于内容,而且现在多个平台上基本都支持md,样式也基本标准统一。所以,我们在输出内容时,也能输出统一标准精美的样式(md的样式基本是统一标准的)。这种的方式非常适合于技术博客。

Markdown 是什么?

Markdown 是一种轻量级标记语言,创始人是约翰・格鲁伯(John Gruber)。它允许人们 “使用易读易写的纯文本格式编写文档,然后转换成有效的 HTML 文档”。
—— 维基百科。

Markdown 简化了 HTML 的语法,使得大多数人都可以轻松地完成文档排版;
Markdown 的基础排版功能,如标题、段落、加重等功能,不要求使用者有其他技能基础;
Markdown 的基础样式功能,如字体、字号、颜色等,需要使用者有 HTML & CSS 基础。

markdown 原理 链接, 链接

我的理解:

  • md 是一种轻量级标记语言,创始人是约翰・格鲁伯(John Gruber)。它允许人们 “使用易读易写的纯文本格式编写文档,然后转换成有效的 HTML 文档”。 .md文件是md标记语言编写的。 语法:有其md特殊的标记(如# * 等),它也支持所有的html标记(即在.md文档中直接使用html的所有标签)。实际上,md的展示过程,是 md处理器/引擎 处理md特殊标记 然后编译转化输出html文档,然后再渲染html进行展示(对于html标记不做处理 原样转化)。 所以一些可以展示md的编辑器/软件 实际上是有md引擎以及html渲染引擎的。

  • Markdown 语法支持嵌入原始的 HTML 标记语言,支持 CSS 样式。

  • 所以你理解html 就能理解md。因为最后渲染成html的。知道html的样式 效果,就能知道md标签的含义和最后效果。 md使得你专注内容,而不是那些样式等。

  • 学习md 既能加深html的理解,以及展示的效果, 还能学到排版 样式 等知识。

  • 如何学习这么多的md规则? 实际上md文档就是为了写文章,文章中主要有什么?你清楚了文章主要有什么,那么就能很快掌握md相应的书写规则。
    你想想文章 都有什么 或 排版都有什么:

    • 结构:文章题目,目录, 各个标题 小标题 。 正文(由段落组成),常用的图表,图片,链接,代码块 等。
    • 样式/格式: 字体,字号,颜色,对齐, 斜体,加粗,下划线,删除线 等等。

    这些都对应着响应的md书写规则。 只要你对文章的结构 排版都清楚,那么学起md就非常得心应手。

markdown 太轻便了,学会了,使用起来非常舒服,优雅。 任何时刻,都可以写(毕竟时纯文本形式)。
学会简单的规则,就能写出很好的文档。 不需要用那些复杂的文本编辑软件等。

文章 排版结构:
1.前面目录。 [TOC]
2.层次 逻辑分清楚。 段落/主题, section,小节。
3.各个段落/主题 之间的关联。
4.字体 颜色 样式。 着重: 标红 放大 加粗 斜体 下划线。  代码块。 表格。 图片插入。分点样式等。
写作有时候 虽然文笔不好,但是 能将逻辑、 结构、步骤弄清楚 也是一篇不错的合格的文章。

创建和查看

创建编辑.md文档。

任何编辑器都可以创建.md文件。 .md文件实际上就是纯文本文件,因此可以用任何编辑器编辑。所以 只要你学会md的书写,那么你就可以何时何地,不受工具限制,进行文章创作。

展示.md的效果。

需要编辑器/软件 1.支持.md的解析,2.以及html的渲染,展示最终效果,否则只能看到纯文本的源文件。

常用的编辑器

用于展示和编辑的编辑器有Typora, vscode(安装相应插件)。

常见的MD书写规则

注意 书写规则中MD标记 前后空格。 如

#无效的标题. 因为和#连在一起。
# 有效的标题。
1.无效的有序列表。 
1. 有效的

文章题目。

这个没什么说的。H1.

文章目录。

  1. [TOC] 自动生成目录。 不过有些md编辑器无法显示。
  2. 手动。 需要手动更新。 不过有些编辑器可以插件生成,比如vscode。
    - [一级标题](#一级标题)
      - [标题 1-1](#二级标题 1-1)
      - [标题 1-2](#二级标题 1-2)
    - [二级标题](#二级标题)
      - [标题 2-1](#二级标题 2-1)
      - [标题 2-2](#二级标题 2-2)
    - [一级标题](#一级标题)
      - [标题 1-1](#二级标题 1-1)
      - [标题 1-2](#二级标题 1-2)
    - [二级标题](#二级标题)
      - [标题 2-1](#二级标题 2-1)
      - [标题 2-2](#二级标题 2-2)
    
    # 一级标题
    一些内容……
    ## 二级标题 1-1
    一些内容……
    ## 二级标题 1-2
    一些内容……
    # 二级标题
    一些内容……
    ## 二级标题 2-1
    一些内容……
    ## 二级标题 2-2
    一些内容……
    

标题

使用 #。对应 html中h1~h6.
标题是组织文章结构的最好方式。
Markdown 的标题定义方式,不用担心标题格式混乱,文章始终保持结构性,作为创作者,只需要关心内容即可。在某些 Markdown 编写工具中,标题也可用于自动生成目录树或大纲。
标题 目录 也是文章的逻辑、 结构、 思维导图。

# 这是一个标题
## 这是一个标题
### 这是一个标题
#### 这是一个标题
##### 这是一个标题
###### 这是一个标题

段落/换行

分段

  1. 用空行。 没有空行,那么都算一个段落中。
  2. 后面加两个空格,再按enter,那么渲染的时候就会换行。 否则计算源文件enter换行,渲染后还是再同一行.(不分段的换行)

分割线

下面是三类分割线

使用「星号」作为分割线

***

使用「减号」作为分割线

---

使用「下划线」作为分割线
___

列表

无序列表, 有序列表。html中的 ul ol

### 无序列表

使用星号生成无序列表

* 项目1
* 项目2
* 项目3

使用加号生成无序列表

+ 项目1
+ 项目2
+ 项目3

使用减号生成无序列表

- 项目1
- 项目2
- 项目3

### 有序列表
使用数字实现有序列表

1. 项目1
2. 项目2
3. 项目3

源码中的数字与渲染后的数字并不一一对应,但可以决定列表的开始序号

例如,让 Markdown 渲染器自动安排序号:

0. 项目1
0. 项目2
0. 项目3

让有序列表以 “2” 开头:

2. 项目1
1. 项目2
0. 项目3

引用

行首加入>

块引用里的标题

多行引用
hello

### 块引用的特殊样式

> #### 块引用里的标题
>
> 块引用里的 **重点文字**
>
> 块引用里的列表
> - 项目1
> - 项目2
> - 项目3
>
> 块引用里的表格
>
> |a|b|
> |---|---|
> |c|d|
>
> 块引用里的分割线
> ___
>

强调

标准的粗斜体
斜体
用粗体包含斜体的粗斜体
用粗体包含斜体的粗斜体

### 强调语法的组合应用

- 默认的粗斜体

  ***标准的粗斜体***

- 用粗体包含斜体

  **_用粗体包含斜体的粗斜体_**

- 用斜体包含粗体的粗斜体

  *__用粗体包含斜体的粗斜体__*

辅助线

这是一条删除线

### 中划线语法

这是一个删除线

~~这是一条删除线~~

当删除线内部紧跟 "空格" 时,删除线效果会失效。

~~有效的删除线~~

~~失效的删除线 ~~

~~ 失效的删除线 ~~

~~ 失效的删除线~~

行内代码 块代码

行内 用 `` 包起来。  

块 用``` 包起来。

超链接

#### 声明超链接

一对中括号就可以将文字转换为超链接,如: [北京](https://),[上海](),[广州](),[深圳]()

图片

![替换文字](图片路径 "标题(可选)")

#### 插入一张图片

图片前的文字。

![](https://tva3.sinaimg.cn/crop.0.0.180.180.180/6d04a77djw1e8qgp5bmzyj2050050aa8.jpg?KID=imgbed,tva&Expires=1588529780&ssig=vNCcwnltm2)

图片后的文字

表格

#### 定义表格

|学号|姓名|
|----|----|
|1|张三|
|2|李四|
|3|王五|

任务列表

在 Markdown 文件中,在 " 无序列表 -,+,* " 后面使用 「中括号 []」 声明复选框。在中括号中写入 x ,便可实现选中效果。

#### 复选框 checkbox

- [ ] Java
- [x] Php

特殊符号

使用转义 * >.
只用特殊的字符遇到\ 才能转义,其他的还是原样输出,如 \x

关于 字体 颜色 字号 对齐 下划线

由于md只关注内容本身,并不关注样式,因此要做这些的话,可以通过html标签去实现。
比如:
红色字体
下划线

我剧中了何厚铧德士古时代感和 i 时代公司丢个合适的个合适的根深蒂固的宿舍大概还是低谷
左对齐
右对齐

更多的

可以参考 慕课网教程
这个教程做的很不错。文章的结构和逻辑 非常清晰明了。(要多学习这种技术文章的技巧,排版,结构,逻辑)

前言

一直想要构建一个属于自己的博客,可以作为自己生活工作的输出和记录。但是碍于各种麻烦(买服务器,构建,运维)(当然主要就是懒),最终只停留在想想阶段。 后来意识到输出的重要性,才认真的考虑构建自己的博客。

博客技术选型

博客主要有动态网站,静态网站。

  • 动态网站,比如Wordpress,自己写的动态网站博客(jsp php等)。这个就是比较麻烦,要服务器,要自己构建,自己维护。(所以一直没有去实施) 但是这种比较灵活,可玩性比较高,可以根据自己的需求处理。
  • 静态博客,就是服务器只托管静态的html页面,并没有动态的能力。其实很早之前网上就有这样的博客了,只是以前一直不知道这就是静态博客。 不过了解之后,发现这个可玩性也很高,可定制自己的博客样式,而且可以结合github,免去服务器的维护。
  • 博客就应该简单,不需要太多的乱七八糟的动态交互。 因此很适合做静态网站的形式。

了解一番,静态博客可选择: github.io/GitHubpage + hexo/Jekyll/hugo. 最后选择了hexo,主要因为它是nodejs写的,而我也想学nodejs,因此就选hexo。

原理,利用hexo/Jekyll/hugo等静态网站生成器,将md文件生成的静态的html页面,push到github上。github托管你的静态网站,github会提供一个博客域名给你,你就可以访问域名使用了。

静态博客框架原理
静态博客框架/静态博客生成器 利用模版语言如ejs/njk等,将md文档渲染成html。

搭建

具体搭建方法见 链接。 以下记录,就是记录流程和一些关键概念。

1.新建github的repository。

githubpage用途
github上新建githubpage。repository名为 githubusername.github.io. 新建这个仓库后,通过域名githubusername.github.io就可以访问这个仓库下的静态资源。

注意名字只能是githubusername.github.io,其他名字的仓库,github不会托管的,也就是说github只给每个用户一个githubpage。

相当于github帮你托管了一个静态网站,并给你提供了网站域名githubusername.github.io, 你通过这个域名就可以访问静态网站了。

2.安装hexo。

hexo 快速、简洁且高效的博客框架, 静态博客生成器。 官方文档

2.1 安装hexo

其基于nodejs,因此先安装nodejs。
hexo原理,其实就是样式和内容分离。渲染。
0.读取总配置文件。根目录下的 _config.yml.
1.渲染。source文件夹 和 theme文件夹。 两次渲染。1.第一次先将source下各自文件夹中的md文件渲染成article对象。2.根据种配置文件中theme将article对象根据theme文件夹下相应的lauout的ejs的进行渲染成html,输出到public。article对象用哪个layout的ejs进行渲染,用的是 md所在的文件夹名称 就是 theme下layout对应名称的xx.ejs。 theme的渲染配置在各自theme文件下的_config.yml.
配置文件中也是定义一些变量。
模版语言:ejs njk

hexo 目录结构,原理。

目录结构, 配置文件, 原理。

目录结构

配置文件

原理

2.2 hexo 安装主题

有很多主题可供选择。这里我尝试了两种,hexo-theme-matery, next. 最后选用了next,因为最符合简约 有效的风格。 hexo-theme-matery 虽然很炫,但是太杂了,不适合技术博客的风格。
安装主题,选择你喜欢的主题。

  1. 找到你喜欢theme的github, git clone 到hexo根目录下的theme目录下。
  2. 修改根目录下的_config.yml中的theme配置。 修改为theme目录下的主题目录名。

2.3 hexo 常用命令

(要在init生成的目录下执行hexo命令)
hexo init XXX
hexo g / hexo generate 生成静态页面。在public目录下。
hexo s / hexo server 启动本地http服务器, 访问localhost:4000
hexo clean clean生成的文件。
hexo new “xxx” 生成文章,到_posts下。
hexo new page “xxx” 生成文章,到source下。
hexo new draft “xxx”

除了hexo new post|page xx。也可以在相应的目录下手动生成md。

hexo d / hexo deploy 会将public下生成的文件puosh到_config.yml配置文件设定的github仓库上。

关于.yml配置文件 注意两个地方。根目录下的_config.yml, theme目录下各个主题的_config.yml

我安装的hexo 和 next主题 版本 如下:

hexo -v

NexT version 8.10.1
Documentation: https://theme-next.js.org
========================================
hexo: 5.4.1
hexo-cli: 4.3.0
os: darwin 16.7.0 10.12.6

node: 15.3.0
v8: 8.6.395.17-node.22
uv: 1.40.0
zlib: 1.2.11
brotli: 1.0.9
ares: 1.16.1
modules: 88
nghttp2: 1.41.0
napi: 7
llhttp: 2.1.3
openssl: 1.1.1g
cldr: 37.0
icu: 67.1
tz: 2019c
unicode: 13.0

2.4-1. 主题的功能,插件定制。

我想要的博客功能: 简洁,不需要花哨, 搜索, 归档, tag, 分类。

  1. 归档,分类,tag。
  2. 搜索。 npm install hexo-generator-searchdb
  3. RSS。 npm install hexo-generator-feed –save
  4. 字数统计,阅读时长等。npm install hexo-word-counter
  5. 访客统计。 不蒜子。
  6. 评论功能。 gitalk, valine。 评论回复时 邮件提醒。
  7. 留言板。gitalk, valine。
    • gitalk 文章与issue对应 是根据文章的url来决定的。文章的url作为issue的id。gitalk issue初始化问题(利用sitemap.xml去自动化初始化)。
      leancloud 账号 国内版(13490**),国际版(13490**)。 国际版有提供二级域名。
      1.设置valine评论。 valine + leancloud. https://ioliu.cn/2017/add-valine-comments-to-your-blog/
      2.设置valine评论的邮件提醒。 valine admin. https://github.com/zhaojun1998/Valine-Admin
         注意:leancloud的休眠策略。防止休眠:1.leancloud定时任务。2.github action 发请求。
      https://blog.csdn.net/Aoman_Hao/article/details/105323917
      https://github.com/zhaojun1998/Valine-Admin
      https://blog.csdn.net/weixin_49687704/article/details/119790377
  8. 阅读进度。修改next中参数就行。
  9. 文章加密。
    - 简单的前端设置密码。(绕过,到githubio上还是可以看。比如hexo-theme-matery就是这么加密的)。pass。
    - 对整篇文章内容加密,解密前只显示加密的密文。(hexo-blog-encrypt)
  10. 说说,备忘录。
  11. 相册。
  12. tag的词云。 hexo-tag-cloud。
  13. 添加CC协议。
  14. 将githubpage放到giteepage。 github太慢。
  15. 添加音乐播放器。 aplayer, metingjs。 hexo-tag-aplayer(hexo-tag-aplayer 是 APlayer播放器的 Hexo 标签插件。也支持metinjs。) hexo-tag-aplayer 只在md文件中使用。其他可以在支持html标签的页面中使用。
    - 使用 <iframe>
    - 使用aplayer。
    - 使用aplayer + metingjs.
    (以上三种可以在md文件,也可以在像sidebar.njk这样的njk文件中使用。)
    - 使用hexo-tag-aplayer.(hexo的标签插件只能在md文件中使用。为什么无法用在njk文件? 好像也不能用在ejs文件中)
    - 放在sidebar; 放在某篇文章; 页面跳转继续播放全局可播放; 底部磁吸模式;
    • 放在sidebar里只能<iframe>,aplayer原生,或者metings。因为hexo标签插件在njk文件不起作用。
    • 关于全局播放。 使用pjax技术。 即不刷新请求,同时改变url。(ajax + pushstate)。 next很简单,直接开启pjax:true

2.4-2.定制 修改 主题 (增加新的功能 样式等)

当官方/第三方 主题 功能 样式都无法满足自己的需求,就要自己去魔改了。

2.5.自定义开发hexo theme。

真正厉害的就是自己开发hexo的主题。

3.push到repository。

当我们完成文章创作之后,就可以发布到githubpage上了。
1. 修改根目录下的_config.yml的deploy配置。

4.域名访问。

1.  yourgithubusername.github.io
2.  如果你自己有域名的话,可以将你的域名cname到yourgithubusername.github.io。
    1.  在域名服务商处将自己的域名cname到yourgithubusername.github.io
    2.  在github网站上 githubpage 的 repository 中的settings->githubpage->domain 修改为你的域名。 (修改cname后,要记得修改 评论模块的安全域名设置(gitalk leancloud))
    3. 问题:既然域名服务商已经添加了域名解析cname,为什么还要在github上添加cname? github上的cname作用是什么?  如果没有设置github上的cname,就不成功。  我原先也是这么想的,其实就是相当于域名cname到githubpage上就可以了。但是我试过不行。仅仅在域名服务商那边设置cname还不行,还要在github上设置cname才行的。 所以我不知道github上设置cname是什么作用? 是为了验证? 另外,两个域名互相cname会怎样??

5.利用github action自动发布。

0.源文件仓库。 私人。
1.gihubpahe仓库。 公开。
2.在源文件仓库中设置githubaction。 方式1.使用hexo d 一键部署 发布到gihubpahe仓库。 方式2.编写hexo的action直接来将生成的静态文件push到gihubpahe仓库。
方式1将token放在源文件中不是很好。
hexo 的_config.yml中设置token提交:
deploy:
type: git
repo: https://xxxtoken@github.com/ruozhiertong/ruozhiertong.github.io.git
branch: main
然后直接 hexo d.
改进,通过hexo指令向其传递变量,然后再action中向hexo传变量。 比如类似 hexo d –github_token xxxtoken. 然后再github action中去设置xxxtoken。

  方式2,可以直接使用github action中设置东东。 

为了保证源文件的私有性,所以设置了步骤0的私有仓库。 每次编写md文件后,push到步骤0的仓库。 步骤0仓库的action会生成静态文件push到步骤1的仓库,从而实现源文件和公开博客的分离。

总结

建博客:

  • 在github上创建githubpage的repository。
  • 安装hexo,创建hexo工程,安装主题,安装相应的功能,修改配置文件参数。

创作:

  • hexo new xxx 创建文章
  • xxx.md 的内容创作。 编辑相应的categories,tags等。
  • hexo g && hexo s 本地生成和浏览
  • hexo d 部署到githubpahe。
  • 访问 yourgithubusername.github.io

Here's something encrypted, password is required to continue reading.
阅读全文 »