検索
ホームページバックエンド開発Python チュートリアルMac OSX Book のハイライトを Obsidian Vault または Markdown ファイルにエクスポートする

Exporting Mac OSX Book Highlights into an Obsidian Vault or Markdown Files

Readwise は強力なツールですが、その可能性を最大限に発揮できるのは、複数のプラットフォームにわたって広範囲に注釈を付けるユーザーです。 私の主な使用例は、電子ブックのハイライトとメモを Obsidian にインポートすることでした。私も Web ページに注釈を付けていますが、Obsidian Web Clipper を Orion ブラウザー (Chrome 拡張機能の使用を可能にする) と組み合わせると、iPad 上でもこれらを Obsidian に直接送信します。

これにより、サブスクリプションなしでハイライトをインポートする方法を探すことになりました。

Readwise ハイライトを Obsidian にインポートする

Readwise の半自動ハイライト検索は Kindle 本に限定されています。シンプルなアプリ内ボタンでインポートを開始します。 Apple Books などの他のソースの場合は、手動による介入が必要です。アプリ内のハイライトをすべて選択し、Readwise にメールで送信してください。

Readwise Obsidian プラグインは、これらをノートとしてインポートします。 その構成は簡単かつ効果的です:

Exporting Mac OSX Book Highlights into an Obsidian Vault or Markdown Files

ただし、Readwise のインポート設定はプラグイン自体を超えて拡張されます。 Readwise Web サイトのエクスポート設定ページでは、追加のカスタマイズが可能です:

Exporting Mac OSX Book Highlights into an Obsidian Vault or Markdown Files

Obsidian 統合カードを使用すると、さらに改良することができます:

Exporting Mac OSX Book Highlights into an Obsidian Vault or Markdown Files

デフォルトのハイライト テンプレートは次のようなメモを生成します:

Exporting Mac OSX Book Highlights into an Obsidian Vault or Markdown Files

「カスタム書式設定を使用」を使用してエクスポート テンプレートをカスタマイズして YAML フロントマッターを追加するつもりでしたが、実行しませんでした。テンプレートの柔軟性は明らかです:

Exporting Mac OSX Book Highlights into an Obsidian Vault or Markdown Files

電子書籍のハイライトの使用が限られていることを考慮して、定期購読を必要としない別の方法を検討しました。

メールで送信された電子ブックのハイライトをインポートするための Obsidian プラグイン

私の最初のアプローチは、既存の Readwise ワークフローをミラーリングして、Gmail インポートを処理するプラグインを作成することでした。機能的ではありましたが、扱いにくく扱いにくいことが判明しました。 Gmail API は困難であることが判明し、コミュニティ リリースには専用のサービスが必要でした。さらに、電子メールで送信されたハイライトでは限定的なメタデータが提供されます。

その後、macOS ブック アプリがハイライトとメモのデータを、わかりにくいとはいえアクセス可能な SQLite データベースに保存していることを発見しました。 Calibre のインポート メカニズムはこれを示しています。 私はほとんどの電子書籍を Books にインポートし、多くの電子書籍を Kindle から購入しているため (Readwise で使用される API が存在する可能性があります。これについては別の投稿で説明します)、スクリプトと潜在的な Kindle API が私の問題を解決できる可能性があります。

Python を使用して (または手動で) Apple Books のハイライトを Obsidian にインポートする

タイトルでは Python について言及していますが、コーディング経験は必要ありません。以下の Python スクリプトも、マークダウン形式でハイライトをエクスポートするために独立して機能します。

要件

  • Obsidian Python Scripter プラグイン (コミュニティ プラグイン)。
  • オプション: Python ebooklib ライブラリ (拡張メタデータとカバー画像用)。

ebooklib をインストールするには (Python ライブラリのインストールに慣れていない場合)、ターミナルを使用します:

pip install ebooklib

Python OSX ブック ハイライト エクスポート スクリプト

この Python スクリプトを osx_book_notes.py としてダウンロードします:

import os
import glob
import sqlite3
import logging
import sys
from typing import List, Tuple, NamedTuple

# ... (rest of the Python script remains the same) ...

Obsidian Vault の YourVault/.obsidian/scripts/python/ フォルダーに置きます。 (.obsidian フォルダーは非表示になっています。Command Shift . を使用して表示します。必要に応じて、scripts フォルダーと python フォルダーを作成します。)

Obsidian Python Scripter プラグインの構成

Python Scripter プラグインを有効にします。設定で osx_book_notes.py を見つけます。 Vault のルートに直接インポートする場合、変更は必要ありません。ディレクトリを指定するには、「引数の追加」ボタン (引数 3) を使用して、目的のパスを入力します。

Exporting Mac OSX Book Highlights into an Obsidian Vault or Markdown Files

インポートの実行

ハイライトをインポートするには、Command P を押して「Python」を検索し、「Python Scripter: Run osx_book_notes.py」を選択します。

Exporting Mac OSX Book Highlights into an Obsidian Vault or Markdown Files

結果

メモの例:

Exporting Mac OSX Book Highlights into an Obsidian Vault or Markdown Files

将来: 専用の黒曜石プラグイン

私は JavaScript と Python の両方に堪能でしたが、Obsidian プラグイン API の複雑さと UI デザインに取り組む前に、データベース インタラクションのプロトタイプを作成し、機能を確認するために Python スクリプトを優先しました。 Python スクリプトは予想を上回り、Readwise よりも多くのデータを抽出しました。

