<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://renchzhao.github.io/en/feed.xml" rel="self" type="application/atom+xml" /><link href="https://renchzhao.github.io/en/" rel="alternate" type="text/html" /><updated>2026-01-16T04:17:36+00:00</updated><id>https://renchzhao.github.io/feed.xml</id><title type="html">RenchZhao’s WorkStation</title><subtitle>RenchZhao&apos;s WorkStation, his personal website contains of gallery information such as cv, blogs and publications. He completed this website in one day with the spirit of hackathon. I challenge you to build your personal website in one day like him.</subtitle><author><name>Rench Zhao</name></author><entry xml:lang="en"><title type="html">Welcome to My Personal Website</title><link href="https://renchzhao.github.io/en/blog/2026/01/14/welcome-to-my-website.html" rel="alternate" type="text/html" title="Welcome to My Personal Website" /><published>2026-01-14T02:00:00+00:00</published><updated>2026-01-14T02:00:00+00:00</updated><id>https://renchzhao.github.io/blog/2026/01/14/welcome-to-my-website</id><content type="html" xml:base="https://renchzhao.github.io/blog/2026/01/14/welcome-to-my-website.html"><![CDATA[<p>Hello everyone! Welcome to my personal website. This site is built using Jekyll and the Minimal Mistakes theme.</p>

<h2 id="why-i-built-this-website">Why I Built This Website</h2>

<p>In today’s digital age, having a personal website is not just about showcasing technical skills, but also about:</p>

<ul>
  <li><strong>Personal Branding</strong>: Building your professional identity</li>
  <li><strong>Knowledge Sharing</strong>: Helping others learn from your experiences</li>
  <li><strong>Portfolio Display</strong>: Showing your projects and achievements</li>
  <li><strong>Communication Platform</strong>: Connecting with like-minded people</li>
</ul>

<h2 id="technology-stack">Technology Stack</h2>

<ul>
  <li><strong>Jekyll</strong>: Static site generator</li>
  <li><strong>Minimal Mistakes</strong>: Responsive Jekyll theme</li>
  <li><strong>GitHub Pages</strong>: Free hosting</li>
  <li><strong>Markdown</strong>: Content writing</li>
</ul>

<h2 id="features">Features</h2>

<p>This website includes:</p>
<ul>
  <li>Blog posts and technical articles</li>
  <li>CV and resume</li>
  <li>Project showcase</li>
  <li>Social sharing functionality</li>
  <li>Multi-language support</li>
</ul>

<h2 id="future-plans">Future Plans</h2>

<p>I plan to continuously update this website with:</p>
<ul>
  <li>More technical tutorials</li>
  <li>Research papers and publications</li>
  <li>Project documentations</li>
  <li>Learning notes</li>
</ul>

<p>Feel free to explore the site and share your thoughts!</p>

<hr />

<p><em>Thank you for visiting!</em></p>]]></content><author><name>Rench Zhao</name></author><category term="blog" /><category term="Jekyll" /><category term="Website" /><category term="Personal" /><summary type="html"><![CDATA[Hello everyone! Welcome to my personal website. This site is built using Jekyll and the Minimal Mistakes theme.]]></summary></entry><entry xml:lang="zh"><title type="html">我如何在一天内用黑客马拉松精神搭建这个网站</title><link href="https://renchzhao.github.io/en/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/2026/01/13/building-my-website.html" rel="alternate" type="text/html" title="我如何在一天内用黑客马拉松精神搭建这个网站" /><published>2026-01-13T14:22:00+00:00</published><updated>2026-01-13T14:22:00+00:00</updated><id>https://renchzhao.github.io/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/2026/01/13/building-my-website</id><content type="html" xml:base="https://renchzhao.github.io/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/2026/01/13/building-my-website.html"><![CDATA[<p>本网站源代码已在<a href="https://github.com/RenchZhao/RenchZhao.github.io">github仓库</a>开源了，欢迎借鉴</p>

<h2 id="动机">动机</h2>
<p>每当我看到大牛博主，我的师兄还有我的老师拥有自己的个人网页，我就非常羡慕。
做一个自己的网站看起来是一件很酷的事情。仔细想来，这不仅是一种学习内容留痕，帮助更多人学习，更是个人能力展示平台和品牌架构。
习惯建立起来之后有很多输出的博客。可以帮助其他学习者。
同时面试官查看你的博客和网页，就是对你的技术最好的肯定。</p>

<p>但是我一直觉得我的相关技术学的不好，没有开始自己的实践，而是仅仅在远处看看。
直到2026年，Vibe Coding火热了，许多不会编程的人也可以迅速搭起一个网站。
我还有编程技术基础，那就更应该尝试一下了？想到这一点，我尝试改变行为方式，先去做而不是先去学。事实证明这对我来说是更成功的策略。</p>

<h2 id="搭建过程">搭建过程</h2>
<p>我以黑客马拉松精神在一天之内完成这一个网站的雏形。
或者简单的说，就是心无旁骛地全心全意投入一天时间，尽可能快速完成一个原型。不管技术会不会，先动手去做，在做中学习。
我是从<a href="https://space.bilibili.com/4848323">数字游牧人</a>视频这里第一次接触到”黑客马拉松”这一精神。
你的潜力像水下的冰山，有时候你并不是做不到，只不过是你没有让脑中的潜意识认为这个任务是可能完成的罢了。
不开始想具体怎么做，你的潜意识会认为这目标是不可能的，因此一直不去做。永远未能开始，又怎么能够完成？</p>

<p>我合作的对象是中国字节跳动公司开发的“扣子空间”Agent与中国阿里巴巴公司的千问AI。
在2026年1月12日晚至2026年1月13日下午的过程中，我们合作完成了这个网站项目，或者说，我在这两个AI的指导下完成了这个项目。
因为我希望作为开发维护者，了解实现的细节，因此我没有让AI完全自主以Agent模式设计所有代码，而是要求它们提供模板，我在上面改进。
因此我花1天时间也许还算久的，如果您只是需要一个网站成品，也许更快，一个上午就行。</p>

<p>此前，我对Jekyll和Ruby语言一无所知。我只有一点点Html和Java Script基础。
“扣子空间”Agent和我交流之后根据我既想放简历又想要贴博客的需求，向我推荐了Ruby语言的Jekyll框架。
Jekyll框架能从MarkDown翻译成Html，让我专注于内容即可。这是很吸引我的，我因此上了这艘船。</p>

<p>其实上手Jekyll框架并不困难，2个小时我就完成了全部功能。
事实证明，即使不会Ruby语言，也不会所有的前端知识，你同样可以在1天内完成这个网站。
时间大头是环境调试，开发的这一天里，有80%时间是环境配置debug，详见下方的踩坑总结部分。</p>

<p>有时候强如扣子AI，也不可能一次性考虑到所有事情。它能ReAct慢慢找到解决方案是最好的，但是这次我没有使用。
因为我想边搭建网站边学习，因此仍然采取自己撰写大部分代码的方式。
不过如果自己搭，还是会有一定的坑会踩到的。我一边学习一边踩坑debug。
如果有bug，我先自己尝试解决，找到解决方案就让我的AI导师判断我的修改是否正确。在debug过程中理解代码是如何工作的。
如果我感觉报的错误是细节问题和扣子AI上下文没这么接近，我就会复制报错信息给千问AI，它也是一个不错的反馈迅速的导师。
还是需要去官网先搜索Quick Start等类似的代码，读懂之后AI判断解决方案，然后有bug再输回给AI进行反馈迭代。</p>

<h2 id="踩坑总结">踩坑总结</h2>
<p>我主要踩了3个坑：include，layout，remote-theme这三个。
如果你没有动手使用Jekyll框架搭建过网站，可能难以理解。建议你先上手尝试过后再看这一部分。</p>

