Dev.to API를 사용하여 개인 사이트에 신디케이션 링크 추가
( Skip to code )
물론 게시할 때마다 이러한 링크를 수동으로 추가할 수 있지만 Eleventy와 같은 강력한 정적 사이트 생성기로 무장했기 때문에 자동화하지 않을 수 없었습니다.
API와 데이터 파일
110명의 사용자는 클라이언트 측 코드 없이 정적으로 다양한 API에서 모든 종류의 데이터를 수집하여 사이트에 넣는 것이 얼마나 쉬운지 알게 될 것입니다. 여기서 우리의 작업은 매우 간단합니다. 각 기사의
url
및 canonical_url
속성을 선택하고 후자에서 전자로의 매핑을 만듭니다.const fetch = require('node-fetch')
module.exports = fetch('https://dev.to/api/articles?username=dza')
.then(res => res.json())
.then(articles => articles.map(
({canonical_url, url}) => [canonical_url, url]))
.then(Object.fromEntries)
참고: 이 코드를 복사하여 붙여넣는 경우
dza
를 자신의 dev.to 사용자 이름으로 바꾸십시오.이것은 우리에게 다음과 같은 객체를 줄 것입니다:
{
"https://www.denizaksimsek.com/2020/css-additional-box-shadow/":
"https://dev.to/dza/css-adding-additional-box-shadows-2lob",
...
}
이제 템플릿에서 사용해 보겠습니다.
{%if devToSyndication[page.url]%}
<section class="syndication-links">
This article is syndicated to <a class="u-syndication"
href="{{devToSyndication[page.url]}}">DEV</a>, where you can comment on it.
</section>
{%endif%}
작은 문제: Eleventy가 제공하는
page.url
속성은 상대 URL인 반면 DEV에서 얻은 URL은 절대적입니다.URL
클래스에 대한 작업처럼 들립니다!function makeRelativeUrl(url) {
const urlObj = new URL(url)
// you might want to append url.search and url.hash too
// but it's unlikely, and a small amount of tech debt is
// good for the soul
return urlObj.pathname
}
...
({canonical_url, url}) => [makeRelativeUrl(canonical_url), url])
이제 DEV에 신디케이트된 모든 게시물에 대한 링크가 표시되어야 합니다.
부록: 최종 데이터 파일
const fetch = require('node-fetch')
function makeRelativeUrl(url) {
const urlObj = new URL(url)
// you might want to append url.search and url.hash too
// but it's unlikely, and a small amount of tech debt is
// good for the soul
return urlObj.pathname
}
module.exports = fetch('https://dev.to/api/articles?username=dza')
.then(res => res.json())
.then(articles => articles.map(
({canonical_url, url}) => [makeRelativeUrl(canonical_url), url]))
.then(Object.fromEntries)
Reference
이 문제에 관하여(Dev.to API를 사용하여 개인 사이트에 신디케이션 링크 추가), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dz4k/add-syndication-links-on-your-personal-site-using-dev-to-api-395텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)