はじめに
七尾百合子さん、お誕生日 240日目 おめでとうございます! nikkieです。
毎週水曜のリリース報告エントリです1。
目次
sphinx-notion 0.0.6 & 0.0.7
前回:2025年8月27日(水)のリリース - nikkie-ftnextの日記
https://pypi.org/project/sphinx-notion/0.0.7/
PyCon mini 東海 2025のワークショップ資料作成に使ったことで、大きく機能追加
0.0.6
- テキストにURLをつける実装が壊れていたのを修正
- 子要素は一度に100までと知り、分割してアップロードするようワークアラウンド
- admonition のうち、note, hint, tip をサポート開始(※伸びしろあります)
0.0.7
- ordered list をサポート
- 引用をサポート
- 斜体をサポート
- code-block の
:caption:で Notion のコードにも caption 設定 literalincludeしたとき、ファイル末尾の改行が入っていたのを削除- マークアップのために付与した半角スペースを削除していたが、URL の前後だけ空白を残すように調整
もう少し機能追加の余地を感じていますが、docutils -> Notion API 向けの JSON という直接変換だと見通しが悪くなってきたので、独自のクラスを実装しようかなと考え始めています。
見通しが悪くなってきたと感じた例:URLの前後だけ空白を残す
https://github.com/ftnext/sphinx-notion/blob/0.0.7/src/sphinx_notion/writers.py#L97-L110
if ( "link" in element["text"] and element["text"]["link"]["url"] == element["text"]["content"] ): paragraph[-1]["text"]["content"] += " " elif ( "link" in paragraph[-1]["text"] and paragraph[-1]["text"]["link"]["url"] == paragraph[-1]["text"]["content"] ): element["text"]["content"] = ( " " + element["text"]["content"] )
今週のリリースは以上です
終わりに
自分がユーザとなったことで、また(sphinx-revealjs 製)スライドの変換とは別の用途で使ったことで、 sphinx-notion に多くの機能を追加できました。
PyCon mini 東海の当日や翌日、SWE-1.5 に Notion API の JSON の仕様を調べてもらいつつ、テストコード -> 実装と私は自然言語しか打ってないですがどんどん進んでいくのが魔法のようでした
来週は桃子ちゃんです!
https://lantis.jp/imas/ssr/
- 始めたきっかけは765プロです(頭ミリオン) 2025年4月2日(水)のリリース - nikkie-ftnextの日記↩