<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Github on aiken&#39;s blog</title>
    <link>https://aikenh.cn/tags/github/</link>
    <description>Recent content in Github on aiken&#39;s blog</description>
    <generator>Hugo -- 0.137.0</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 19 Dec 2024 11:35:08 +0000</lastBuildDate>
    <follow_challenge>
      <feedId>90080597450814464</feedId>
      <userId>72439538841050112</userId>
    </follow_challenge>
    <atom:link href="https://aikenh.cn/tags/github/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>基于Github部署和发布Hugo博客</title>
      <link>https://aikenh.cn/posts/%E5%8F%91%E5%B8%83%E5%92%8C%E9%83%A8%E7%BD%B2hugo%E5%8D%9A%E5%AE%A2/</link>
      <pubDate>Thu, 19 Dec 2024 11:35:08 +0000</pubDate>
      <guid>https://aikenh.cn/posts/%E5%8F%91%E5%B8%83%E5%92%8C%E9%83%A8%E7%BD%B2hugo%E5%8D%9A%E5%AE%A2/</guid>
      <description>通过 GithubPage 或者 Vercel, Netlify 发布 Hugo 博客的记录</description>
      <content:encoded><![CDATA[<h2 id="托管平台选择">托管平台选择</h2>
<p>一些常见的托管平台 PaaS <span class="sidenote-number"><small class="sidenote">Platform as a Service <a href="https://cloud.google.com/learn/what-is-paas?hl=zh-CN" target="_blank" rel="noopener">平台及服务</a>
，旨在使用户专注于应用代码开发</small></span> 的免费情况如下；</p>
<table>
  <thead>
      <tr>
          <th style="text-align: center">Site</th>
          <th>Github Page</th>
          <th><a href="https://vercel.com/" target="_blank" rel="noopener">Vercel</a>
</th>
          <th><a href="https://www.netlify.com/" target="_blank" rel="noopener">Netfily</a>
</th>
          <th>Coolify</th>
          <th><a href="https://zeabur.com/" target="_blank" rel="noopener">Zeabur</a>
</th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td style="text-align: center">Free?</td>
          <td>Y</td>
          <td>Y</td>
          <td>Y</td>
          <td>自托管免费</td>
          <td>N（月费外无需额外）</td>
      </tr>
      <tr>
          <td style="text-align: center">Auto <br>Re-Deployed</td>
          <td>Y</td>
          <td>Y</td>
          <td>Y</td>
          <td>-</td>
          <td>-</td>
      </tr>
  </tbody>
</table>
<p>其实对于这些小型的静态网页的项目部署，大多都是免费的，整体部署的流程也是相对简单，选择一个顺眼，便于国内访问用即可，但是无论是哪个方案，都建议绑定一下自己的域名，一来是更便于记，二来也能便于国内访问。</p>



  
  

<blockquote class="alert-blockquote alert-todo">
  <p class="alert-heading">
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16">
      <path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8Zm8-6.5a6.5 6.5 0 1 0 0 13 6.5 6.5 0 0 0 0-13ZM6.5 7.75A.75.75 0 0 1 7.25 7h1a.75.75 0 0 1 .75.75v2.75h.25a.75.75 0 0 1 0 1.5h-2a.75.75 0 0 1 0-1.5h.25v-2h-.25a.75.75 0 0 1-.75-.75ZM8 6a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path>
    </svg>
    <span>Todo</span>
  </p>
  <p>了解一下 Coolify，是否是类似一个公网转发平台的方案，将特定端口的服务使用 Coolify 转发到公网上，然后可以绑定自己的域名，这样的话也不失为一个好东西，我之前的服务也就都能部署出去了；</p>

</blockquote>
<p>最终选择的时候可以考虑以下都是谁在访问自己的博客，然后测一下对应地区平台访问的速度来做决定，国内的话 vercel 好像是被 DNS 污染了，如果要部署在 Vercel 上的的话，考虑在域名解析的地方更换为CF 的解析服务 <span class="sidenote-number"><small class="sidenote">原因：<a href="https://www.zhongfw.online/posts/%E3%80%90%E5%A4%9A%E5%9B%BE%E9%A2%84%E8%AD%A6%E3%80%91vercel%E9%83%A8%E7%BD%B2%E5%8F%8A%E5%9B%BD%E5%86%85%E8%AE%BF%E9%97%AE.html" target="_blank" rel="noopener">【多图预警】vercel部署及国内访问 | VuePress Theme Gungnir</a>

具体方案：<a href="https://www.didispace.com/article/richang/20230917-vercel-china-dns.html" target="_blank" rel="noopener">一招解决Vercel站点在国内无法访问的问题 | 程序猿DD</a>
 | <a href="https://juejin.cn/post/7301193497247727652" target="_blank" rel="noopener">如何在国内访问vercel部署应用？我个人觉得vercel是做前端的大家都应该去了解并且掌握的一个非常方便的部署工具，能 - 掘金</a>
  ；</small></span></p>
<h2 id="直接使用-public-文件夹进行部署">直接使用 Public 文件夹进行部署</h2>
<p>作为静态网页生成器，hugo 通过部署模式生成的 <code>public</code> 文件夹可以很轻松的在包括 <a href="https://docs.github.com/zh/pages/quickstart" target="_blank" rel="noopener">Github pages</a>
 和 <a href="https://vercel.com/" target="_blank" rel="noopener">Vercel</a>
 等第三方平台上的各个托管平台进行部署，部署起来相当简单，只需要将 Publish 文件夹推到github 上，后面的都比较简单了</p>
<ul>
<li>Github Page 直接在Setting-Pages 中设置选择源 Branch 即可，不需手动去写Github Action；</li>
<li>Vercel, Netfily 也是直接绑定对应的Github 仓库的指定分支即可，framework 选择Other；</li>
</ul>
<p>且均能根据 Publish 的变更对网页重新构建，这里就不再赘述。</p>
<h2 id="基于源码直接部署">基于源码直接部署</h2>
<p>基于源码部署主要是考虑到同时将博文本身推送上去，一是使用 git 做版本管理，二是可以不再额外管理一个仓库；因此也可以采用此种方式；</p>
<p>但实际上如果要和本地的 Editor 如 Obsidian 做无缝集成的话，还是会需要一些额外的脚本去做处理，包括写完后自动更新 repo 和推送这些，后续如果笔者记得的话可能也会更新一下相应的脚本；</p>
<h3 id="部署到-github-page">部署到 Github Page</h3>
<p>参考 <a href="https://gohugo.io/hosting-and-deployment/hosting-on-github/" target="_blank" rel="noopener">hugo官方教程</a>
使用 Github Action 进行在线构建和实现 Github Page 的发布，修改其中自己需要进行构建的分支名称和部署命令等，然后直接 push 上去即可。</p>
<p>这里我对部署命令的修改部分如下：</p>
<div class="code-block">
    <div class="code-title" onclick="toggleCode(this)">
        
        <span class="code-block-open"><ion-icon name="chevron-down-outline"></ion-icon></span>
        <span class="code-block-close"><ion-icon name="chevron-forward-outline"></ion-icon></ion-icon></span>
        <span>yaml</span>
    </div>
    <div class="code-content">
        
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">run</span><span class="p">:</span><span class="w"> </span><span class="p">|</span><span class="sd">
</span></span></span><span class="line"><span class="cl"><span class="sd">  hugo \
</span></span></span><span class="line"><span class="cl"><span class="sd">    --gc \
</span></span></span><span class="line"><span class="cl"><span class="sd">    --minify \
</span></span></span><span class="line"><span class="cl"><span class="sd">    --environment papermod \
</span></span></span><span class="line"><span class="cl"><span class="sd">    --baseURL &#34;${{ steps.pages.outputs.base_url }}/&#34;  </span><span class="w">  </span></span></span></code></pre></div>
    </div>
</div>

<script>
function toggleCode(element) {
    const codeContent = element.nextElementSibling;
    if (codeContent.style.display === "none" || codeContent.style.display === "") {
        codeContent.style.display = "block"; 
        codeContent.parentNode.classList.remove("code-has-hidden-child");
    } else {
        codeContent.style.display = "none"; 
        codeContent.parentNode.classList.add("code-has-hidden-child");
    }
}
</script><p>使用非 Master 分支进行构建可能会遇到以下的问题（build 成功，deploy 部分显示如下错误）</p>



  
  

<blockquote class="alert-blockquote alert-error">
  <p class="alert-heading">
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16">
      <path d="M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path>
    </svg>
    <span>Error</span>
  </p>
  <p>Branch &ldquo;x&rdquo; is not allowed to deploy to github-pages due to environment protection rules.</p>

</blockquote>
<p>解决方案：<a href="https://github.com/orgs/community/discussions/39054" target="_blank" rel="noopener">Github community · Discussion #39054</a>
 ，Repo 的 Setting 中找到 Environments 中的 github-pages 项中的 <code>Deployment branches and tags</code> 新增自己想要部署的分支即可；</p>
<p>
<div class="post-img-view">
  <a data-fancybox="gallery" href="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212011338.png">
    <img alt="image.png" loading="lazy" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212011338.png"class="responsive-image" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212011338.png" style="display: block; margin: 0 auto;"
      alt="image.png"  />
  </a>
</div>


<script>
  document.addEventListener("DOMContentLoaded", function() {
      var images = document.querySelectorAll(".responsive-image");
      var maxHeight = window.innerHeight / 2.5;
      images.forEach(function(image) {
          image.style.maxHeight = maxHeight + "px";
      });
  });
</script>
</p>



  
  

<blockquote class="alert-blockquote alert-error">
  <p class="alert-heading">
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16">
      <path d="M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path>
    </svg>
    <span>Error</span>
  </p>
  <p>Static 中的资源加载出现 404，导致界面表现不合预期的情况</p>

</blockquote>
<p>此外，如果个人之前已经对其他的 GithubPage 绑定了域名（例如 <a href="http://aikenh.cn/" target="_blank" rel="noopener">http://aikenh.cn/</a>
 ），这样可能会导致由于网页部署在域名的子目录下( <a href="http://aikenh.cn/hugoblog/" target="_blank" rel="noopener">http://aikenh.cn/hugoblog/</a>
 )，导致一些资源的 url 绑定到域名上（资源被绑定到 <a href="http://aikenh.cn/" target="_blank" rel="noopener">http://aikenh.cn/</a>
 中导致 404 ），无法获取到，这里的解决方式是，通过绑定子域名/二级域名 或者新的域名。</p>
<p>这里简单讲一下子域名的添加 <span class="sidenote-number"><small class="sidenote"><a href="https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site/managing-a-custom-domain-for-your-github-pages-site#configuring-a-subdomain" target="_blank" rel="noopener">Github Docs</a></small></span> ，首先在 Github-Repo-Setting-Pages 中设置 Custom domain 如下</p>
<p>
<div class="post-img-view">
  <a data-fancybox="gallery" href="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212111721.png">
    <img alt="image.png" loading="lazy" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212111721.png"class="responsive-image" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212111721.png" style="display: block; margin: 0 auto;"
      alt="image.png"  />
  </a>
</div>


<script>
  document.addEventListener("DOMContentLoaded", function() {
      var images = document.querySelectorAll(".responsive-image");
      var maxHeight = window.innerHeight / 2.5;
      images.forEach(function(image) {
          image.style.maxHeight = maxHeight + "px";
      });
  });
</script>
</p>
<p>添加后去自己的域名控制台添加对应的 cname 子域名记录，然后稍后即可</p>
<p>
<div class="post-img-view">
  <a data-fancybox="gallery" href="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212111655.png">
    <img alt="image.png" loading="lazy" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212111655.png"class="responsive-image" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212111655.png" style="display: block; margin: 0 auto;"
      alt="image.png"  />
  </a>
</div>


<script>
  document.addEventListener("DOMContentLoaded", function() {
      var images = document.querySelectorAll(".responsive-image");
      var maxHeight = window.innerHeight / 2.5;
      images.forEach(function(image) {
          image.style.maxHeight = maxHeight + "px";
      });
  });
</script>
</p>
<p>添加子域名解析后可能会发现反而 CSS 等样式表加载不出来的问题（上一步的时候没问题），这时候就要考虑是不是 BaseURL 忘记更新了；记得修改项目配置（非 GithubAction 配置）中自己的 baseURL 再推上去使其重新构建，避免存在部分解析问题即可；</p>
<h3 id="部署到其他-paas">部署到其他 PaaS</h3>



  
  

<blockquote class="alert-blockquote alert-error">
  <p class="alert-heading">
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16">
      <path d="M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path>
    </svg>
    <span>Error</span>
  </p>
  <p>由于我们本地开发使用的 Git Submodule 中的地址通常是 git@github ,可能会导致第三方平台在拉取 Submodule 的时候出现一些权限错误导致拉取失败</p>

</blockquote>
<p>因此当我们部署 Netlify 之前可以按照下面的方式更新 Submodule 为 http 链接，首先更改 <code>.gitmodules</code> 中子模块的URL</p>
<div class="code-block">
    <div class="code-title" onclick="toggleCode(this)">
        
        <span class="code-block-open"><ion-icon name="chevron-down-outline"></ion-icon></span>
        <span class="code-block-close"><ion-icon name="chevron-forward-outline"></ion-icon></ion-icon></span>
        <span>ini</span>
    </div>
    <div class="code-content">
        
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-ini" data-lang="ini"><span class="line"><span class="cl"><span class="k">[submodule &#34;themes/PaperMod&#34;]</span>
</span></span><span class="line"><span class="cl">  <span class="na">path</span> <span class="o">=</span> <span class="s">themes/PaperMod
</span></span></span><span class="line"><span class="cl"><span class="s">  url = https://github.com/AikenH/papermod-sidebar.git</span></span></span></code></pre></div>
    </div>
</div>

<script>
function toggleCode(element) {
    const codeContent = element.nextElementSibling;
    if (codeContent.style.display === "none" || codeContent.style.display === "") {
        codeContent.style.display = "block"; 
        codeContent.parentNode.classList.remove("code-has-hidden-child");
    } else {
        codeContent.style.display = "none"; 
        codeContent.parentNode.classList.add("code-has-hidden-child");
    }
}
</script><p>然后执行下列命令来更新子模块的URL</p>
<div class="code-block">
    <div class="code-title" onclick="toggleCode(this)">
        
        <span class="code-block-open"><ion-icon name="chevron-down-outline"></ion-icon></span>
        <span class="code-block-close"><ion-icon name="chevron-forward-outline"></ion-icon></ion-icon></span>
        <span>bash</span>
    </div>
    <div class="code-content">
        
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git submodule sync
</span></span><span class="line"><span class="cl">git submodule update --init --recursive</span></span></code></pre></div>
    </div>
</div>

<script>
function toggleCode(element) {
    const codeContent = element.nextElementSibling;
    if (codeContent.style.display === "none" || codeContent.style.display === "") {
        codeContent.style.display = "block"; 
        codeContent.parentNode.classList.remove("code-has-hidden-child");
    } else {
        codeContent.style.display = "none"; 
        codeContent.parentNode.classList.add("code-has-hidden-child");
    }
}
</script><p>更新完以后将其推送到部署分支，例如 <code>netlify</code></p>
<div class="code-block">
    <div class="code-title" onclick="toggleCode(this)">
        
        <span class="code-block-open"><ion-icon name="chevron-down-outline"></ion-icon></span>
        <span class="code-block-close"><ion-icon name="chevron-forward-outline"></ion-icon></ion-icon></span>
        <span>bash</span>
    </div>
    <div class="code-content">
        
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">git checkout -b netlify
</span></span><span class="line"><span class="cl">git add . 
</span></span><span class="line"><span class="cl">git commit -m <span class="s2">&#34;[Conf] update submodule for third-party deploy&#34;</span>
</span></span><span class="line"><span class="cl">git push origin netlify:netlify</span></span></code></pre></div>
    </div>
</div>

<script>
function toggleCode(element) {
    const codeContent = element.nextElementSibling;
    if (codeContent.style.display === "none" || codeContent.style.display === "") {
        codeContent.style.display = "block"; 
        codeContent.parentNode.classList.remove("code-has-hidden-child");
    } else {
        codeContent.style.display = "none"; 
        codeContent.parentNode.classList.add("code-has-hidden-child");
    }
}
</script><h4 id="部署到-netlify">部署到 Netlify</h4>
<p><strong>做完上述 Submodule 的准备之后</strong>，在 Netlify 的dashboard 上导入Repo 进行发布：</p>
<ul>
<li>导入仓库，选择好发布的分支</li>
</ul>
<p>可以参考下列命令来设置自己的发布参数以及环境变量（hugo 版本）</p>
<p>
<div class="post-img-view">
  <a data-fancybox="gallery" href="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212142429.png">
    <img alt="image.png" loading="lazy" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212142429.png"class="responsive-image" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212142429.png" style="display: block; margin: 0 auto;"
      alt="image.png"  />
  </a>
</div>


<script>
  document.addEventListener("DOMContentLoaded", function() {
      var images = document.querySelectorAll(".responsive-image");
      var maxHeight = window.innerHeight / 2.5;
      images.forEach(function(image) {
          image.style.maxHeight = maxHeight + "px";
      });
  });
</script>
</p>
<p>环境变量的Key-Value 分别为：HUGO_VERSION 还有你本地的 hugo 版本，可以通过下列命令获取</p>
<div class="code-block">
    <div class="code-title" onclick="toggleCode(this)">
        
        <span class="code-block-open"><ion-icon name="chevron-down-outline"></ion-icon></span>
        <span class="code-block-close"><ion-icon name="chevron-forward-outline"></ion-icon></ion-icon></span>
        <span>bash</span>
    </div>
    <div class="code-content">
        
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">hugo version</span></span></code></pre></div>
    </div>
</div>

<script>
function toggleCode(element) {
    const codeContent = element.nextElementSibling;
    if (codeContent.style.display === "none" || codeContent.style.display === "") {
        codeContent.style.display = "block"; 
        codeContent.parentNode.classList.remove("code-has-hidden-child");
    } else {
        codeContent.style.display = "none"; 
        codeContent.parentNode.classList.add("code-has-hidden-child");
    }
}
</script><p>域名绑定：主要是参考官方指引，将需要的域名填入后，按照如下指引，在购买域名处添加CName 即可；</p>
<p>
<div class="post-img-view">
  <a data-fancybox="gallery" href="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212171616.png">
    <img alt="image.png" loading="lazy" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212171616.png"class="responsive-image" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212171616.png" style="display: block; margin: 0 auto;"
      alt="image.png"  />
  </a>
</div>


<script>
  document.addEventListener("DOMContentLoaded", function() {
      var images = document.querySelectorAll(".responsive-image");
      var maxHeight = window.innerHeight / 2.5;
      images.forEach(function(image) {
          image.style.maxHeight = maxHeight + "px";
      });
  });
</script>
</p>
<p>随后记得更新网站的 BaseURL 以便网站正常工作;</p>
<h4 id="部署到-vercel">部署到 Vercel</h4>
<p><strong>做完上述 Submodule 的准备之后</strong>，同样在 Vercel 处的设置也是比较简单的，导入指定的仓库后，将模版指定为Hugo，并修改部署配置如下：</p>
<p>
<div class="post-img-view">
  <a data-fancybox="gallery" href="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212144416.png">
    <img alt="image.png" loading="lazy" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212144416.png"class="responsive-image" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212144416.png" style="display: block; margin: 0 auto;"
      alt="image.png"  />
  </a>
</div>


<script>
  document.addEventListener("DOMContentLoaded", function() {
      var images = document.querySelectorAll(".responsive-image");
      var maxHeight = window.innerHeight / 2.5;
      images.forEach(function(image) {
          image.style.maxHeight = maxHeight + "px";
      });
  });
</script>
</p>
<p>同样添加环境变量：</p>
<p>
<div class="post-img-view">
  <a data-fancybox="gallery" href="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212144450.png">
    <img alt="image.png" loading="lazy" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212144450.png"class="responsive-image" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212144450.png" style="display: block; margin: 0 auto;"
      alt="image.png"  />
  </a>
</div>


<script>
  document.addEventListener("DOMContentLoaded", function() {
      var images = document.querySelectorAll(".responsive-image");
      var maxHeight = window.innerHeight / 2.5;
      images.forEach(function(image) {
          image.style.maxHeight = maxHeight + "px";
      });
  });
</script>
</p>
<p>但是 Vercel 中指定分支的方式相对较麻烦一些，在部署后，进入project 的dashboard 中，选择Setting</p>
<p>
<div class="post-img-view">
  <a data-fancybox="gallery" href="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212144613.png">
    <img alt="image.png" loading="lazy" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212144613.png"class="responsive-image" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212144613.png" style="display: block; margin: 0 auto;"
      alt="image.png"  />
  </a>
</div>


<script>
  document.addEventListener("DOMContentLoaded", function() {
      var images = document.querySelectorAll(".responsive-image");
      var maxHeight = window.innerHeight / 2.5;
      images.forEach(function(image) {
          image.style.maxHeight = maxHeight + "px";
      });
  });
</script>
</p>
<p>其中的 Git -&gt; Production 跳转到指定页面去设置分支，设置完记得选择保存，同时下面有个环境变量也可以在设置一次。</p>
<p>
<div class="post-img-view">
  <a data-fancybox="gallery" href="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212144707.png">
    <img alt="image.png" loading="lazy" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212144707.png"class="responsive-image" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212144707.png" style="display: block; margin: 0 auto;"
      alt="image.png"  />
  </a>
</div>


<script>
  document.addEventListener("DOMContentLoaded", function() {
      var images = document.querySelectorAll(".responsive-image");
      var maxHeight = window.innerHeight / 2.5;
      images.forEach(function(image) {
          image.style.maxHeight = maxHeight + "px";
      });
  });
</script>
</p>
<p>
<div class="post-img-view">
  <a data-fancybox="gallery" href="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212144752.png">
    <img alt="image.png" loading="lazy" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212144752.png"class="responsive-image" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212144752.png" style="display: block; margin: 0 auto;"
      alt="image.png"  />
  </a>
</div>


<script>
  document.addEventListener("DOMContentLoaded", function() {
      var images = document.querySelectorAll(".responsive-image");
      var maxHeight = window.innerHeight / 2.5;
      images.forEach(function(image) {
          image.style.maxHeight = maxHeight + "px";
      });
  });
</script>
</p>
<p>到此为止的话其他分支上的提交也会导致触发build，为此我们还需要进一步设置，在刚刚 Git 页面的最底下，选择 only build production 即可，这里参考 <span class="sidenote-number"><small class="sidenote"><a href="https://oragekk.me/tutorial/CI_CD/vercel-deploy.html#_2-%E6%AD%A5%E9%AA%A4" target="_blank" rel="noopener">oragekk</a></small></span> ：</p>
<p>
<div class="post-img-view">
  <a data-fancybox="gallery" href="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212173248.png">
    <img alt="image.png" loading="lazy" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212173248.png"class="responsive-image" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212173248.png" style="display: block; margin: 0 auto;"
      alt="image.png"  />
  </a>
</div>


<script>
  document.addEventListener("DOMContentLoaded", function() {
      var images = document.querySelectorAll(".responsive-image");
      var maxHeight = window.innerHeight / 2.5;
      images.forEach(function(image) {
          image.style.maxHeight = maxHeight + "px";
      });
  });
</script>
</p>
<p>后面再触发一次 Deploy 任务以后就可以看到分支切换到指定的分支即可</p>
<p>
<div class="post-img-view">
  <a data-fancybox="gallery" href="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212144841.png">
    <img alt="image.png" loading="lazy" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212144841.png"class="responsive-image" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20241212144841.png" style="display: block; margin: 0 auto;"
      alt="image.png"  />
  </a>
</div>


<script>
  document.addEventListener("DOMContentLoaded", function() {
      var images = document.querySelectorAll(".responsive-image");
      var maxHeight = window.innerHeight / 2.5;
      images.forEach(function(image) {
          image.style.maxHeight = maxHeight + "px";
      });
  });
</script>
</p>
<p>添加域名：待补充；</p>
<h2 id="troubleshooting-问题解决">TroubleShooting 问题解决</h2>
<h3 id="部署时-css-样式不显示问题">部署时 CSS 样式不显示问题</h3>
<p>hugo 部署时遇到像 CSS 和 JS 或者图像等不显示的问题，可能有以下的两种原因：</p>
<p>一、假如图像, JS, CSS 都不显示，可以通过浏览器的开发者模式中的网络选项等去检查资源的对应地址是否是正确的，然后检查 hugo.yaml 中的 <code>base_url</code> 是否设置正确；</p>
<p>二、假如仅 CSS 不显示，只显示图像和文字，可以打开开发者模式中的控制台，看是否有如下报错：</p>



  
  

<blockquote class="alert-blockquote alert-error">
  <p class="alert-heading">
    <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16" width="16" height="16">
      <path d="M4.47.22A.749.749 0 0 1 5 0h6c.199 0 .389.079.53.22l4.25 4.25c.141.14.22.331.22.53v6a.749.749 0 0 1-.22.53l-4.25 4.25A.749.749 0 0 1 11 16H5a.749.749 0 0 1-.53-.22L.22 11.53A.749.749 0 0 1 0 11V5c0-.199.079-.389.22-.53Zm.84 1.28L1.5 5.31v5.38l3.81 3.81h5.38l3.81-3.81V5.31L10.69 1.5ZM8 4a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0v-3.5A.75.75 0 0 1 8 4Zm0 8a1 1 0 1 1 0-2 1 1 0 0 1 0 2Z"></path>
    </svg>
    <span>Error</span>
  </p>
  <p>Failed to find a valid digest in the &lsquo;integrity&rsquo; attribute for resource</p>

</blockquote>
<p>如果是如下报错的话，可能是由于 minify 生成静态网页时，去掉了 html,js,css 等文件的部分空格和格式，来缩小文件的体积，但是修改后会导致文件校验失败，从而阻止加载，因此就会有两种解决方式：</p>
<p><strong>hugo 设置中关闭校验</strong> <span class="sidenote-number"><small class="sidenote"><a href="https://spartanmans.github.io/posts/hugobug/" target="_blank" rel="noopener">bj-Space</a></small></span> : 在 hugo.yaml 中添加，（使用toml 配置的情自行修改对应选项）</p>
<div class="code-block">
    <div class="code-title" onclick="toggleCode(this)">
        
        <span class="code-block-open"><ion-icon name="chevron-down-outline"></ion-icon></span>
        <span class="code-block-close"><ion-icon name="chevron-forward-outline"></ion-icon></ion-icon></span>
        <span>yaml</span>
    </div>
    <div class="code-content">
        
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yaml" data-lang="yaml"><span class="line"><span class="cl"><span class="nt">params</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">	</span><span class="nt">assets</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">		</span><span class="nt">disableFingerprinting</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span></span></span></code></pre></div>
    </div>
</div>

<script>
function toggleCode(element) {
    const codeContent = element.nextElementSibling;
    if (codeContent.style.display === "none" || codeContent.style.display === "") {
        codeContent.style.display = "block"; 
        codeContent.parentNode.classList.remove("code-has-hidden-child");
    } else {
        codeContent.style.display = "none"; 
        codeContent.parentNode.classList.add("code-has-hidden-child");
    }
}
</script><p><strong>关闭 minify 选项</strong> <span class="sidenote-number"><small class="sidenote"><a href="https://www.333rd.net/zh/posts/tech/hugo%E4%B8%A2%E5%A4%B1css%E5%AF%BC%E8%87%B4%E6%98%BE%E7%A4%BA%E5%BC%82%E5%B8%B8%E9%97%AE%E9%A2%98%E8%A7%A3%E5%86%B3/" target="_blank" rel="noopener">3rd&rsquo;s blog</a></small></span></p>
<p>还有一些其他的可能问题：http 和 https 混用</p>
<h2 id="fi">FI</h2>
]]></content:encoded>
    </item>
    <item>
      <title>Github Profile 个人主页</title>
      <link>https://aikenh.cn/posts/githubprofile/</link>
      <pubDate>Sat, 21 Jan 2023 21:25:24 +0000</pubDate>
      <guid>https://aikenh.cn/posts/githubprofile/</guid>
      <description>&lt;p&gt;&lt;strong&gt;Reference&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;本文介绍如何配置自己的 Github 的个人资料界面，同时会介绍相关美化个人资料的一些资源网站和项目，并简单介绍其用法。最终结果如下（还有许多优化的空间）：&lt;/p&gt;
