diff --git a/config.toml b/config.toml index d69f681..f0380e4 100644 --- a/config.toml +++ b/config.toml @@ -1107,7 +1107,7 @@ uglyURLs = false # 文章更新徽章 # 是否开启 - enablePostUpdatedBadge = true + enablePostUpdatedBadge = false # 是否显示(全局设置) displayUpdatedBadge = true diff --git a/content/about/_index.md b/content/about/_index.md index a23d569..96c9b3e 100644 --- a/content/about/_index.md +++ b/content/about/_index.md @@ -32,7 +32,7 @@ date: 2022-05-10T17:23:35+08:00 这里存放一些我在学习高数,线代,概率论的一些随笔,一方面是图形学的琢磨用的比较多,另一方面也是考研做题需求 -线性代数部分基于[3Blue1Brown](https://space.bilibili.com/88461692)制作的[线性代数的本质](https://www.bilibili.com/video/BV1ys411472E),如有错误欢迎页脚邮件指出 +线性代数部分基于[3Blue1Brown](https://space.bilibili.com/88461692)制作的[线性代数的本质](https://www.bilibili.com/video/BV1ys411472E/),如有错误欢迎页脚邮件指出 ------------------------------------- diff --git a/content/mathematics/《线性代数》矩阵乘法与线性变换复合.md b/content/mathematics/《线性代数》矩阵乘法与线性变换复合.md index 0db5adf..c5935e0 100644 --- a/content/mathematics/《线性代数》矩阵乘法与线性变换复合.md +++ b/content/mathematics/《线性代数》矩阵乘法与线性变换复合.md @@ -356,4 +356,32 @@ $$ 0+3+30 & 5+4+35 & 10+5+40 \\\\ 0+12-6 & 1+16-7 & 2+20-8 \end{bmatrix} -$$ \ No newline at end of file +$$ + +## 非方阵 + +对于一个3$\times$2矩阵$\begin{bmatrix} + 2 & 0 \\\\ + -1 & 1 \\\\ + -2 & 1 +\end{bmatrix}$同样可以用线性变换来解释,只是输入向量和输出向量在不同维度上,因而没有关联 + +第一列认为是变换后的$\hat{i}$,第二列认为是变换后的$\hat{j}$ + +列空间是三维空间中一个过原点的二维平面,但由于列空间的维数与输入空间维数相等,依旧是满秩的,几何意义是将二维空间映射到三维空间上 + +--- + +同样地,对于一个2 $\times$ 3矩阵 + + + +几何上表示将三维空间映射到二维空间上 + +![](../../images/%E6%95%B0%E5%AD%A6/%E3%80%8A%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0%E3%80%8B%E7%9F%A9%E9%98%B5%E4%B9%98%E6%B3%95%E4%B8%8E%E7%BA%BF%E6%80%A7%E5%8F%98%E6%8D%A2%E5%A4%8D%E5%90%88/2X3%E7%9F%A9%E9%98%B5.png) + +--- + +二维到一维空间的转换也存在,一维空间本质就是数轴,即将两个基向量压缩到一条直线上,如果直线上有一系列等距分布的点,在映射到数轴后依旧保持等距分布此处不再过多赘述 + +![](../../images/%E6%95%B0%E5%AD%A6/%E3%80%8A%E7%BA%BF%E6%80%A7%E4%BB%A3%E6%95%B0%E3%80%8B%E7%9F%A9%E9%98%B5%E4%B9%98%E6%B3%95%E4%B8%8E%E7%BA%BF%E6%80%A7%E5%8F%98%E6%8D%A2%E5%A4%8D%E5%90%88/%E4%BA%8C%E7%BB%B4%E5%88%B0%E4%B8%80%E7%BB%B4.gif) \ No newline at end of file diff --git a/content/mathematics/《线性代数》非方阵.md b/content/mathematics/《线性代数》非方阵.md deleted file mode 100644 index 675d295..0000000 --- a/content/mathematics/《线性代数》非方阵.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: "《线性代数》非方阵" -date: 2023-08-07T15:41:50+08:00 - ---- diff --git a/content/stuff/drone部署和与gitea的集成.md b/content/stuff/drone部署和与gitea的集成.md index adf90a8..50a8b40 100644 --- a/content/stuff/drone部署和与gitea的集成.md +++ b/content/stuff/drone部署和与gitea的集成.md @@ -12,7 +12,9 @@ date: 2023-08-07T19:09:08+08:00 首先需要在gitea上创建OAth2应用令牌并设置应用的重定向URL -![](../../static/images/%E6%9D%82%E7%89%A9/Drone%E9%83%A8%E7%BD%B2%E5%92%8C%E4%B8%8Egitea%E7%9A%84%E9%9B%86%E6%88%90/OAth2.png) +![](../../images/%E6%9D%82%E7%89%A9/Drone%E9%83%A8%E7%BD%B2%E5%92%8C%E4%B8%8Egitea%E7%9A%84%E9%9B%86%E6%88%90/OAth2.png) + +重定向URL必须为http(s)://域名/login形式,视ssl情况是否有s 生成用于Drone的server和runner间通信的通信密钥 @@ -35,13 +37,13 @@ services: volumes: - ./data:/data environment: - - DRONE_GITEA_SERVER= Gitea 服务器地址,例如 https://gitea.inksoul.top。注意填写准确的 http(s) 协议,否则你会看到来自 Gitea 的错误报告:unsupported protocol scheme - - DRONE_GITEA_CLIENT_ID=Gitea OAuth 客户端ID - - DRONE_GITEA_CLIENT_SECRET=Gitea OAuth 客户端密钥 - - DRONE_RPC_SECRET=在准备工作中使用 openssl rand -hex 16 生成的共享密钥。这个密钥用于验证 Drone Server 和 Runner 之间的 RPC 连接。因此,在 Server 和 Runner 上都必须使用相同的密钥 - - DRONE_SERVER_HOST=访问 Drone 时所用的域名或 IP 地址。如果使用 IP 地址,还应该包含端口 - - DRONE_SERVER_PROTO=设置服务器的协议,使用:http 或 https。 默认为 https - - DRONE_USER_CREATE=管理员配置,这里的管理员用户名是Git仓库的用户名,不一定是Git仓库的管理员,只要是Git仓库的用户即可,例如 username:inksoul,admin:true + - DRONE_GITEA_SERVER=#Gitea 服务器地址,例如 https://gitea.inksoul.top。注意填写准确的 http(s) 协议,否则你会看到来自 Gitea 的错误报告:unsupported protocol scheme + - DRONE_GITEA_CLIENT_ID=#Gitea OAuth 客户端ID + - DRONE_GITEA_CLIENT_SECRET=#Gitea OAuth 客户端密钥 + - DRONE_RPC_SECRET=#在准备工作中使用 openssl rand -hex 16 生成的共享密钥。这个密钥用于验证 Drone Server 和 Runner 之间的 RPC 连接。因此,在 Server 和 Runner 上都必须使用相同的密钥 + - DRONE_SERVER_HOST=#访问 Drone 时所用的域名或 IP 地址。如果使用 IP 地址,还应该包含端口 + - DRONE_SERVER_PROTO=#设置服务器的协议,使用:http 或 https。 默认为 https + - DRONE_USER_CREATE=#管理员配置,这里的管理员用户名是Git仓库的用户名,不一定是Git仓库的管理员,只要是Git仓库的用户即可,例如 username:inksoul,admin:true ``` 在完成域名解析绑定和nginx中反向代理设定后,就可以拉取容器并启用了 @@ -70,10 +72,112 @@ docker-compose up -d 随后可以安装负责流水线的droen-runner +```yaml +version: "3" + +services: + drone-runner: + image: drone/drone-runner-docker:latest + restart: always + container_name: drone-runner + volumes: + - /var/run/docker.sock:/var/run/docker.sock:rw + environment: + - DRONE_RPC_PROTO=#访问Drone时的网络协议,http或https + - DRONE_RPC_HOST=#访问 Drone 时所用的域名或 IP 地址。如果使用 IP 地址,还应该包含端口 + - DRONE_RPC_SECRET=#在准备工作中使用 openssl rand -hex 16 生成的共享密钥。这个密钥用于验证 Drone Server 和 Runner 之间的 RPC 连接。因此,在 Server 和 Runner 上都必须使用相同的密钥 + - DRONE_RUNNER_CAPACITY=2#同时运行数量 + - DRONE_RUNNER_NAME=runner# runner的名字 ``` +安装完成后访问drone-server中的域名即可自动跳转授权然后正常使用了 + +在这几步中便踩了坑 + +docker-compose中环境变量设置在等于号后面不要输入空格再接参数,尤其在DRONE_GITEA_SERVER这一项,必须保证有http(s)://网络头,否则容易产生404无法跳转自动授权 + +--- + +如出现404,检查URL形式,是否存在不恰当的%20(空格在URL的编码)存在的话请按上一个点检查docker-compose中环境变量的配置,如URL确保无误,可以直接访问drone-server域名的/后面的URL,跳过drone-server提供的自动跳转,完成直接授权,授权后404情况就会消失 + +实在不懂可以找一个github授权的网页查看URL结构,就可以模仿github授权的URL结构在404页面的URL中截取 + +![](../../images/%E6%9D%82%E7%89%A9/Drone%E9%83%A8%E7%BD%B2%E5%92%8C%E4%B8%8Egitea%E7%9A%84%E9%9B%86%E6%88%90/OAthURL.png) + +--- + +一切正常地部署完成后,便可以在drone的首页看到自己在gitea上的所有项目,可以查看build情况和设置对应的选项 + +![](../../images/%E6%9D%82%E7%89%A9/Drone%E9%83%A8%E7%BD%B2%E5%92%8C%E4%B8%8Egitea%E7%9A%84%E9%9B%86%E6%88%90/drone%E9%A6%96%E9%A1%B5.png) + + +这里展示的是这个便是这个博客在我的drone上的设置 + +![](../../images/%E6%9D%82%E7%89%A9/Drone%E9%83%A8%E7%BD%B2%E5%92%8C%E4%B8%8Egitea%E7%9A%84%E9%9B%86%E6%88%90/drone%E8%AE%BE%E7%BD%AE.png) + +单有流水线设置还不够,流水线流程的定义还需要在项目中使用yaml文件来定义,对应的文件就在drone上设置 + +要定义流水线,要先了解drone的工作过程 + +drone在收到来自gitea的webhook调用后,根据yaml中定义拉取容器镜像在容器中完成定义的任务 + +webhook在完成drone的集成时就由drone在对应gitea项目下自动创建,我的需求显然是每次我push新内容后drone自动构建,因此webhook中也要做些修改 + +如图,我只选择了一些会导致博客内容发生改变的选项 + +![](../../images/%E6%9D%82%E7%89%A9/Drone%E9%83%A8%E7%BD%B2%E5%92%8C%E4%B8%8Egitea%E7%9A%84%E9%9B%86%E6%88%90/webhook%E8%AE%BE%E7%BD%AE.png) + +既然drone是在容器内执行任务,那么容器镜像则十分重要,为了确保足够轻量(内存溢出的教训印象深刻),我选择了自行配置一个镜像,使用alpine + git + hugo + rsync来配置,尽可能减少容器占用 + +Dockerfile如下 + +```Dockerfile + FROM alpine + RUN apk update && \ + apk add git && \ + apk add rsync && \ + apk add hugo && \ + hugo version ``` +自行构建后如果发现测试时容器exit(0),这是正常情况,由于容器内没有前台应用,使得容器在完成hugo version指令后就进入空闲状态,然后自动退出(节省资源),如果想保持可以在Dockerfile最后运行一个交互式终端 +如果不想自行构建,也可以在docker hub上直接pull +```bash +docker pull inksoul/hugo-rsync:latest +``` + +镜像大小仅30.3MB,容器占用约87.7MB,会在drone的任务完成后自动销毁 + +流水线配置文件如下,需要根据自己的情况修改声明数据卷中的宿主机路径,通常为静态网页的存放的地方 + +```yaml +kind: pipeline +type: docker +name: blog-publish + +clone: + disable: false # 启用代码拉取 + +steps: + - name: build + image: inksoul/hugo-rsync + depends_on: [clone] # 依赖的步骤, + volumes: #挂载数据卷 + - name: blog + path: /data #容器内 + commands: + - hugo + - rsync -a --delete --exclude '.user.ini' public/ /data + +volumes: #声明数据卷 + - name: blog + host: + path: /Blog/public # 宿主机 +``` + +流水线配置依旧存在一些问题,每次build都需要clone一遍,导致耗时比较长(尤其大型项目),下一步考虑引入drone-volume-cache,缓存项目来加快速度 + +整体下来轻量化十分明显,原来溢出的内存现在只占用了1GB(不止nginx + gitea + drone三项服务),也节省了不少服务器的开支,毕竟云服务对于我这种学生党还是比较贵的 \ No newline at end of file diff --git a/resources/_gen/assets/scss/scss/main.scss_ac1f3ece4e1f9aa2cf6c902ff1ab1954.content b/resources/_gen/assets/scss/scss/main.scss_ac1f3ece4e1f9aa2cf6c902ff1ab1954.content index 73030fc..be240ea 100644 --- a/resources/_gen/assets/scss/scss/main.scss_ac1f3ece4e1f9aa2cf6c902ff1ab1954.content +++ b/resources/_gen/assets/scss/scss/main.scss_ac1f3ece4e1f9aa2cf6c902ff1ab1954.content @@ -7,4 +7,4 @@ ) /* .header-wrapper top+bottom margin */ + 32px - )}*[id]{scroll-margin-top:var(--header-height)}#nav-toggle{display:none}.nav-toggle{display:none;position:absolute;top:1em;right:1em;margin-right:1em;width:1em;height:1em;cursor:pointer}.nav-toggle-inner{padding:1em;display:inline-block}.nav-toggle span{display:block;position:absolute;height:0.1em;width:1em;background-color:var(--color-contrast-high);transition:all .5s}.nav-toggle span:nth-child(1){top:0.4em}.nav-toggle span:nth-child(2){top:0.7em}.nav-toggle span:nth-child(3){top:1em}.nav-toggle.open span:nth-child(1){top:75%;transform:rotate(225deg)}.nav-toggle.open span:nth-child(2){width:0;opacity:0;transform:rotate(-135deg)}.nav-toggle.open span:nth-child(3){top:75%;transform:rotate(-45deg)}.nav-curtain{height:100vh;width:100vw;-webkit-backdrop-filter:saturate(180%) blur(1em);backdrop-filter:saturate(180%) blur(1em);background:linear-gradient(90deg, rgba(247,149,51,0.101961) 0, rgba(243,112,85,0.101961) 15%, rgba(239,78,123,0.101961) 30%, rgba(161,102,171,0.101961) 44%, rgba(80,115,184,0.101961) 58%, rgba(16,152,173,0.101961) 72%, rgba(7,179,155,0.101961) 86%, rgba(109,186,130,0.101961) 100%) rgba(0,0,0,0.5)}.nav{z-index:3;position:relative}.menu{padding:0;margin:0;list-style:none;line-height:1.5;font-weight:500}.menu-item{display:inline-block}.menu-item a{color:var(--color-contrast-medium)}.menu-item a:hover{color:var(--color-primary)}.active a{color:var(--color-primary)}.nav{text-align:right;font-size:80%}.menu-item{margin-left:0.5em}.menu-item .icon{margin:0 0.3em 0.2em 0}.list .main-inner{width:36em}.list-title{text-align:center}.list ul{list-style:none;padding:0}.list-item-title{flex:1}.list-item-time{text-align:right;margin-left:1em}.list-item{line-height:2;position:relative;transition:border .5s;border-bottom:1px dashed var(--color-contrast-low);margin-top:1em;padding-bottom:0.5em;display:flex;align-items:baseline}.list-item:hover{border-bottom-color:var(--color-primary)}.list-item:hover ::before{background:var(--color-primary)}.list-item ::before{content:" ";position:absolute;left:0.618em;top:0.618em;width:5.33333333px;height:5.33333333px;background:var(--color-contrast-low);border-radius:50%;border:1px solid var(--color-bg);transition:background .5s;font-size:1rem}.list-item-title{margin:0 0.618em 0 2em;font-size:1.2em;line-height:1.5}.list-item-time{margin:0 0.618em 0 2em;color:var(--color-contrast-medium);line-height:1.5}.list-read-more{margin-top:1em;font-size:1.2em;line-height:1.5}.list-year{display:flex;justify-content:space-between;align-items:baseline}.term-count{color:var(--color-contrast-medium);font-size:0.7em}.single .main-inner{width:36em}.post-title{text-align:center}.post-subtitle{font-size:1.8em;text-align:center;font-weight:700;margin-top:-0.618em}.post-description{text-align:center;margin:1rem 0;font-size:90%}.post-body{margin-top:5em !important}.post-body a{text-decoration:underline;text-decoration-color:var(--color-contrast-low)}.post-body a:hover{text-decoration-color:hsla(var(--color-primary-h), var(--color-primary-s), var(--color-primary-l), 0.5)}.post p{margin:1em 0;line-height:2}.post img{display:block;margin:2em auto;max-width:100%;border:1px solid var(--color-contrast-lower);clear:both}.post video{display:block;max-width:100%;margin:2em auto;clear:both}.post sup{font-size:70%;vertical-align:super}.post sup a{text-decoration:none}.post ol,.post ul{margin:0;padding-left:2em;line-height:2}.post hr{border:none;margin:2.427em 0 1.5em;text-align:center}.post hr::after{content:"···";letter-spacing:2em;padding-left:2em}blockquote{margin:2em 0;padding-left:1em;color:var(--color-contrast-medium);border-left:3px solid var(--color-contrast-low)}blockquote a{color:var(--color-contrast-medium)}blockquote a:hover{color:var(--color-primary)}.drop-cap{float:left;font-size:48px;margin-right:16px;margin-top:8px;line-height:32px}.caption{display:block;text-align:center;margin:-1em 0 0;font-size:90%;color:var(--color-contrast-medium)}.contents{margin-top:5em}.contents ol,.contents ul{list-style:none}ol.toc,ul.toc{padding:0;overflow:auto hidden;white-space:nowrap}.footnotes{font-size:90%;margin-top:5rem}.footnotes hr{margin:0;height:1px;border:none;background-color:var(--color-contrast-medium)}.footnotes hr::after{content:none}.footnotes ol{margin:1.618rem 0 0 !important;padding:0 1rem 0 2rem !important}.footnote-icon{fill:hsla(var(--color-contrast-high-h), var(--color-contrast-high-s), var(--color-contrast-high-l), 0.5);transition:fill .5s;margin-bottom:0.3em}.footnote-icon:hover{fill:var(--color-primary)}.anchor-link{position:absolute;transform:translate(-150%)}.anchor-icon{width:0.75em;height:0.75em;vertical-align:baseline}:root{--anchor-opacity: 0}.anchor-link{opacity:var(--anchor-opacity);transition:all .25s}.post h1:hover,.post h2:hover,.post h3:hover,.post h4:hover,.post h5:hover,.post h6:hover,.post .anchor-link:hover{--anchor-opacity: 1}.table-container{margin:2em 0;overflow-x:auto}table{width:100%;border-collapse:collapse;border-spacing:0;border-color:var(--color-contrast-lower)}th{font-weight:700}th,td{font-size:0.9em;padding:0.4em;border:1px solid var(--color-contrast-lower)}table>tbody>tr:nth-of-type(odd){background-color:hsla(var(--color-contrast-lower-h), var(--color-contrast-lower-s), var(--color-contrast-lower-l), 0.5)}table>tbody>tr:hover{background-color:var(--color-contrast-lower)}dt{font-weight:700}dd{margin-left:2em}code{padding:2px 4px;background-color:hsla(var(--color-contrast-lower-h), var(--color-contrast-lower-s), var(--color-contrast-lower-l), 0.5);font-size:80%}pre{overflow:auto;overflow-wrap:normal;word-wrap:normal;font-size:0.8rem;margin:2rem 0;padding:1em;line-height:1.618;background-color:hsla(var(--color-contrast-lower-h), var(--color-contrast-lower-s), var(--color-contrast-lower-l), 0.5)}pre code{background-color:unset;font-size:0.8rem;padding:0}pre{max-height:40em}.copy-button{position:absolute;top:0;right:0;border:0;font-size:inherit;color:var(--color-bg);background-color:hsla(var(--color-contrast-medium-h), var(--color-contrast-medium-s), var(--color-contrast-medium-l), 0.5);transition:all .5s;cursor:pointer}.copy-button:hover{background-color:hsla(var(--color-primary-h), var(--color-primary-s), var(--color-primary-l), 0.5)}.copy-button{visibility:hidden;opacity:0}.katex-display,mjx-container[jax="CHTML"][display="true"]{overflow:auto hidden;text-indent:0}.footer{position:absolute;bottom:0;width:100%;font-size:90%;color:hsla(var(--color-contrast-medium-h), var(--color-contrast-medium-s), var(--color-contrast-medium-l), 0.8)}.footer a{color:hsla(var(--color-contrast-medium-h), var(--color-contrast-medium-s), var(--color-contrast-medium-l), 0.8)}.footer a:hover{color:var(--color-primary)}.footer-inner{padding:1em;text-align:center}.footer-icon{margin:0 0.25em 0.3em}.footer-icon{fill:#f06292}@keyframes heartbeat{0%,100%{transform:scale(1)}10%,30%{transform:scale(0.9)}20%,40%,50%,60%,70%,80%{transform:scale(1.1)}}.footer-icon{animation:heartbeat 1.33s ease-in-out infinite}.post-copyright{margin:0;list-style:none;margin-top:5em !important;padding:0.5em 1em;background-color:hsla(var(--color-contrast-lower-h), var(--color-contrast-lower-s), var(--color-contrast-lower-l), 0.5);border-left:3px solid hsla(var(--color-primary-h), var(--color-primary-s), var(--color-primary-l), 0.5);line-height:2}.copyright-item{line-height:1.5;margin:0.5em 0}.copyright-item-text{font-weight:500}.updated-badge-container{margin-top:5em;text-align:center}.updated-badge-left{fill:var(--color-contrast-low)}.updated-badge-right{fill:hsla(var(--color-primary-h), var(--color-primary-s), var(--color-primary-l), 0.5)}.post-tags{margin-top:5rem;text-align:center;font-size:90%}.post-tags-link{color:hsla(var(--color-contrast-medium-h), var(--color-contrast-medium-s), var(--color-contrast-medium-l), 0.9);margin:0 0.5em;line-height:2;display:inline-block}.tag-icon{margin-right:0.3em;font-size:80%}.post-nav{list-style:none;padding:0;display:flex;justify-content:space-between;border-top:1px solid var(--color-contrast-lower);font-weight:700;margin-top:5em;padding-top:0.618em}.post-nav-prev{margin-right:auto;max-width:42%}.post-nav-next{margin-left:auto;text-align:right;max-width:42%}.back-to-top{position:fixed;right:0;z-index:1}.back-to-top a{display:block;padding:1em;color:var(--color-contrast-medium)}.back-to-top a:hover{color:var(--color-primary)}.back-to-top{bottom:-3.6em;transition:bottom 0.3s ease-in-out}.back-to-top.show{bottom:0}.highlight{font-size:0.8rem;margin:2rem 0}.highlight pre{margin:0 !important;max-height:unset}.highlight .lntd pre{background-color:unset;overflow:visible}.highlight table>tbody>tr:nth-of-type(odd){background-color:inherit}.highlight table>tbody>tr:hover{background-color:inherit}span.lnt{user-select:none;display:block;margin-right:-1em !important;padding:0 !important;text-align:right}.chroma{color:var(--color-contrast-high);background-color:hsla(var(--color-contrast-lower-h), var(--color-contrast-lower-s), var(--color-contrast-lower-l), 0.5)}.lntable,.highlight>pre{max-height:40em}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0;width:auto;overflow:auto;display:block}.chroma .hl{display:block;width:100%;background-color:var(--chroma-line-numbers-background)}.chroma .lnt{margin-right:0.4em;padding:0 0.4em 0 0.4em;color:var(--chroma-line-numbers-color)}.chroma .ln{margin-right:0.4em;padding:0 0.4em 0 0.4em;color:var(--chroma-line-numbers-color)}.chroma .k{color:var(--chroma-keyword-color)}.chroma .kc{color:var(--chroma-keyword-color)}.chroma .kd{color:var(--chroma-declaration-color);font-style:italic}.chroma .kn{color:var(--chroma-name-color)}.chroma .kp{color:var(--chroma-keyword-color)}.chroma .kr{color:var(--chroma-keyword-color)}.chroma .kt{color:var(--chroma-name-color)}.chroma .na{color:var(--chroma-attribute-color)}.chroma .nb{color:var(--chroma-name-color);font-style:italic}.chroma .nc{color:var(--chroma-attribute-color)}.chroma .nf{color:var(--chroma-attribute-color)}.chroma .nl{color:var(--chroma-name-color);font-style:italic}.chroma .nt{color:var(--chroma-keyword-color)}.chroma .nv{color:var(--chroma-name-color);font-style:italic}.chroma .vc{color:var(--chroma-name-color);font-style:italic}.chroma .vg{color:var(--chroma-name-color);font-style:italic}.chroma .vi{color:var(--chroma-name-color);font-style:italic}.chroma .s{color:var(--chroma-literal-color)}.chroma .sa{color:var(--chroma-literal-color)}.chroma .sb{color:var(--chroma-literal-color)}.chroma .sc{color:var(--chroma-literal-color)}.chroma .dl{color:var(--chroma-literal-color)}.chroma .sd{color:var(--chroma-literal-color)}.chroma .s2{color:var(--chroma-literal-color)}.chroma .se{color:var(--chroma-literal-color)}.chroma .sh{color:var(--chroma-literal-color)}.chroma .si{color:var(--chroma-literal-color)}.chroma .sx{color:var(--chroma-literal-color)}.chroma .sr{color:var(--chroma-literal-color)}.chroma .s1{color:var(--chroma-literal-color)}.chroma .ss{color:var(--chroma-literal-color)}.chroma .m{color:var(--chroma-number-color)}.chroma .mb{color:var(--chroma-number-color)}.chroma .mf{color:var(--chroma-number-color)}.chroma .mh{color:var(--chroma-number-color)}.chroma .mi{color:var(--chroma-number-color)}.chroma .il{color:var(--chroma-number-color)}.chroma .mo{color:var(--chroma-number-color)}.chroma .o{color:var(--chroma-keyword-color)}.chroma .ow{color:var(--chroma-keyword-color)}.chroma .c{color:var(--chroma-comment-color)}.chroma .ch{color:var(--chroma-comment-color)}.chroma .cm{color:var(--chroma-comment-color)}.chroma .c1{color:var(--chroma-comment-color)}.chroma .cs{color:var(--chroma-comment-color)}.chroma .cp{color:var(--chroma-keyword-color)}.chroma .cpf{color:var(--chroma-keyword-color)}.chroma .gd{color:var(--chroma-deleted-color)}.chroma .ge{text-decoration:underline}.chroma .gh{font-weight:bold}.chroma .gi{font-weight:bold}.chroma .go{color:var(--chroma-output-color)}.chroma .gu{font-weight:bold}.chroma .gl{text-decoration:underline}.socials{padding:0;margin:0;list-style:none}.socials-item{display:inline-block;margin:0.5em;border-radius:50%;background-color:var(--color-contrast-medium);transition:background-color .5s}.socials-item:hover{background-color:var(--color-primary)}.social-icon{fill:var(--color-bg);padding:0.5em}.home{text-align:center}.home .poetry{font-size:1em;width:auto;max-width:26em;margin:0 auto;padding:5em 1em 10em}.home .links{position:absolute;bottom:10%;left:5%;right:5%;font-size:1.5em}.home .links-item{padding:1em;display:inline-block}.home .life{color:#f37055}.home .tech{color:#a166ab}.home .about{color:#07b39b}.tree{overflow:auto hidden;white-space:nowrap}.tree ul{padding-left:2.4em}.tree>ul{padding:0}.list-categories>li{position:relative}.list-categories>li::before{content:" ";position:absolute;top:2.4em;left:0.1em;width:0.2em;height:calc(100% - 2.8em);background:var(--color-contrast-lower)}.category-item{color:var(--color-primary);font-size:1.2em}.category-item:hover{color:hsla(var(--color-primary-h), var(--color-primary-s), var(--color-primary-l), 0.75)}.category-count{color:var(--color-contrast-medium)}.category-post:hover{color:var(--color-contrast-medium)}.tag-cloud{text-align:center}.tag-cloud-item{margin:0.5rem;display:inline-block}.fof::before{background-image:url();background-repeat:no-repeat;background-size:cover;background-position:50% 50%;content:" ";position:fixed;width:100%;height:100%;top:0;left:0;z-index:1}.fof .main-inner{background:rgba(0,0,0,0.25);min-height:100%;min-width:100%;position:absolute;z-index:3}.fof video{position:fixed;top:50%;left:50%;min-width:100%;min-height:100%;width:auto;height:auto;z-index:2;transform:translateX(-50%) translateY(-50%)}.fof h1{font-size:3rem;text-transform:uppercase;letter-spacing:0.3rem;text-align:center;top:15%;left:5%;right:5%;position:absolute;color:#fff;margin:0.67em 0}.fof .fof-footer{font-size:2rem;position:absolute;bottom:15%;left:10%;right:10%;text-align:center}.fof a{color:#eee}.fof a:hover{color:#fff}@media only screen and (max-device-width: 1024px){.fof #bgvid{display:none}}.medium-zoom-overlay,.medium-zoom-image--opened{z-index:5}:root{--max-width: 656px}@media (max-width: 656px){.main-inner{width:auto !important}.anchor-link{position:relative;transform:none;float:right}#back-to-top{display:none}.header-inner{width:100%}.site-brand{margin-left:1em}.header-inner{display:block;margin:0;max-width:none}.nav-toggle{display:block}.nav{display:none;text-align:center;margin:2em 0}.menu{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center}.menu-item{margin:0;padding:1em}.menu-item .icon{margin:0}.menu-item-name{display:block}.header.open .nav{display:block;animation:appear .5s;animation-iteration-count:1;animation-fill-mode:forwards}@keyframes appear{0%{opacity:0;height:0;margin:0;transform:scaleY(0);transform-origin:top}100%{opacity:1;height:9em;margin:2em 0;transform:scaleY(1);transform-origin:top}}.header.open .nav-curtain{animation:appearCurtain .5s;animation-iteration-count:1;animation-fill-mode:forwards}@keyframes appearCurtain{0%{visibility:hidden;opacity:0}100%{visibility:visible;opacity:1}}.header.fade .nav{display:block;animation:fade .5s;animation-iteration-count:1;animation-fill-mode:forwards}@keyframes fade{0%{opacity:1;height:9em;margin:2em 0;transform:scaleY(1);transform-origin:top}100%{opacity:0;height:0;margin:0;transform:scaleY(0);transform-origin:top}}.header.fade .nav-curtain{animation:fadeCurtain .5s;animation-iteration-count:1;animation-fill-mode:forwards}@keyframes fadeCurtain{0%{visibility:visible;opacity:1}100%{visibility:hidden;opacity:0}}#langs li{width:auto}}[data-small-caps="true"] .post-body h1,[data-small-caps="true"] .post-body h2,[data-small-caps="true"] .post-body h3,[data-small-caps="true"] .post-body h4,[data-small-caps="true"] .post-body h5,[data-small-caps="true"] .post-body h6{font-variant:small-caps}[data-small-caps="true"] .contents-title{font-variant:small-caps}[data-align="justify"] .post-body p,[data-align="justify"] .post-body li,[data-align="justify"] .post-body dd{text-align:justify;text-justify:distribute}[data-align="justify"] .footnotes a{word-break:break-all}[data-align="center"] .post-body p{text-align:center}[data-type="poetry"] .post-body{display:table;margin:0 auto}[data-type="poetry"] .post-body p{margin:0 0 1em}[data-type="poetry"] .post-body>p:first-child img,[data-type="poetry"] .post-body>p:first-child video{margin-top:0}[data-type="poetry"] .post-body>blockquote:first-child{margin-top:0}[data-type="poetry"] .post-body>blockquote:last-child{margin-bottom:0}[data-type="poetry"] .post-body>p:last-child{margin:0}[data-type="poetry"] .post-body>p:last-child img,[data-type="poetry"] .post-body>p:last-child video{margin-bottom:0}[data-type="poetry"] .post-body>p:last-child .caption{margin:1em 0 0}[data-type="poetry"] section.footnotes>ol>li:last-child>p:last-child{margin:0}[data-toc-num="true"] .contents ol{counter-reset:item}[data-toc-num="true"] .contents ol li::before{counter-increment:item;margin-right:0.5em}[data-toc-num="true"] .contents>ol>li::before{content:counters(item, ".") "."}[data-toc-num="true"] .contents li>ol>li::before{content:counters(item, ".")}@supports not ((backdrop-filter: none) or (-webkit-backdrop-filter: none)){.header-wrapper{background-color:var(--color-bg)}} + )}*[id]{scroll-margin-top:var(--header-height)}#nav-toggle{display:none}.nav-toggle{display:none;position:absolute;top:1em;right:1em;margin-right:1em;width:1em;height:1em;cursor:pointer}.nav-toggle-inner{padding:1em;display:inline-block}.nav-toggle span{display:block;position:absolute;height:0.1em;width:1em;background-color:var(--color-contrast-high);transition:all .5s}.nav-toggle span:nth-child(1){top:0.4em}.nav-toggle span:nth-child(2){top:0.7em}.nav-toggle span:nth-child(3){top:1em}.nav-toggle.open span:nth-child(1){top:75%;transform:rotate(225deg)}.nav-toggle.open span:nth-child(2){width:0;opacity:0;transform:rotate(-135deg)}.nav-toggle.open span:nth-child(3){top:75%;transform:rotate(-45deg)}.nav-curtain{height:100vh;width:100vw;-webkit-backdrop-filter:saturate(180%) blur(1em);backdrop-filter:saturate(180%) blur(1em);background:linear-gradient(90deg, rgba(247,149,51,0.101961) 0, rgba(243,112,85,0.101961) 15%, rgba(239,78,123,0.101961) 30%, rgba(161,102,171,0.101961) 44%, rgba(80,115,184,0.101961) 58%, rgba(16,152,173,0.101961) 72%, rgba(7,179,155,0.101961) 86%, rgba(109,186,130,0.101961) 100%) rgba(0,0,0,0.5)}.nav{z-index:3;position:relative}.menu{padding:0;margin:0;list-style:none;line-height:1.5;font-weight:500}.menu-item{display:inline-block}.menu-item a{color:var(--color-contrast-medium)}.menu-item a:hover{color:var(--color-primary)}.active a{color:var(--color-primary)}.nav{text-align:right;font-size:80%}.menu-item{margin-left:0.5em}.menu-item .icon{margin:0 0.3em 0.2em 0}.list .main-inner{width:36em}.list-title{text-align:center}.list ul{list-style:none;padding:0}.list-item-title{flex:1}.list-item-time{text-align:right;margin-left:1em}.list-item{line-height:2;position:relative;transition:border .5s;border-bottom:1px dashed var(--color-contrast-low);margin-top:1em;padding-bottom:0.5em;display:flex;align-items:baseline}.list-item:hover{border-bottom-color:var(--color-primary)}.list-item:hover ::before{background:var(--color-primary)}.list-item ::before{content:" ";position:absolute;left:0.618em;top:0.618em;width:5.33333333px;height:5.33333333px;background:var(--color-contrast-low);border-radius:50%;border:1px solid var(--color-bg);transition:background .5s;font-size:1rem}.list-item-title{margin:0 0.618em 0 2em;font-size:1.2em;line-height:1.5}.list-item-time{margin:0 0.618em 0 2em;color:var(--color-contrast-medium);line-height:1.5}.list-read-more{margin-top:1em;font-size:1.2em;line-height:1.5}.list-year{display:flex;justify-content:space-between;align-items:baseline}.term-count{color:var(--color-contrast-medium);font-size:0.7em}.single .main-inner{width:36em}.post-title{text-align:center}.post-subtitle{font-size:1.8em;text-align:center;font-weight:700;margin-top:-0.618em}.post-description{text-align:center;margin:1rem 0;font-size:90%}.post-body{margin-top:5em !important}.post-body a{text-decoration:underline;text-decoration-color:var(--color-contrast-low)}.post-body a:hover{text-decoration-color:hsla(var(--color-primary-h), var(--color-primary-s), var(--color-primary-l), 0.5)}.post p{margin:1em 0;line-height:2}.post img{display:block;margin:2em auto;max-width:100%;border:1px solid var(--color-contrast-lower);clear:both}.post video{display:block;max-width:100%;margin:2em auto;clear:both}.post sup{font-size:70%;vertical-align:super}.post sup a{text-decoration:none}.post ol,.post ul{margin:0;padding-left:2em;line-height:2}.post hr{border:none;margin:2.427em 0 1.5em;text-align:center}.post hr::after{content:"···";letter-spacing:2em;padding-left:2em}blockquote{margin:2em 0;padding-left:1em;color:var(--color-contrast-medium);border-left:3px solid var(--color-contrast-low)}blockquote a{color:var(--color-contrast-medium)}blockquote a:hover{color:var(--color-primary)}.drop-cap{float:left;font-size:48px;margin-right:16px;margin-top:8px;line-height:32px}.caption{display:block;text-align:center;margin:-1em 0 0;font-size:90%;color:var(--color-contrast-medium)}.contents{margin-top:5em}.contents ol,.contents ul{list-style:none}ol.toc,ul.toc{padding:0;overflow:auto hidden;white-space:nowrap}.footnotes{font-size:90%;margin-top:5rem}.footnotes hr{margin:0;height:1px;border:none;background-color:var(--color-contrast-medium)}.footnotes hr::after{content:none}.footnotes ol{margin:1.618rem 0 0 !important;padding:0 1rem 0 2rem !important}.footnote-icon{fill:hsla(var(--color-contrast-high-h), var(--color-contrast-high-s), var(--color-contrast-high-l), 0.5);transition:fill .5s;margin-bottom:0.3em}.footnote-icon:hover{fill:var(--color-primary)}.anchor-link{position:absolute;transform:translate(-150%)}.anchor-icon{width:0.75em;height:0.75em;vertical-align:baseline}:root{--anchor-opacity: 0}.anchor-link{opacity:var(--anchor-opacity);transition:all .25s}.post h1:hover,.post h2:hover,.post h3:hover,.post h4:hover,.post h5:hover,.post h6:hover,.post .anchor-link:hover{--anchor-opacity: 1}.table-container{margin:2em 0;overflow-x:auto}table{width:100%;border-collapse:collapse;border-spacing:0;border-color:var(--color-contrast-lower)}th{font-weight:700}th,td{font-size:0.9em;padding:0.4em;border:1px solid var(--color-contrast-lower)}table>tbody>tr:nth-of-type(odd){background-color:hsla(var(--color-contrast-lower-h), var(--color-contrast-lower-s), var(--color-contrast-lower-l), 0.5)}table>tbody>tr:hover{background-color:var(--color-contrast-lower)}dt{font-weight:700}dd{margin-left:2em}code{padding:2px 4px;background-color:hsla(var(--color-contrast-lower-h), var(--color-contrast-lower-s), var(--color-contrast-lower-l), 0.5);font-size:80%}pre{overflow:auto;overflow-wrap:normal;word-wrap:normal;font-size:0.8rem;margin:2rem 0;padding:1em;line-height:1.618;background-color:hsla(var(--color-contrast-lower-h), var(--color-contrast-lower-s), var(--color-contrast-lower-l), 0.5)}pre code{background-color:unset;font-size:0.8rem;padding:0}pre{max-height:40em}.copy-button{position:absolute;top:0;right:0;border:0;font-size:inherit;color:var(--color-bg);background-color:hsla(var(--color-contrast-medium-h), var(--color-contrast-medium-s), var(--color-contrast-medium-l), 0.5);transition:all .5s;cursor:pointer}.copy-button:hover{background-color:hsla(var(--color-primary-h), var(--color-primary-s), var(--color-primary-l), 0.5)}.copy-button{visibility:hidden;opacity:0}.katex-display,mjx-container[jax="CHTML"][display="true"]{overflow:auto hidden;text-indent:0}.footer{position:absolute;bottom:0;width:100%;font-size:90%;color:hsla(var(--color-contrast-medium-h), var(--color-contrast-medium-s), var(--color-contrast-medium-l), 0.8)}.footer a{color:hsla(var(--color-contrast-medium-h), var(--color-contrast-medium-s), var(--color-contrast-medium-l), 0.8)}.footer a:hover{color:var(--color-primary)}.footer-inner{padding:1em;text-align:center}.footer-icon{margin:0 0.25em 0.3em}.footer-icon{fill:#f06292}@keyframes heartbeat{0%,100%{transform:scale(1)}10%,30%{transform:scale(0.9)}20%,40%,50%,60%,70%,80%{transform:scale(1.1)}}.footer-icon{animation:heartbeat 1.33s ease-in-out infinite}.post-copyright{margin:0;list-style:none;margin-top:5em !important;padding:0.5em 1em;background-color:hsla(var(--color-contrast-lower-h), var(--color-contrast-lower-s), var(--color-contrast-lower-l), 0.5);border-left:3px solid hsla(var(--color-primary-h), var(--color-primary-s), var(--color-primary-l), 0.5);line-height:2}.copyright-item{line-height:1.5;margin:0.5em 0}.copyright-item-text{font-weight:500}.post-tags{margin-top:5rem;text-align:center;font-size:90%}.post-tags-link{color:hsla(var(--color-contrast-medium-h), var(--color-contrast-medium-s), var(--color-contrast-medium-l), 0.9);margin:0 0.5em;line-height:2;display:inline-block}.tag-icon{margin-right:0.3em;font-size:80%}.post-nav{list-style:none;padding:0;display:flex;justify-content:space-between;border-top:1px solid var(--color-contrast-lower);font-weight:700;margin-top:5em;padding-top:0.618em}.post-nav-prev{margin-right:auto;max-width:42%}.post-nav-next{margin-left:auto;text-align:right;max-width:42%}.back-to-top{position:fixed;right:0;z-index:1}.back-to-top a{display:block;padding:1em;color:var(--color-contrast-medium)}.back-to-top a:hover{color:var(--color-primary)}.back-to-top{bottom:-3.6em;transition:bottom 0.3s ease-in-out}.back-to-top.show{bottom:0}.highlight{font-size:0.8rem;margin:2rem 0}.highlight pre{margin:0 !important;max-height:unset}.highlight .lntd pre{background-color:unset;overflow:visible}.highlight table>tbody>tr:nth-of-type(odd){background-color:inherit}.highlight table>tbody>tr:hover{background-color:inherit}span.lnt{user-select:none;display:block;margin-right:-1em !important;padding:0 !important;text-align:right}.chroma{color:var(--color-contrast-high);background-color:hsla(var(--color-contrast-lower-h), var(--color-contrast-lower-s), var(--color-contrast-lower-l), 0.5)}.lntable,.highlight>pre{max-height:40em}.chroma .lntd{vertical-align:top;padding:0;margin:0;border:0}.chroma .lntable{border-spacing:0;padding:0;margin:0;border:0;width:auto;overflow:auto;display:block}.chroma .hl{display:block;width:100%;background-color:var(--chroma-line-numbers-background)}.chroma .lnt{margin-right:0.4em;padding:0 0.4em 0 0.4em;color:var(--chroma-line-numbers-color)}.chroma .ln{margin-right:0.4em;padding:0 0.4em 0 0.4em;color:var(--chroma-line-numbers-color)}.chroma .k{color:var(--chroma-keyword-color)}.chroma .kc{color:var(--chroma-keyword-color)}.chroma .kd{color:var(--chroma-declaration-color);font-style:italic}.chroma .kn{color:var(--chroma-name-color)}.chroma .kp{color:var(--chroma-keyword-color)}.chroma .kr{color:var(--chroma-keyword-color)}.chroma .kt{color:var(--chroma-name-color)}.chroma .na{color:var(--chroma-attribute-color)}.chroma .nb{color:var(--chroma-name-color);font-style:italic}.chroma .nc{color:var(--chroma-attribute-color)}.chroma .nf{color:var(--chroma-attribute-color)}.chroma .nl{color:var(--chroma-name-color);font-style:italic}.chroma .nt{color:var(--chroma-keyword-color)}.chroma .nv{color:var(--chroma-name-color);font-style:italic}.chroma .vc{color:var(--chroma-name-color);font-style:italic}.chroma .vg{color:var(--chroma-name-color);font-style:italic}.chroma .vi{color:var(--chroma-name-color);font-style:italic}.chroma .s{color:var(--chroma-literal-color)}.chroma .sa{color:var(--chroma-literal-color)}.chroma .sb{color:var(--chroma-literal-color)}.chroma .sc{color:var(--chroma-literal-color)}.chroma .dl{color:var(--chroma-literal-color)}.chroma .sd{color:var(--chroma-literal-color)}.chroma .s2{color:var(--chroma-literal-color)}.chroma .se{color:var(--chroma-literal-color)}.chroma .sh{color:var(--chroma-literal-color)}.chroma .si{color:var(--chroma-literal-color)}.chroma .sx{color:var(--chroma-literal-color)}.chroma .sr{color:var(--chroma-literal-color)}.chroma .s1{color:var(--chroma-literal-color)}.chroma .ss{color:var(--chroma-literal-color)}.chroma .m{color:var(--chroma-number-color)}.chroma .mb{color:var(--chroma-number-color)}.chroma .mf{color:var(--chroma-number-color)}.chroma .mh{color:var(--chroma-number-color)}.chroma .mi{color:var(--chroma-number-color)}.chroma .il{color:var(--chroma-number-color)}.chroma .mo{color:var(--chroma-number-color)}.chroma .o{color:var(--chroma-keyword-color)}.chroma .ow{color:var(--chroma-keyword-color)}.chroma .c{color:var(--chroma-comment-color)}.chroma .ch{color:var(--chroma-comment-color)}.chroma .cm{color:var(--chroma-comment-color)}.chroma .c1{color:var(--chroma-comment-color)}.chroma .cs{color:var(--chroma-comment-color)}.chroma .cp{color:var(--chroma-keyword-color)}.chroma .cpf{color:var(--chroma-keyword-color)}.chroma .gd{color:var(--chroma-deleted-color)}.chroma .ge{text-decoration:underline}.chroma .gh{font-weight:bold}.chroma .gi{font-weight:bold}.chroma .go{color:var(--chroma-output-color)}.chroma .gu{font-weight:bold}.chroma .gl{text-decoration:underline}.socials{padding:0;margin:0;list-style:none}.socials-item{display:inline-block;margin:0.5em;border-radius:50%;background-color:var(--color-contrast-medium);transition:background-color .5s}.socials-item:hover{background-color:var(--color-primary)}.social-icon{fill:var(--color-bg);padding:0.5em}.home{text-align:center}.home .poetry{font-size:1em;width:auto;max-width:26em;margin:0 auto;padding:5em 1em 10em}.home .links{position:absolute;bottom:10%;left:5%;right:5%;font-size:1.5em}.home .links-item{padding:1em;display:inline-block}.home .life{color:#f37055}.home .tech{color:#a166ab}.home .about{color:#07b39b}.tree{overflow:auto hidden;white-space:nowrap}.tree ul{padding-left:2.4em}.tree>ul{padding:0}.list-categories>li{position:relative}.list-categories>li::before{content:" ";position:absolute;top:2.4em;left:0.1em;width:0.2em;height:calc(100% - 2.8em);background:var(--color-contrast-lower)}.category-item{color:var(--color-primary);font-size:1.2em}.category-item:hover{color:hsla(var(--color-primary-h), var(--color-primary-s), var(--color-primary-l), 0.75)}.category-count{color:var(--color-contrast-medium)}.category-post:hover{color:var(--color-contrast-medium)}.tag-cloud{text-align:center}.tag-cloud-item{margin:0.5rem;display:inline-block}.fof::before{background-image:url();background-repeat:no-repeat;background-size:cover;background-position:50% 50%;content:" ";position:fixed;width:100%;height:100%;top:0;left:0;z-index:1}.fof .main-inner{background:rgba(0,0,0,0.25);min-height:100%;min-width:100%;position:absolute;z-index:3}.fof video{position:fixed;top:50%;left:50%;min-width:100%;min-height:100%;width:auto;height:auto;z-index:2;transform:translateX(-50%) translateY(-50%)}.fof h1{font-size:3rem;text-transform:uppercase;letter-spacing:0.3rem;text-align:center;top:15%;left:5%;right:5%;position:absolute;color:#fff;margin:0.67em 0}.fof .fof-footer{font-size:2rem;position:absolute;bottom:15%;left:10%;right:10%;text-align:center}.fof a{color:#eee}.fof a:hover{color:#fff}@media only screen and (max-device-width: 1024px){.fof #bgvid{display:none}}.medium-zoom-overlay,.medium-zoom-image--opened{z-index:5}:root{--max-width: 656px}@media (max-width: 656px){.main-inner{width:auto !important}.anchor-link{position:relative;transform:none;float:right}#back-to-top{display:none}.header-inner{width:100%}.site-brand{margin-left:1em}.header-inner{display:block;margin:0;max-width:none}.nav-toggle{display:block}.nav{display:none;text-align:center;margin:2em 0}.menu{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center}.menu-item{margin:0;padding:1em}.menu-item .icon{margin:0}.menu-item-name{display:block}.header.open .nav{display:block;animation:appear .5s;animation-iteration-count:1;animation-fill-mode:forwards}@keyframes appear{0%{opacity:0;height:0;margin:0;transform:scaleY(0);transform-origin:top}100%{opacity:1;height:9em;margin:2em 0;transform:scaleY(1);transform-origin:top}}.header.open .nav-curtain{animation:appearCurtain .5s;animation-iteration-count:1;animation-fill-mode:forwards}@keyframes appearCurtain{0%{visibility:hidden;opacity:0}100%{visibility:visible;opacity:1}}.header.fade .nav{display:block;animation:fade .5s;animation-iteration-count:1;animation-fill-mode:forwards}@keyframes fade{0%{opacity:1;height:9em;margin:2em 0;transform:scaleY(1);transform-origin:top}100%{opacity:0;height:0;margin:0;transform:scaleY(0);transform-origin:top}}.header.fade .nav-curtain{animation:fadeCurtain .5s;animation-iteration-count:1;animation-fill-mode:forwards}@keyframes fadeCurtain{0%{visibility:visible;opacity:1}100%{visibility:hidden;opacity:0}}#langs li{width:auto}}[data-small-caps="true"] .post-body h1,[data-small-caps="true"] .post-body h2,[data-small-caps="true"] .post-body h3,[data-small-caps="true"] .post-body h4,[data-small-caps="true"] .post-body h5,[data-small-caps="true"] .post-body h6{font-variant:small-caps}[data-small-caps="true"] .contents-title{font-variant:small-caps}[data-align="justify"] .post-body p,[data-align="justify"] .post-body li,[data-align="justify"] .post-body dd{text-align:justify;text-justify:distribute}[data-align="justify"] .footnotes a{word-break:break-all}[data-align="center"] .post-body p{text-align:center}[data-type="poetry"] .post-body{display:table;margin:0 auto}[data-type="poetry"] .post-body p{margin:0 0 1em}[data-type="poetry"] .post-body>p:first-child img,[data-type="poetry"] .post-body>p:first-child video{margin-top:0}[data-type="poetry"] .post-body>blockquote:first-child{margin-top:0}[data-type="poetry"] .post-body>blockquote:last-child{margin-bottom:0}[data-type="poetry"] .post-body>p:last-child{margin:0}[data-type="poetry"] .post-body>p:last-child img,[data-type="poetry"] .post-body>p:last-child video{margin-bottom:0}[data-type="poetry"] .post-body>p:last-child .caption{margin:1em 0 0}[data-type="poetry"] section.footnotes>ol>li:last-child>p:last-child{margin:0}[data-toc-num="true"] .contents ol{counter-reset:item}[data-toc-num="true"] .contents ol li::before{counter-increment:item;margin-right:0.5em}[data-toc-num="true"] .contents>ol>li::before{content:counters(item, ".") "."}[data-toc-num="true"] .contents li>ol>li::before{content:counters(item, ".")}@supports not ((backdrop-filter: none) or (-webkit-backdrop-filter: none)){.header-wrapper{background-color:var(--color-bg)}} diff --git a/resources/_gen/assets/scss/scss/main.scss_ac1f3ece4e1f9aa2cf6c902ff1ab1954.json b/resources/_gen/assets/scss/scss/main.scss_ac1f3ece4e1f9aa2cf6c902ff1ab1954.json index 9880f56..ff2bb3e 100644 --- a/resources/_gen/assets/scss/scss/main.scss_ac1f3ece4e1f9aa2cf6c902ff1ab1954.json +++ b/resources/_gen/assets/scss/scss/main.scss_ac1f3ece4e1f9aa2cf6c902ff1ab1954.json @@ -1 +1 @@ -{"Target":"css/meme.min.12a3541920a798d49c1bca858f15c53090f14ce9367a34faa2bb51dd38299730.css","MediaType":"text/css","Data":{"Integrity":"sha256-EqNUGSCnmNScG8qFjxXFMJDxTOk2ejT6ortR3TgplzA="}} \ No newline at end of file +{"Target":"css/meme.min.6f0f1ab4d5e1349276afbaf7de2b707371d004a3aafb22735bd9378a17833665.css","MediaType":"text/css","Data":{"Integrity":"sha256-bw8atNXhNJJ2r7r33itwc3HQBKOq+yJzW9k3iheDNmU="}} \ No newline at end of file diff --git a/static/images/数学/《线性代数》矩阵乘法与线性变换复合/2X3矩阵.png b/static/images/数学/《线性代数》矩阵乘法与线性变换复合/2X3矩阵.png new file mode 100644 index 0000000..be593b7 Binary files /dev/null and b/static/images/数学/《线性代数》矩阵乘法与线性变换复合/2X3矩阵.png differ diff --git a/static/images/数学/《线性代数》矩阵乘法与线性变换复合/二维到一维.gif b/static/images/数学/《线性代数》矩阵乘法与线性变换复合/二维到一维.gif new file mode 100644 index 0000000..7612f43 Binary files /dev/null and b/static/images/数学/《线性代数》矩阵乘法与线性变换复合/二维到一维.gif differ diff --git a/static/images/杂物/Drone部署和与gitea的集成/OAth2.png b/static/images/杂物/Drone部署和与gitea的集成/OAth2.png index c4ae00c..a31386b 100644 Binary files a/static/images/杂物/Drone部署和与gitea的集成/OAth2.png and b/static/images/杂物/Drone部署和与gitea的集成/OAth2.png differ diff --git a/static/images/杂物/Drone部署和与gitea的集成/OAthURL.png b/static/images/杂物/Drone部署和与gitea的集成/OAthURL.png new file mode 100644 index 0000000..e177e01 Binary files /dev/null and b/static/images/杂物/Drone部署和与gitea的集成/OAthURL.png differ diff --git a/static/images/杂物/Drone部署和与gitea的集成/drone设置.png b/static/images/杂物/Drone部署和与gitea的集成/drone设置.png new file mode 100644 index 0000000..7626eae Binary files /dev/null and b/static/images/杂物/Drone部署和与gitea的集成/drone设置.png differ diff --git a/static/images/杂物/Drone部署和与gitea的集成/drone首页.png b/static/images/杂物/Drone部署和与gitea的集成/drone首页.png new file mode 100644 index 0000000..aa9b250 Binary files /dev/null and b/static/images/杂物/Drone部署和与gitea的集成/drone首页.png differ diff --git a/static/images/杂物/Drone部署和与gitea的集成/webhook设置.png b/static/images/杂物/Drone部署和与gitea的集成/webhook设置.png new file mode 100644 index 0000000..2945a9e Binary files /dev/null and b/static/images/杂物/Drone部署和与gitea的集成/webhook设置.png differ