xLog SDK の必要性#
xLog の全体的な体験には満足していますが、Hexo や VitePress などの静的サイトジェネレーターと比較すると、アクセス速度はまだ遅いと言わざるを得ません。現時点では、xLog を独自にデプロイしたり、xLog のデータを使用して静的サイトを生成するための簡単な方法はありません。
xLog を使用すると、CSS を使用してウェブサイトの外観を簡単にカスタマイズできますが、ページのレンダリング方法に関しては制約があります。diygod は「エレガントな方法で Markdown ドキュメントをコンパイルする方法」の記事で、xLog がどのように Markdown をレンダリングするかを紹介しています。ただし、コードのハイライトスタイルに満足しない場合や、特定の行のハイライトをサポートする必要がある場合もあります。時には、xLog に PR を提供することで要件を満たすことができますが、すべての要件がすべての xLog ユーザーに適しているわけではありません。Markdown のレンダリング方法を自分で制御できれば、より多くの自由度が得られます。
多くの人にとって、xLog は唯一のブログ、ノート、日常の投稿プラットフォームではありません。VS Code を使用してブログを編集することに慣れている人もいれば、Obsidian が好きな人もいます。xLog SDK を持っていれば、他のプラットフォームと統合する際に、コミュニティの作者はすべての人が xLog サーバーのロジックを実装する必要はありません。このような重複作業は、SDK を使用して統一的に解決するべきです。
現在の SDK の機能#
私は sakuin 0.1.0 バージョンをリリースしました。npm を使用してインストールできます:
ni sakuin
sakuin
からClient
をインポートして使用します。これはcrossbell.js
に基づいています。一般的には、特定のサイトのデータを取得するためにhandle
を渡す必要があります。これはあなたの xLog のサブドメインです。
import { Client } from "sakuin"
const client = new Client()
const site = await client.site.getInfo(HANDLE)
次のような操作を行うことができます:
- サイト情報の取得
client.site.getInfo
- サイトの統計情報の取得
client.site.getStat
- サイトの統計情報の取得
- ブログ情報の取得
- すべてのブログの取得
client.post.getAll
- ページネーションでブログを取得
client.post.getMany
- 個別のブログの取得
client.post.get
またはclient.post.getBySlug
- ブログの作成
client.post.put
- ブログの更新
client.post.update
- すべてのブログの取得
- コメント情報の取得、匿名コメントの送信
- ショート、ポートフォリオ情報の取得
ここでは利用可能なすべての API とパラメーターを紹介することはできませんが、使用方法については TS の型を参照するか、後でドキュメントを生成します。
SDK を使用すると何ができるのか?#
sakuin は私のブログプロジェクトから派生したものなので、自然に自分のブログを構築するために使用しています。アクセス速度を比較するために、それと元の xLog のサイトを比較することができます。さらに、レイアウトと記事のレンダリングを自分の好みに合わせて再実装しましたので、完全に制御可能な自由度を持つことができました。xLog が提供する匿名コメントインターフェースに接続することで、簡単にコメントモジュールを実装することができます。
VS Code xLog プラグインを使用すると、このプラグインを介してすべてのブログ記事をローカルにダウンロードし、ローカルでブログを編集または作成することができます。また、VS Code でローカルファイルやリモートリンクファイルを IPFS にアップロードすることもできます。
今後の展望#
xLog SDK について、以下の点が考えられます:
- xLog との相互作用に必要な API をさらに改善し、xLog コミュニティの作者と連絡を取り、コミュニティの作者に統一された開発体験を提供します。
- xLog サーバーの機能を完全に実装し、プロジェクトを Crossbell 組織に移行し、現在の xLog サーバーの実装を置き換えます。
- SDK にサーバー API を提供し、SDK を使用せずに相互作用できるようにします。
SDK を使用して xLog を統合するアイデアについては:
- Git のコミットフックを統合し、自動的にブログを作成および更新します。
xLog SDK の登場により、xLog がより分散化の設定に合致し、自分自身のデータを利用する人が増えることを期待しています。プラットフォームに頼らずに。ちなみに、このブログは VS Code で作成し、xLog プラグインを使用して公開しています。