<h3 id="_configyml中的include">_config.yml中的include</h3>
<p>Jekyll在将MarkDown转换成Html时候默认只搜寻根目录。我听从扣子AI建议用Minimal-Mistakes风格将一些页面放在_page文件夹下面，这导致无法生成_site文件夹下Html时没有被搜寻到，然后页面404。
扣子AI排查了6-7轮才找到这个原因。</p>

<h3 id="md页面的front-matter中的layout">md页面的Front Matter中的Layout</h3>
<p>扣子AI的模板代码生成时候有时候我没有给_config.yml中theme的上下文，导致md页面的Front Matter中的Layout是theme中没有定义的。
这导致theme找不到对应的Layout按照无Layout生成,页面是朴素的Html页面，只有内容没有好的组织格式。
后来我自己意识到这个问题，询问扣子AI我的theme有哪些Layout才解决这个问题。</p>

<p>不过后来还有一些内容字体格式等等没解决。我想在theme的Layout上面微调，但是没成功。
扣子AI最后也没有找到解决方案，就是自己写的CSS样式微调的部分可能被theme的CSS覆盖掉。
因此可能还得是全部CSS自己写。</p>

<p>下面列出了我使用的theme:Minimal-Mistakes-Jekyll的各种可用Layout</p>

<table>
  <thead>
    <tr>
      <th>场景</th>
      <th>推荐Layout</th>
      <th>说明</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>个人简介、CV、Projects</td>
      <td>single</td>
      <td>单页内容，带作者头像</td>
    </tr>
    <tr>
      <td>博客文章列表</td>
      <td>archive</td>
      <td>时间线样式，适合列表；例如博客首页，显示所有文章</td>
    </tr>
    <tr>
      <td>首页</td>
      <td>home</td>
      <td>首页专用布局，支持更多配置</td>
    </tr>
    <tr>
      <td>分类归档</td>
      <td>categories</td>
      <td>按分类显示文章，便于读者查看特定分类下的文章</td>
    </tr>
    <tr>
      <td>标签归档</td>
      <td>tags</td>
      <td>按标签显示文章，便于读者查看特定标签下的文章</td>
    </tr>
    <tr>
      <td>欢迎页</td>
      <td>splash</td>
      <td>大图背景，适合着陆页</td>
    </tr>
    <tr>
      <td>搜索页</td>
      <td>search</td>
      <td>搜索功能页面</td>
    </tr>
  </tbody>
</table>

<h3 id="githubio第三方网页部署环境和本地不一样">github.io第三方网页部署环境和本地不一样</h3>
<p>这个算是较有心理准备而且容易解决的坑了。因为不同机器环境不一样跑不起来的事情简直太多了。
本地的网页调试是正常的，但是传到github就无法build，报错找不到theme。
扣子AI好几轮对话都没能找到真正的问题。我自己搜索官方教程就能很快解决。
原因是我本地调试用theme能够调用本地环境gem加载内容，正确生成网页。
但是在github上不能这样，需要使用remote-theme代替theme。修改其实很容易。</p>

<p>首先Gemfile的gem “jekyll”换成gem “github-pages”加上对应github教程版本；
后面加上gem “jekyll-include-cache”, group: :jekyll_plugins即可。</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code>gem "github-pages", "~&gt; 232", group: :jekyll_plugins
# gem "jekyll", "~&gt; 4.4.1"
gem "jekyll-include-cache", group: :jekyll_plugins
</code></pre></div></div>

<p>然后_config.yml将theme改成remote_theme。@字符后面是版本号或者是可以追踪到特定提交版本的哈希值。</p>
<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># theme: minimal-mistakes-jekyll
remote_theme: "mmistakes/minimal-mistakes@4.27.3"
</code></pre></div></div>

<p>参考这两个官方教程就能很快掌握：</p>
<ul>
  <li>
    <p><a href="https://docs.github.com/zh/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll">https://docs.github.com/zh/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll</a></p>
  </li>
  <li>
    <p><a href="https://mmistakes.github.io/minimal-mistakes/docs/quick-start-guide/">https://mmistakes.github.io/minimal-mistakes/docs/quick-start-guide/</a></p>
  </li>
