hexo 自定义域名 & mastodon 认证

字数统计: 2.2k 阅读时间: 4 mins 访问次数: ... 评论统计: ...

  Fxcking hexo 我还什么都没写这文件夹怎么就 60M+ 了??
  今日成果:自定义域名 + 毛象认证,不出意外在部署以后毛象个人页上就有绿勾勾了。

  本来今天 9 点多就上床睡觉了,凌晨一点胃疼醒来发现塔塔吐槽她的 hugo 模板不知道如何改字体,加之前两天陪她挑域名的时候蠢蠢欲动,我毅然从床上爬起来打开了电脑……
  然后买了现在的域名,本来备选的还有 hekatech.cc(首年追加时长只要 31 一年)、hekatech.icu(很犯病,suki)以及 mzk 前缀的一些域名,然后惊觉三位的 me 域名已经涨价到四五位数了,还好西柚子的域名注册得早……
  于是抱着奇怪的抢购心理买下了现在的 4o.cx,不为别的,就为这一个 4 位域名首年和续费都只要 120,难道不是超值吗!
  虽然 cx 后缀看起来有些不明所以,但我告诉自己这个后缀可以转 90° 当颜文字看(>u<),于是欣然接受了。虽然设定上 4o 是不会出现这个表情的,但是 HKT-924 应该会经常输出这种奇怪的颜文字

  又及:因为存放了建站教学内容,大概这个站也要从头开始做搜索优化 + 访问统计 + 留言功能,不然岂不是浪费了我的 4 位域名吗!

自定义域名踩坑

  Github Pages 的可靠性似乎没有我想象的那么好……那么如果有人想为你的 hexo 绑定自定义域名,请按如下步骤操作:

  1. 在电脑上打开 开始菜单 在键盘上敲击 cmd.exe 并回车,在弹出的 命令提示符 窗口中输入
    ping + 空格 + <你的用户名.github.io>(就是当前的 blog 地址)
    并记录下返回的 ip
  2. 将返回的 ip 填入你的域名管理界面的 DNS 设置 中,类型设置为 A
    如果有 TTL(DNS 刷新时间)选项,就设置成最短的时间
  3. hexo/source 文件夹中新建一个 没有后缀名的 CNAME文件(需要全大写)
    在里面输入 你的域名,不要添加 / 或者 https:// 等任何多余的内容
    然后执行 hexo g --d
  4. 点开 github 仓库Settings 页面,在左侧菜单中找到 Pages
    Custom domain 输入框中输入 你的域名 并点击 Save 保存
  5. 【非常重要】在输入框里的猫头还在转的时候 勾上底下的 Enforce HTTPS

  全部操作完毕后, github 设置页面大概率会显示红框提示你 DNS 设置错误,但只要到了你域名的 TTL 时间浏览器就可以打开了。

提问:为什么会出现这种情况呢?
推测:Github pages 获取 DNS 的速度与域名提供商更新的速度不一致。

  以我使用的 Dynadot(此处为邀请链接) 为例,域名设置 DNS 后最短只需要 5 分钟就可以更新,此时域名其实已经完成了解析,但 Github 并没有获取到 DNS 更新,所以会导致无法勾选 https 设置。
  而 Dynadot 的域名是默认开启 https 的,两边的设置差会导致浏览器或是你的本地防火墙拒绝接收数据。另外不勾选这个 https 设置 Github 似乎也不会主动给你申请证书,然后陷入死循环,所以需要在它检测 DNS 失败之前抢先把 https 设置勾上,大概就是这么个原理吧……
  Ps. 如果你还没有注册域名的话可以尝试点击上面的 Dynadot 邀请链接,据说是 当有人点击链接并在 48 小时内创建账户并消费 ¥65,您和新账户都将获得 ¥32 个 DynaDollar。当然我也没试过,不保证具体有效。

Mastodon 认证

  长毛象为用户在 个人资料附加信息 中填写的网页添加了 验证 功能,只要复制指定的链接 html 代码加入到个站网页中即可。
  一般选择把这个链接都添加在 页脚 替换作者署名,具体操作步骤如下:

 1. 在你的主题文件夹中搜索 layout 文件夹寻找文件名为 footer.ejs 的文件,如果没有请前往 layout/_partials 文件夹
这个文件就是用来输出页脚 html 元素的,不同主题的 layout 文件格式和语法可能会有出入,在修改文件时请注意备份
 2. 寻找作者 / 版权相关的语句段,以本站魔改基础 Chan 主题为例,footer.ejs 内容如下:

1
2
3
4
5
6
7
<div class="main-footer">
<% if (theme.copyright) { %>
<%- theme.copyright %>
<% } else { %>
© <%= new Date().getFullYear() %> <%= config.title %> - Powered by <a href="http://hexo.io" target="_blank">Hexo</a> - Theme <a href="https://github.com/denjones/hexo-theme-chan" target="_blank">Chan</a>
<% } %>
</div>

  将其中的 <%= config.title %>(此处为网站标题)替换为 Mastodon 提供的验证链接,再将其中的 Mastodon 替换成需要的内容即可。更新部署 hexo 之后需要手动到 mastodon 的个人资料页面重新提交一次,验证成功后表格内的链接就会出现绿色背景和 ✓ 图标。
  当然这个做法仅供参考,在理解 html 构成形式和 ejs 语法之后也可以把链接放在别的位置,比如做成侧边栏的联系方式图标等等。

其它记录 & 吐槽

  • Noto Sans 在代码框里的表现简直是灾难级别的
    • 换成了 Sublime Text 的默认字体 Consolas,圆润了许多。
  • 更新了 H3 H4 的标题样式
    • 但是分类和归档页面点开变得更糟糕了
    • 这两个打算做成类似尼尔存档的那种 UI,过两天再说
      • 尝试一下三级列表?啊这果然前缀消失了……
  • 目前代码框的滚动条风格还不是很对,找时间修正一下。
  • 背景的抽丝效果对比度似乎太明显了,有些影响字体渲染效果,需要调整
  • 设想做一个匿名提问箱
    • 暂时的思路是借用 Valine 的框架,删掉多余个人信息的提交和展示功能
    • 最多只显示 3~5 条最近提交的数据作为用户反馈,回答还是使用文章总结的形式
      • 提交内容:昵称 + 提问内容 + 时间 + 分类
      • 展示内容:时间 + 昵称 + 分类
    • 或者考虑一下 google 表格?但是墙内的访问可能会出现问题

  那么今天的工作就到这里,随行支援系统「HKT-924」即将开启节能模式……


  1. 1. 自定义域名踩坑
  2. 2. Mastodon 认证
  3. 3. 其它记录 & 吐槽