这一篇记述了修改模板 hugo-theme-even 的过程

最近几天, 因为频繁在 github 和 cloudflare 上各种尝试, 对 git 的了解得以加深. 学了好多新操作, 总结一下, 算是交个作业吧.

修改模板文件失败

事情的起因是对现在使用的模板主页上 readMore 翻译成 “阅读更多” 不太满意, 想改成 “查看全文”, 凭空想像: 只要把模板中的 i18n 文件里相关的项修改一下就可以了. 后来发现事情并不那么简单.

把文件中的 “阅读更多” 改成 “查看全文” 提交到 github 上, 再看网站, 页面上还是 “阅读更多”, 咋搞? 直接简单粗暴地到 github 上修改吧, 好么, cloudflare 罢工了, 说抓取的时候, 有严重错误. 呵呵, 就是说, github 里的东西, 严禁手动更改. 这才想起, 网站模板是用 git submodule add 加载的. 估计 cloudflare 也就是去下载原库文件, 并不是拿我修改的东西. 天色已晚, 关灯睡觉, 休息好了再战.

Fork 模板文件, 提交 PR

次日凌晨, 在被窝里刷 twitter, 满屏都是 git 教程. 各种 cheatsheet, 不得不说, 清晨的学习力理解力真的满格. 一下子就想到了解决办法.

  1. 先去模板的库 fork 回来
  2. 然后 git clone 到本地
  3. 再 git remote add upstream git checkout -b my-branch … 如此这般地操作一通
  4. 打开编辑器, 把模板文件随心所欲地修改修改
  5. 再提交到 github, 顺手给原作者发个 PR

咱也算是开天辟地头一遭, 给开源运动作出微弱贡献吧.

submodule

现在自已的模板库也有了, 应该行了吧. 接下来的问题是: 如何把原有的模板文件, 切换成自己修改过的库呢?

想当然地以为是: git submodule checkout -b my-branch 但是, 不行. 下面算是今天真正学到的新知识了:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
  cd /path/to/blog-root
  git submodule                         # 查看现有模板文件的信息, 查到名字为 themes/even
  git submodule deinit themes/even      # themes/even 为现有模板的名字, 此行的意义是删除
  git rm --cache themes/even            # 清除缓存
  nvim .gitmodules                      # 删除文档中相应的块信息
  cd .git/modules
  rm -rf themes/even                    # 删除目录信息
  # 上面的几步操作, 已经把旧的模板库完全删除.
  git submodule add -b my-branch https://github/my-repo.git themes/
  # 新的模板已经准备好了. 下面是提交到 github.
  git add .
  git commit -m "change theme to my-branch"
  git push

起身倒杯水, 活动一下, 再转头来一看, 网站页面已经改变. 成功了…