&lt;p&gt;
&lt;div class=&#34;post-img-view&#34;&gt;
  &lt;a data-fancybox=&#34;gallery&#34; href=&#34;https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20230122113307.png&#34;&gt;
    &lt;img alt=&#34;image.png&#34; loading=&#34;lazy&#34; src=&#34;https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20230122113307.png&#34;class=&#34;responsive-image&#34; src=&#34;https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20230122113307.png&#34; style=&#34;display: block; margin: 0 auto;&#34;
      alt=&#34;image.png&#34;  /&gt;
  &lt;/a&gt;
&lt;/div&gt;


&lt;script&gt;
  document.addEventListener(&#34;DOMContentLoaded&#34;, function() {
      var images = document.querySelectorAll(&#34;.responsive-image&#34;);
      var maxHeight = window.innerHeight / 2.5;
      images.forEach(function(image) {
          image.style.maxHeight = maxHeight + &#34;px&#34;;
      });
  });
&lt;/script&gt;
&lt;/p&gt;
&lt;h2 id=&#34;创建同名仓库&#34;&gt;创建同名仓库&lt;/h2&gt;
&lt;p&gt;Github 中创建用户名的同名仓库，该仓库的 README.md 将会在个人的资料页进行展示。(附上官方的说明如下)&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;AikenH/AikenH is a special repository. Its &lt;code&gt;README.md&lt;/code&gt; will appear on your public profile.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;创建该仓库之后，我们对 Readme 的改动将会实时的同步到我们的个人界面，后续我们就只需要专注于编写和修改该 Readme 即可。&lt;/p&gt;
&lt;h2 id=&#34;相关资源推荐&#34;&gt;相关资源推荐&lt;/h2&gt;
&lt;p&gt;由于大家的审美和风格不同，这里不做设计上的推荐，仅推荐一些用于美化个人界面的资源和部分项目的用法（以本人的 blog 为例）。&lt;/p&gt;
&lt;p&gt;名字部分，简单文字转图片随便找一个&lt;a href=&#34;http://www.atoolbox.net/Tool.php?Id=723&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;工具箱&lt;/a&gt;
或者网站生成即可，不在赘述；&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;这里是一个工具和推荐仓库的大全集&lt;/strong&gt;：&lt;a href=&#34;https://github.com/abhisheknaiidu/awesome-github-profile-readme#tools&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;abhisheknaiidu/awesome-github-profile-readme&lt;/a&gt;
&lt;/p&gt;
&lt;p&gt;这里是一些优秀的 &lt;a href=&#34;https://zzetao.github.io/awesome-github-profile/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;readme profile&lt;/a&gt;
&lt;/p&gt;
&lt;h2 id=&#34;动态字幕&#34;&gt;动态字幕&lt;/h2&gt;
&lt;p&gt;介绍使用的动态字幕效果实现：&lt;a href=&#34;https://github.com/DenverCoder1/readme-typing-svg&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;DenverCoder1/readme-typing-svg&lt;/a&gt;
，进入其 &lt;a href=&#34;https://readme-typing-svg.demolab.com/demo/&#34; target=&#34;_blank&#34; rel=&#34;noopener&#34;&gt;Demo Site&lt;/a&gt;
，设定想要的样式和文字即可生成对应的 markdown 和 html 代码。&lt;/p&gt;</description>
      <content:encoded><![CDATA[<p><strong>Reference</strong></p>
<p>本文介绍如何配置自己的 Github 的个人资料界面，同时会介绍相关美化个人资料的一些资源网站和项目，并简单介绍其用法。最终结果如下（还有许多优化的空间）：</p>
<p>
<div class="post-img-view">
  <a data-fancybox="gallery" href="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20230122113307.png">
    <img alt="image.png" loading="lazy" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20230122113307.png"class="responsive-image" src="https://picture-bed-001-1310572365.cos.ap-guangzhou.myqcloud.com/mac/20230122113307.png" style="display: block; margin: 0 auto;"
      alt="image.png"  />
  </a>
</div>


<script>
  document.addEventListener("DOMContentLoaded", function() {
      var images = document.querySelectorAll(".responsive-image");
      var maxHeight = window.innerHeight / 2.5;
      images.forEach(function(image) {
          image.style.maxHeight = maxHeight + "px";
      });
  });
</script>
</p>
<h2 id="创建同名仓库">创建同名仓库</h2>
<p>Github 中创建用户名的同名仓库，该仓库的 README.md 将会在个人的资料页进行展示。(附上官方的说明如下)</p>
<blockquote>
<p>AikenH/AikenH is a special repository. Its <code>README.md</code> will appear on your public profile.</p>
</blockquote>
<p>创建该仓库之后，我们对 Readme 的改动将会实时的同步到我们的个人界面，后续我们就只需要专注于编写和修改该 Readme 即可。</p>
<h2 id="相关资源推荐">相关资源推荐</h2>
<p>由于大家的审美和风格不同，这里不做设计上的推荐，仅推荐一些用于美化个人界面的资源和部分项目的用法（以本人的 blog 为例）。</p>
<p>名字部分，简单文字转图片随便找一个<a href="http://www.atoolbox.net/Tool.php?Id=723" target="_blank" rel="noopener">工具箱</a>
或者网站生成即可，不在赘述；</p>
<p><strong>这里是一个工具和推荐仓库的大全集</strong>：<a href="https://github.com/abhisheknaiidu/awesome-github-profile-readme#tools" target="_blank" rel="noopener">abhisheknaiidu/awesome-github-profile-readme</a>
</p>
<p>这里是一些优秀的 <a href="https://zzetao.github.io/awesome-github-profile/" target="_blank" rel="noopener">readme profile</a>
</p>
<h2 id="动态字幕">动态字幕</h2>
<p>介绍使用的动态字幕效果实现：<a href="https://github.com/DenverCoder1/readme-typing-svg" target="_blank" rel="noopener">DenverCoder1/readme-typing-svg</a>
，进入其 <a href="https://readme-typing-svg.demolab.com/demo/" target="_blank" rel="noopener">Demo Site</a>
，设定想要的样式和文字即可生成对应的 markdown 和 html 代码。</p>
<div class="code-block">
    <div class="code-title" onclick="toggleCode(this)">
        
        <span class="code-block-open"><ion-icon name="chevron-down-outline"></ion-icon></span>
        <span class="code-block-close"><ion-icon name="chevron-forward-outline"></ion-icon></ion-icon></span>
        <span>html</span>
    </div>
    <div class="code-content">
        
        <div class="highlight"><pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p">&lt;</span><span class="nt">p</span> <span class="na">align</span><span class="o">=</span><span class="s">&#34;center&#34;</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl">	<span class="p">&lt;</span><span class="nt">a</span> <span class="na">href</span><span class="o">=</span><span class="s">&#34;https://git.io/typing-svg&#34;</span><span class="p">&gt;&lt;</span><span class="nt">img</span> <span class="na">src</span><span class="o">=</span><span class="s">&#34;https://readme-typing-svg.demolab.com?font=Fira+Code&amp;pause=1000&amp;color=CC7DF7&amp;width=435&amp;lines=The+five+boxing+wizards+jump+quickly&#34;</span> <span class="na">alt</span><span class="o">=</span><span class="s">&#34;Typing SVG&#34;</span> <span class="p">/&gt;&lt;/</span><span class="nt">a</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl"><span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span></span></span></code></pre></div>
    </div>
</div>

<script>
function toggleCode(element) {
    const codeContent = element.nextElementSibling;
    if (codeContent.style.display === "none" || codeContent.style.display === "") {
        codeContent.style.display = "block"; 
        codeContent.parentNode.classList.remove("code-has-hidden-child");
    } else {
        codeContent.style.display = "none"; 
        codeContent.parentNode.classList.add("code-has-hidden-child");
    }
}
</script><p>并通过 Html 样式指定居中对齐，将其放入 readme 中即可，效果如下：</p>
<p align="center">
	<a href=" https://git.io/typing-svg"><img src=" https://readme-typing-svg.demolab.com?font=Fira+Code&pause=1000&color=CC7DF7&width=435&lines=The+five+boxing+wizards+jump+quickly" alt="Typing SVG" /></a>
</p>
<h2 id="统计卡片">统计卡片</h2>
<p>笔者更喜欢统计卡片 <a href="https://github.com/anuraghazra/github-readme-stats/blob/master/docs/readme_cn.md" target="_blank" rel="noopener">anuraghazra/github-readme-stats</a>
 的风格和 ui，也可以展示特定的仓库等，统计指标更为完善。</p>
<p>使用时只需要指定 Username 即可，并根据自己的需求，添加和调整对应的参数，如添加 <code>&amp;count_private=true</code>。</p>
<p>
<div class="post-img-view">
  <a data-fancybox="gallery" href="https://github-readme-stats.vercel.app/api?username=anuraghazra&amp;count_private=true&amp;show_icons=true&amp;theme=synthwave">
    <img alt="Anurag&rsquo;s GitHub stats" loading="lazy" src="https://github-readme-stats.vercel.app/api?username=anuraghazra&count_private=true&show_icons=true&theme=synthwave"class="responsive-image" src="https://github-readme-stats.vercel.app/api?username=anuraghazra&amp;count_private=true&amp;show_icons=true&amp;theme=synthwave" style="display: block; margin: 0 auto;"
      alt="Anurag&rsquo;s GitHub stats"  />
  </a>
</div>


<script>
  document.addEventListener("DOMContentLoaded", function() {
      var images = document.querySelectorAll(".responsive-image");
      var maxHeight = window.innerHeight / 2.5;
      images.forEach(function(image) {
          image.style.maxHeight = maxHeight + "px";
      });
  });
</script>
</p>
<p>该项目也能展示如：热门语言卡片、pin 其他的 repo 等等功能的卡片。</p>
<h2 id="徽章定制">徽章定制</h2>
<p>徽章定制主要是 <a href="https://shields.io" target="_blank" rel="noopener">Shields</a>
，输入自己的信息和颜色定制特定徽章，结合 Html 使用 href 超链接为佳，同时可以使用下面其他的样式来改变自己的徽标。</p>
<div class="code-block">
    <div class="code-title" onclick="toggleCode(this)">
        
        <span class="code-block-open"><ion-icon name="chevron-down-outline"></ion-icon></span>
        <span class="code-block-close"><ion-icon name="chevron-forward-outline"></ion-icon></ion-icon></span>
        <span>url</span>
    </div>
    <div class="code-content">
        
        <pre tabindex="0"><code class="language-url" data-lang="url">https://img.shields.io/badge/&lt;LABEL&gt;-&lt;MESSAGE&gt;-&lt;COLOR&gt;</code></pre>
    </div>
</div>

<script>
function toggleCode(element) {
    const codeContent = element.nextElementSibling;
    if (codeContent.style.display === "none" || codeContent.style.display === "") {
        codeContent.style.display = "block"; 
        codeContent.parentNode.classList.remove("code-has-hidden-child");
    } else {
        codeContent.style.display = "none"; 
        codeContent.parentNode.classList.add("code-has-hidden-child");
    }
}
</script><p>原始默认的样式如下：

<div class="post-img-view">
  <a data-fancybox="gallery" href="https://img.shields.io/badge/github-aikenh-blue">
    <img loading="lazy" src="https://img.shields.io/badge/github-aikenh-blue"class="responsive-image" src="https://img.shields.io/badge/github-aikenh-blue" style="display: block; margin: 0 auto;"
      alt=""  />
  </a>
</div>


<script>
  document.addEventListener("DOMContentLoaded", function() {
      var images = document.querySelectorAll(".responsive-image");
      var maxHeight = window.innerHeight / 2.5;
      images.forEach(function(image) {
          image.style.maxHeight = maxHeight + "px";
      });
  });
</script>
</p>
<p>可以改变写法，引入样式进行改变：</p>
<div class="code-block">
    <div class="code-title" onclick="toggleCode(this)">
        
        <span class="code-block-open"><ion-icon name="chevron-down-outline"></ion-icon></span>
        <span class="code-block-close"><ion-icon name="chevron-forward-outline"></ion-icon></ion-icon></span>
        <span>url</span>
    </div>
    <div class="code-content">
        
        <pre tabindex="0"><code class="language-url" data-lang="url">https://img.shields.io/static/v1?label=github&amp;message=aikenh&amp;color=blue&amp;style=for-the-badge&amp;logo=appveyor</code></pre>
    </div>
</div>

<script>
function toggleCode(element) {
    const codeContent = element.nextElementSibling;
    if (codeContent.style.display === "none" || codeContent.style.display === "") {
        codeContent.style.display = "block"; 
        codeContent.parentNode.classList.remove("code-has-hidden-child");
    } else {
        codeContent.style.display = "none"; 
        codeContent.parentNode.classList.add("code-has-hidden-child");
    }
}
</script><p>变成如下的形式等等，其他的参考网站。

<div class="post-img-view">
  <a data-fancybox="gallery" href="https://img.shields.io/static/v1?label=github&amp;message=aikenh&amp;color=blue&amp;style=for-the-badge&amp;logo=appveyor">
    <img loading="lazy" src="https://img.shields.io/static/v1?label=github&message=aikenh&color=blue&style=for-the-badge&logo=appveyor"class="responsive-image" src="https://img.shields.io/static/v1?label=github&amp;message=aikenh&amp;color=blue&amp;style=for-the-badge&amp;logo=appveyor" style="display: block; margin: 0 auto;"
      alt=""  />
  </a>
</div>


<script>
  document.addEventListener("DOMContentLoaded", function() {
      var images = document.querySelectorAll(".responsive-image");
      var maxHeight = window.innerHeight / 2.5;
      images.forEach(function(image) {
          image.style.maxHeight = maxHeight + "px";
      });
  });
</script>
</p>
<p>使用 <a href="https://github.com/DenverCoder1/custom-icon-badges/blob/main/README.md" target="_blank" rel="noopener">DenverCoder1/custom-icon-badges</a>
 基于获取的 shields 的徽标进行进一步的自定义，得到更多样式，可以自己上传标志，或者打上更多标签。</p>
<ul>
<li>修改 shields 的 url</li>
<li>选择其中的各种 slug 和 log 去进一步自定义该徽标</li>
</ul>
<p>例如下面这个徽标，可以基于其 example usage 修改其中的文本和 icon 部分即可得到类似的效果。同样结合 html 的样式和 href 使用更佳。</p>
<div class="code-block">
    <div class="code-title" onclick="toggleCode(this)">
        
        <span class="code-block-open"><ion-icon name="chevron-down-outline"></ion-icon></span>
        <span class="code-block-close"><ion-icon name="chevron-forward-outline"></ion-icon></ion-icon></span>
        <span></span>
    </div>
    <div class="code-content">
        
        <pre tabindex="0"><code>&lt;a href=&#34;https://aikenh.cn&#34;&gt;&lt;img alt=&#34;github&#34; title=&#34;AikenD&#34; src=&#34;https://custom-icon-badges.demolab.com/badge/-aiken%20blog-palegreen?style=for-the-badge&amp;logo=package&amp;logoColor=black&#34;&gt;&lt;/a&gt;</code></pre>
    </div>
</div>

<script>
function toggleCode(element) {
    const codeContent = element.nextElementSibling;
    if (codeContent.style.display === "none" || codeContent.style.display === "") {
        codeContent.style.display = "block"; 
        codeContent.parentNode.classList.remove("code-has-hidden-child");
    } else {
        codeContent.style.display = "none"; 
        codeContent.parentNode.classList.add("code-has-hidden-child");
    }
}
</script><p><a href=" https://aikenh.cn"><img alt="github" title="AikenD" src=" https://custom-icon-badges.demolab.com/badge/-aiken%20blog-palegreen?style=for-the-badge&logo=package&logoColor=black"></a></p>
<h2 id="统计奖杯">统计奖杯</h2>
<p>统计奖杯 <a href="https://github.com/ryo-ma/github-profile-trophy" target="_blank" rel="noopener">ryo-ma/github-profile-trophy</a>
 可以根据 Github 账号的 Commit 等信息来统计 Github 的活跃程度，并通过奖杯的方式呈现出来（账户较为活跃的就可以使用这个来展示）。</p>
<div class="code-block">
    <div class="code-title" onclick="toggleCode(this)">
        
        <span class="code-block-open"><ion-icon name="chevron-down-outline"></ion-icon></span>
        <span class="code-block-close"><ion-icon name="chevron-forward-outline"></ion-icon></ion-icon></span>
        <span></span>
    </div>
    <div class="code-content">
        
        <pre tabindex="0"><code>[![trophy](https://github-profile-trophy.vercel.app/?username=AikenH)](https://github.com/ryo-ma/github-profile-trophy)</code></pre>
    </div>
</div>

<script>
function toggleCode(element) {
    const codeContent = element.nextElementSibling;
    if (codeContent.style.display === "none" || codeContent.style.display === "") {
        codeContent.style.display = "block"; 
        codeContent.parentNode.classList.remove("code-has-hidden-child");
    } else {
        codeContent.style.display = "none"; 
        codeContent.parentNode.classList.add("code-has-hidden-child");
    }
}
</script><p><a href="https://github.com/ryo-ma/github-profile-trophy" target="_blank" rel="noopener">
<div class="post-img-view">
  <a data-fancybox="gallery" href="https://github-profile-trophy.vercel.app/?username=AikenH">
    <img alt="trophy" loading="lazy" src="https://github-profile-trophy.vercel.app/?username=AikenH"class="responsive-image" src="https://github-profile-trophy.vercel.app/?username=AikenH" style="display: block; margin: 0 auto;"
      alt="trophy"  />
  </a>
</div>


<script>
  document.addEventListener("DOMContentLoaded", function() {
      var images = document.querySelectorAll(".responsive-image");
      var maxHeight = window.innerHeight / 2.5;
      images.forEach(function(image) {
          image.style.maxHeight = maxHeight + "px";
      });
  });
</script>
</a>
</p>
<p>使用方法较为简单，只要修改提供链接的 username 改为自己的即可，当然也有一些包括设定 rank 或者显示特定奖杯之类的，可以在 readme 界面看看介绍，并进行自定义即可。</p>
<h2 id="其他">其他</h2>
<ol>
<li>简单的 readme 生成工具：<a href="https://rahuldkjain.github.io/gh-profile-readme-generator/" target="_blank" rel="noopener">rahuldkjain/github-profile-readme-generator</a>
 可以借助这个生成工具得到部分产品图标。</li>
<li>Icons of bands，产品图标 svg 大全：<a href="https://simpleicons.org" target="_blank" rel="noopener">simple icons</a>
，获取不同的产品图标，可以在定制 widget 什么的时候使用。</li>
</ol>
]]></content:encoded>
    </item>
  </channel>
</rss>
