博客从wordpress迁移到hexo github pages平台
越来越没有心思来管理一个独立的wordpress博客,linode慢出翔来好久了,还是把blog迁移到github pages吧,迁移过程做个简单的记录。
安装hexo
首先要安装好node和git,然后
1 | $ sudo npm install hexo-cli -g |
打开浏览器输入http://localhost:4000 就可以预览页面了
_config.yml中修改网站和url相关信息
1 | # Site |
安装next主题
blog目录下执行
1 | $ npm install hexo-theme-next |
编辑_config.xml将主题修改为next:
1 | theme: next |
拷贝next配置文件
1 | $ cp node_modules/hexo-theme-next/_config.yml _config.next.yml |
修改_config.next.yml
1 | darkmode: true |
安装搜索插件
1 | $ npm install hexo-generator-searchdb --save |
生成tags和categories页面
1 | $ hexo new page tags |
source/tags/index.md文件内容修改:
1 | --- |
source/categories/index.md文件内容修改为:
1 | --- |
迁移wordpress
blog目录下安装hexo-migrator-wordpress插件
1 | $ npm install hexo-migrator-wordpress --save |
默认turndown组件会把\n替换为空格,导致导入文章没有正确的换行,可以修改turndown的源代码,turndown.cjs.js:
1 | var text = node.data.replace(/[ \r\n\t]+/g, ' '); |
修改为
1 | var text = node.data.replace(/[ \r\t]+/g, ' '); |
从wordpress导出所有内容,dashboard->tools->export菜单,选择all content,然后点击download export file会下载一个xml文件。如果此文件中恰好有连载一起的{#
字符,导入时会有错误:
1 | FATAL { |
转义或简单的在两个字符之间加个空格。
从xml文件导入
1 | $ hexo migrate wordpress ~/Downloads/openwaresnet.WordPress.2020-12-04.xml |
因为wordpress用了高亮插件,使用sed,mac上使用gsed对所有source/_posts下的文件做简单替换:
1 | $ gsed -i 's/\\\[bash\\\]/```js/g' * |
部署到github pages
登录github新建public仓库,因为要发布为github pages,所以仓库的名字必须为your_github_username.github.io
安装部署插件
1 | $ pm install hexo-deployer-git --save |
修改_config.yml文件:
1 | deploy: |
发布到gh-pages分支
绑定域名
在域名供应商修改dns记录,添加CNAME @默认记录,指定其值为your_github_username.github.io
source目录下添加CNAME文件,其内容为绑定的独立域名,如
1 | openwares.net |
发布
1 | $ hexo clean & hexo g -d |
撰写
新post的文件名添加上时间方便管理,_config.yml
1 | new_post_name: :year-:month-:day-:title.md |
然后生成名字为title的post
1 | $ hexo new <title> |
使用喜欢的md编辑器打开source/_posts/***title.md撰写即可。