bluesky post
v1.0.0
bluesky-postBluesky投稿とそのメタデータを表示するWebコンポーネント。
デモ|カスタムテンプレートデモ|さらに読む
一般的な使用例:
< script type =" module " src =" bluesky-post.js " > </ script >
< bluesky-post >
< a href =" https://bsky.app/profile/darn.es/post/3l7m6ivb6ha2q " >
Discuss on Bluesky
</ a >
</ bluesky-post >カスタムテンプレートを使用した例:
< script type =" module " src =" bluesky-post.js " > </ script >
< template id =" bluesky-post-template " >
< blockquote data-key =" content " > </ blockquote >
</ template >
< bluesky-post >
< a href =" https://bsky.app/profile/darn.es/post/3l7m6ivb6ha2q " >
Discuss on Bluesky
</ a >
</ bluesky-post >より複雑なカスタムテンプレートを使用した例:
< script type =" module " src =" bluesky-post.js " > </ script >
< template id =" bluesky-post-template " >
< dl >
< dt > Reposts </ dt >
< dd data-key =" repostCount " > </ dd >
< dt > Replies </ dt >
< dd data-key =" replyCount " > </ dd >
< dt > Likes </ dt >
< dd data-key =" likeCount " > </ dd >
</ dl >
< a data-key =" url " >
View original post from < strong data-key =" username " > </ strong > on < strong data-key =" hostname " > </ strong >
</ a >
</ template >
< bluesky-post >
< a href =" https://bsky.app/profile/darn.es/post/3l7m6ivb6ha2q " >
Discuss on Bluesky
</ a >
</ bluesky-post > このWebコンポーネントを使用すると、次のことができます。
data-key="name" data属性を使用して、ページ上のコンポーネントのすべてのインスタンスにカスタムテンプレートを使用しますtemplate属性を使用して、特定のインスタンスにカスタムテンプレートを使用しますdata-key属性と典型的なJavaScriptキー参照を使用してネストされたデータを取得しますdata-key="record.text" いくつかのオプションがあります(これらのいずれかを選択してください):
npm install @daviddarnes/bluesky-postプロジェクトに<script>を含めることを確認してください(これらのいずれかを選択してください)。
<!-- Host yourself -->
< script type =" module " src =" bluesky-post.js " > </ script > <!-- 3rd party CDN, not recommended for production use -->
< script
type =" module "
src =" https://www.unpkg.com/@daviddarnes/[email protected]/bluesky-post.js "
> </ script > <!-- 3rd party CDN, not recommended for production use -->
< script
type =" module "
src =" https://esm.sh/@daviddarnes/[email protected] "
> </ script >コンポーネントのデフォルトテンプレートは次のようになります。
< figure >
< blockquote data-key =" record.text " > </ blockquote >
< figcaption >
< cite >
< a data-key =" url " > @ < span data-key =" username " > </ span > </ a >
</ cite >
< dl >
< dt > Reposts </ dt >
< dd data-key =" repostCount " > </ dd >
< dt > Replies </ dt >
< dd data-key =" replyCount " > </ dd >
< dt > Likes </ dt >
< dd data-key =" likeCount " > </ dd >
</ dl >
</ figcaption >
</ figure >ただし、ページ上のコンポーネントのすべてのインスタンスに使用されるbluesky-post-templateのidを使用して、 <template>要素を使用してテンプレートをカスタマイズできます。これは、BlueSky Postの虚栄心メトリックを<dl>として公開する例を示しています。
< template id =" bluesky-post-template " >
< dl >
< dt > Reposts </ dt >
< dd data-key =" repostCount " > </ dd >
< dt > Replies </ dt >
< dd data-key =" replyCount " > </ dd >
< dt > Likes </ dt >
< dd data-key =" likeCount " > </ dd >
</ dl >
</ template >特定のidを持つターゲット<template>要素にtemplate属性を使用して、同じページで異なるテンプレートを使用することもできます。
< template id =" custom-template " >
< a data-key =" record.text, url " > </ a >
</ template >
< bluesky-post template =" custom-template " >
< a href =" https://bsky.app/profile/darn.es/post/3l7m6ivb6ha2q " >
Discuss on Bluesky
</ a >
</ bluesky-post >データはdata-keyデータ属性を使用して適用されます。この属性の値は、Bluesky Public Post API応答内のデータポイントに対応する必要があります。公式のBlueskyドキュメントには、ここにステータス応答の例があります。
<a>および<img>要素の場合、返される文字列がhttpで始まり、代わりにhrefおよびsrc属性にそれぞれ適用される場合、値はコンテンツに適用されないことに注意してください。
参照用のソースコードと同様に、カスタムテンプレートデモとソースコードをご覧ください。
次の人々に感謝します: