一键迁移typecho到hexo

为了更好的写博客,最近打算把博客静态化,发现了node写的hexo。顺便也可以直接利用github和coding的pages来搭建博客同时把之前闲置的未备案域名lailin.xyz利用起来.

写了一个php的typecho一键转换的小程序:github

支持:

  • 文档一键转存为md文件
  • 字符编码转换(gbk=>utf8)
  • 图片/附件一键转存到本地
  • 图片/附件一键转存到七牛云

使用说明:

下载

1
2
git clone https://github.com/mohuishou/typecho2hexo.git
composer install

修改配置文件

复制config.example.php并重命名为config.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
return [
"db"=>[
"host"=>"localhost", //数据库地址
"port"=>3306, //端口号
"name"=>"typecho", //数据库
"user"=>"root", //数据库用户名
"password"=>"", //数据库密码
"prefix"=>"typecho" //表前缀
],
"is_gbk"=>false, //是否开启gbk转utf8(有些数据库里面储存的不是utf8格式需要开启这个选项)
//附件相关
"attachment"=>[
"is_download"=>true, //是否下载附件
"type"=>"file" //附件保存类型:file 或者 qiniu
],
//七牛云储存相关
"qiniu"=>[
"access_key"=>"",
"secret_key"=>"",
"bucket_name"=>"blog", //七牛空间名
"domain"=>"http://" //七牛外链域名,必须设置,带http://
]
];

运行

1
php index.php //命令行

说明

1.如果出现上传错误,附件下载使用curl,下载时间最长为60s,如果有比较大的文件或者是网路环境不好,请手动更改一下Lib/Attachment.php,当中的文件最长下载时间

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
protected function download($url,$filename,$dir){
$path=$dir."/".$filename;
$ch=curl_init();
$timeout=60; //文件最长下载时间
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$res=curl_exec($ch);
curl_close($ch);
//检查文件夹是否存在
if(!file_exists($dir)) mkdir($dir);
file_put_contents($path,$res);
return $path;
}