</ul>

<h1 id="20260115更新">20260115更新</h1>
<p>学习了基本内容之后，我使用中国阿里巴巴公司的iFlow编程Agent工具帮我迭代版本。
它作为Agent有个好处就是可以直接在本地修改代码，然后即时确认结果，类似ReAct或Claude的放羊大叔5行代码的思想，收集报错信息不断迭代改善代码。</p>

<p>要实现多语言切换似乎没这么容易。我的默认语言是zh简体中文要切换首先需要子目录en，和下面对应的英文Markdown内容。
接着需要配置对应的路径，我使用jekyll-polyglot包。
首先在_config.yml内添加多语言设置</p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># 语言
locale: "zh-CN"
languages: ["en", "zh"]
default_lang: "zh"
exclude_from_localization: ["assets/css", "assets/img"] # 不进行本地化的目录
parallel_localization: true
sass:
  sourcemap: never
</code></pre></div></div>
<p>这部分参考的这位博主的文章：<a href="https://zhuanlan.zhihu.com/p/675384720">https://zhuanlan.zhihu.com/p/675384720</a></p>

<div class="language-plaintext highlighter-rouge"><div class="highlight"><pre class="highlight"><code># ========== 目录配置 ==========
# 注意：使用jekyll-polyglot时，不需要特别include语言目录
# 插件会自动处理多语言内容
include:
  - _pages
  - _posts

defaults:
  # 所有页面默认配置
  - scope:
      path: ""
      type: pages
    values:
      layout: single
      author_profile: true

  # 所有博客文章默认配置
  - scope:
      path: ""
      type: posts
    values:
      layout: posts
      author_profile: true
      read_time: true
      comments: true
      related: true
</code></pre></div></div>

<p>然后每个Markdown的Front Matter的permalink这里我踩了一些坑。就是语言前缀其实是jekyll-polyglot包自动控制，单个页面permalink加上去en，zh前缀的话_site文件夹下面结构会乱掉，然后找不到页面。因此保持原来的不变即可。</p>

<p>另外还有导航栏问题。我的主题Minial-Mistakes似乎没有原生支持多语言。因此navigation.yml只能有一个，这样完全无法实现功能。最后还是在/assets/js下面写一个专门的javascript实现不同语言的导航栏，加到每个layout里面，改个名放到_layout下面，才终于实现不同语言自己的导航栏。然后让iFlow帮我在导航栏中写了一个语言切换工具。在导航栏内是因为防止有时候切换按钮被导航栏遮挡导致点击无效（又是一个踩坑）</p>

<p>用到jekyll-polyglot包的话，默认的github部署工作流就不能正常工作了。需要手动写github的Action的workflow部署代码模板。
首先在github仓库，Settings-&gt;Pages-&gt;Build and deployment的部分Source要选上Github Actions这一项。然后推送你的github Action部署模板时自动触发调用部署。</p>

<p>需要用下面的github Action部署模板。iFlow和其他AI之前帮我写的部署模板代码有问题，怎么改都不对导致github上部署错误。因此在Agent.md中还是得写指令让它先网上查一下官方文档和成熟解决方案，不要一上来就自己造轮子。
<a href="https://github.com/actions/starter-workflows/blob/main/pages/jekyll.yml?spm=5176.28103460.0.0.4a117551g8sBg6&amp;file=jekyll.ym">github官方Jekyll部署Action模板</a></p>]]></content><author><name>Rench Zhao</name></author><category term="学习笔记" /><category term="Jekyll" /><category term="博客" /><category term="Vibe Coding" /><category term="前端" /><summary type="html"><![CDATA[本网站源代码已在github仓库开源了，欢迎借鉴]]></summary></entry><entry xml:lang="en"><title type="html">Welcome to Jekyll!</title><link href="https://renchzhao.github.io/en/jekyll/2026/01/12/welcome-to-jekyll.html" rel="alternate" type="text/html" title="Welcome to Jekyll!" /><published>2026-01-12T15:57:56+00:00</published><updated>2026-01-12T15:57:56+00:00</updated><id>https://renchzhao.github.io/jekyll/2026/01/12/welcome-to-jekyll</id><content type="html" xml:base="https://renchzhao.github.io/jekyll/2026/01/12/welcome-to-jekyll.html"><![CDATA[<p>You’ll find this post in your <code class="language-plaintext highlighter-rouge">_posts</code> directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run <code class="language-plaintext highlighter-rouge">jekyll serve</code>, which launches a web server and auto-regenerates your site when a file is updated.</p>

