Kaede Akatsuki

中二病也要开发 Android

Project NotionDown 🇯🇵

Page Cover

Notion Down とは、 Notion ページを Markdown ファイルにコンバートする Python ツールです。ちなみ、Hexo などのブログとのインテグレーションも可能です。このレポのインスピレーションやゴールは、「Notion のみでノートしながら自動的に目標な MD ファイルを生成する」ことで、ライティングの断片化を避ける。

Example

kaedea.com
hexo.kaedea.com
基于 Notion 的笔记写作和博客分享自动化方案

Features

今 NotionDown のできること:

  • Notion ページのコンバート
    • Basic Notion PageBlocks parsing
    • Notion images refer & download
    • Notion nested list blocks
    • Notion obfuscated-links parsing
    • Notion table block (Collection)
    • Notion subpage / alias link parsing
  • アドバンス Notion PageBlocks サポート
    • Pullquote Blocks (Notion ColumnList)
    • イメージソースの変わり
      • Replace notion image url with image file
      • Replace notion image url with other CDN urls
    • Notion page embed blocks
  • ライティングインハンス
    • Noton custom ShortCode blocks that control parametered MD files generating
    • Mixed CN-EN text separation format (by pangu)
    • Spelling inspect (by pycorrector)
  • Hexo インテグレーション
    • HEXO page properties config
    • HEXO generate
    • HEXO tags plugin
  • PyPI パブリッシャ
  • Notion APIs
    • notion-py (3rd party)
    • notion-sdk (official)

ワークフロー

NotionDown Workflows

NotionDown は notion-py を使って Notion Page のデータを読み込む、そしてコンフィグレーションによって、目標な MD ファイルを生成する。

Basic usage

notion-down >> Notion APIs (notion-py) >> Notion pages data >> generating MD files

Advanced usage

WebHook >> notion-down >> Notion APIs (notion-py) >> Notion pages data >> generating MD files >> Copy into Hexo source >> generating webpages >> push to GitHub pages

Getting Started

Prepare

準備:

  1. notion_token_v2 を取る。
  2. ルーツページの public notion blog_url を取る。
  3. notion-down/main.py を実行する。

notion_token_v2 のゲットする方法は ここに ある。

NotionDown Posts Template を自分の Notion Workspace にコピーする、そしてそのURLを blog_url をしてつかいます(既存するルーツページを使うのもオッケー)。ちなみに、ルーツページを Public にセットすることが必要です。

NotionDown の実行

notion-down/main.py の使い方:

1
2
3
4
5
6
7
8
9
10
11
# Run with cli cmd
PYTHONPATH=./ python main.py \
--blog_url <Notion Post Url> \
--token_v2 <token_v2>

# or
PYTHONPATH=./ python main.py \
--config_file '.config_file.json'

# アーギュメントのコンフィグ:cli-args, config_file or SysEnv parameters
# Priority: cli args > config_file > SysEnv parameters > NotionDown default

くわりコンフィグレーションはここに Custom Configurations。

以降は NotionDown のそれぞれな使い方を紹介する。

CI Builds

チェック /.circleci/config.yaml:

  • test-build-readme: README.md を生成する CircleCI Jobs。
  • test-build-hexo: デーモン Hexoソースコードを生成する CircleCI jobs、チェック https://github.com/kaedea/notion-down-hexo-showcase。
  • test-run-pycorrector: スペルチェックの CircleCI jobs。

Showcase Jobs

デーモンスクリプトは /jobs にあり、そしてアウトプットは /dist。

UnitTest Examples

チェック test/。