bluesky-postEine Webkomponente zur Anzeige von Bluesky -Posts und deren Metadaten.
Demo | Benutzerdefinierte Vorlage Demo | Weitere Lesen
Allgemeines Nutzungsbeispiel:
< 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 >Beispiel mit einer benutzerdefinierten Vorlage:
< 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 >Beispiel mit einer komplexeren benutzerdefinierten Vorlage:
< 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 > Mit dieser Webkomponente können Sie:
data-key="name" -Datenattributetemplatedata-key -Attributs und der typischen Referenzierung der JavaScript data-key="record.text" Schlüssel, z. Sie haben einige Optionen (wählen Sie eine davon):
npm install @daviddarnes/bluesky-post Stellen Sie sicher, dass Sie das <script> in Ihr Projekt aufnehmen (wählen Sie eines davon):
<!-- 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 >Die Standardvorlage für die Komponente sieht folgt aus:
< 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 > Sie können die Vorlage jedoch mithilfe eines <template> -Elements mit einer id von bluesky-post-template anpassen, die für jede Instanz der Komponente auf der Seite verwendet wird. Hier ist ein Beispiel, das nur die Eitelkeitsmetriken des Bluesky -Posts als <dl> aufdeckt:
< 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 > Sie können auch verschiedene Vorlagen auf derselben Seite verwenden, indem Sie das template für Target <template> Elemente mit einer bestimmten id verwenden:
< 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 > Die Daten werden mit einem data-key Datenattribut angewendet. Der Wert dieses Attributs sollte einem Datenpunkt in einer öffentlichen Post -API -Antwort von Bluesky entsprechen. Die offizielle Bluesky -Dokumentation hat hier ein Beispiel für eine Statusantwort.
Beachten Sie, dass der Wert für <a> und <img> -Elemente nicht auf seinen Inhalt angewendet wird, wenn die zurückgegebene Zeichenfolge mit http beginnt und stattdessen auf die href bzw. src -Attribute angewendet wird.
Schauen Sie sich die benutzerdefinierte Vorlage -Demo sowie den Quellcode als Referenz an.
Dank an die folgenden Leute: