本博客前面的博文中曾写过动态博客转入静态博客的部分问题。今天在测试时,又发现了一个新问题,在此简单叙述问题的情况和解决方法。
转入静态博客的方法
万能的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
相关文章:
- 静态博客搭建方法
- typecho转静态博客的方法(针对WordPress及其他博客程序也适用)
7 条回复
林叔,你有在线的联系方式么,我想作为一个后辈,向您问一些问题,也不是特别奇怪的问题,但我认为这些问题,需要一定年龄经验与阅历。像我这些晚辈可能难以知悉
已经根据你的邮箱添加你的QQ
我以为静态博客和动态博客安装步骤一样,上传个程序包就行,没想到静态博客需要本地的一些特殊的环境,太复杂了。
只要能上传到托管平台,就不需要本地环境了。不过完全的博客小白是无法操作的,这需要有一点博客维护经验。
【致博主】每个独立博客背后都有一位用心经营的博主,优秀的博客应当被铭记!来语直搜发起“孤岛直达”计划,为精品博客免费提供搜索直达服务,让喜欢你博客的人不必在茫茫导航中寻找链接!
如需提交站点,建议至少满足以下条件:
1.博客有明确、特异、长期稳定的博客站名;
2.博客坚持以原创为主,非原创内容不超过全站30%;
3.博客已在友链明显位置添加来语直搜主页链接。
地址:http://www.zhisou.cc/linksubmit.php
关于迁移到静态博客,我已经开始做一些准备工作了。从 Typecho 导出文章时可以使用我写的这个插件:https://blog.imalan.cn/archives/303/,支持把文章属性包括自定义字段直接导出为 Hexo 的 front-matter,应该是不错的。其实如果对 Hexo 等程序编译文章的机制有所了解的话,基本可以做到无痛迁移。还是那句话,静态博客最难受的是评论。
大佬,膜拜大佬!
静态博客评论真是难受,我国大陆地区特殊的网络环境,哎。。。。。