Qiitaからはてなブログに記事を一括インポートする
手順
- tenntenn/qiitaexporter でQiitaの記事のmarkdownソースをダウンロードする
- x-motemen/blogsync ではてなブログにpostする
Qiitaの記事のmarkdownソースをダウンロードする
Qiitaの記事はURL末尾を .md
にすることでmarkdown形式のテキストを返すAPIがあるため簡単なスクレイピングツールで手元にダウンロードしてこられます。
今回はtemplateを注入を利用してblogsync書式にするのがやりやすいためqiitaexporterを使いました(Qiita API v2を使って記事を取得してきます)。
Qiita記事をダウンロードするツールは他にもいくつか候補があります(例: qiita_export_all)ので、必要に応じて代替策を講じてください。
qiitaexporterには画像ファイルをダウンロードして自分でホストできるようにimgタグを自動で書き換える機能があるのですが、はてなブログへの画像アップロードを実現するのが大変そうだったので、今回はタグの書き換えを無視するオプションを自分で追加しました。
git clone https://github.com/laiso/qiitaexporter.git
cd qiitaexporter/
go build
あとは qiitaexporter のREADMEに従いmarkdownファイルをダウンロードしてください。
書き出されるmarkdownファイルの形式を blogsync.template
というファイルに定義します
# blogsync.template
---
Title: {{.Title}}
Date: {{.Date}}T00:00:00+09:00
---
**この記事は[Qiita]({{.URL}})の記事をエクスポートしたものです。内容が古くなっている可能性があります。**
{{.Body}}
export QIITA=XXX
./qiitaexporter -imgignore -template blogsync.template
ls posts/
※前述のとうり-imgignore
オプションはフォークで追加したものです
はてなブログにpostする
blogsync にはファイルを指定してはてなブログへ記事を投稿する機能があります。これを使いQiitaからダウンロードしたmarkdownファイルを指定して一括投稿します。
blogsync自体のセットアップはREADMEに従ってください。はてなブログの編集モードはあらかじめMarkdownモードに設定しておきます。
export BLOGURL=XXX.hatenadiary.jp
find posts -name "*.md" | xargs -I $ sh -c "blogsync post ${BLOGURL} < $"
一括投稿する前に blogsync post ${BLOGURL} < posts/SOME.md
で1記事だけ試してみるとよいです。
免責事項
- 移行後も記事内の画像URLはQiitaのサーバー(Amazon S3)を参照しています
- blogsyncで大量にブログ記事を投稿するとロールバックがたいへん(新規記事として投稿される)なので検証環境を作ることをおすすめします
Author And Source
この問題について(Qiitaからはてなブログに記事を一括インポートする), 我々は、より多くの情報をここで見つけました https://qiita.com/laiso/items/f82ff9da7d3049801475著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .