Giter VIP home page Giter VIP logo

hatena2notion's Introduction

hatena2notion

はてなブログのエクスポートデータから Notion のインポートデータを作成します。

はてなブログの表現を完全に再現することはできませんが、ある程度体裁の取れた状態で Notion へインポートすることができます。

Notion の非公式 API を使用しているため使用は自己責任でお願いします。

実行環境

go env が異なる場合は Go をインストールして ./hatena2notion の代わりに go run main.go してください。

GOARCH="amd64"
GOOS="darwin"

設定

Notion トークンを環境変数 NOTION_TOKEN に設定します。

Notion トークンの取得方法は下記の記事を参照してください。

$ export NOTION_TOKEN=<YourNotionToken>

オプションで置換したい URL を指定できます (完全一致のみ)。

$ export OLD_URL='https://alpacat.hatenablog.com/entry/'
$ export NEW_URL='https://alpacat.com/blog/'

インポートデータの作成

インポートデータの作成は、(1)エクスポートデータの抽出・整形、(2)画像のダウンロードと Notion へのアップロード、画像 URL の置き換えという手順で行います。

(1) エクスポートデータの抽出・整形

<export_file> にはてなブログのエクスポートデータファイルを指定して下記を実行します。

$ ./hatena2notion -f <export_file> extract

整形不可能な Amazon 商品へのリンクを含むファイルが画面に出力されます。インポート後にご確認ください。

csv/meta.csv にメタデータファイルを作成します。メタデータファイルは Notion に Table (Database) としてインポート (Merge with CSV) してください。

(2) 画像のダウンロードと Notion へのアップロード、画像 URL 置き換え

下記コマンドを実行します。記事毎に3秒のスリープを入れているため時間がかかります。

$ ./hatena2notion upload

はてなに保存されている画像 URL が Notion にアップロードした画像 URL に置き換えられ、整形済みの HTML ファイルが html/ 以下に作成されます。

ページタイトルに / を含むものは : に置換されています。

HTML ファイルは手動で Notion へ一括インポートしてください。

hatena2notion によってアップロードした画像を Notion Blog で表示したい場合は、下記コミットを参考に画像ソースを修正してください。

また、ダウンロードした画像は images/ 以下に保存されます。

機能詳細

  • はてなに保存されている画像は非公式 API によって Notion にアップロードされ、画像 URL も置換されます
  • cite 形式のリンクは通常の a タグのリンクに置き換えられます
  • iframe は可能であれば a タグのリンクに置き換えられます
  • 脚注の a タグは削除されます
  • Amazon 商品へのリンクは再現できません(手動で対応してください)
  • -- だけの行は <hr/> に置換されます

hatena2notion's People

Contributors

otoyo avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.