Created
May 16, 2022 07:41
-
-
Save 0x401/4c87b764b0c3c0a86d87e94ff9b36cdf to your computer and use it in GitHub Desktop.
将 Typecho 文章转为 Hexo 格式
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
const mysql = require('mysql') | |
const fs = require('fs'); | |
const moment = require('moment') | |
var con = mysql.createConnection({ | |
host: "", | |
user: "", | |
password: "", | |
database: "" | |
}); | |
con.connect(function (err) { | |
if (err) { | |
console.log(err.message); | |
return; | |
}; | |
}); | |
var sql = "select title,slug,text,created,modified,category,tags from typecho_contents c,(select cid,group_concat(m.name) tags from typecho_metas m,typecho_relationships r where m.mid=r.mid and m.type='tag' group by cid ) t1,(select cid,m.name category from typecho_metas m,typecho_relationships r where m.mid=r.mid and m.type='category') t2 where t1.cid=t2.cid and c.cid=t1.cid" | |
con.query(sql, function (err, posts) { | |
if (err) { | |
console.log(err.message); | |
return; | |
}; | |
posts.forEach(function(post){ | |
var title = post.title; | |
var slug = post.slug; | |
var text = post.text.replace('<!--markdown-->',''); | |
var tags = post.tags; | |
var cat = post.category; | |
var created = moment.unix(post.created).format("YYYY-MM-DD HH:mm:ss"); | |
var updated = moment.unix(post.modified).format("YYYY-MM-DD HH:mm:ss"); | |
var filename = "./post/" + slug + ".md"; | |
fs.appendFileSync(filename, "---\n"); | |
fs.appendFileSync(filename, "title: " + title + "\n"); | |
fs.appendFileSync(filename, "date: " + created + "\n"); | |
fs.appendFileSync(filename, "updated: " + updated + "\n"); | |
fs.appendFileSync(filename, "categories: " + cat + "\n"); | |
fs.appendFileSync(filename, "tags:\n- " + tags.replace(',',"\n- ") + "\n"); | |
fs.appendFileSync(filename, "---\n"); | |
fs.appendFileSync(filename, text); | |
}) | |
}) | |
con.end() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment