请问Typecho如何导出文章到Hexo

现状:博客最早使用的是Wordpress,后来转到Typecho,现在想折腾Hexo,但是博客文章数还是蛮多的(差不多也写了几年吧),说折腾Hexo也不全对,还有一些别的原因,刚入门Hexo,对它的一些工具,插件,代码等还需要研究,现在的问题就是想解决如何把Typecho中的文章尽量无损的导出到Hexo(导出到MD格式就行),还请看到的大侠帮帮小弟,在此先谢过了!

阅读 9.5k
3 个回答

我记得Typecho在数据库里面存的文章就是原始的Markdown格式的吧。。。应该可以写个SQL提取出来。。。但是我不会。。。所以我只能提供这个思路了。。。或者你自己手动去数据库里面复制粘贴吧

我很傻的用了模板两个文件,点了339下。
然后把这339个文件放到了_posts,
再hexo s,
一切都是那么美...

缺点1:有多少文章就要点多少下
缺点2:全部转成html,没能保持markdown(因为我的笔记类似微博,内容就是一句话)

新建模板

放入以下两个文件

因为我的固定链接是:http://zlun.yijile.com/t/344
用的cid,所以permalink直接用cid,内容虽然会有HTML但是markdown都支持HTML

post.php

---
layout: 
title: <?php $this->title() ?> 
date: <?php $this->date('Y/m/d H:i'); ?> 
updated: 
tags: [<?php $this->tags(',',false,'none'); ?>] 
categories:  <?php $this->category(',',false); ?> 
permalink: <?php $this->cid() ?> 
---

<?php $this->content(); ?>

index.php

<?php
/**
 * yml-export
 *
 * @package yml-export
 * @author zlun
 * @version 0.1
 * @link http://zlun.yijile.com
 */
 ?>
<!DOCTYPE html>
<html lang="zh-cn">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><?php $this->archiveTitle(array(
            'category'  =>  _t('分类 %s 下的文章'),
            'search'    =>  _t('包含关键字 %s 的文章'),
            'tag'       =>  _t('标签 %s 下的文章'),
            'author'    =>  _t('%s 发布的文章')
        ), '', ' - '); ?><?php $this->options->title(); ?></title>

    <?php $this->header('generator=&template=&pingback=&xmlrpc=&wlw=&atom=&rss1=&rss2='); ?>
  </head>
  <body>
    <?php $this->widget('Widget_Contents_Post_Recent', 'pageSize=10000')->to($archives);
    $year=0; $mon=0; $i=0; $j=0;
    $output = '<div id="archives">';
    while($archives->next()):
        $year_tmp = date('Y',$archives->created);
        $mon_tmp = date('m',$archives->created);
        $y=$year; $m=$mon;
        if ($mon != $mon_tmp && $mon > 0) $output .= '</ul></li>';
        if ($year != $year_tmp && $year > 0) $output .= '</ul>';
        if ($year != $year_tmp) {
            $year = $year_tmp;
            $output .= '<h3>'. $year .' 年</h3><ul>'; //输出年份
        }
        if ($mon != $mon_tmp) {
            $mon = $mon_tmp;
            $output .= '<li><span>'. $mon .' 月</span><ul>'; //输出月份
        }
        $output .= '<li>'.date('d日: ',$archives->created).'<a href="'.$archives->permalink .'" download="'.$archives->cid .'.md">'. $archives->title .'</a> <em>('. $archives->commentsNum.')</em></li>'; //输出文章日期和标题
    endwhile;
    $output .= '</ul></li></ul></div>';
    echo $output;
?>
  </body>
</html>

等把模版移植,就换上hexo

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进