はじめに
THE・年度末! nikkieです。
先日PythonでNotionにpageを作るHello worldをしました。
今回はMarkdownファイルの内容と同じpageを作ります!
目次
- はじめに
- 目次
- 前回:PythonでNotionにpageを作る
- Markdownファイルの内容でNotionにpageを作る
- MartianでMarkdownをNotion向けのJSONに変換
- Markdownの内容でNotionにpageを作る
- martianやNode.jsを触って
- 終わりに
前回:PythonでNotionにpageを作る
- Notionの設定
- インテグレーション作成
- シークレットを控える
- 親pageをインテグレーションにコネクト
- インテグレーション作成
- Pythonスクリプト
- notion-clientで実装
- インテグレーションのシークレットを渡す
- notion-clientで実装
Markdownファイルの内容でNotionにpageを作る
前回書き込んだのは、1つのparagraph(段落)です。
Hello World こんにちは
今回は手元にMarkdownファイルがあり、マークアップも含めてNotionのpageにしたいです。
つまり、ヘッダーはNotionでもヘッダーになりますし、強調や箇条書きもNotion上で強調だったり箇条書きになったりします。
やり方を調べたところ、以下が見つかりました。
どうやらMarkdownファイルの内容をそのままNotionのpageとして作成しても、マークアップは解析されないようです。
見つけた記事ではMartianというJavaScript製ライブラリを使って、Markdownの内容をNotionのAPIに沿ったJSON形式に変換し、それをもとにpageを作っています
これと同様のPython実装はまだ見つけられていないので、今回はJavaScriptとPythonのタッグでアプローチします。
MartianでMarkdownをNotion向けのJSONに変換
開発環境情報です
% npm --version 8.19.3 % node --version v18.13.0
- @tryfabric/martian 1.2.4
Markdownの内容でNotionにpageを作る
上のMatrianのスクリプトで作ったJSONをPythonスクリプトで読み込んで、クライアントからpageを作ります。
children
引数にJSONを渡します
MarkdownファイルはmartianのREADMEと同内容です。
hello _world_ *** ## heading2 * [x] todo
私はPythonが一番慣れているので、JavaScriptとPythonという形で進めています。
Notionのclientは公式からJavaScriptで提供されている1ので、参考記事にならって2全部JavaScriptで実装するという道も全然あります。
martianやNode.jsを触って
慣れないJavaScriptを使った感想を残します
- Pythonの対話モードのようにやりたい!
- ->
node
で対話モード - 対話モードで
.load script.js
めっちゃ便利。python -i
みたいなものじゃん! - ref: Node.js REPL: From Basics to Advanced | by JavaScript-World | Medium
- ->
- 引数の扱いは
process.argv
で- (commanderなるもの便利そう〜)
- ファイルの扱い
fs
- (promiseでチェーンするのはNodeっぽい印象。私のJavaScriptには無限の伸びしろがある)
- Pythonで
json.dump
やjson.dumps
なんだが、JavaScriptでは?JSON.stringify()
!!
終わりに
Markdownファイルの内容でNotionにpageを作る方法が1つ見つかりました!
Martianが変換した結果のJSONについては、以下が積ん読です。
JavaScriptのコード、お気づきの点があったらぜひ教えてください! うまくなりたいのです
- ↩
- 参考記事の最後には、ソースコードへのリンクもあります:GitHub - cizneeh/markdown-to-notion-demo↩