mastodon-postmastodon post 과 해당 메타데이터를 표시하는 웹 구성 요소입니다.
데모 | 맞춤 템플릿 데모 | 추가 읽기
일반적인 사용 예:
< script type =" module " src =" mastodon-post.js " > </ script >
< mastodon-post >
< a href =" https://mastodon.design/@DavidDarnes/109824258017750161 " >
Discuss on Mastodon
</ a >
</ mastodon-post >사용자 정의 템플릿을 사용한 예:
< script type =" module " src =" mastodon-post.js " > </ script >
< template id =" mastodon-post-template " >
< blockquote data-key =" content " > </ blockquote >
</ template >
< mastodon-post >
< a href =" https://mastodon.design/@DavidDarnes/109824258017750161 " >
Discuss on Mastodon
</ a >
</ mastodon-post >더 복잡한 사용자 정의 템플릿을 사용하는 예:
< script type =" module " src =" mastodon-post.js " > </ script >
< template id =" mastodon-post-template " >
< dl >
< dt > Reposts </ dt >
< dd data-key =" reblogs_count " > </ dd >
< dt > Replies </ dt >
< dd data-key =" replies_count " > </ dd >
< dt > Favourites </ dt >
< dd data-key =" favourites_count " > </ dd >
</ dl >
< a data-key =" url " >
View original post from < img alt =" avatar " data-key =" account.avatar " />
< strong data-key =" account.display_name " > </ strong > on
< strong data-key =" hostname " > </ strong >
</ a >
</ template >
< mastodon-post >
< a href =" https://mastodon.design/@DavidDarnes/109824258017750161 " >
Discuss on Mastodon
</ a >
</ mastodon-post > 이 웹 구성 요소를 사용하면 다음을 수행할 수 있습니다.
data-key="name" 데이터 속성을 사용하여 페이지에 있는 구성 요소의 모든 인스턴스에 대해 사용자 정의 템플릿을 사용합니다.template 속성을 사용하여 특정 인스턴스에 대한 사용자 정의 템플릿을 사용합니다.data-key 속성과 일반적인 JavaScript 키 참조(예: data-key="account.display_name" 또는 data-key="media_attachments[0]preview_url" 사용하여 중첩된 데이터를 검색합니다. 몇 가지 옵션이 있습니다(다음 중 하나 선택).
npm install @daviddarnes/mastodon-post 프로젝트에 <script> 를 포함했는지 확인하세요(다음 중 하나 선택).
<!-- Host yourself -->
< script type =" module " src =" mastodon-post.js " > </ script > <!-- 3rd party CDN, not recommended for production use -->
< script
type =" module "
src =" https://www.unpkg.com/@daviddarnes/[email protected]/mastodon-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 =" content " > </ blockquote >
< figcaption >
< cite >
< a data-key =" url " >
< span data-key =" username " > </ span >
@
< span data-key =" hostname " > </ span >
</ a >
</ cite >
< dl >
< dt > Reposts </ dt >
< dd data-key =" reblogs_count " > </ dd >
< dt > Replies </ dt >
< dd data-key =" replies_count " > </ dd >
< dt > Favourites </ dt >
< dd data-key =" favourites_count " > </ dd >
</ dl >
</ figcaption >
</ figure > 그러나 페이지에 있는 구성 요소의 모든 인스턴스에 사용되는 mastodon-post-template id 가 있는 <template> 요소를 사용하여 템플릿을 사용자 정의할 수 있습니다. 다음은 mastodon post 의 허영 측정항목을 <dl> 로 노출하는 예입니다.
< template id =" mastodon-post-template " >
< dl >
< dt > Reposts </ dt >
< dd data-key =" reblogs_count " > </ dd >
< dt > Replies </ dt >
< dd data-key =" replies_count " > </ dd >
< dt > Favourites </ dt >
< dd data-key =" favourites_count " > </ dd >
</ dl >
</ template > 특정 id 가진 <template> 요소를 대상으로 지정하기 위해 template 속성을 사용하여 동일한 페이지에서 다른 템플릿을 사용할 수도 있습니다.
< template id =" custom-template " >
< a data-key =" content, url " > </ a >
</ template >
< mastodon-post template =" custom-template " >
< a href =" https://mastodon.design/@DavidDarnes/109824258017750161 " >
Discuss on Mastodon
</ a >
</ mastodon-post > 데이터는 data-key 데이터 속성을 사용하여 적용됩니다. 이 속성의 값은 Mastodon 공개 상태 API 응답 내의 데이터 포인트와 일치해야 합니다. 공식 Mastodon 문서에는 여기에 상태 응답의 예가 있습니다. data-key 속성을 사용하면 일반적인 JavaScript 점 표기법을 사용하여 중첩된 데이터를 대상으로 지정할 수도 있습니다.
< template id =" mastodon-post-template " >
< figure >
< blockquote data-key =" content " > </ blockquote >
< figcaption >
< cite >
< a data-key =" url " >
View original post from
< img alt =" avatar " data-key =" account.avatar " />
< strong data-key =" account.display_name " > </ strong > on
< strong data-key =" hostname " > </ strong >
</ a >
</ cite >
</ figcaption >
</ figure >
</ template > <a> 및 <img> 요소의 경우 반환되는 문자열이 http 로 시작하는 경우 값은 콘텐츠에 적용되지 않고 대신 href 및 src 속성에 각각 적용됩니다.
사용자 정의 템플릿 데모와 참조용 소스 코드를 확인하세요.
다음 분들께 감사드립니다.