转入静态博客的永久链接问题

本博客前面的博文中曾写过动态博客转入静态博客的部分问题。今天在测试时,又发现了一个新问题,在此简单叙述问题的情况和解决方法。

转入静态博客的方法

万能的WordPress有合适的插件提供了简便的方法。

如果原来的动态博客程序不是WordPress,需要先转入WordPress进行操作。以typecho为例,typecho的“TypExport”插件具有将所有博文、页面、评论等内容转入WordPress的功能。除了“more”标签以外,其他均可无缝转移。将TypExport插件导出的xml文件导入WordPress即可。这里面可能会涉及到附件的转存,需要修改一下xml文件的内容。使用文本编辑器打开xml文件,将/usr/uploads替换成/wp-content/uploads。再将uploads下的内容拷贝到WordPress后台。

在WordPress安装“Jekyll Exporter”插件。然后,在WordPress后台左侧的“工具”——“Export to Jekyll”,此时浏览器会下载一个压缩包。打开压缩包,在压缩包的根目录有一些文件和文件夹,结构如下:

_drafts:草稿
_posts:博文
wp-content:附件目录
***.md:页面
_config.yml:Jekyll配置文件

以Hexo为例:

(1)将_posts下的md转移到source/_posts下;

(2)在source目录下,根据压缩包根目录下md文档的名字,创建同名文件夹,再将压缩包根目录下的md文档转移到相应文件夹下,然后将文件名改为index.md;

(3)将wp-content文件夹转移到source目录下,不要做任何改动;

(4)打开Hexo的总配置文件,将new_post_name设置为:year-:month-:day-:title.md

(5)为保证以后写的新文章的链接与之前保持一致,将Hexo总配置文件URL选项下面的permalink设置为 archives/:title.html

将这些文件上传到支持在线编译功能的托管平台,如Gitlab、Coding;或者利用Netlify进行编译,可以托管到Github、Gitlab、Bitbucket。具体上传方法,可以利用Gitlab、Github、Coding的网页端的批量在线上传功能(文件夹可在对应的网页进行在线创建,然后在文件夹下批量上传文件);或者利用Git命令。静态博客搭建方法可查看这篇文章(点击查看)

这样便迁移成功了。评论迁移问题可查阅本博客的这篇文章(点击查看)中关于评论导入disqus的部分。

永久链接问题

使用Jekyll Exporter插件导出的md文档,在文件头,有个参数:permalink。它后面的内容,是WordPress中的永久链接相对格式。导入Hexo后,Hexo会将它替代:title作为永久链接。

这里面存在一个大问题

以我的Typecho博客为例。我的博客永久链接格式为/archives/slug.html。导入到WordPress后,为保持链接一致,在WordPress后台,将永久链接设置为/archives/%postname%.html。转入到Hexo,为避免出现问题,同样要保持链接一致。

这样,导出的md文档中,文件头的permalink参数后面写的便是/archives/slug.html(slug为手动设置的文章名字)。

问题出现了。编译好的文章链接是这样的:url.com/archives/archives/slug.html.html(url.com代表博客使用的域名)。

怎么办?逐个修改md文档的permalink显然不现实。

解决办法如下:

返回WordPress,修改固定链接格式为%postname%,保存。重新运行Export to Jekyll。此时,导出的md文档中,permalink参数后面写的便是/slug。重新导入Hexo,编译好以后,文章链接与之前使用WordPress或者typecho就是一致的了。

链接保证一致后,按照这篇文章这篇文章中关于评论导入disqus的部分进行操作,导入到disqus的评论链接可与博文产生一一对应的关系,评论就可以正常显示了。如果使用Disqus PHP Api,也是能一一对应的。

临时演示站点:https://porkbun.store

相关文章:

7 条回复

txh 2019年6月7日 回复

林叔,你有在线的联系方式么,我想作为一个后辈,向您问一些问题,也不是特别奇怪的问题,但我认为这些问题,需要一定年龄经验与阅历。像我这些晚辈可能难以知悉

林海草原 2019年6月8日 回复

已经根据你的邮箱添加你的QQ

青山 2019年6月8日 回复

我以为静态博客和动态博客安装步骤一样,上传个程序包就行,没想到静态博客需要本地的一些特殊的环境,太复杂了。

林海草原 2019年6月8日 回复

只要能上传到托管平台,就不需要本地环境了。不过完全的博客小白是无法操作的,这需要有一点博客维护经验。

来语直搜 2019年6月8日 回复

【致博主】每个独立博客背后都有一位用心经营的博主,优秀的博客应当被铭记!来语直搜发起“孤岛直达”计划,为精品博客免费提供搜索直达服务,让喜欢你博客的人不必在茫茫导航中寻找链接!
如需提交站点,建议至少满足以下条件:
1.博客有明确、特异、长期稳定的博客站名;
2.博客坚持以原创为主,非原创内容不超过全站30%;
3.博客已在友链明显位置添加来语直搜主页链接。
地址:http://www.zhisou.cc/linksubmit.php

熊猫小A 2019年6月9日 回复

关于迁移到静态博客,我已经开始做一些准备工作了。从 Typecho 导出文章时可以使用我写的这个插件:https://blog.imalan.cn/archives/303/,支持把文章属性包括自定义字段直接导出为 Hexo 的 front-matter,应该是不错的。其实如果对 Hexo 等程序编译文章的机制有所了解的话,基本可以做到无痛迁移。还是那句话,静态博客最难受的是评论。

林海草原 2019年6月10日 回复

大佬,膜拜大佬!
静态博客评论真是难受,我国大陆地区特殊的网络环境,哎。。。。。

发表回复