cloudflare
tcp/443 tcp/80 tcp/8443
Open service 2606:4700:4407::ac40:9052:443 · lihan.fun
2026-01-22 17:57
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 17:57:56 GMT
Content-Type: text/html
Content-Length: 29945
Connection: close
CF-Cache-Status: HIT
Cache-Control: public, max-age=0, must-revalidate
ETag: "8db0869982f0f114836c037ed10da371"
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=F6DCasNqQEVsw3K%2FWFKvWrWKCdDY2jeCmzBntMOZiBqYpS1W6FHXGnatEDweigp4sAP25pI8cMm46s3avZvLUBePn4IPmB0IA0JIS%2FJAhBfRx%2FQpUw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c20efc2ab0239cb-YYZ
alt-svc: h3=":443"; ma=86400
Page title: 导航Undefined01's blogSearch暗色模式亮色模式阅读模式
<!DOCTYPE html>
<html lang="zh"><head><title>导航Undefined01's blog</title><meta charset="utf-8"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Schibsted Grotesk:wght@400;700&family=Source Sans Pro:ital,wght@0,400;0,600;1,400;1,600&family=Cascadia Code:wght@400;600&display=swap"/><link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin="anonymous"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="og:site_name" content="Undefined01's blog"/><meta property="og:title" content="导航Undefined01's blog"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="导航Undefined01's blog"/><meta name="twitter:description" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta property="og:description" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta property="og:image:alt" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta property="twitter:domain" content="lihan.fun"/><meta property="og:url" content="https://lihan.fun/index"/><meta property="twitter:url" content="https://lihan.fun/index"/><link rel="icon" href="./static/icon.png"/><meta name="description" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta name="generator" content="Quartz"/><link href="./index.css" rel="stylesheet" type="text/css" spa-preserve/><style>.expand-button {
position: absolute;
display: flex;
float: right;
padding: 0.4rem;
margin: 0.3rem;
right: 0;
color: var(--gray);
border-color: var(--dark);
background-color: var(--light);
border: 1px solid;
border-radius: 5px;
opacity: 0;
transition: 0.2s;
}
.expand-button > svg {
fill: var(--light);
filter: contrast(0.3);
}
.expand-button:hover {
cursor: pointer;
border-color: var(--secondary);
}
.expand-button:focus {
outline: 0;
}
pre:hover > .expand-button {
opacity: 1;
transition: 0.2s;
}
#mermaid-container {
position: fixed;
contain: layout;
z-index: 999;
left: 0;
top: 0;
width: 100vw;
height: 100vh;
overflow: hidden;
display: none;
backdrop-filter: blur(4px);
background: rgba(0, 0, 0, 0.5);
}
#mermaid-container.active {
display: inline-block;
}
#mermaid-container > #mermaid-space {
border: 1px solid var(--lightgray);
background-color: var(--light);
border-radius: 5px;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%,
Open service 2606:4700:4407::ac40:9052:80 · lihan.fun
2026-01-22 17:57
HTTP/1.1 301 Moved Permanently
Date: Thu, 22 Jan 2026 17:57:56 GMT
Content-Length: 0
Connection: close
Location: https://lihan.fun/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=tjs%2BnsHq4E4iisP94LQOcjwHQABgAuwg%2BP1sVDghzAXpY0hJ20N31bL9Qo9lO83hgaURKYRAYvUPk24kOTyyOaH8mMeyNtobtthc%2BoaoNPxKENFUYw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c20efc248780c23-EWR
alt-svc: h3=":443"; ma=86400
Open service 2a06:98c1:310d::6812:2bae:443 · lihan.fun
2026-01-22 17:57
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 17:57:56 GMT
Content-Type: text/html
Content-Length: 29945
Connection: close
CF-Cache-Status: HIT
Cache-Control: public, max-age=0, must-revalidate
ETag: "8db0869982f0f114836c037ed10da371"
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=d7yD29Qk8gDbiR92xe3ZkKLHGBnb9%2FbH9ZjaDJ49oAWfzWPjRdI8dpnEjPrPxa5vXVd7tNw%2FedEtTsI2OkY6Cp3ZVPSvatYdXHwGeTH%2BHUPrGFMIBA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c20efc28c9b5ed0-EWR
alt-svc: h3=":443"; ma=86400
Page title: 导航Undefined01's blogSearch暗色模式亮色模式阅读模式
<!DOCTYPE html>
<html lang="zh"><head><title>导航Undefined01's blog</title><meta charset="utf-8"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Schibsted Grotesk:wght@400;700&family=Source Sans Pro:ital,wght@0,400;0,600;1,400;1,600&family=Cascadia Code:wght@400;600&display=swap"/><link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin="anonymous"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="og:site_name" content="Undefined01's blog"/><meta property="og:title" content="导航Undefined01's blog"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="导航Undefined01's blog"/><meta name="twitter:description" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta property="og:description" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta property="og:image:alt" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta property="twitter:domain" content="lihan.fun"/><meta property="og:url" content="https://lihan.fun/index"/><meta property="twitter:url" content="https://lihan.fun/index"/><link rel="icon" href="./static/icon.png"/><meta name="description" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta name="generator" content="Quartz"/><link href="./index.css" rel="stylesheet" type="text/css" spa-preserve/><style>.expand-button {
position: absolute;
display: flex;
float: right;
padding: 0.4rem;
margin: 0.3rem;
right: 0;
color: var(--gray);
border-color: var(--dark);
background-color: var(--light);
border: 1px solid;
border-radius: 5px;
opacity: 0;
transition: 0.2s;
}
.expand-button > svg {
fill: var(--light);
filter: contrast(0.3);
}
.expand-button:hover {
cursor: pointer;
border-color: var(--secondary);
}
.expand-button:focus {
outline: 0;
}
pre:hover > .expand-button {
opacity: 1;
transition: 0.2s;
}
#mermaid-container {
position: fixed;
contain: layout;
z-index: 999;
left: 0;
top: 0;
width: 100vw;
height: 100vh;
overflow: hidden;
display: none;
backdrop-filter: blur(4px);
background: rgba(0, 0, 0, 0.5);
}
#mermaid-container.active {
display: inline-block;
}
#mermaid-container > #mermaid-space {
border: 1px solid var(--lightgray);
background-color: var(--light);
border-radius: 5px;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%,
Open service 2a06:98c1:310d::6812:2bae:80 · lihan.fun
2026-01-22 17:57
HTTP/1.1 301 Moved Permanently
Date: Thu, 22 Jan 2026 17:57:56 GMT
Content-Length: 0
Connection: close
Location: https://lihan.fun/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=PTxY188PaISbzePnaroe59iz%2BdFu17ITg1Etl7wIqGAjPJCqcBp7AHsWEB%2BrufG2HwEGHgdE1h4Zf7tu5r6z%2FgLhQbL1eQuG9kTHa7vj1GP%2FveRlCg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c20efc219ea3831-FRA
alt-svc: h3=":443"; ma=86400
Open service 172.64.145.158:8443 · lihan.fun
2026-01-22 17:57
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 17:57:56 GMT
Content-Type: text/html
Content-Length: 29945
Connection: close
CF-Cache-Status: HIT
Cache-Control: public, max-age=0, must-revalidate
ETag: "8db0869982f0f114836c037ed10da371"
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Y2pZ%2ByDbu7wJ5b2QkYO3zhxHi26eCv6d%2B2CnlZZQ%2BI0vi2zt0QiwH0Xk5R9v1qTfAh3HvUqr8B9TMBv%2BByysfgm0LNuSRiSfag%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c20efc21dd6a06d-FRA
alt-svc: h3=":8443"; ma=86400
Page title: 导航Undefined01's blogSearch暗色模式亮色模式阅读模式
<!DOCTYPE html>
<html lang="zh"><head><title>导航Undefined01's blog</title><meta charset="utf-8"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Schibsted Grotesk:wght@400;700&family=Source Sans Pro:ital,wght@0,400;0,600;1,400;1,600&family=Cascadia Code:wght@400;600&display=swap"/><link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin="anonymous"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="og:site_name" content="Undefined01's blog"/><meta property="og:title" content="导航Undefined01's blog"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="导航Undefined01's blog"/><meta name="twitter:description" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta property="og:description" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta property="og:image:alt" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta property="twitter:domain" content="lihan.fun"/><meta property="og:url" content="https://lihan.fun/index"/><meta property="twitter:url" content="https://lihan.fun/index"/><link rel="icon" href="./static/icon.png"/><meta name="description" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta name="generator" content="Quartz"/><link href="./index.css" rel="stylesheet" type="text/css" spa-preserve/><style>.expand-button {
position: absolute;
display: flex;
float: right;
padding: 0.4rem;
margin: 0.3rem;
right: 0;
color: var(--gray);
border-color: var(--dark);
background-color: var(--light);
border: 1px solid;
border-radius: 5px;
opacity: 0;
transition: 0.2s;
}
.expand-button > svg {
fill: var(--light);
filter: contrast(0.3);
}
.expand-button:hover {
cursor: pointer;
border-color: var(--secondary);
}
.expand-button:focus {
outline: 0;
}
pre:hover > .expand-button {
opacity: 1;
transition: 0.2s;
}
#mermaid-container {
position: fixed;
contain: layout;
z-index: 999;
left: 0;
top: 0;
width: 100vw;
height: 100vh;
overflow: hidden;
display: none;
backdrop-filter: blur(4px);
background: rgba(0, 0, 0, 0.5);
}
#mermaid-container.active {
display: inline-block;
}
#mermaid-container > #mermaid-space {
border: 1px solid var(--lightgray);
background-color: var(--light);
border-radius: 5px;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%,
Open service 172.64.145.158:443 · lihan.fun
2026-01-22 17:57
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 17:57:56 GMT
Content-Type: text/html
Content-Length: 29945
Connection: close
CF-Cache-Status: HIT
Cache-Control: public, max-age=0, must-revalidate
ETag: "8db0869982f0f114836c037ed10da371"
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=ZEiPfXs7qRRPfb45sJq6My3a0u8PCqoecfqeVa6tz2ZuSnRFF2GdPKtNXEmPaxcveOd6oOIFK4kEwxJCSWmXC4lQ6nkbopN%2B3g%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c20efc1fe83dcc9-FRA
alt-svc: h3=":443"; ma=86400
Page title: 导航Undefined01's blogSearch暗色模式亮色模式阅读模式
<!DOCTYPE html>
<html lang="zh"><head><title>导航Undefined01's blog</title><meta charset="utf-8"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Schibsted Grotesk:wght@400;700&family=Source Sans Pro:ital,wght@0,400;0,600;1,400;1,600&family=Cascadia Code:wght@400;600&display=swap"/><link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin="anonymous"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="og:site_name" content="Undefined01's blog"/><meta property="og:title" content="导航Undefined01's blog"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="导航Undefined01's blog"/><meta name="twitter:description" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta property="og:description" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta property="og:image:alt" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta property="twitter:domain" content="lihan.fun"/><meta property="og:url" content="https://lihan.fun/index"/><meta property="twitter:url" content="https://lihan.fun/index"/><link rel="icon" href="./static/icon.png"/><meta name="description" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta name="generator" content="Quartz"/><link href="./index.css" rel="stylesheet" type="text/css" spa-preserve/><style>.expand-button {
position: absolute;
display: flex;
float: right;
padding: 0.4rem;
margin: 0.3rem;
right: 0;
color: var(--gray);
border-color: var(--dark);
background-color: var(--light);
border: 1px solid;
border-radius: 5px;
opacity: 0;
transition: 0.2s;
}
.expand-button > svg {
fill: var(--light);
filter: contrast(0.3);
}
.expand-button:hover {
cursor: pointer;
border-color: var(--secondary);
}
.expand-button:focus {
outline: 0;
}
pre:hover > .expand-button {
opacity: 1;
transition: 0.2s;
}
#mermaid-container {
position: fixed;
contain: layout;
z-index: 999;
left: 0;
top: 0;
width: 100vw;
height: 100vh;
overflow: hidden;
display: none;
backdrop-filter: blur(4px);
background: rgba(0, 0, 0, 0.5);
}
#mermaid-container.active {
display: inline-block;
}
#mermaid-container > #mermaid-space {
border: 1px solid var(--lightgray);
background-color: var(--light);
border-radius: 5px;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%,
Open service 2a06:98c1:310d::6812:2bae:8443 · lihan.fun
2026-01-22 17:57
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 17:57:56 GMT
Content-Type: text/html
Content-Length: 29945
Connection: close
CF-Cache-Status: HIT
Cache-Control: public, max-age=0, must-revalidate
ETag: "8db0869982f0f114836c037ed10da371"
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=qkoZlPVc%2BH39cXxpw5S%2BlM8%2Bf7kw2reBNyLGIxYh15Awx%2B2jRRKzqXjOkmjBvjr9oUUPe3ELFfI0EczmuiAguQmv8ZxGiDV1CpPm0C9ctFauXIbXRQ%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c20efc1ffdad1fa-LHR
alt-svc: h3=":8443"; ma=86400
Page title: 导航Undefined01's blogSearch暗色模式亮色模式阅读模式
<!DOCTYPE html>
<html lang="zh"><head><title>导航Undefined01's blog</title><meta charset="utf-8"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Schibsted Grotesk:wght@400;700&family=Source Sans Pro:ital,wght@0,400;0,600;1,400;1,600&family=Cascadia Code:wght@400;600&display=swap"/><link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin="anonymous"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="og:site_name" content="Undefined01's blog"/><meta property="og:title" content="导航Undefined01's blog"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="导航Undefined01's blog"/><meta name="twitter:description" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta property="og:description" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta property="og:image:alt" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta property="twitter:domain" content="lihan.fun"/><meta property="og:url" content="https://lihan.fun/index"/><meta property="twitter:url" content="https://lihan.fun/index"/><link rel="icon" href="./static/icon.png"/><meta name="description" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta name="generator" content="Quartz"/><link href="./index.css" rel="stylesheet" type="text/css" spa-preserve/><style>.expand-button {
position: absolute;
display: flex;
float: right;
padding: 0.4rem;
margin: 0.3rem;
right: 0;
color: var(--gray);
border-color: var(--dark);
background-color: var(--light);
border: 1px solid;
border-radius: 5px;
opacity: 0;
transition: 0.2s;
}
.expand-button > svg {
fill: var(--light);
filter: contrast(0.3);
}
.expand-button:hover {
cursor: pointer;
border-color: var(--secondary);
}
.expand-button:focus {
outline: 0;
}
pre:hover > .expand-button {
opacity: 1;
transition: 0.2s;
}
#mermaid-container {
position: fixed;
contain: layout;
z-index: 999;
left: 0;
top: 0;
width: 100vw;
height: 100vh;
overflow: hidden;
display: none;
backdrop-filter: blur(4px);
background: rgba(0, 0, 0, 0.5);
}
#mermaid-container.active {
display: inline-block;
}
#mermaid-container > #mermaid-space {
border: 1px solid var(--lightgray);
background-color: var(--light);
border-radius: 5px;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%,
Open service 2606:4700:4407::ac40:9052:8443 · lihan.fun
2026-01-22 17:57
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 17:57:56 GMT
Content-Type: text/html
Content-Length: 29945
Connection: close
CF-Cache-Status: HIT
Cache-Control: public, max-age=0, must-revalidate
ETag: "8db0869982f0f114836c037ed10da371"
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=IrN9tSjVphVQ15GUSc5yp2QKXCA5XSfhxQ6n2JSNaw0BXFd4rHsGzNrLiZrBaLsfeAJPnIXEaLdWyTtSB9Cyz1edHUy5eIHN8RRJJRKUqoOnIQI%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c20efc1fb11ed02-LHR
alt-svc: h3=":8443"; ma=86400
Page title: 导航Undefined01's blogSearch暗色模式亮色模式阅读模式
<!DOCTYPE html>
<html lang="zh"><head><title>导航Undefined01's blog</title><meta charset="utf-8"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Schibsted Grotesk:wght@400;700&family=Source Sans Pro:ital,wght@0,400;0,600;1,400;1,600&family=Cascadia Code:wght@400;600&display=swap"/><link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin="anonymous"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="og:site_name" content="Undefined01's blog"/><meta property="og:title" content="导航Undefined01's blog"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="导航Undefined01's blog"/><meta name="twitter:description" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta property="og:description" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta property="og:image:alt" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta property="twitter:domain" content="lihan.fun"/><meta property="og:url" content="https://lihan.fun/index"/><meta property="twitter:url" content="https://lihan.fun/index"/><link rel="icon" href="./static/icon.png"/><meta name="description" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta name="generator" content="Quartz"/><link href="./index.css" rel="stylesheet" type="text/css" spa-preserve/><style>.expand-button {
position: absolute;
display: flex;
float: right;
padding: 0.4rem;
margin: 0.3rem;
right: 0;
color: var(--gray);
border-color: var(--dark);
background-color: var(--light);
border: 1px solid;
border-radius: 5px;
opacity: 0;
transition: 0.2s;
}
.expand-button > svg {
fill: var(--light);
filter: contrast(0.3);
}
.expand-button:hover {
cursor: pointer;
border-color: var(--secondary);
}
.expand-button:focus {
outline: 0;
}
pre:hover > .expand-button {
opacity: 1;
transition: 0.2s;
}
#mermaid-container {
position: fixed;
contain: layout;
z-index: 999;
left: 0;
top: 0;
width: 100vw;
height: 100vh;
overflow: hidden;
display: none;
backdrop-filter: blur(4px);
background: rgba(0, 0, 0, 0.5);
}
#mermaid-container.active {
display: inline-block;
}
#mermaid-container > #mermaid-space {
border: 1px solid var(--lightgray);
background-color: var(--light);
border-radius: 5px;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%,
Open service 104.18.42.98:443 · lihan.fun
2026-01-22 17:57
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 17:57:56 GMT
Content-Type: text/html
Content-Length: 29945
Connection: close
CF-Cache-Status: HIT
Cache-Control: public, max-age=0, must-revalidate
ETag: "8db0869982f0f114836c037ed10da371"
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=A6zi7tgXuiHVHXeQOZX%2FL5dvkxzsR0wRXm8RIRgfmZ7ABwr8Ze%2BJQnVTC%2FMmL3%2BFqIK9%2FIXJ1mR28MHntkYQSuN3dRvmd9NM7g%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c20efc1ea2d4887-LHR
alt-svc: h3=":443"; ma=86400
Page title: 导航Undefined01's blogSearch暗色模式亮色模式阅读模式
<!DOCTYPE html>
<html lang="zh"><head><title>导航Undefined01's blog</title><meta charset="utf-8"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Schibsted Grotesk:wght@400;700&family=Source Sans Pro:ital,wght@0,400;0,600;1,400;1,600&family=Cascadia Code:wght@400;600&display=swap"/><link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin="anonymous"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="og:site_name" content="Undefined01's blog"/><meta property="og:title" content="导航Undefined01's blog"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="导航Undefined01's blog"/><meta name="twitter:description" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta property="og:description" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta property="og:image:alt" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta property="twitter:domain" content="lihan.fun"/><meta property="og:url" content="https://lihan.fun/index"/><meta property="twitter:url" content="https://lihan.fun/index"/><link rel="icon" href="./static/icon.png"/><meta name="description" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta name="generator" content="Quartz"/><link href="./index.css" rel="stylesheet" type="text/css" spa-preserve/><style>.expand-button {
position: absolute;
display: flex;
float: right;
padding: 0.4rem;
margin: 0.3rem;
right: 0;
color: var(--gray);
border-color: var(--dark);
background-color: var(--light);
border: 1px solid;
border-radius: 5px;
opacity: 0;
transition: 0.2s;
}
.expand-button > svg {
fill: var(--light);
filter: contrast(0.3);
}
.expand-button:hover {
cursor: pointer;
border-color: var(--secondary);
}
.expand-button:focus {
outline: 0;
}
pre:hover > .expand-button {
opacity: 1;
transition: 0.2s;
}
#mermaid-container {
position: fixed;
contain: layout;
z-index: 999;
left: 0;
top: 0;
width: 100vw;
height: 100vh;
overflow: hidden;
display: none;
backdrop-filter: blur(4px);
background: rgba(0, 0, 0, 0.5);
}
#mermaid-container.active {
display: inline-block;
}
#mermaid-container > #mermaid-space {
border: 1px solid var(--lightgray);
background-color: var(--light);
border-radius: 5px;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%,
Open service 104.18.42.98:80 · lihan.fun
2026-01-22 17:57
HTTP/1.1 301 Moved Permanently
Date: Thu, 22 Jan 2026 17:57:56 GMT
Content-Length: 0
Connection: close
Location: https://lihan.fun/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=Kp03mljt0KdGqXxqnlk7KqijeBdIjJOrhfPZp0D7hmGS8woBxzlXS%2FjWuZQuJ%2B1s4UmUAxN8LLr0OOEk2wbd23kbODGbNEo%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c20efc1ab53a1fc-YYZ
alt-svc: h3=":443"; ma=86400
Open service 172.64.145.158:80 · lihan.fun
2026-01-22 17:57
HTTP/1.1 301 Moved Permanently
Date: Thu, 22 Jan 2026 17:57:56 GMT
Content-Length: 0
Connection: close
Location: https://lihan.fun/
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=dmi8UeDVGsO0uKN%2BVaDUh57K34%2ByaF4KFTqGX1HeYq1rz9edajywzMOqVKnk2mzo%2Fz60qaCFSKOeU6kswd3QITbuWIg0zDKPQw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c20efc1487f8cf1-BLR
alt-svc: h3=":443"; ma=86400
Open service 104.18.42.98:8443 · lihan.fun
2026-01-22 17:57
HTTP/1.1 200 OK
Date: Thu, 22 Jan 2026 17:57:56 GMT
Content-Type: text/html
Content-Length: 29945
Connection: close
CF-Cache-Status: HIT
Cache-Control: public, max-age=0, must-revalidate
ETag: "8db0869982f0f114836c037ed10da371"
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=yNMrcPFZw314E6qc3CYxjY7dGu5rSjPi%2BlfS3C0aESj2%2F9mRMc3mvI%2FaudQfe5Lnm9nJi2VWv0dBFLxqeGEsLHWd6VvLTD8R2Q%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
CF-RAY: 9c20efc1882d4149-LHR
alt-svc: h3=":8443"; ma=86400
Page title: 导航Undefined01's blogSearch暗色模式亮色模式阅读模式
<!DOCTYPE html>
<html lang="zh"><head><title>导航Undefined01's blog</title><meta charset="utf-8"/><link rel="preconnect" href="https://fonts.googleapis.com"/><link rel="preconnect" href="https://fonts.gstatic.com"/><link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Schibsted Grotesk:wght@400;700&family=Source Sans Pro:ital,wght@0,400;0,600;1,400;1,600&family=Cascadia Code:wght@400;600&display=swap"/><link rel="preconnect" href="https://cdnjs.cloudflare.com" crossorigin="anonymous"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><meta name="og:site_name" content="Undefined01's blog"/><meta property="og:title" content="导航Undefined01's blog"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="导航Undefined01's blog"/><meta name="twitter:description" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta property="og:description" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta property="og:image:alt" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta property="twitter:domain" content="lihan.fun"/><meta property="og:url" content="https://lihan.fun/index"/><meta property="twitter:url" content="https://lihan.fun/index"/><link rel="icon" href="./static/icon.png"/><meta name="description" content="本知识库采用 Tiago Forte 的 PARA 模型来作为笔记的宏观组织框架。 Projects: 正在进行的工作和项目,通常只记录想法和进展。 Areas: 持续关注的领域和主题,通常作为 Resources 的索引。 Resources: 知识库的主体内容,相对扁平化。 Archive: 已完成或不再活跃的 Projects。 其他有用的链接: Tags Categories Search: 左侧导航栏上方 RSS ."/><meta name="generator" content="Quartz"/><link href="./index.css" rel="stylesheet" type="text/css" spa-preserve/><style>.expand-button {
position: absolute;
display: flex;
float: right;
padding: 0.4rem;
margin: 0.3rem;
right: 0;
color: var(--gray);
border-color: var(--dark);
background-color: var(--light);
border: 1px solid;
border-radius: 5px;
opacity: 0;
transition: 0.2s;
}
.expand-button > svg {
fill: var(--light);
filter: contrast(0.3);
}
.expand-button:hover {
cursor: pointer;
border-color: var(--secondary);
}
.expand-button:focus {
outline: 0;
}
pre:hover > .expand-button {
opacity: 1;
transition: 0.2s;
}
#mermaid-container {
position: fixed;
contain: layout;
z-index: 999;
left: 0;
top: 0;
width: 100vw;
height: 100vh;
overflow: hidden;
display: none;
backdrop-filter: blur(4px);
background: rgba(0, 0, 0, 0.5);
}
#mermaid-container.active {
display: inline-block;
}
#mermaid-container > #mermaid-space {
border: 1px solid var(--lightgray);
background-color: var(--light);
border-radius: 5px;
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%,