🐡

Qiita/はてブの記事をZennでも管理する

2020/10/12に公開

概要

Qiitaとはてなブログで書いた記事をZennで管理したい欲がでて、Zenn形式に変換するコマンドを作りました。
とりあえずダウンロードしてきて、下書きとして保存できるようにすることが目的です。
公開する前には目を通して編集から公開されるようなフローを想定しています。

zenn-importer : https://github.com/ikawaha/zenn-importer

インストール

GO111MODULE=on go get -u github.com/ikawaha/zenn-importer

利用方法

$ zenn-importer
zenn-importer: a command to save blog posts in zenn format.
subcommands:
  - qiita
  - hatena

Qiita

とくになにも事前準備は必要ありません。QiitaのユーザーIDだけわかれば大丈夫です。

$ zenn-importer qitta -user ikawaha -verbose
https://qiita.com/api/v2/users/ikawaha/items?page=1
Goa v3 のテストをシュッとする
人生で何度目かのダブル配列TRIEを書いた
形態素解析器 kagome のユーザー辞書の使い方
goa でデザイン・ファーストをシュッとする
golang で string のポインタを取得する
Luceneで使われてるFSTを実装してみた(正規表現マッチ:VMアプローチへの招待)
メモ:golang で []byte と string の読み込みを透過的に扱う試行錯誤
Elasticsearch CheatSheet
...snip

はてなブログ

準備として、以下を確認します。

キー
blog はてなブログのアドレス部分 ikawaha.hateblo.jp
user はてなのユーザーID ikawaha
apikey はてなでAtomPubキー と呼ばれるAPIキー http://blog.hatena.ne.jp/my/config/detai で発行可能

apikey ははてなブログのパスワードでなくて、上のURLで発行できるAPIキーであることに注意してください。

記事は下書きも含めてダウンロードします。

$ zenn-importer hatena -blog ikawaha.hateblo.jp -user ikawaha -apikey **** -verbose
Go module の最大サイズ 500MB に挑む
形態素解析器 kagome v2 をリリースした
備忘:heroku で go.mod 環境のアプリをデプロイする
Goa v3 でサービスメソッドに到達する前に発生するエラーをカスタマイズする
Goa v3 の入力と出力のバリデーション
Goa v3 における Trailing Slash 問題を整理する
Goa v3 でレスポンスをXMLにしたときトップレベルのタグを指定したい
Goa v3 のサービスメソッドを単体テストする
Goa v3 の HTTPトランスポートの Payload どうしてます問題
GoLandでEmacsキーバインドにしているとTabが入力できない
Rust の開発環境を整える
Goa v3 で application/x-www-form-urlencoded を使う
Goa v3 で Default は required な Attribute には効かない
2019年買い物ふりかえり
...snip

制限

  • Zennの記事タイトルは60文字までなので、60文字を越えるタイトルは切り詰められます
  • 記事内容が空だとZennの同期が失敗するので <empty> というテキストを挿入します
  • はてなブログで、Markdownで書かれていない記事や独自のHTMLタグはそのまま抽出されます
  • はてなブログの画像はダウンロードできません

用法用量をまもってお使いください。フィードバック頂けると有難いです。

Happy hacking!

Discussion