将来の Obsidian プラグインでは、次のような拡張機能が提供される予定です。

  • 最後のハイライト/アクセス日に基づいて選択的にインポートします。
  • カスタマイズ可能な YAML フロントマター。
  • メモをカスタマイズするためのテンプレート構成。
  • ボールトを開く際の自動同期。

この Python アプローチは、Minimum Viable Product (MVP) を提供します。 私のメインの Apple アカウントでの最初の実行では、多数の偶発的なハイライトが明らかになり、スクリプトを再実行する前にブック アプリでクリーンアップが求められました。 専用のプラグインは、次のようにしてこれに対処します。

  • 最近更新された書籍を識別するためにメタデータを利用します。
  • デフォルトの YAML エントリ (reviewed: false#book/notes タグなど) のオプションを提供します。
  • 選択的インポートを提供します。

現在のソリューションは機能的な回避策を提供しますが、将来のプラグインはより洗練された洗練されたエクスペリエンスを提供する予定です。

以上がMac OSX Book のハイライトを Obsidian Vault または Markdown ファイルにエクスポートするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Pythonの2つのリストを連結する代替品は何ですか?Pythonの2つのリストを連結する代替品は何ですか?May 09, 2025 am 12:16 AM

Pythonに2つのリストを接続する多くの方法があります。1。オペレーターを使用しますが、これはシンプルですが、大きなリストでは非効率的です。 2。効率的ですが、元のリストを変更する拡張メソッドを使用します。 3。=演算子を使用します。これは効率的で読み取り可能です。 4。itertools.chain関数を使用します。これはメモリ効率が高いが、追加のインポートが必要です。 5。リストの解析を使用します。これはエレガントですが、複雑すぎる場合があります。選択方法は、コードのコンテキストと要件に基づいている必要があります。

Python:2つのリストをマージする効率的な方法Python:2つのリストをマージする効率的な方法May 09, 2025 am 12:15 AM

Pythonリストをマージするには多くの方法があります。1。オペレーターを使用します。オペレーターは、シンプルですが、大きなリストではメモリ効率的ではありません。 2。効率的ですが、元のリストを変更する拡張メソッドを使用します。 3. Itertools.chainを使用します。これは、大規模なデータセットに適しています。 4.使用 *オペレーター、1つのコードで小規模から中型のリストをマージします。 5. numpy.concatenateを使用します。これは、パフォーマンス要件の高い大規模なデータセットとシナリオに適しています。 6.小さなリストに適したが、非効率的な追加方法を使用します。メソッドを選択するときは、リストのサイズとアプリケーションのシナリオを考慮する必要があります。

コンパイルされた通信言語:長所と短所コンパイルされた通信言語:長所と短所May 09, 2025 am 12:06 AM

compiledlanguagesOfferspeedandsecurity、foredlanguagesprovideeaseofuseandportability.1)compiledlanguageslikec arefasterandsecurebuthavelOnderdevelopmentsplat dependency.2)

Python:ループのために、そして最も完全なガイドPython:ループのために、そして最も完全なガイドMay 09, 2025 am 12:05 AM

Pythonでは、forループは反復可能なオブジェクトを通過するために使用され、条件が満たされたときに操作を繰り返し実行するためにしばらくループが使用されます。 1)ループの例:リストを通過し、要素を印刷します。 2)ループの例:正しいと推測するまで、数値ゲームを推測します。マスタリングサイクルの原則と最適化手法は、コードの効率と信頼性を向上させることができます。

Python concatenateリストを文字列に入れますPython concatenateリストを文字列に入れますMay 09, 2025 am 12:02 AM

リストを文字列に連結するには、PythonのJoin()メソッドを使用して最良の選択です。 1)join()メソッドを使用して、 '' .join(my_list)などのリスト要素を文字列に連結します。 2)数字を含むリストの場合、連結する前にマップ(str、数字)を文字列に変換します。 3) '、'などの複雑なフォーマットに発電機式を使用できます。 4)混合データ型を処理するときは、MAP(STR、Mixed_List)を使用して、すべての要素を文字列に変換できるようにします。 5)大規模なリストには、 '' .join(lage_li)を使用します

Pythonのハイブリッドアプローチ:コンピレーションと解釈を組み合わせたPythonのハイブリッドアプローチ:コンピレーションと解釈を組み合わせたMay 08, 2025 am 12:16 AM

pythonusesahybridapproach、コンコイリティレーショントビテコードと解釈を組み合わせて、コードコンピレッドフォームと非依存性bytecode.2)

Pythonの「for」と「while」ループの違いを学びますPythonの「for」と「while」ループの違いを学びますMay 08, 2025 am 12:11 AM

keydifferencesは、「for」と「while "loopsare:1)" for "for" loopsareideal forterating overencesonownowiterations、while2) "for" for "for" for "for" for "for" for "for" for for for for "wide" loopsarebetterunuinguntinunuinguntinisisisisisisisisisisisisisisisisisisisisisisisisisisisations.un

重複したPython Concatenateリスト重複したPython ConcatenateリストMay 08, 2025 am 12:09 AM

Pythonでは、さまざまな方法でリストを接続して重複要素を管理できます。1)オペレーターを使用するか、すべての重複要素を保持します。 2)セットに変換してから、リストに戻ってすべての重複要素を削除しますが、元の順序は失われます。 3)ループを使用するか、包含をリストしてセットを組み合わせて重複要素を削除し、元の順序を維持します。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。