<p>Jekyll requires blog post files to be named according to the following format:</p>

<p><code class="language-plaintext highlighter-rouge">YEAR-MONTH-DAY-title.MARKUP</code></p>

<p>Where <code class="language-plaintext highlighter-rouge">YEAR</code> is a four-digit number, <code class="language-plaintext highlighter-rouge">MONTH</code> and <code class="language-plaintext highlighter-rouge">DAY</code> are both two-digit numbers, and <code class="language-plaintext highlighter-rouge">MARKUP</code> is the file extension representing the format used in the file. After that, include the necessary front matter. Take a look at the source for this post to get an idea about how it works.</p>

<p>Jekyll also offers powerful support for code snippets:</p>

<figure class="highlight"><pre><code class="language-ruby" data-lang="ruby"><span class="k">def</span> <span class="nf">print_hi</span><span class="p">(</span><span class="nb">name</span><span class="p">)</span>
  <span class="nb">puts</span> <span class="s2">"Hi, </span><span class="si">#{</span><span class="nb">name</span><span class="si">}</span><span class="s2">"</span>
<span class="k">end</span>
<span class="n">print_hi</span><span class="p">(</span><span class="s1">'Tom'</span><span class="p">)</span>
<span class="c1">#=&gt; prints 'Hi, Tom' to STDOUT.</span></code></pre></figure>

<p>Check out the <a href="https://jekyllrb.com/docs/home">Jekyll docs</a> for more info on how to get the most out of Jekyll. File all bugs/feature requests at <a href="https://github.com/jekyll/jekyll">Jekyll’s GitHub repo</a>. If you have questions, you can ask them on <a href="https://talk.jekyllrb.com/">Jekyll Talk</a>.</p>]]></content><author><name>Rench Zhao</name></author><category term="jekyll" /><summary type="html"><![CDATA[You’ll find this post in your _posts directory. Go ahead and edit it and re-build the site to see your changes. You can rebuild the site in many different ways, but the most common way is to run jekyll serve, which launches a web server and auto-regenerates your site when a file is updated.]]></summary></entry><entry xml:lang="zh"><title type="html">我的第一篇博客</title><link href="https://renchzhao.github.io/en/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/2026/01/12/my-first-post.html" rel="alternate" type="text/html" title="我的第一篇博客" /><published>2026-01-12T15:30:00+00:00</published><updated>2026-01-12T15:30:00+00:00</updated><id>https://renchzhao.github.io/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/2026/01/12/my-first-post</id><content type="html" xml:base="https://renchzhao.github.io/%E5%AD%A6%E4%B9%A0%E7%AC%94%E8%AE%B0/2026/01/12/my-first-post.html"><![CDATA[<p>这是我使用Jekyll搭建的第一篇博客！</p>

<h2 id="代码示例">代码示例</h2>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">def</span> <span class="nf">hello_world</span><span class="p">():</span>
    <span class="k">print</span><span class="p">(</span><span class="s">"Hello, Jekyll!"</span><span class="p">)</span>
</code></pre></div></div>]]></content><author><name>Rench Zhao</name></author><category term="学习笔记" /><category term="Jekyll" /><category term="博客" /><category term="Python" /><summary type="html"><![CDATA[这是我使用Jekyll搭建的第一篇博客！]]></summary></entry></feed>