<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Is-A.dev on 小景</title>
        <link>https://jingyuan-zheng.github.io/zh/tags/is-a.dev/</link>
        <description>Recent content in Is-A.dev on 小景</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-Hans</language>
        <copyright>Jingyuan Zheng</copyright>
        <lastBuildDate>Thu, 22 Oct 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://jingyuan-zheng.github.io/zh/tags/is-a.dev/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>给个人博客申请 is-a.dev 域名：从 Fork、PR 到 GitHub Pages 配置</title>
            <link>https://jingyuan-zheng.github.io/zh/p/is-a-dev-domain-guide/</link>
            <pubDate>Thu, 23 Jul 2026 00:00:00 +0000</pubDate>
            <guid>https://jingyuan-zheng.github.io/zh/p/is-a-dev-domain-guide/</guid>
            <description>&lt;img src=&#34;https://jingyuan-zheng.github.io/img/is-a-dev-domain-guide/banner.png&#34; alt=&#34;Featured image of post 给个人博客申请 is-a.dev 域名：从 Fork、PR 到 GitHub Pages 配置&#34; /&gt;&lt;p&gt;is-a.dev 为符合条件的个人及非商业开发相关网站提供子域名，申请和后续修改通过 GitHub Pull Request 审核。&lt;/p&gt;&#xA;&lt;p&gt;这个博客也列出了 &lt;a class=&#34;link&#34; href=&#34;https://zjy.is-a.dev/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;zjy.is-a.dev&lt;/a&gt; 地址。我的 &lt;a class=&#34;link&#34; href=&#34;https://github.com/Jingyuan-Zheng/register&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;register 仓库&lt;/a&gt; 是 &lt;a class=&#34;link&#34; href=&#34;https://github.com/is-a-dev/register&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;is-a-dev/register&lt;/a&gt; 的 Fork。申请成功以后，还要让域名指向网站，并在托管平台上完成绑定；这几个步骤缺一不可。&lt;/p&gt;&#xA;&lt;div class=&#34;post-figure&#34;&gt;&#xA;&lt;img src=&#34;https://jingyuan-zheng.github.io/img/is-a-dev-domain-guide/banner.png&#34; alt=&#34;is-a.dev 项目横幅&#34;&gt;&#xA;&lt;div class=&#34;caption&#34;&gt;图 1：来自注册仓库的 is-a.dev 项目横幅。&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;h2 id=&#34;先有一个内容完整的网站&#34;&gt;先有一个内容完整的网站&#xA;&lt;/h2&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://docs.is-a.dev/quickstart/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;官方 Quickstart&lt;/a&gt; 要求申请前已有基本完整、符合范围的网站。先阅读最新要求和服务条款，再决定是否适合申请。&lt;/p&gt;&#xA;&lt;p&gt;申请规则可能调整，填写 JSON 和提交前以 &lt;a class=&#34;link&#34; href=&#34;https://docs.is-a.dev/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;官方文档&lt;/a&gt; 及上游仓库为准。&lt;/p&gt;&#xA;&lt;h2 id=&#34;让申请可以被审核&#34;&gt;让申请可以被审核&#xA;&lt;/h2&gt;&lt;p&gt;基本流程是在上游注册仓库创建 Fork，在 &lt;code&gt;domains/&lt;/code&gt; 中添加对应 JSON 文件，再提交 PR。文件名表示希望申请的子域名。&lt;/p&gt;&#xA;&lt;p&gt;保留官方 PR 模板，提供要求的网站信息，并持续查看审核意见。本地提交成功、推送到自己的 Fork，都不等于域名已经获批。&lt;/p&gt;&#xA;&lt;p&gt;维护者会检查网站和配置，合并时间并不固定。逐项核对 JSON 字段与目标地址，收到修改意见后在同一个 PR 中更新。&lt;/p&gt;&#xA;&lt;h2 id=&#34;以-github-pages-为例准备-json&#34;&gt;以 GitHub Pages 为例准备 JSON&#xA;&lt;/h2&gt;&lt;p&gt;假设 GitHub 用户名是 &lt;code&gt;yourname&lt;/code&gt;，想申请 &lt;code&gt;yourname.is-a.dev&lt;/code&gt;。在自己的 Fork 中打开 &lt;code&gt;domains/&lt;/code&gt;，新建 &lt;code&gt;yourname.json&lt;/code&gt;。下面展示的是 &lt;a class=&#34;link&#34; href=&#34;https://docs.is-a.dev/guides/github-pages/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;GitHub Pages 官方配置示例&lt;/a&gt; 的结构，用户名和目标都要替换成自己的实际信息：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;&#xA;&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7&#xA;&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td class=&#34;lntd&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-json&#34; data-lang=&#34;json&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;owner&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;username&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;yourname&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;},&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nt&#34;&gt;&amp;#34;records&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;nt&#34;&gt;&amp;#34;CNAME&amp;#34;&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;yourname.github.io&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;文件名决定申请哪个子域名，&lt;code&gt;owner.username&lt;/code&gt; 表示 GitHub 账号，&lt;code&gt;records.CNAME&lt;/code&gt; 则是网站主机名。这三者的用途不同，不要把自己的文章链接放进 owner，也不要把仓库的 GitHub 页面地址当成站点主机名。JSON 要使用英文双引号，最后一个字段后面没有多余逗号，代码里也不能直接加入注释。&lt;/p&gt;&#xA;&lt;p&gt;提交前查看上游是否已经存在同名文件，并读当前的命名要求；上面的 &lt;code&gt;yourname&lt;/code&gt; 是占位符，不代表这个名字一定可用。目标网站应先能通过原始地址打开，内容、导航和主要页面都已经有了，再申请新的入口，审核者也更容易理解它的用途。&lt;/p&gt;&#xA;&lt;h2 id=&#34;pr-应该提交到上游而不是自己的-fork&#34;&gt;PR 应该提交到上游，而不是自己的 Fork&#xA;&lt;/h2&gt;&lt;p&gt;保存文件后，在 GitHub 中检查差异只包含自己要申请的 JSON，再使用 &lt;strong&gt;Contribute → Open pull request&lt;/strong&gt; 等入口。创建页面要核对目标仓库是 &lt;code&gt;is-a-dev/register&lt;/code&gt;，来源才是自己的 Fork；如果把目标也选成自己，提交成功仍不会进入上游审核。&lt;/p&gt;&#xA;&lt;p&gt;保留模板并填写它要求的信息，附上网站链接和截图。截图应当让人看出这是一个已经可以使用的网站，不要只提供空白首页或建设中的占位图。所有提交都会公开，联系信息也应选择适合公开的内容，不要把凭据或无关私人资料贴进描述。&lt;/p&gt;&#xA;&lt;p&gt;收到修改意见以后，在同一个分支更新 JSON，原来的 PR 会跟着更新。先检查反馈指向哪一行、哪个字段，再修改；不必为了一个小更正另外开一条申请。通过自动检查也只是满足格式等检查，域名是否被接受仍要等维护者审核并合并。&lt;/p&gt;&#xA;&lt;h2 id=&#34;dns-解析和-url-跳转是两件事&#34;&gt;DNS 解析和 URL 跳转是两件事&#xA;&lt;/h2&gt;&lt;p&gt;DNS 记录帮助域名找到对应服务，通常不能把 &lt;code&gt;/zh/&lt;/code&gt; 这样的网页路径放进目标。CNAME 的目标是主机名，也不是带 &lt;code&gt;https://&lt;/code&gt; 的完整网址。&lt;/p&gt;&#xA;&lt;p&gt;URL 跳转则让浏览器前往另一个地址，可以涉及路径。&lt;a class=&#34;link&#34; href=&#34;https://docs.is-a.dev/faq/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;官方 FAQ&lt;/a&gt; 说明，is-a.dev 的 URL 选项属于自定义跳转机制，不是标准 DNS 记录。&lt;/p&gt;&#xA;&lt;p&gt;例如想让 &lt;code&gt;name.is-a.dev&lt;/code&gt; 直接显示 GitHub Pages 上的网站，就要走域名解析与 Pages 绑定；若只是希望访问者转到现有的 &lt;code&gt;/zh/&lt;/code&gt; 页面，则应研究官方的 URL 跳转选项。先选目标，再填写对应记录，才不会把网页路径误塞进 CNAME。&lt;/p&gt;&#xA;&lt;h2 id=&#34;github-pages-也需要配置&#34;&gt;GitHub Pages 也需要配置&#xA;&lt;/h2&gt;&lt;p&gt;对于 GitHub Pages，&lt;a class=&#34;link&#34; href=&#34;https://docs.is-a.dev/guides/github-pages/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;官方平台指南&lt;/a&gt; 给出了指向 &lt;code&gt;github-username.github.io&lt;/code&gt; 这类主机名的 CNAME 方案。注册 PR 合并后，还要在网站发布仓库的 Pages 设置中填写自定义域名，并在可用后启用 HTTPS。如果网站由 Hugo 自动部署，也要把域名配置保留在源码或构建流程中，让下一次发布继续使用它。&lt;/p&gt;&#xA;&lt;p&gt;域名所有权验证又是独立步骤，可能要求在验证主机名添加 TXT。不能因为托管平台要求验证，就把互不兼容的记录类型直接堆在同一个 CNAME 主机名上，应按平台指南处理。&lt;/p&gt;&#xA;&lt;h2 id=&#34;hugo-部署时源码和发布结果要一起考虑&#34;&gt;Hugo 部署时，源码和发布结果要一起考虑&#xA;&lt;/h2&gt;&lt;p&gt;Hugo 项目的源码仓库与最终 GitHub Pages 发布仓库，可能不是同一个。填写 Pages 自定义域名时，应到实际发布网站的仓库；修改 Hugo 的站点地址时，则应到源码配置。先把“哪里写文章”和“哪里提供网站”分清，能避免在错误仓库里反复设置。&lt;/p&gt;&#xA;&lt;p&gt;域名确定以后，检查 Hugo 的 &lt;code&gt;baseURL&lt;/code&gt; 和部署流程怎样生成站点地址。如果需要随发布保留 CNAME 文件，应把它放到会进入最终输出的源码位置或构建步骤中，而不是只在一次构建的 &lt;code&gt;public/&lt;/code&gt; 里手动创建。具体做法要配合自己的 Pages 部署方式，不能只照抄另一个项目的目录。&lt;/p&gt;&#xA;&lt;p&gt;改好以后进行一次正常构建，打开中英文首页、文章和图片，再检查语言切换与 RSS。只更改域名时，原来的文章路径可以继续使用；没有必要把已经分享过的 slug 也一起改掉。若发现部分链接还跳回旧域名，先追查配置或正文中的绝对链接，再决定改哪里。&lt;/p&gt;&#xA;&lt;h2 id=&#34;分层检查是否成功&#34;&gt;分层检查是否成功&#xA;&lt;/h2&gt;&lt;p&gt;可以分别检查 PR 是否合并、DNS 是否解析、Pages 是否绑定、证书是否签发，以及页面实际返回什么。404、证书错误和重定向循环不是同一种问题，不宜只反复刷新首页。&lt;/p&gt;&#xA;&lt;p&gt;以 &lt;code&gt;name.is-a.dev&lt;/code&gt; 为例：如果 PR 还没合并，先回到审核页面处理意见；如果已经合并，却仍打不开，先核对提交的目标主机名，再查看 Pages 是否接受了这个自定义域名。能打开 HTTP、却不能使用 HTTPS 时，检查 Pages 的证书状态，而不是继续改文章链接。若打开后到了错误页面，再看站点构建出来的首页和重定向规则。每次只调整一层，比较容易找到问题。&lt;/p&gt;&#xA;&lt;p&gt;双语博客还要打开两种语言路径，检查文章链接、RSS 和语言切换。首页能显示，不代表所有内部地址都正确。&lt;/p&gt;&#xA;&lt;p&gt;确认新地址可用后，可以把它作为分享地址；原有的 &lt;code&gt;github.io&lt;/code&gt; 地址仍值得保留作诊断入口。以后更换托管方式，也要同时检查注册仓库里的记录和新平台的自定义域名设置，单独改其中一处可能导致解析到了旧网站，或新网站拒绝这个域名。&lt;/p&gt;&#xA;&lt;p&gt;后续更新或删除也要按注册流程处理。切换新域名时，保留原始托管地址，便于核对访问结果。博客整体 Hugo 结构可以看 &lt;a class=&#34;link&#34; href=&#34;https://jingyuan-zheng.github.io/zh/p/liquid-stack-open-source-release/&#34; &gt;Liquid Stack&lt;/a&gt;，服务最新要求则以 &lt;a class=&#34;link&#34; href=&#34;https://docs.is-a.dev/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;官方文档&lt;/a&gt; 为准。&lt;/p&gt;&#xA;</description>
        </item></channel>
</rss>
