모든 DEV 문서를 마크다운 형식으로 다운로드하는 방법

업데이트: dev API가 변경된 것 같습니다. 최대 1000개의 기사를 얻기 위해 새로운 params 옵션을 추가했습니다.

우리는 그것이 세계 최고의 개발자를 위한 사이트라는 데 동의할 수 있습니다. 개발 기사를 자신의 개인 블로그 사이트에 교차 게시하고 싶지만 각 게시물을 복사하여 붙여넣기가 너무 느리다면 어떻게 하시겠습니까? 😴

나는 내가 쓴 모든 단일 기사를 복사하여 내 personal site 에 붙여넣곤 했지만 금세 지루하다는 것을 알게 되었습니다. DEV 기사를 쉽게 생성할 수 있는 스크립트를 만들었습니다.

이를 수행하는 두 가지 방법이 있습니다. 아래 스크립트에서 작업하거나 Github 리포지토리를 복제합니다.

스크립트



다음은 메인 스크립트입니다. 꽤 짧습니다. axios를 사용하여 데이터를 가져오고 dotenv를 사용하여 비밀을 저장합니다.

require('dotenv').config()
const axios = require('axios')
const fs = require('fs')
const path = require('path')
const URL = 'https://dev.to/api/articles/me/published'

const options = {
  headers: { 'api-key': process.env.DEV_KEY },
  params: { 'per_page' : 1000 }
}

const contentDir = '/content/'
const contentPath = __dirname + contentDir

axios
  .get(URL, options)
  .then(response => {
    response.data.forEach(article => {
      const normalizedTitle = article.title
        .replace(/\s+/g, '-')
        .replace(/[^a-zA-Z0-9-]/g, '')
        .toLowerCase()
      const normalizedPublishedAt = article.published_at.split('T')[0]
      const fileName = `${normalizedPublishedAt}_${normalizedTitle}.md`

      console.log(`${contentDir}${fileName} created!`)
      fs.writeFileSync(
        `${contentPath}${fileName}`,
        article.body_markdown,
        'utf-8'
      )
    })
    console.log('*** dev.to data successfully fetched ***')
  })
  .catch(error => {
    console.log('ERROR: ', error)
  })



매우 쉽게 할 수 있습니다. API 요청의 응답은 작성한 모든 기사의 배열을 반환합니다.

마크다운 콘텐츠를 추출하고 파일 이름을 YYYY-MM-DD_your-article-title.md로 변경했습니다(마지막에 고유 ID도 제거했습니다(예: .../your-article-title-1a2b)).

레포



나는 또한 github repo를 만들었습니다.

https://github.com/iggredible/dev-fetch-articles

저장소를 복제하고 모든 종속성을 설치하고 프로젝트 루트에 content/ 디렉토리를 생성하기만 하면 됩니다. 귀하의 .env 정보를 제공하는 것을 잊지 마십시오!

git clone https://github.com/iggredible/dev-fetch-articles.git
cd dev-fetch-articles
npm install
mkdir content
mkdir .env
// create a key called DEV_KEY and give it your dev key values from dev.to site


사이트의 설정 -> 계정에서 DEV_KEY 비밀을 찾을 수 있습니다.

완료되면 npm run fetch-dev 를 실행하십시오. 방금 만든 content/ 폴더에서 모든 기사를 찾을 수 있습니다. 이 스크립트를 앱에 사용하거나 이 스크립트를 사용하여 앱에 복사할 수 있는 콘텐츠를 생성할 수 있습니다.

더 좋게 만들기



코드를 개선할 수 있는 방법이 보이면 Github에 PR을 제출하거나 아래 댓글을 남겨주세요.

읽어 주셔서 감사합니다. 행복한 블로깅! 📖🔥

좋은 웹페이지 즐겨찾기