转移wordpress文章到hexo注意事项

自定义域名问题

想使用自定义域名,如 blog.9wy.net, 需要在source目录下新建CNAME文件, 里面的内容为 blog.9wy.net

再生成部署一下就OK了。

解决wordpress导出中文文件名的问题

将博客文章从wordpress转移到hexo过程中遇到了个小问题。从wordpress导出的文章,导入到hexo后,发现source/_post/下多了一堆十六进制混杂着英文作为文件名的.md文件。其实,注意观察我们也可以知道,wordpress导入文章到hexo实际上是将一个xml文件中的各文章转换成source/_post/目录下的Markdown格式的md文件,而这些文件名的命名则是根据文章的title命名的,而十六进制的出现是因为文章标题中的中文所致。在wordpress转移到hexo的过程中,我们的文章难免会出现些问题,我们可能还需要对导入的文章修改一下。

可以使用以下脚本,向原作者致敬

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/bash
#Author: Coande Email: [email protected]
#rename the md file of hexo
#将当前目录下的文件列表保存到“filename.list”文件中
ls > filename.list
#依次读取“filename.list”中的文件名
for filename in $(cat filename.list)
do
#判断当前读取到的文件名是否本脚本和本脚本生成的文件,不是才执行
if [ "$filename" != "rename.sh" -a "$filename" != "filename.list" ]
then
#获得<filename>对应文件中的title的值,并对title值中的空格、“/”、“!”做了处理
title=$(cat $filename | grep title | sed -n '1p' | cut -d ":" -f 2 | sed -e 's/ /_/g ; s/^_//g ; s/\//-/g ; s/\!/\\!/g')
#过滤掉文件内容中没有title的文件和文件名正常的文件
if [ -n "$title" -a "$filename" != "$title.md" ]
then
#将<filename>文件名重命名为title的值.md
mv $filename $title.md
fi
fi
done
rm -f filename.list
echo done!