如何建自己的博客,导入内容后标题与文件错位如何核对对应关系

📍 WDQWDWQD987AAAAA:216.73.216.32
📱 Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
🔗 /34516864ec57.html
📄

如何建自己的博客,导入内容后标题与文件错位如何核对对应关系

先给有条件的结论:如果错位只出现在导入后的列表或归档页,而单篇页面标题正确,那么对应关系通常断在“文件名与标题的映射”这一层,而不是正文内容本身。此时不要重导,先把映射表导出来核对。但如果单篇页面标题也错了,说明标题在写入时就被覆盖,映射表核对无效,需要回到导入源文件查重名。

先分清错位发生在哪一层

标题与文件错位有三种可区分的原因,核对动作完全不同。

判断方法很直接:打开任意一篇出错内容的单篇页面,看标题。单篇对、列表错,查映射;单篇也错,查写入;单篇对、列表时对时错,查缓存。

导出映射表是核对对应关系的关键动作

多数博客系统在建站阶段会把每篇内容的文件路径和标题存在同一张表里。导入后如果怀疑错位,把这张表导出成两列:一列是文件名或路径,一列是标题。然后按文件名排序,逐行看标题是否与文件名描述的主题一致。

这个动作的结果会直接决定下一步:

  1. 如果文件名与标题成对出现,只是顺序乱了,说明是排序问题,修正导入时的排序规则即可,不必改内容。
  2. 如果文件名重复,标题被随机分配,说明导入源里存在同名文件,系统后写入的覆盖了先写入的。这时要先去重,再重导。
  3. 如果文件名与标题完全对不上,且没有规律,说明导入工具用错了字段,比如把摘要当标题、把日期当标题。要检查导入映射设置,而不是逐篇手改。

假设一个例子:你导入 50 篇 Markdown 文件,文件名是日期加序号,标题写在文件头。导入后列表页显示第 3 篇的标题配了第 7 篇的链接。导出映射表后发现,文件名排序是字符串排序,10 排在了 2 前面,而标题是按文件头读取的,两套顺序不一致,于是错位。这种情况下,把文件名改成零填充的 02、03 再重导,对应关系就恢复了。这个例子是假设的,用于说明排序差异如何造成错位,不代表任何具体工具的行为。

一个会让上述结论失效的反例

如果导入源里标题字段本身为空,系统用文件名兜底生成标题,那么映射表核对会显示“文件名与标题一致”,看起来没问题,但实际展示的标题并不是你想要的。此时错位不是对应关系错了,而是标题来源错了。反过来,如果导入源标题重复,比如多篇都叫“未命名”,映射表会显示多行同名标题,你会误以为是对应关系错乱,实际是标题本身重复。这两种情况下,核对映射表都得不到正确结论,必须先检查导入源文件的标题字段是否唯一且非空。

核对完成后先改一处再验证

确认错位层级后,只改一个变量再观察。如果是排序问题,改文件名或导入排序规则;如果是重名,先重命名重复文件;如果是字段映射错误,改导入设置里的标题来源字段。改完只重导一小批,比如 5 篇,核对单篇标题和列表标题是否一致,再决定是否全量重导。

验证时要注意,导入前后如果间隔了较长时间,搜索需求或内容本身可能发生变化,不能把访问数据的波动直接归因于这次修改。一次改动前后比较,要考虑季节、需求变化和数据采集差异,错位是否修好,以标题与文件的对应关系为准,而不是以流量变化为准。

下次导入前先做一次预检

在导入前,先把所有文件名和标题列成两列,用文本比对工具看是否一一对应。如果文件名是序号,确认序号是否补零;如果标题来自文件头,确认每篇文件头都有且只有一个标题字段。预检通过后再导入,比导入后逐篇核对省事得多。这一步不影响已错位内容的修复,但能避免下一批内容重复出现同样的问题。

图1 图2

nginx