侧边栏壁纸
  • 累计撰写 82 篇文章
  • 累计创建 56 个标签
  • 累计收到 2 条评论

目 录CONTENT

文章目录

typecho文章转hexo .md

修仙大佬
2020-02-03 / 0 评论 / 0 点赞 / 8 阅读 / 478 字 / 正在检测是否收录...

起因

博客本身使用typecho,因为一直想用Markdown写文章,觉得很简洁。其他开源程序兼容又不那么完美。就入坑hexo了

网搜资料

typecho2Hexo:https://github.com/NewbMiao/typecho2Hexo

README

typecho2Hexo

Typecho 文章批量转 Hexo Markdown 文档。

Usage

1.修改数据库配置,表前缀

// 根据实际情况更改

$db->connect('localhost','username','password','database');
$prefix = 'tc_';

2.运行

php converter.php

typecho2Hexo代码:

<?php
// 运行 php converter.php
$db = new mysqli();
// 根据实际情况更改
$db->connect( 'localhost', 'username', 'password', 'database' );
$prefix = 'typecho_';
$sql = <<<TEXT
select title,text,created,category,tags from {$prefix}contents c,
 (select cid,group_concat(m.name) tags from {$prefix}metas m,{$prefix}relationships r where m.mid=r.mid and m.type='tag' group by cid ) t1,
(select cid,m.name category from {$prefix}metas m,{$prefix}relationships r where m.mid=r.mid and m.type='category') t2
where t1.cid=t2.cid and c.cid=t1.cid
TEXT;
$res = $db->query( $sql );
if ( $res ) {
	if ( $res->num_rows > 0 ) {
		while ( $r = $res->fetch_object() ) {
			$_c = @date( 'Y-m-d H:i:s', $r->created );
			$_t = str_replace( '<!--markdown-->', '', $r->text );
			$_tmp = <<<TMP
title: {$r->title}
categories: {$r->category}
tags: [{$r->tags}]
date: {$_c}
---
{$_t}
TMP;
			// windows下把文件名从UTF-8编码转换为GBK编码,避免出现生成的文件名为乱码的情况
			if ( strpos( PHP_OS, "WIN" ) !== false ) {
				$name = iconv( "UTF-8", "GBK//IGNORE", $r->title );
				echo $name . '<br>';
			} else {
				$name = $r->title;
				echo $name . '<br>';
			}
			// 替换不合法文件名字符
			file_put_contents( str_replace( array( " ", "?", "\\", "/", ":", "|", "*" ), '-', $name ) . ".md", $_tmp );
		}
	}
	$res->free();
}
$db->close();

解决办法

网站根目录下新建目录typecho2Hexo,目录下新建converter.php文件,把上面代码拷贝进去

登录ssh执行

php converter.php

php-converter

converter.php所在目录会把typecho所有文章转成.md文章

文章放入hexo

将转换后的文章下载至 source/_posts/ 目录下

执行hexo clean && hexo g && hexo s

0

评论区